ETH Price: $3,101.72 (+1.09%)
Gas: 14 Gwei

Token

Banana Dao (NANA)
 

Overview

Max Total Supply

1,000,000 NANA

Holders

163

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 NANA

Value
$0.00
0x2576be097d230490bfebf296af024582191932ad
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:
BananaDao

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-14
*/

// Website: https://bananadao.org/
// Twitter: https://twitter.com/BananaDAO_eth
// Telegram: https://t.me/BananaDAO_Portal

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

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

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit(uint256 amount) external;
    function claimDividend(address shareholder) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;

    address public immutable BANANA = address(0x38E68A37E401F7271568CecaAc63c6B1e19130B4); //UNI


    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner) {
        _token = msg.sender;
        _owner = owner;
    }

    receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit(uint256 amount) external override onlyToken {
        
        if (amount > 0) {        
            totalDividends = totalDividends.add(amount);
            dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
        }
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            IERC20(BANANA).transfer(shareholder, amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
    
    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }


    function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

contract BananaDao is IERC20, Auth {
    using SafeMath for uint256;

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

    address public immutable BANANA = address(0x38E68A37E401F7271568CecaAc63c6B1e19130B4); //UNI

    string private constant  _name = "Banana Dao";
    string private constant _symbol = "NANA";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000 * (10 ** _decimals);
    

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

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) private isBot;
            
    uint256 private _totalFee = 5;            
    uint256 private totalFee = _totalFee;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x87afEFE4B8dd45444Bd46C9924E59797a6d3bf4b);
    address payable public treasuryWallet = payable(0xb6ece96D7E175e718EFDEa137229fB833164f1Ee);

    IDEXRouter public router;
    address public pair;

    uint256 private launchedAt;
    uint256 private launchedTime;
    uint256 public deadBlocks;
    bool private tradingOpen = false;
    bool private buyLimit = true;
    uint256 private maxBuy = _totalSupply;
    uint256 private maxWallet = _totalSupply;
    uint256 private _maxBuy = _totalSupply / 200; // 0.5%
    uint256 private _maxWallet = _totalSupply / 50; // 2%
    uint256 public numTokensSellToAddToLiquidity = _totalSupply / 200;

    DividendDistributor private distributor;    
    
    bool public blacklistEnabled = false;
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

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

        distributor = new DividendDistributor(_owner);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;             
              
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;        

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

    receive() external payable { }

    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 _transferFrom(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 _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading
        if (blacklistEnabled) {
            require (!isBot[sender] && !isBot[recipient], "Bot!");
        }
        if (buyLimit && sender!=owner && recipient!= owner) { 
            require (amount<=maxBuy, "Too much sir");
            require (balanceOf(recipient) + amount <= maxWallet, "Too much sir");
            if((launchedAt + deadBlocks) >= block.number)
            {
                totalFee = 99;
            } else if(block.number > (launchedAt + deadBlocks) && block.number <= launchedAt + 10)
            {
                maxBuy = _maxBuy;
                maxWallet = _maxWallet;
                totalFee = 40;
            } else 
            {
                totalFee = _totalFee;
            }
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        emit Transfer(sender, recipient, amountReceived);
        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 shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {

        uint256 amountToMarketing = balanceOf(address(this)).div(5);

        swapTokensForEth(amountToMarketing);
        swapTokensForBANANA(balanceOf(address(this)));

        uint256 amountToTreasury = IERC20(BANANA).balanceOf(address(this)).div(2);

        IERC20(BANANA).transfer(treasuryWallet, amountToTreasury);

        uint256 dividends = IERC20(BANANA).balanceOf(address(this));

        bool success = IERC20(BANANA).transfer(address(distributor), dividends);

        if (success) {
            distributor.deposit(dividends);            
        }
             
        payable(marketingWallet).transfer(address(this).balance);        
    }
    

    function swapTokensForBANANA(uint256 tokenAmount) private {

        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = WETH;
        path[2] = BANANA;

        // make the swap
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        
        // add the liquidity
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp
        );
    }

    
    function openTrading(uint256 _deadBlocks) external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
        deadBlocks = _deadBlocks;
        launchedTime = block.timestamp;
    }    
  
    
    function setBot(address _address, bool toggle) external onlyOwner {
        isBot[_address] = toggle;
        _setIsDividendExempt(_address, toggle);
    }
    
    
    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

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

    function setFee (uint256 _fee) external onlyOwner {
        require (_fee <= 9, "Fee can't exceed 9%");
        totalFee = _fee;
    }
  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return distributor.getClaimableDividendOf(shareholder);
    }
    
    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    } 

    function getTotalDividends() external view returns (uint256) {
        return distributor.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return distributor.totalClaimed();
    }

     function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return distributor.getDividendsClaimedOf(shareholder);
    }

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }

    function checkBot(address account) public view returns (bool) {
        return isBot[account];
    }

    function setBlacklistEnabled() external onlyOwner {
        require (blacklistEnabled == false, "can only be called once");
        blacklistEnabled = true;
    }

    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        numTokensSellToAddToLiquidity = amount * 10 ** 9;
    } 
   
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"address","name":"owner","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":"BANANA","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":[{"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":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600280546001600160a01b031990811661dead179091556003805490911690557338e68a37e401f7271568cecaac63c6b1e19130b46080526200004a6009600a62000555565b6200005990620f42406200056d565b60048190556005600a819055600b556064600c55600d80546001600160a01b03199081167387afefe4b8dd45444bd46c9924e59797a6d3bf4b17909155600e805490911673b6ece96d7e175e718efdea137229fb833164f1ee1790556014805461ffff191661010017905560158190556016819055620000dc9060c8906200058f565b6017556032600454620000f091906200058f565b60185560c86004546200010491906200058f565b601955601a805460ff60a01b191690553480156200012157600080fd5b50604051620035ff380380620035ff8339810160408190526200014491620005b2565b600080546001600160a01b03199081166001600160a01b03841617909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e39190620005b2565b600180546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002689190620005b2565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e09190620005b2565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600f54909416835292905281902060001990555181906200032f9062000432565b6001600160a01b039091168152602001604051809103906000f0801580156200035c573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b039283161790558181166000818152600760209081526040808320805460ff199081166001908117909255600d548716855282852080548216831790556010548716855260088452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600582528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005dd565b610d96806200286983390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004975781600019048211156200047b576200047b62000440565b808516156200048957918102915b93841c93908002906200045b565b509250929050565b600082620004b0575060016200054f565b81620004bf575060006200054f565b8160018114620004d85760028114620004e35762000503565b60019150506200054f565b60ff841115620004f757620004f762000440565b50506001821b6200054f565b5060208310610133831016604e8410600b841016171562000528575081810a6200054f565b62000534838362000456565b80600019048211156200054b576200054b62000440565b0290505b92915050565b60006200056660ff8416836200049f565b9392505050565b60008160001904831182151516156200058a576200058a62000440565b500290565b600082620005ad57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005c557600080fd5b81516001600160a01b03811681146200056657600080fd5b60805161224d6200061c60003960008181610664015281816118d60152818161196d015281816119f301528181611a950152611e35015261224d6000f3fe60806040526004361061023f5760003560e01c8063736a83a11161012e578063c8b35c7a116100ab578063f2fde38b1161006f578063f2fde38b14610717578063f429389014610737578063f708a64f1461074c578063f887ea401461076c578063fabb0b4f1461078c57600080fd5b8063c8b35c7a14610652578063d12a768814610686578063d16336491461069c578063dd62ed3e146106bc578063f0fc6bca1461070257600080fd5b806395d89b41116100f257806395d89b411461058b578063a8aa1b31146105b8578063a9059cbb146105d8578063b1a4e0dc146105f8578063bffb691d1461063157600080fd5b8063736a83a11461050357806375f0a87414610518578063764ca51214610538578063893d20e81461054d5780638ecc37fb1461056b57600080fd5b8063342aa8b5116101bc5780635d098b38116101805780635d098b381461046e578063658d4b7f1461048e57806367ee5f09146104ae57806369fe0e2d146104c357806370a08231146104e357600080fd5b8063342aa8b5146103c15780633e07ce5b146103e15780634626402b146103f6578063571ac8b01461042e5780635cc33f741461044e57600080fd5b806323b872dd1161020357806323b872dd1461032157806329e04b4a146103415780632b112e49146103615780632f54bf6e14610376578063313ce567146103a557600080fd5b806306fdde031461024b578063095ea7b31461029057806315f7e05e146102c057806318160ddd146102e257806323b635851461030157600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5060408051808201909152600a81526942616e616e612044616f60b01b60208201525b6040516102879190611f2f565b60405180910390f35b34801561029c57600080fd5b506102b06102ab366004611f9c565b6107a2565b6040519015158152602001610287565b3480156102cc57600080fd5b506102e06102db366004611fc8565b61080f565b005b3480156102ee57600080fd5b506004545b604051908152602001610287565b34801561030d57600080fd5b506102b061031c366004611fe5565b6108a4565b34801561032d57600080fd5b506102b061033c366004611ffe565b6108e7565b34801561034d57600080fd5b506102e061035c366004611fe5565b6109a9565b34801561036d57600080fd5b506102f3610a36565b34801561038257600080fd5b506102b0610391366004611fc8565b6000546001600160a01b0391821691161490565b3480156103b157600080fd5b5060405160098152602001610287565b3480156103cd57600080fd5b506102e06103dc36600461204d565b610a7f565b3480156103ed57600080fd5b506102e0610adb565b34801561040257600080fd5b50600e54610416906001600160a01b031681565b6040516001600160a01b039091168152602001610287565b34801561043a57600080fd5b506102b0610449366004611fc8565b610b12565b34801561045a57600080fd5b506102f3610469366004611fc8565b610b20565b34801561047a57600080fd5b506102e0610489366004611fc8565b610b90565b34801561049a57600080fd5b506102e06104a936600461204d565b610bdc565b3480156104ba57600080fd5b506102f3610c31565b3480156104cf57600080fd5b506102e06104de366004611fe5565b610c9f565b3480156104ef57600080fd5b506102f36104fe366004611fc8565b610d15565b34801561050f57600080fd5b506102f3610d30565b34801561052457600080fd5b50600d54610416906001600160a01b031681565b34801561054457600080fd5b506102e0610d7a565b34801561055957600080fd5b506000546001600160a01b0316610416565b34801561057757600080fd5b506102f3610586366004611fc8565b610e13565b34801561059757600080fd5b506040805180820190915260048152634e414e4160e01b602082015261027a565b3480156105c457600080fd5b50601054610416906001600160a01b031681565b3480156105e457600080fd5b506102b06105f3366004611f9c565b610e46565b34801561060457600080fd5b506102b0610613366004611fc8565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561063d57600080fd5b50601a546102b090600160a01b900460ff1681565b34801561065e57600080fd5b506104167f000000000000000000000000000000000000000000000000000000000000000081565b34801561069257600080fd5b506102f360195481565b3480156106a857600080fd5b506102e06106b7366004611fe5565b610e53565b3480156106c857600080fd5b506102f36106d7366004612086565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561070e57600080fd5b506102e0610e97565b34801561072357600080fd5b506102e0610732366004611fc8565b610ef6565b34801561074357600080fd5b506102e0610f74565b34801561075857600080fd5b506102e061076736600461204d565b610fd8565b34801561077857600080fd5b50600f54610416906001600160a01b031681565b34801561079857600080fd5b506102f360135481565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107fd9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108425760405162461bcd60e51b8152600401610839906120b4565b60405180910390fd5b601a54604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561088957600080fd5b505af115801561089d573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108cf5760405162461bcd60e51b8152600401610839906120b4565b6002546108099030906001600160a01b03168461100c565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610994576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461096f9184906110f2565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61099f84848461112c565b90505b9392505050565b6000546001600160a01b031633146109d35760405162461bcd60e51b8152600401610839906120b4565b6004546109e1906064611676565b811115610a225760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610839565b610a3081633b9aca006120ea565b60195550565b600354600090610a7a90610a52906001600160a01b0316610d15565b600254610a7490610a6b906001600160a01b0316610d15565b600454906116b8565b906116b8565b905090565b6000546001600160a01b03163314610aa95760405162461bcd60e51b8152600401610839906120b4565b6001600160a01b0382166000908152600960205260409020805460ff1916821515179055610ad782826116fa565b5050565b6000546001600160a01b03163314610b055760405162461bcd60e51b8152600401610839906120b4565b6014805461ff0019169055565b6000610809826000196107a2565b601a54604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190612109565b6000546001600160a01b03163314610bba5760405162461bcd60e51b8152600401610839906120b4565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c065760405162461bcd60e51b8152600401610839906120b4565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b601a546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7a9190612109565b6000546001600160a01b03163314610cc95760405162461bcd60e51b8152600401610839906120b4565b6009811115610d105760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420392560681b6044820152606401610839565b600b55565b6001600160a01b031660009081526005602052604090205490565b601a546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c7b573d6000803e3d6000fd5b6000546001600160a01b03163314610da45760405162461bcd60e51b8152600401610839906120b4565b601a54600160a01b900460ff1615610dfe5760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e63650000000000000000006044820152606401610839565b601a805460ff60a01b1916600160a01b179055565b601a54604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b4f565b60006109a233848461112c565b6000546001600160a01b03163314610e7d5760405162461bcd60e51b8152600401610839906120b4565b436011556014805460ff1916600117905560135542601255565b601a54604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610f205760405162461bcd60e51b8152600401610839906120b4565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610f9e5760405162461bcd60e51b8152600401610839906120b4565b600d5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ad7573d6000803e3d6000fd5b6000546001600160a01b031633146110025760405162461bcd60e51b8152600401610839906120b4565b610ad782826116fa565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461105d9184906110f2565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461108c908361180b565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e09086815260200190565b60405180910390a35060019392505050565b600081848411156111165760405162461bcd60e51b81526004016108399190611f2f565b5060006111238486612122565b95945050505050565b600080546001600160a01b0385811691161480159061115957506000546001600160a01b03848116911614155b156111b05760145460ff166111b05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610839565b601a54600160a01b900460ff1615611239576001600160a01b03841660009081526009602052604090205460ff1615801561120457506001600160a01b03831660009081526009602052604090205460ff16155b6112395760405162461bcd60e51b815260040161083990602080825260049082015263426f742160e01b604082015260600190565b601454610100900460ff16801561125e57506000546001600160a01b03858116911614155b801561127857506000546001600160a01b03848116911614155b1561137f576015548211156112be5760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b6044820152606401610839565b601654826112cb85610d15565b6112d59190612139565b11156113125760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b6044820152606401610839565b436013546011546113239190612139565b10611332576063600b5561137f565b6013546011546113429190612139565b4311801561135d575060115461135990600a612139565b4311155b15611378576017546015556018546016556028600b5561137f565b600a54600b555b601a54600160a81b900460ff16156113a35761139c84848461100c565b90506109a2565b60006113ae30610d15565b90506000601954821015905060008180156113d657506010546001600160a01b038781169116145b80156113ea575060006113e830610d15565b115b905080156113fa576113fa61186a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a1660009081526005909152919091205461144c9187906110f2565b6001600160a01b0388166000908152600560205260408120919091556114728888611bb8565b61147c5785611486565b6114868887611c2d565b6001600160a01b0388166000908152600560205260409020549091506114ac908261180b565b6001600160a01b038089166000908152600560205260409020919091556010548982169116148015906114f857506001600160a01b03881660009081526008602052604090205460ff16155b1561156e57601a546001600160a01b0389811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561155b57600080fd5b505af192505050801561156c575060015b505b6010546001600160a01b038881169116148015906115a557506001600160a01b03871660009081526008602052604090205460ff16155b1561161b57601a546001600160a01b0388811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561160857600080fd5b505af1925050508015611619575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161166091815260200190565b60405180910390a3506001979650505050505050565b60006109a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cd3565b60006109a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f2565b6001600160a01b038216301480159061172157506010546001600160a01b03838116911614155b61172a57600080fd5b6001600160a01b0382166000908152600860205260409020805460ff191682158015919091179091556117c257601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156117a657600080fd5b505af11580156117ba573d6000803e3d6000fd5b505050505050565b601a546001600160a01b0383811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca969060440161178c565b6000806118188385612139565b9050838110156109a25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610839565b601a805460ff60a81b1916600160a81b1790556000611893600561188d30610d15565b90611676565b905061189e81611d01565b6118af6118aa30610d15565b611dac565b6040516370a0823160e01b8152306004820152600090611941906002906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561191d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d9190612109565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192507f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156119b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119da9190612151565b506040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a669190612109565b601a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b049190612151565b90508015611b6b57601a5460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015611b5257600080fd5b505af1158015611b66573d6000803e3d6000fd5b505050505b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611ba4573d6000803e3d6000fd5b5050601a805460ff60a81b19169055505050565b6001600160a01b03821660009081526007602052604081205460ff1680611bf757506001600160a01b03821660009081526007602052604090205460ff165b1580156109a257506010546001600160a01b03848116911614806109a25750506010546001600160a01b03908116911614919050565b600080611c4b600c5461188d600b5486611ead90919063ffffffff16565b30600090815260056020526040902054909150611c68908261180b565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb99085815260200190565b60405180910390a3611ccb83826116b8565b949350505050565b60008183611cf45760405162461bcd60e51b81526004016108399190611f2f565b506000611123848661216e565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d3657611d36612190565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611d6657611d66612190565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac9479061178c9085906000908690309042906004016121a6565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611de357611de3612190565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611e1357611e13612190565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611e6757611e67612190565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d7959061178c9085906000908690309042906004016121a6565b600082600003611ebf57506000610809565b6000611ecb83856120ea565b905082611ed8858361216e565b146109a25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610839565b600060208083528351808285015260005b81811015611f5c57858101830151858201604001528201611f40565b81811115611f6e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611f9957600080fd5b50565b60008060408385031215611faf57600080fd5b8235611fba81611f84565b946020939093013593505050565b600060208284031215611fda57600080fd5b81356109a281611f84565b600060208284031215611ff757600080fd5b5035919050565b60008060006060848603121561201357600080fd5b833561201e81611f84565b9250602084013561202e81611f84565b929592945050506040919091013590565b8015158114611f9957600080fd5b6000806040838503121561206057600080fd5b823561206b81611f84565b9150602083013561207b8161203f565b809150509250929050565b6000806040838503121561209957600080fd5b82356120a481611f84565b9150602083013561207b81611f84565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612104576121046120d4565b500290565b60006020828403121561211b57600080fd5b5051919050565b600082821015612134576121346120d4565b500390565b6000821982111561214c5761214c6120d4565b500190565b60006020828403121561216357600080fd5b81516109a28161203f565b60008261218b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121f65784516001600160a01b0316835293830193918301916001016121d1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220628de0f410d9c07baf0a7994c0184d1fd4808ab5876caa714e966ac9867d01f464736f6c634300080d003360a06040527338e68a37e401f7271568cecaac63c6b1e19130b46080526ec097ce7bc90715b34b9f100000000060095534801561003b57600080fd5b50604051610d96380380610d9683398101604081905261005a9161008d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b608051610cb76100df6000396000818161023801526107370152610cb76000f3fe6080604052600436106100e15760003560e01c8063b2bdfa7b1161007f578063ce7c2ac211610059578063ce7c2ac21461025a578063d54ad2a1146102b1578063e2d2e219146102c7578063ecd0c0c3146102dd57600080fd5b8063b2bdfa7b146101ce578063b6b55f2514610206578063c8b35c7a1461022657600080fd5b80633a98ef39116100bb5780633a98ef391461014f5780635cc33f74146101785780638ecc37fb14610198578063997664d7146101b857600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610ace565b6102fd565b005b34801561011b57600080fd5b5061010d61012a366004610afa565b61035d565b34801561013b57600080fd5b5061010d61014a366004610b24565b6104d5565b34801561015b57600080fd5b5061016560055481565b6040519081526020015b60405180910390f35b34801561018457600080fd5b50610165610193366004610b24565b6104f8565b3480156101a457600080fd5b506101656101b3366004610b24565b610581565b3480156101c457600080fd5b5061016560065481565b3480156101da57600080fd5b506001546101ee906001600160a01b031681565b6040516001600160a01b03909116815260200161016f565b34801561021257600080fd5b5061010d610221366004610b3f565b61060c565b34801561023257600080fd5b506101ee7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026657600080fd5b50610296610275366004610b24565b60046020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161016f565b3480156102bd57600080fd5b5061016560075481565b3480156102d357600080fd5b5061016560085481565b3480156102e957600080fd5b506000546101ee906001600160a01b031681565b6001546001600160a01b0316331461031457600080fd5b476001600160a01b0382166108fc8461032d578261032f565b845b6040518115909202916000818181858888f19350505050158015610357573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461037457600080fd5b6001600160a01b0382166000908152600460205260409020541561039b5761039b82610666565b6000811180156103c157506001600160a01b038216600090815260046020526040902054155b1561042757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561045a565b8015801561044c57506001600160a01b03821660009081526004602052604090205415155b1561045a5761045a826107aa565b6001600160a01b03821660009081526004602052604090205460055461048b918391610485916108bf565b9061090a565b6005556001600160a01b03821660009081526004602052604090208190556104b281610969565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b031633146104ec57600080fd5b6104f581610666565b50565b6001600160a01b0381166000908152600460205260408120546105625760405162461bcd60e51b815260206004820152601960248201527f596f75277265206e6f742061207368617265686f6c646572210000000000000060448201526064015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105a857506000919050565b6001600160a01b0382166000908152600460205260408120546105ca90610969565b6001600160a01b0384166000908152600460205260409020600101549091508082116105fa575060009392505050565b61060482826108bf565b949350505050565b6000546001600160a01b0316331461062357600080fd5b80156104f557600654610636908261090a565b60065560055460095461066091610657916106519085610986565b90610a08565b6008549061090a565b60085550565b6001600160a01b03811660009081526004602052604081205490036106885750565b600061069382610581565b905080156107a6576007546106a8908261090a565b6007556001600160a01b0382166000908152600460205260409020600201546106d1908261090a565b6001600160a01b03831660009081526004602052604090206002810191909155546106fb90610969565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a49190610b58565b505b5050565b600280546107ba90600190610b90565b815481106107ca576107ca610ba7565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061080857610808610ba7565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161085490600190610b90565b8154811061086457610864610ba7565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600280548061089a5761089a610bbd565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061090183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a4a565b90505b92915050565b6000806109178385610bd3565b9050838110156109015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610559565b60006109046009546106516008548561098690919063ffffffff16565b60008260000361099857506000610904565b60006109a48385610beb565b9050826109b18583610c0a565b146109015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610559565b600061090183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a84565b60008184841115610a6e5760405162461bcd60e51b81526004016105599190610c2c565b506000610a7b8486610b90565b95945050505050565b60008183610aa55760405162461bcd60e51b81526004016105599190610c2c565b506000610a7b8486610c0a565b80356001600160a01b0381168114610ac957600080fd5b919050565b60008060408385031215610ae157600080fd5b82359150610af160208401610ab2565b90509250929050565b60008060408385031215610b0d57600080fd5b610b1683610ab2565b946020939093013593505050565b600060208284031215610b3657600080fd5b61090182610ab2565b600060208284031215610b5157600080fd5b5035919050565b600060208284031215610b6a57600080fd5b8151801515811461090157600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ba257610ba2610b7a565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610be657610be6610b7a565b500190565b6000816000190483118215151615610c0557610c05610b7a565b500290565b600082610c2757634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610c5957858101830151858201604001528201610c3d565b81811115610c6b576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220c4965a1d5369620e2475b2f2c11ff309ab5250656c62dcb354df0d3a62a9010264736f6c634300080d003300000000000000000000000087afefe4b8dd45444bd46c9924e59797a6d3bf4b

Deployed Bytecode

0x60806040526004361061023f5760003560e01c8063736a83a11161012e578063c8b35c7a116100ab578063f2fde38b1161006f578063f2fde38b14610717578063f429389014610737578063f708a64f1461074c578063f887ea401461076c578063fabb0b4f1461078c57600080fd5b8063c8b35c7a14610652578063d12a768814610686578063d16336491461069c578063dd62ed3e146106bc578063f0fc6bca1461070257600080fd5b806395d89b41116100f257806395d89b411461058b578063a8aa1b31146105b8578063a9059cbb146105d8578063b1a4e0dc146105f8578063bffb691d1461063157600080fd5b8063736a83a11461050357806375f0a87414610518578063764ca51214610538578063893d20e81461054d5780638ecc37fb1461056b57600080fd5b8063342aa8b5116101bc5780635d098b38116101805780635d098b381461046e578063658d4b7f1461048e57806367ee5f09146104ae57806369fe0e2d146104c357806370a08231146104e357600080fd5b8063342aa8b5146103c15780633e07ce5b146103e15780634626402b146103f6578063571ac8b01461042e5780635cc33f741461044e57600080fd5b806323b872dd1161020357806323b872dd1461032157806329e04b4a146103415780632b112e49146103615780632f54bf6e14610376578063313ce567146103a557600080fd5b806306fdde031461024b578063095ea7b31461029057806315f7e05e146102c057806318160ddd146102e257806323b635851461030157600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5060408051808201909152600a81526942616e616e612044616f60b01b60208201525b6040516102879190611f2f565b60405180910390f35b34801561029c57600080fd5b506102b06102ab366004611f9c565b6107a2565b6040519015158152602001610287565b3480156102cc57600080fd5b506102e06102db366004611fc8565b61080f565b005b3480156102ee57600080fd5b506004545b604051908152602001610287565b34801561030d57600080fd5b506102b061031c366004611fe5565b6108a4565b34801561032d57600080fd5b506102b061033c366004611ffe565b6108e7565b34801561034d57600080fd5b506102e061035c366004611fe5565b6109a9565b34801561036d57600080fd5b506102f3610a36565b34801561038257600080fd5b506102b0610391366004611fc8565b6000546001600160a01b0391821691161490565b3480156103b157600080fd5b5060405160098152602001610287565b3480156103cd57600080fd5b506102e06103dc36600461204d565b610a7f565b3480156103ed57600080fd5b506102e0610adb565b34801561040257600080fd5b50600e54610416906001600160a01b031681565b6040516001600160a01b039091168152602001610287565b34801561043a57600080fd5b506102b0610449366004611fc8565b610b12565b34801561045a57600080fd5b506102f3610469366004611fc8565b610b20565b34801561047a57600080fd5b506102e0610489366004611fc8565b610b90565b34801561049a57600080fd5b506102e06104a936600461204d565b610bdc565b3480156104ba57600080fd5b506102f3610c31565b3480156104cf57600080fd5b506102e06104de366004611fe5565b610c9f565b3480156104ef57600080fd5b506102f36104fe366004611fc8565b610d15565b34801561050f57600080fd5b506102f3610d30565b34801561052457600080fd5b50600d54610416906001600160a01b031681565b34801561054457600080fd5b506102e0610d7a565b34801561055957600080fd5b506000546001600160a01b0316610416565b34801561057757600080fd5b506102f3610586366004611fc8565b610e13565b34801561059757600080fd5b506040805180820190915260048152634e414e4160e01b602082015261027a565b3480156105c457600080fd5b50601054610416906001600160a01b031681565b3480156105e457600080fd5b506102b06105f3366004611f9c565b610e46565b34801561060457600080fd5b506102b0610613366004611fc8565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561063d57600080fd5b50601a546102b090600160a01b900460ff1681565b34801561065e57600080fd5b506104167f00000000000000000000000038e68a37e401f7271568cecaac63c6b1e19130b481565b34801561069257600080fd5b506102f360195481565b3480156106a857600080fd5b506102e06106b7366004611fe5565b610e53565b3480156106c857600080fd5b506102f36106d7366004612086565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561070e57600080fd5b506102e0610e97565b34801561072357600080fd5b506102e0610732366004611fc8565b610ef6565b34801561074357600080fd5b506102e0610f74565b34801561075857600080fd5b506102e061076736600461204d565b610fd8565b34801561077857600080fd5b50600f54610416906001600160a01b031681565b34801561079857600080fd5b506102f360135481565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107fd9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108425760405162461bcd60e51b8152600401610839906120b4565b60405180910390fd5b601a54604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561088957600080fd5b505af115801561089d573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108cf5760405162461bcd60e51b8152600401610839906120b4565b6002546108099030906001600160a01b03168461100c565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610994576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461096f9184906110f2565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61099f84848461112c565b90505b9392505050565b6000546001600160a01b031633146109d35760405162461bcd60e51b8152600401610839906120b4565b6004546109e1906064611676565b811115610a225760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610839565b610a3081633b9aca006120ea565b60195550565b600354600090610a7a90610a52906001600160a01b0316610d15565b600254610a7490610a6b906001600160a01b0316610d15565b600454906116b8565b906116b8565b905090565b6000546001600160a01b03163314610aa95760405162461bcd60e51b8152600401610839906120b4565b6001600160a01b0382166000908152600960205260409020805460ff1916821515179055610ad782826116fa565b5050565b6000546001600160a01b03163314610b055760405162461bcd60e51b8152600401610839906120b4565b6014805461ff0019169055565b6000610809826000196107a2565b601a54604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108099190612109565b6000546001600160a01b03163314610bba5760405162461bcd60e51b8152600401610839906120b4565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c065760405162461bcd60e51b8152600401610839906120b4565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b601a546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7a9190612109565b6000546001600160a01b03163314610cc95760405162461bcd60e51b8152600401610839906120b4565b6009811115610d105760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420392560681b6044820152606401610839565b600b55565b6001600160a01b031660009081526005602052604090205490565b601a546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c7b573d6000803e3d6000fd5b6000546001600160a01b03163314610da45760405162461bcd60e51b8152600401610839906120b4565b601a54600160a01b900460ff1615610dfe5760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e63650000000000000000006044820152606401610839565b601a805460ff60a01b1916600160a01b179055565b601a54604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b4f565b60006109a233848461112c565b6000546001600160a01b03163314610e7d5760405162461bcd60e51b8152600401610839906120b4565b436011556014805460ff1916600117905560135542601255565b601a54604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610f205760405162461bcd60e51b8152600401610839906120b4565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610f9e5760405162461bcd60e51b8152600401610839906120b4565b600d5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ad7573d6000803e3d6000fd5b6000546001600160a01b031633146110025760405162461bcd60e51b8152600401610839906120b4565b610ad782826116fa565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461105d9184906110f2565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461108c908361180b565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e09086815260200190565b60405180910390a35060019392505050565b600081848411156111165760405162461bcd60e51b81526004016108399190611f2f565b5060006111238486612122565b95945050505050565b600080546001600160a01b0385811691161480159061115957506000546001600160a01b03848116911614155b156111b05760145460ff166111b05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610839565b601a54600160a01b900460ff1615611239576001600160a01b03841660009081526009602052604090205460ff1615801561120457506001600160a01b03831660009081526009602052604090205460ff16155b6112395760405162461bcd60e51b815260040161083990602080825260049082015263426f742160e01b604082015260600190565b601454610100900460ff16801561125e57506000546001600160a01b03858116911614155b801561127857506000546001600160a01b03848116911614155b1561137f576015548211156112be5760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b6044820152606401610839565b601654826112cb85610d15565b6112d59190612139565b11156113125760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b6044820152606401610839565b436013546011546113239190612139565b10611332576063600b5561137f565b6013546011546113429190612139565b4311801561135d575060115461135990600a612139565b4311155b15611378576017546015556018546016556028600b5561137f565b600a54600b555b601a54600160a81b900460ff16156113a35761139c84848461100c565b90506109a2565b60006113ae30610d15565b90506000601954821015905060008180156113d657506010546001600160a01b038781169116145b80156113ea575060006113e830610d15565b115b905080156113fa576113fa61186a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a1660009081526005909152919091205461144c9187906110f2565b6001600160a01b0388166000908152600560205260408120919091556114728888611bb8565b61147c5785611486565b6114868887611c2d565b6001600160a01b0388166000908152600560205260409020549091506114ac908261180b565b6001600160a01b038089166000908152600560205260409020919091556010548982169116148015906114f857506001600160a01b03881660009081526008602052604090205460ff16155b1561156e57601a546001600160a01b0389811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561155b57600080fd5b505af192505050801561156c575060015b505b6010546001600160a01b038881169116148015906115a557506001600160a01b03871660009081526008602052604090205460ff16155b1561161b57601a546001600160a01b0388811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561160857600080fd5b505af1925050508015611619575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161166091815260200190565b60405180910390a3506001979650505050505050565b60006109a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611cd3565b60006109a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110f2565b6001600160a01b038216301480159061172157506010546001600160a01b03838116911614155b61172a57600080fd5b6001600160a01b0382166000908152600860205260409020805460ff191682158015919091179091556117c257601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156117a657600080fd5b505af11580156117ba573d6000803e3d6000fd5b505050505050565b601a546001600160a01b0383811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca969060440161178c565b6000806118188385612139565b9050838110156109a25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610839565b601a805460ff60a81b1916600160a81b1790556000611893600561188d30610d15565b90611676565b905061189e81611d01565b6118af6118aa30610d15565b611dac565b6040516370a0823160e01b8152306004820152600090611941906002906001600160a01b037f00000000000000000000000038e68a37e401f7271568cecaac63c6b1e19130b416906370a0823190602401602060405180830381865afa15801561191d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188d9190612109565b600e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192507f00000000000000000000000038e68a37e401f7271568cecaac63c6b1e19130b4169063a9059cbb906044016020604051808303816000875af11580156119b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119da9190612151565b506040516370a0823160e01b81523060048201526000907f00000000000000000000000038e68a37e401f7271568cecaac63c6b1e19130b46001600160a01b0316906370a0823190602401602060405180830381865afa158015611a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a669190612109565b601a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f00000000000000000000000038e68a37e401f7271568cecaac63c6b1e19130b49091169063a9059cbb906044016020604051808303816000875af1158015611ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b049190612151565b90508015611b6b57601a5460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015611b5257600080fd5b505af1158015611b66573d6000803e3d6000fd5b505050505b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611ba4573d6000803e3d6000fd5b5050601a805460ff60a81b19169055505050565b6001600160a01b03821660009081526007602052604081205460ff1680611bf757506001600160a01b03821660009081526007602052604090205460ff165b1580156109a257506010546001600160a01b03848116911614806109a25750506010546001600160a01b03908116911614919050565b600080611c4b600c5461188d600b5486611ead90919063ffffffff16565b30600090815260056020526040902054909150611c68908261180b565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb99085815260200190565b60405180910390a3611ccb83826116b8565b949350505050565b60008183611cf45760405162461bcd60e51b81526004016108399190611f2f565b506000611123848661216e565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d3657611d36612190565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611d6657611d66612190565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac9479061178c9085906000908690309042906004016121a6565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611de357611de3612190565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611e1357611e13612190565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000038e68a37e401f7271568cecaac63c6b1e19130b481600281518110611e6757611e67612190565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d7959061178c9085906000908690309042906004016121a6565b600082600003611ebf57506000610809565b6000611ecb83856120ea565b905082611ed8858361216e565b146109a25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610839565b600060208083528351808285015260005b81811015611f5c57858101830151858201604001528201611f40565b81811115611f6e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611f9957600080fd5b50565b60008060408385031215611faf57600080fd5b8235611fba81611f84565b946020939093013593505050565b600060208284031215611fda57600080fd5b81356109a281611f84565b600060208284031215611ff757600080fd5b5035919050565b60008060006060848603121561201357600080fd5b833561201e81611f84565b9250602084013561202e81611f84565b929592945050506040919091013590565b8015158114611f9957600080fd5b6000806040838503121561206057600080fd5b823561206b81611f84565b9150602083013561207b8161203f565b809150509250929050565b6000806040838503121561209957600080fd5b82356120a481611f84565b9150602083013561207b81611f84565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612104576121046120d4565b500290565b60006020828403121561211b57600080fd5b5051919050565b600082821015612134576121346120d4565b500390565b6000821982111561214c5761214c6120d4565b500190565b60006020828403121561216357600080fd5b81516109a28161203f565b60008261218b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121f65784516001600160a01b0316835293830193918301916001016121d1565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220628de0f410d9c07baf0a7994c0184d1fd4808ab5876caa714e966ac9867d01f464736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000087afefe4b8dd45444bd46c9924e59797a6d3bf4b

-----Decoded View---------------
Arg [0] : _owner (address): 0x87afEFE4B8dd45444Bd46C9924E59797a6d3bf4b

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000087afefe4b8dd45444bd46c9924e59797a6d3bf4b


Deployed Bytecode Sourcemap

9428:12510:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12436:80;;;;;;;;;;-1:-1:-1;12508:5:0;;;;;;;;;;;;-1:-1:-1;;;12508:5:0;;;;12436:80;;;;;;;:::i;:::-;;;;;;;;12858:216;;;;;;;;;;-1:-1:-1;12858:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;12858:216:0;1072:187:1;20205:110:0;;;;;;;;;;-1:-1:-1;20205:110:0;;;;;:::i;:::-;;:::i;:::-;;12166:88;;;;;;;;;;-1:-1:-1;12239:12:0;;12166:88;;;1662:25:1;;;1650:2;1635:18;12166:88:0;1516:177:1;20495:139:0;;;;;;;;;;-1:-1:-1;20495:139:0;;;;;:::i;:::-;;:::i;13376:370::-;;;;;;;;;;-1:-1:-1;13376:370:0;;;;;:::i;:::-;;:::i;21723:206::-;;;;;;;;;;-1:-1:-1;21723:206:0;;;;;:::i;:::-;;:::i;20646:142::-;;;;;;;;;;;;;:::i;2960:103::-;;;;;;;;;;-1:-1:-1;2960:103:0;;;;;:::i;:::-;3015:4;3050:5;-1:-1:-1;;;;;3039:16:0;;;3050:5;;3039:16;;2960:103;12260:80;;;;;;;;;;-1:-1:-1;12260:80:0;;9912:1;2486:36:1;;2474:2;2459:18;12260:80:0;2344:184:1;18986:158:0;;;;;;;;;;-1:-1:-1;18986:158:0;;;;;:::i;:::-;;:::i;21352:80::-;;;;;;;;;;;;;:::i;10530:91::-;;;;;;;;;;-1:-1:-1;10530:91:0;;;;-1:-1:-1;;;;;10530:91:0;;;;;;-1:-1:-1;;;;;3223:32:1;;;3205:51;;3193:2;3178:18;10530:91:0;3043:219:1;13082:122:0;;;;;;;;;;-1:-1:-1;13082:122:0;;;;;:::i;:::-;;:::i;21187:157::-;;;;;;;;;;-1:-1:-1;21187:157:0;;;;;:::i;:::-;;:::i;20796:135::-;;;;;;;;;;-1:-1:-1;20796:135:0;;;;;:::i;:::-;;:::i;19647:119::-;;;;;;;;;;-1:-1:-1;19647:119:0;;;;;:::i;:::-;;:::i;20940:115::-;;;;;;;;;;;;;:::i;19774:137::-;;;;;;;;;;-1:-1:-1;19774:137:0;;;;;:::i;:::-;;:::i;12606:105::-;;;;;;;;;;-1:-1:-1;12606:105:0;;;;;:::i;:::-;;:::i;21067:111::-;;;;;;;;;;;;;:::i;10431:92::-;;;;;;;;;;-1:-1:-1;10431:92:0;;;;-1:-1:-1;;;;;10431:92:0;;;21550:165;;;;;;;;;;;;;:::i;12522:78::-;;;;;;;;;;-1:-1:-1;12574:7:0;12592:5;-1:-1:-1;;;;;12592:5:0;12522:78;;20327:156;;;;;;;;;;-1:-1:-1;20327:156:0;;;;;:::i;:::-;;:::i;12346:84::-;;;;;;;;;;-1:-1:-1;12420:7:0;;;;;;;;;;;;-1:-1:-1;;;12420:7:0;;;;12346:84;;10661:19;;;;;;;;;;-1:-1:-1;10661:19:0;;;;-1:-1:-1;;;;;10661:19:0;;;13212:156;;;;;;;;;;-1:-1:-1;13212:156:0;;;;;:::i;:::-;;:::i;21440:102::-;;;;;;;;;;-1:-1:-1;21440:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;21520:14:0;21496:4;21520:14;;;:5;:14;;;;;;;;;21440:102;11202:36;;;;;;;;;;-1:-1:-1;11202:36:0;;;;-1:-1:-1;;;11202:36:0;;;;;;9678:85;;;;;;;;;;;;;;;11072:65;;;;;;;;;;;;;;;;18756:210;;;;;;;;;;-1:-1:-1;18756:210:0;;;;;:::i;:::-;;:::i;12717:133::-;;;;;;;;;;-1:-1:-1;12717:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;12819:19:0;;;12801:7;12819:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;12717:133;20103:90;;;;;;;;;;;;;:::i;3188:136::-;;;;;;;;;;-1:-1:-1;3188:136:0;;;;;:::i;:::-;;:::i;19921:174::-;;;;;;;;;;;;;:::i;19507:132::-;;;;;;;;;;-1:-1:-1;19507:132:0;;;;;:::i;:::-;;:::i;10630:24::-;;;;;;;;;;-1:-1:-1;10630:24:0;;;;-1:-1:-1;;;;;10630:24:0;;;10757:25;;;;;;;;;;;;;;;;12858:216;12962:10;12933:4;12950:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12950:32:0;;;;;;;;;;:41;;;13007:37;12933:4;;12950:32;;13007:37;;;;12985:6;1662:25:1;;1650:2;1635:18;;1516:177;13007:37:0;;;;;;;;-1:-1:-1;13062:4:0;12858:216;;;;;:::o;20205:110::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;;;;;;;;;20274:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;20274:33:0;;-1:-1:-1;;;;;3223:32:1;;;20274:33:0::1;::::0;::::1;3205:51:1::0;20274:11:0;;::::1;::::0;:25:::1;::::0;3178:18:1;;20274:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20205:110:::0;:::o;20495:139::-;20559:4;3050:5;;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;20613:4:::1;::::0;20583:43:::1;::::0;20606:4:::1;::::0;-1:-1:-1;;;;;20613:4:0::1;20619:6:::0;20583:14:::1;:43::i;13376:370::-:0;-1:-1:-1;;;;;13496:19:0;;13476:4;13496:19;;;:11;:19;;;;;;;;13516:10;13496:31;;;;;;;;-1:-1:-1;;13496:52:0;13493:186;;13598:69;;;;;;;;;;;-1:-1:-1;;;13598:69:0;;;;;;;;-1:-1:-1;;;;;13598:19:0;;-1:-1:-1;13598:19:0;;;:11;:19;;;;;13618:10;13598:31;;;;;;;;;;:69;;13634:6;;13598:35;:69::i;:::-;-1:-1:-1;;;;;13564:19:0;;;;;;:11;:19;;;;;;;;13584:10;13564:31;;;;;;;:103;13493:186;13698:40;13712:6;13720:9;13731:6;13698:13;:40::i;:::-;13691:47;;13376:370;;;;;;:::o;21723:206::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;21821:12:::1;::::0;:21:::1;::::0;21838:3:::1;21821:16;:21::i;:::-;21811:6;:31;;21802:60;;;::::0;-1:-1:-1;;;21802:60:0;;4890:2:1;21802:60:0::1;::::0;::::1;4872:21:1::0;4929:2;4909:18;;;4902:30;-1:-1:-1;;;4948:18:1;;;4941:45;5003:18;;21802:60:0::1;4688:339:1::0;21802:60:0::1;21905:16;:6:::0;21914:7:::1;21905:16;:::i;:::-;21873:29;:48:::0;-1:-1:-1;21723:206:0:o;20646:142::-;20774:4;;20699:7;;20726:54;;20764:15;;-1:-1:-1;;;;;20774:4:0;20764:9;:15::i;:::-;20753:4;;20726:33;;20743:15;;-1:-1:-1;;;;;20753:4:0;20743:9;:15::i;:::-;20726:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;20719:61;;20646:142;:::o;18986:158::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19063:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;19063:24:0::1;::::0;::::1;;;::::0;;19098:38:::1;19063:15:::0;:24;19098:20:::1;:38::i;:::-;18986:158:::0;;:::o;21352:80::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;21408:8:::1;:16:::0;;-1:-1:-1;;21408:16:0::1;::::0;;21352:80::o;13082:122::-;13137:4;13161:35;13169:7;-1:-1:-1;;13161:7:0;:35::i;21187:157::-;21290:11;;:46;;-1:-1:-1;;;21290:46:0;;-1:-1:-1;;;;;3223:32:1;;;21290:46:0;;;3205:51:1;21263:7:0;;21290:11;;:33;;3178:18:1;;21290:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;20796:135::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;20880:15:::1;:43:::0;;-1:-1:-1;;;;;;20880:43:0::1;-1:-1:-1::0;;;;;20880:43:0;;;::::1;::::0;;;::::1;::::0;;20796:135::o;19647:119::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19730:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;19730:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19647:119::o;20940:115::-;21019:11;;:28;;;-1:-1:-1;;;21019:28:0;;;;20992:7;;-1:-1:-1;;;;;21019:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19774:137::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;19852:1:::1;19844:4;:9;;19835:42;;;::::0;-1:-1:-1;;;19835:42:0;;5728:2:1;19835:42:0::1;::::0;::::1;5710:21:1::0;5767:2;5747:18;;;5740:30;-1:-1:-1;;;5786:18:1;;;5779:49;5845:18;;19835:42:0::1;5526:343:1::0;19835:42:0::1;19888:8;:15:::0;19774:137::o;12606:105::-;-1:-1:-1;;;;;12690:18:0;12672:7;12690:18;;;:9;:18;;;;;;;12606:105::o;21067:111::-;21144:11;;:26;;;-1:-1:-1;;;21144:26:0;;;;21117:7;;-1:-1:-1;;;;;21144:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;;;;;21550:165;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;21620:16:::1;::::0;-1:-1:-1;;;21620:16:0;::::1;;;:25;21611:62;;;::::0;-1:-1:-1;;;21611:62:0;;6076:2:1;21611:62:0::1;::::0;::::1;6058:21:1::0;6115:2;6095:18;;;6088:30;6154:25;6134:18;;;6127:53;6197:18;;21611:62:0::1;5874:347:1::0;21611:62:0::1;21684:16;:23:::0;;-1:-1:-1;;;;21684:23:0::1;-1:-1:-1::0;;;21684:23:0::1;::::0;;21550:165::o;20327:156::-;20428:11;;:47;;-1:-1:-1;;;20428:47:0;;-1:-1:-1;;;;;3223:32:1;;;20428:47:0;;;3205:51:1;20401:7:0;;20428:11;;:34;;3178:18:1;;20428:47:0;3043:219:1;13212:156:0;13292:4;13316:44;13330:10;13342:9;13353:6;13316:13;:44::i;18756:210::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;18841:12:::1;18828:10;:25:::0;18864:11:::1;:18:::0;;-1:-1:-1;;18864:18:0::1;18878:4;18864:18;::::0;;18893:10:::1;:24:::0;18943:15:::1;18928:12;:30:::0;18756:210::o;20103:90::-;20148:11;;:37;;-1:-1:-1;;;20148:37:0;;20174:10;20148:37;;;3205:51:1;-1:-1:-1;;;;;20148:11:0;;;;:25;;3178:18:1;;20148:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20103:90::o;3188:136::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;3264:5:::1;:11:::0;;-1:-1:-1;;;;;;3264:11:0::1;-1:-1:-1::0;;;;;3264:11:0;::::1;::::0;;::::1;::::0;;;3291:25:::1;::::0;3205:51:1;;;3291:25:0::1;::::0;3193:2:1;3178:18;3291:25:0::1;;;;;;;3188:136:::0;:::o;19921:174::-;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;20042:15:::1;::::0;20034:53:::1;::::0;20002:21:::1;::::0;-1:-1:-1;;;;;20042:15:0::1;::::0;20034:53;::::1;;;::::0;20002:21;;19973:26:::1;20034:53:::0;19973:26;20034:53;20002:21;20042:15;20034:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;19507:132:::0;3015:4;3050:5;-1:-1:-1;;;;;3050:5:0;2867:10;3039:16;2851:38;;;;-1:-1:-1;;;2851:38:0;;;;;;;:::i;:::-;19595:36:::1;19616:6;19624;19595:20;:36::i;15779:330::-:0;15909:53;;;;;;;;;;;-1:-1:-1;;;15909:53:0;;;;;;;;-1:-1:-1;;;;;15909:17:0;;15872:4;15909:17;;;:9;:17;;;;;;;:53;;15931:6;;15909:21;:53::i;:::-;-1:-1:-1;;;;;15889:17:0;;;;;;;:9;:17;;;;;;:73;;;;15996:20;;;;;;;:32;;16021:6;15996:24;:32::i;:::-;-1:-1:-1;;;;;15973:20:0;;;;;;;:9;:20;;;;;;;:55;;;;16044:35;;;;;;;;;;16072:6;1662:25:1;;1650:2;1635:18;;1516:177;16044:35:0;;;;;;;;-1:-1:-1;16097:4:0;15779:330;;;;;:::o;622:192::-;708:7;744:12;736:6;;;;728:29;;;;-1:-1:-1;;;728:29:0;;;;;;;;:::i;:::-;-1:-1:-1;768:9:0;780:5;784:1;780;:5;:::i;:::-;768:17;622:192;-1:-1:-1;;;;;622:192:0:o;13754:2013::-;13846:4;13876:5;;-1:-1:-1;;;;;13867:14:0;;;13876:5;;13867:14;;;;:35;;-1:-1:-1;13897:5:0;;-1:-1:-1;;;;;13885:17:0;;;13897:5;;13885:17;;13867:35;13863:89;;;13912:11;;;;13904:48;;;;-1:-1:-1;;;13904:48:0;;6774:2:1;13904:48:0;;;6756:21:1;6813:2;6793:18;;;6786:30;6852:26;6832:18;;;6825:54;6896:18;;13904:48:0;6572:348:1;13904:48:0;14007:16;;-1:-1:-1;;;14007:16:0;;;;14003:102;;;-1:-1:-1;;;;;14050:13:0;;;;;;:5;:13;;;;;;;;14049:14;:35;;;;-1:-1:-1;;;;;;14068:16:0;;;;;;:5;:16;;;;;;;;14067:17;14049:35;14040:53;;;;-1:-1:-1;;;14040:53:0;;;;;;7127:2:1;7109:21;;;7166:1;7146:18;;;7139:29;-1:-1:-1;;;7199:2:1;7184:18;;7177:34;7243:2;7228:18;;6925:327;14040:53:0;14119:8;;;;;;;:25;;;;-1:-1:-1;14139:5:0;;-1:-1:-1;;;;;14131:13:0;;;14139:5;;14131:13;;14119:25;:46;;;;-1:-1:-1;14160:5:0;;-1:-1:-1;;;;;14148:17:0;;;14160:5;;14148:17;;14119:46;14115:622;;;14200:6;;14192;:14;;14183:40;;;;-1:-1:-1;;;14183:40:0;;7459:2:1;14183:40:0;;;7441:21:1;7498:2;7478:18;;;7471:30;-1:-1:-1;;;7517:18:1;;;7510:42;7569:18;;14183:40:0;7257:336:1;14183:40:0;14280:9;;14270:6;14247:20;14257:9;14247;:20::i;:::-;:29;;;;:::i;:::-;:42;;14238:68;;;;-1:-1:-1;;;14238:68:0;;7459:2:1;14238:68:0;;;7441:21:1;7498:2;7478:18;;;7471:30;-1:-1:-1;;;7517:18:1;;;7510:42;7569:18;;14238:68:0;7257:336:1;14238:68:0;14353:12;14338:10;;14325;;:23;;;;:::i;:::-;14324:41;14321:405;;14410:2;14399:8;:13;14321:405;;;14466:10;;14453;;:23;;;;:::i;:::-;14437:12;:40;:75;;;;-1:-1:-1;14497:10:0;;:15;;14510:2;14497:15;:::i;:::-;14481:12;:31;;14437:75;14434:292;;;14555:7;;14546:6;:16;14593:10;;14581:9;:22;14633:2;14622:8;:13;14434:292;;;14701:9;;14690:8;:20;14434:292;14759:6;;-1:-1:-1;;;14759:6:0;;;;14756:63;;;14775:41;14790:6;14798:9;14809:6;14775:14;:41::i;:::-;14768:48;;;;14756:63;14837:28;14868:24;14886:4;14868:9;:24::i;:::-;14837:55;;14905:24;14956:29;;14932:20;:53;;14905:80;;15002:19;15025;:38;;;;-1:-1:-1;15059:4:0;;-1:-1:-1;;;;;15048:15:0;;;15059:4;;15048:15;15025:38;:70;;;;;15094:1;15067:24;15085:4;15067:9;:24::i;:::-;:28;15025:70;15002:94;;15110:14;15107:33;;;15127:10;:8;:10::i;:::-;15172:53;;;;;;;;;;;-1:-1:-1;;;15172:53:0;;;;;;;;-1:-1:-1;;;;;15172:17:0;;-1:-1:-1;15172:17:0;;;:9;:17;;;;;;;;:53;;15194:6;;15172:21;:53::i;:::-;-1:-1:-1;;;;;15152:17:0;;;;;;:9;:17;;;;;:73;;;;15263:32;15162:6;15285:9;15263:13;:32::i;:::-;:67;;15324:6;15263:67;;;15298:23;15306:6;15314;15298:7;:23::i;:::-;-1:-1:-1;;;;;15374:20:0;;;;;;:9;:20;;;;;;15238:92;;-1:-1:-1;15374:40:0;;15238:92;15374:24;:40::i;:::-;-1:-1:-1;;;;;15351:20:0;;;;;;;:9;:20;;;;;:63;;;;15440:4;;15430:14;;;15440:4;;15430:14;;;;:43;;-1:-1:-1;;;;;;15449:24:0;;;;;;:16;:24;;;;;;;;15448:25;15430:43;15427:114;;;15480:11;;-1:-1:-1;;;;;15509:17:0;;;15480:11;15509:17;;;:9;:17;;;;;;;;15480:47;;-1:-1:-1;;;15480:47:0;;;;;7905:51:1;;;;7972:18;;;7965:34;15480:11:0;;;:20;;7878:18:1;;15480:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15476:63;;15567:4;;-1:-1:-1;;;;;15554:17:0;;;15567:4;;15554:17;;;;:49;;-1:-1:-1;;;;;;15576:27:0;;;;;;:16;:27;;;;;;;;15575:28;15554:49;15551:126;;;15610:11;;-1:-1:-1;;;;;15642:20:0;;;15610:11;15642:20;;;:9;:20;;;;;;;;15610:53;;-1:-1:-1;;;15610:53:0;;;;;7905:51:1;;;;7972:18;;;7965:34;15610:11:0;;;:20;;7878:18:1;;15610:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15606:69;;15711:9;-1:-1:-1;;;;;15694:43:0;15703:6;-1:-1:-1;;;;;15694:43:0;;15722:14;15694:43;;;;1662:25:1;;1650:2;1635:18;;1516:177;15694:43:0;;;;;;;;-1:-1:-1;15755:4:0;;13754:2013;-1:-1:-1;;;;;;;13754:2013:0:o;1076:132::-;1134:7;1161:39;1165:1;1168;1161:39;;;;;;;;;;;;;;;;;:3;:39::i;480:136::-;538:7;565:43;569:1;572;565:43;;;;;;;;;;;;;;;;;:3;:43::i;19162:337::-;-1:-1:-1;;;;;19249:23:0;;19267:4;19249:23;;;;:41;;-1:-1:-1;19286:4:0;;-1:-1:-1;;;;;19276:14:0;;;19286:4;;19276:14;;19249:41;19241:50;;;;;;-1:-1:-1;;;;;19302:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;19302:33:0;;;;;;;;;;;;19346:146;;19371:11;;:31;;-1:-1:-1;;;19371:31:0;;-1:-1:-1;;;;;7923:32:1;;;19371:31:0;;;7905:51:1;19371:11:0;7972:18:1;;;7965:34;19371:11:0;;;;:20;;7878:18:1;;19371:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18986:158;;:::o;19346:146::-;19433:11;;-1:-1:-1;;;;;19462:17:0;;;19433:11;19462:17;;;:9;:17;;;;;;;;19433:47;;-1:-1:-1;;;19433:47:0;;;;;7905:51:1;;;;7972:18;;;7965:34;19433:11:0;;;:20;;7878:18:1;;19433:47:0;7731:274:1;293:181:0;351:7;;383:5;387:1;383;:5;:::i;:::-;371:17;;412:1;407;:6;;399:46;;;;-1:-1:-1;;;399:46:0;;8499:2:1;399:46:0;;;8481:21:1;8538:2;8518:18;;;8511:30;8577:29;8557:18;;;8550:57;8624:18;;399:46:0;8297:351:1;16701:718:0;11293:6;:13;;-1:-1:-1;;;;11293:13:0;-1:-1:-1;;;11293:13:0;;;;16780:31:::1;16809:1;16780:24;16798:4;16780:9;:24::i;:::-;:28:::0;::::1;:31::i;:::-;16752:59;;16824:35;16841:17;16824:16;:35::i;:::-;16870:45;16890:24;16908:4;16890:9;:24::i;:::-;16870:19;:45::i;:::-;16955:39;::::0;-1:-1:-1;;;16955:39:0;;16988:4:::1;16955:39;::::0;::::1;3205:51:1::0;16928:24:0::1;::::0;16955:46:::1;::::0;16999:1:::1;::::0;-1:-1:-1;;;;;16962:6:0::1;16955:24;::::0;::::1;::::0;3178:18:1;;16955:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:46::-;17038:14;::::0;17014:57:::1;::::0;-1:-1:-1;;;17014:57:0;;-1:-1:-1;;;;;17038:14:0;;::::1;17014:57;::::0;::::1;7905:51:1::0;7972:18;;;7965:34;;;16928:73:0;;-1:-1:-1;17021:6:0::1;17014:23;::::0;::::1;::::0;7878:18:1;;17014:57:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;17104:39:0::1;::::0;-1:-1:-1;;;17104:39:0;;17137:4:::1;17104:39;::::0;::::1;3205:51:1::0;17084:17:0::1;::::0;17111:6:::1;-1:-1:-1::0;;;;;17104:24:0::1;::::0;::::1;::::0;3178:18:1;;17104:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17203:11;::::0;17171:56:::1;::::0;-1:-1:-1;;;17171:56:0;;-1:-1:-1;;;;;17203:11:0;;::::1;17171:56;::::0;::::1;7905:51:1::0;7972:18;;;7965:34;;;17084:59:0;;-1:-1:-1;17156:12:0::1;::::0;17178:6:::1;17171:23:::0;;::::1;::::0;::::1;::::0;7878:18:1;;17171:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17156:71;;17244:7;17240:82;;;17268:11;::::0;:30:::1;::::0;-1:-1:-1;;;17268:30:0;;::::1;::::0;::::1;1662:25:1::0;;;-1:-1:-1;;;;;17268:11:0;;::::1;::::0;:19:::1;::::0;1635:18:1;;17268:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17240:82;17355:15;::::0;17347:56:::1;::::0;-1:-1:-1;;;;;17355:15:0;;::::1;::::0;17381:21:::1;17347:56:::0;::::1;;;::::0;17355:15:::1;17347:56:::0;17355:15;17347:56;17381:21;17355:15;17347:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11311:6:0;:14;;-1:-1:-1;;;;11311:14:0;;;-1:-1:-1;;;16701:718:0:o;16120:206::-;-1:-1:-1;;;;;16229:19:0;;16201:4;16229:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;16252:22:0;;;;;;:11;:22;;;;;;;;16229:45;16227:48;:90;;;;-1:-1:-1;16291:4:0;;-1:-1:-1;;;;;16281:14:0;;;16291:4;;16281:14;;:35;;-1:-1:-1;;16312:4:0;;-1:-1:-1;;;;;16312:4:0;;;16299:17;;;;16120:206;-1:-1:-1;16120:206:0:o;16334:354::-;16401:7;16421:17;16461:40;16486:14;;16461:20;16472:8;;16461:6;:10;;:20;;;;:::i;:40::-;16557:4;16539:24;;;;:9;:24;;;;;;16449:52;;-1:-1:-1;16539:39:0;;16449:52;16539:28;:39::i;:::-;16530:4;16512:24;;;;:9;:24;;;;;;;:66;;;;16594:42;;-1:-1:-1;;;;;16594:42:0;;;;;;;16626:9;1662:25:1;;1650:2;1635:18;;1516:177;16594:42:0;;;;;;;;16659:21;:6;16670:9;16659:10;:21::i;:::-;16652:28;16334:354;-1:-1:-1;;;;16334:354:0:o;1214:345::-;1300:7;1402:12;1395:5;1387:28;;;;-1:-1:-1;;;1387:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1426:9:0;1438:5;1442:1;1438;:5;:::i;17875:489::-;18027:16;;;18041:1;18027:16;;;;;;;;18003:21;;18027:16;;;;;;;;;;-1:-1:-1;18027:16:0;18003:40;;18072:4;18054;18059:1;18054:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18054:23:0;;;:7;;;;;;;;;:23;18098:4;;;18088:7;;18098:4;;;18088;;18098;18088:7;;;;;;:::i;:::-;-1:-1:-1;;;;;18088:14:0;;;:7;;;;;;;;;:14;18141:6;;:215;;-1:-1:-1;;;18141:215:0;;:6;;;:57;;:215;;18213:11;;18141:6;;18283:4;;18310;;18330:15;;18141:215;;;:::i;17433:434::-;17528:16;;;17542:1;17528:16;;;;;;;;;17504:21;;17528:16;;;;;;;;;;-1:-1:-1;17528:16:0;17504:40;;17573:4;17555;17560:1;17555:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17555:23:0;;;:7;;;;;;;;;:23;17599:4;;;17589:7;;17599:4;;;17589;;17599;17589:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;17589:14:0;;;-1:-1:-1;;;;;17589:14:0;;;;;17624:6;17614:4;17619:1;17614:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17614:16:0;;;:7;;;;;;;;;:16;17669:6;;:190;;-1:-1:-1;;;17669:190:0;;:6;;;:60;;:190;;17744:11;;17669:6;;17786:4;;17813;;17833:15;;17669:190;;;:::i;820:250::-;878:7;902:1;907;902:6;898:47;;-1:-1:-1;932:1:0;925:8;;898:47;957:9;969:5;973:1;969;:5;:::i;:::-;957:17;-1:-1:-1;1002:1:0;993:5;997:1;957:17;993:5;:::i;:::-;:10;985:56;;;;-1:-1:-1;;;985:56:0;;10863:2:1;985:56:0;;;10845:21:1;10902:2;10882:18;;;10875:30;10941:34;10921:18;;;10914:62;-1:-1:-1;;;10992:18:1;;;10985:31;11033:19;;985:56:0;10661:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1698:180::-;1757:6;1810:2;1798:9;1789:7;1785:23;1781:32;1778:52;;;1826:1;1823;1816:12;1778:52;-1:-1:-1;1849:23:1;;1698:180;-1:-1:-1;1698:180:1:o;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2533:118::-;2619:5;2612:13;2605:21;2598:5;2595:32;2585:60;;2641:1;2638;2631:12;2656:382;2721:6;2729;2782:2;2770:9;2761:7;2757:23;2753:32;2750:52;;;2798:1;2795;2788:12;2750:52;2837:9;2824:23;2856:31;2881:5;2856:31;:::i;:::-;2906:5;-1:-1:-1;2963:2:1;2948:18;;2935:32;2976:30;2935:32;2976:30;:::i;:::-;3025:7;3015:17;;;2656:382;;;;;:::o;3475:388::-;3543:6;3551;3604:2;3592:9;3583:7;3579:23;3575:32;3572:52;;;3620:1;3617;3610:12;3572:52;3659:9;3646:23;3678:31;3703:5;3678:31;:::i;:::-;3728:5;-1:-1:-1;3785:2:1;3770:18;;3757:32;3798:33;3757:32;3798:33;:::i;4354:329::-;4556:2;4538:21;;;4595:1;4575:18;;;4568:29;-1:-1:-1;;;4628:2:1;4613:18;;4606:36;4674:2;4659:18;;4354:329::o;5032:127::-;5093:10;5088:3;5084:20;5081:1;5074:31;5124:4;5121:1;5114:15;5148:4;5145:1;5138:15;5164:168;5204:7;5270:1;5266;5262:6;5258:14;5255:1;5252:21;5247:1;5240:9;5233:17;5229:45;5226:71;;;5277:18;;:::i;:::-;-1:-1:-1;5317:9:1;;5164:168::o;5337:184::-;5407:6;5460:2;5448:9;5439:7;5435:23;5431:32;5428:52;;;5476:1;5473;5466:12;5428:52;-1:-1:-1;5499:16:1;;5337:184;-1:-1:-1;5337:184:1:o;6442:125::-;6482:4;6510:1;6507;6504:8;6501:34;;;6515:18;;:::i;:::-;-1:-1:-1;6552:9:1;;6442:125::o;7598:128::-;7638:3;7669:1;7665:6;7662:1;7659:13;7656:39;;;7675:18;;:::i;:::-;-1:-1:-1;7711:9:1;;7598:128::o;8940:245::-;9007:6;9060:2;9048:9;9039:7;9035:23;9031:32;9028:52;;;9076:1;9073;9066:12;9028:52;9108:9;9102:16;9127:28;9149:5;9127:28;:::i;9190:217::-;9230:1;9256;9246:132;;9300:10;9295:3;9291:20;9288:1;9281:31;9335:4;9332:1;9325:15;9363:4;9360:1;9353:15;9246:132;-1:-1:-1;9392:9:1;;9190:217::o;9544:127::-;9605:10;9600:3;9596:20;9593:1;9586:31;9636:4;9633:1;9626:15;9660:4;9657:1;9650:15;9676:980;9938:4;9986:3;9975:9;9971:19;10017:6;10006:9;9999:25;10043:2;10081:6;10076:2;10065:9;10061:18;10054:34;10124:3;10119:2;10108:9;10104:18;10097:31;10148:6;10183;10177:13;10214:6;10206;10199:22;10252:3;10241:9;10237:19;10230:26;;10291:2;10283:6;10279:15;10265:29;;10312:1;10322:195;10336:6;10333:1;10330:13;10322:195;;;10401:13;;-1:-1:-1;;;;;10397:39:1;10385:52;;10492:15;;;;10457:12;;;;10433:1;10351:9;10322:195;;;-1:-1:-1;;;;;;;10573:32:1;;;;10568:2;10553:18;;10546:60;-1:-1:-1;;;10637:3:1;10622:19;10615:35;10534:3;9676:980;-1:-1:-1;;;9676:980:1:o

Swarm Source

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