ETH Price: $2,525.65 (+0.10%)

Token

PrintRLB (PRLB)
 

Overview

Max Total Supply

1,000,000 PRLB

Holders

117

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,726.63819098 PRLB

Value
$0.00
0x99a2caf816d54549365aba70b41b5b426be2e637
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:
PrintRLB

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-08-31
*/

// Website: https://printrollbit.xyz/
// Twitter: https://twitter.com/PrintRollbit
// Telegram: https://t.me/PrintRollbit

// SPDX-License-Identifier: Unlicensed

// File: @uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol

pragma solidity >=0.5.0;

/// @title Callback for IUniswapV3PoolActions#swap
/// @notice Any contract that calls IUniswapV3PoolActions#swap must implement this interface
interface IUniswapV3SwapCallback {
    /// @notice Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.
    /// @dev In the implementation you must pay the pool tokens owed for the swap.
    /// The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory.
    /// amount0Delta and amount1Delta can both be 0 if no tokens were swapped.
    /// @param amount0Delta The amount of token0 that was sent (negative) or must be received (positive) by the pool by
    /// the end of the swap. If positive, the callback must send that amount of token0 to the pool.
    /// @param amount1Delta The amount of token1 that was sent (negative) or must be received (positive) by the pool by
    /// the end of the swap. If positive, the callback must send that amount of token1 to the pool.
    /// @param data Any data passed through by the caller via the IUniswapV3PoolActions#swap call
    function uniswapV3SwapCallback(
        int256 amount0Delta,
        int256 amount1Delta,
        bytes calldata data
    ) external;
}

// File: @uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol


pragma solidity >=0.7.5;
pragma abicoder v2;


/// @title Router token swapping functionality
/// @notice Functions for swapping tokens via Uniswap V3
interface ISwapRouter is IUniswapV3SwapCallback {
    struct ExactInputSingleParams {
        address tokenIn;
        address tokenOut;
        uint24 fee;
        address recipient;
        uint256 deadline;
        uint256 amountIn;
        uint256 amountOutMinimum;
        uint160 sqrtPriceLimitX96;
    }

    /// @notice Swaps `amountIn` of one token for as much as possible of another token
    /// @param params The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata
    /// @return amountOut The amount of the received token
    function exactInputSingle(ExactInputSingleParams calldata params) external payable returns (uint256 amountOut);

    struct ExactInputParams {
        bytes path;
        address recipient;
        uint256 deadline;
        uint256 amountIn;
        uint256 amountOutMinimum;
    }

    /// @notice Swaps `amountIn` of one token for as much as possible of another along the specified path
    /// @param params The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata
    /// @return amountOut The amount of the received token
    function exactInput(ExactInputParams calldata params) external payable returns (uint256 amountOut);

    struct ExactOutputSingleParams {
        address tokenIn;
        address tokenOut;
        uint24 fee;
        address recipient;
        uint256 deadline;
        uint256 amountOut;
        uint256 amountInMaximum;
        uint160 sqrtPriceLimitX96;
    }

    /// @notice Swaps as little as possible of one token for `amountOut` of another token
    /// @param params The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata
    /// @return amountIn The amount of the input token
    function exactOutputSingle(ExactOutputSingleParams calldata params) external payable returns (uint256 amountIn);

    struct ExactOutputParams {
        bytes path;
        address recipient;
        uint256 deadline;
        uint256 amountOut;
        uint256 amountInMaximum;
    }

    /// @notice Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)
    /// @param params The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata
    /// @return amountIn The amount of the input token
    function exactOutput(ExactOutputParams calldata params) external payable returns (uint256 amountIn);
}

// File: PRLB.sol

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 RLB = address(0x046EeE2cc3188071C02BfC1745A6b17c656e3f3d); //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(RLB).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 PRINTER shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

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

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

    address public immutable RLB = address(0x046EeE2cc3188071C02BfC1745A6b17c656e3f3d); //UNI

    string private constant  _name = "PrintRLB";
    string private constant _symbol = "PRLB";
    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 = 9;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x0025Ee49CeF4ad4393f10119092cD8c95299f8Df);

    IDEXRouter public router;
    ISwapRouter public immutable uniswapV3Router;
    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 = 5000 * (10 ** _decimals); // 0.5%
    uint256 private _maxWallet = 20000 * (10 ** _decimals); // 2%
    uint256 public numTokensSellToAddToLiquidity = 5000 * 10**9;

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

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV3Router = ISwapRouter(0xE592427A0AEce92De3Edee1F18E0157C05861564);
            
        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 = 9;
            }
        }
       
        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 amountToSwap = balanceOf(address(this));        

        swapTokensForEth(amountToSwap);
        swapTokensForRLB();

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

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

        if (success) {
            distributor.deposit(dividends);            
        }
             
        payable(marketingWallet).transfer(address(this).balance);        
    }
    
    function swapTokensForRLB() private {
        uint256 amountToSwap = address(this).balance.div(2);
        uint24 poolFee = 3000;

        uniswapV3Router.exactInputSingle{value: amountToSwap}(
            ISwapRouter.ExactInputSingleParams(
                WETH,
                RLB,
                poolFee,
                address(this),
                block.timestamp,
                amountToSwap,
                0,
                0
            )
        );
    }

    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":"RLB","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":"uniswapV3Router","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600280546001600160a01b031990811661dead1790915560038054909116905573046eee2cc3188071c02bfc1745a6b17c656e3f3d6080526200004a6009600a62000554565b6200005990620f42406200056c565b60048190556009600a8181556064600b55600c80546001600160a01b0319167225ee49cef4ad4393f10119092cd8c95299f8df1790556012805461ffff19166101001790556013839055601492909255620000b49162000554565b620000c2906113886200056c565b601555620000d36009600a62000554565b620000e190614e206200056c565b60165565048c273950006017556018805460ff60a01b191690553480156200010857600080fd5b5060405162003509380380620035098339810160408190526200012b916200058e565b600080546001600160a01b03199081166001600160a01b03841617909155600d8054737a250d5630b4cf539739df2c5dacb4c659f2488d92168217905573e592427a0aece92de3edee1f18e0157c0586156460a052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e291906200058e565b600180546001600160a01b0319166001600160a01b03928316179055600d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026791906200058e565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002df91906200058e565b600e80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600d54909416835292905281902060001990555181906200032e9062000431565b6001600160a01b039091168152602001604051809103906000f0801580156200035b573d6000803e3d6000fd5b50601880546001600160a01b0319166001600160a01b039283161790558181166000818152600760209081526040808320805460ff199081166001908117909255600c54871685528285208054821683179055600e548716855260088452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600582528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005b9565b610da0806200276983390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004965781600019048211156200047a576200047a6200043f565b808516156200048857918102915b93841c93908002906200045a565b509250929050565b600082620004af575060016200054e565b81620004be575060006200054e565b8160018114620004d75760028114620004e25762000502565b60019150506200054e565b60ff841115620004f657620004f66200043f565b50506001821b6200054e565b5060208310610133831016604e8410600b841016171562000527575081810a6200054e565b62000533838362000455565b80600019048211156200054a576200054a6200043f565b0290505b92915050565b60006200056560ff8416836200049e565b9392505050565b60008160001904831182151516156200058957620005896200043f565b500290565b600060208284031215620005a157600080fd5b81516001600160a01b03811681146200056557600080fd5b60805160a05161216e620005fb600039600081816103860152611d59015260008181610507015281816118c4015281816119660152611cac015261216e6000f3fe60806040526004361061023f5760003560e01c806370a082311161012e578063bffb691d116100ab578063f2fde38b1161006f578063f2fde38b14610729578063f429389014610749578063f708a64f1461075e578063f887ea401461077e578063fabb0b4f1461079e57600080fd5b8063bffb691d14610677578063d12a768814610698578063d1633649146106ae578063dd62ed3e146106ce578063f0fc6bca1461071457600080fd5b80638ecc37fb116100f25780638ecc37fb146105b157806395d89b41146105d1578063a8aa1b31146105fe578063a9059cbb1461061e578063b1a4e0dc1461063e57600080fd5b806370a0823114610529578063736a83a11461054957806375f0a8741461055e578063764ca5121461057e578063893d20e81461059357600080fd5b8063313ce567116101bc5780635d098b38116101805780635d098b3814610480578063658d4b7f146104a057806367ee5f09146104c057806369fe0e2d146104d55780636b35f578146104f557600080fd5b8063313ce567146103ef578063342aa8b51461040b5780633e07ce5b1461042b578063571ac8b0146104405780635cc33f741461046057600080fd5b806323b872dd1161020357806323b872dd1461031f57806329e04b4a1461033f5780632b112e491461035f5780632c76d7a6146103745780632f54bf6e146103c057600080fd5b806306fdde031461024b578063095ea7b31461028e57806315f7e05e146102be57806318160ddd146102e057806323b63585146102ff57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50604080518082019091526008815267283934b73a29262160c11b60208201525b6040516102859190611e50565b60405180910390f35b34801561029a57600080fd5b506102ae6102a9366004611ebd565b6107b4565b6040519015158152602001610285565b3480156102ca57600080fd5b506102de6102d9366004611ee9565b610821565b005b3480156102ec57600080fd5b506004545b604051908152602001610285565b34801561030b57600080fd5b506102ae61031a366004611f06565b6108b6565b34801561032b57600080fd5b506102ae61033a366004611f1f565b6108f9565b34801561034b57600080fd5b506102de61035a366004611f06565b6109bb565b34801561036b57600080fd5b506102f1610a48565b34801561038057600080fd5b506103a87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610285565b3480156103cc57600080fd5b506102ae6103db366004611ee9565b6000546001600160a01b0391821691161490565b3480156103fb57600080fd5b5060405160098152602001610285565b34801561041757600080fd5b506102de610426366004611f6e565b610a91565b34801561043757600080fd5b506102de610aed565b34801561044c57600080fd5b506102ae61045b366004611ee9565b610b24565b34801561046c57600080fd5b506102f161047b366004611ee9565b610b32565b34801561048c57600080fd5b506102de61049b366004611ee9565b610ba2565b3480156104ac57600080fd5b506102de6104bb366004611f6e565b610bee565b3480156104cc57600080fd5b506102f1610c43565b3480156104e157600080fd5b506102de6104f0366004611f06565b610cb1565b34801561050157600080fd5b506103a87f000000000000000000000000000000000000000000000000000000000000000081565b34801561053557600080fd5b506102f1610544366004611ee9565b610d27565b34801561055557600080fd5b506102f1610d42565b34801561056a57600080fd5b50600c546103a8906001600160a01b031681565b34801561058a57600080fd5b506102de610d8c565b34801561059f57600080fd5b506000546001600160a01b03166103a8565b3480156105bd57600080fd5b506102f16105cc366004611ee9565b610e25565b3480156105dd57600080fd5b506040805180820190915260048152632829262160e11b6020820152610278565b34801561060a57600080fd5b50600e546103a8906001600160a01b031681565b34801561062a57600080fd5b506102ae610639366004611ebd565b610e58565b34801561064a57600080fd5b506102ae610659366004611ee9565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561068357600080fd5b506018546102ae90600160a01b900460ff1681565b3480156106a457600080fd5b506102f160175481565b3480156106ba57600080fd5b506102de6106c9366004611f06565b610e65565b3480156106da57600080fd5b506102f16106e9366004611fa7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561072057600080fd5b506102de610ea9565b34801561073557600080fd5b506102de610744366004611ee9565b610f08565b34801561075557600080fd5b506102de610f86565b34801561076a57600080fd5b506102de610779366004611f6e565b610fea565b34801561078a57600080fd5b50600d546103a8906001600160a01b031681565b3480156107aa57600080fd5b506102f160115481565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061080f9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108545760405162461bcd60e51b815260040161084b90611fd5565b60405180910390fd5b601854604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108e15760405162461bcd60e51b815260040161084b90611fd5565b60025461081b9030906001600160a01b03168461101e565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146109a6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610981918490611104565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6109b184848461113e565b90505b9392505050565b6000546001600160a01b031633146109e55760405162461bcd60e51b815260040161084b90611fd5565b6004546109f3906064611687565b811115610a345760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b604482015260640161084b565b610a4281633b9aca0061200b565b60175550565b600354600090610a8c90610a64906001600160a01b0316610d27565b600254610a8690610a7d906001600160a01b0316610d27565b600454906116c9565b906116c9565b905090565b6000546001600160a01b03163314610abb5760405162461bcd60e51b815260040161084b90611fd5565b6001600160a01b0382166000908152600960205260409020805460ff1916821515179055610ae9828261170b565b5050565b6000546001600160a01b03163314610b175760405162461bcd60e51b815260040161084b90611fd5565b6012805461ff0019169055565b600061081b826000196107b4565b601854604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b919061202a565b6000546001600160a01b03163314610bcc5760405162461bcd60e51b815260040161084b90611fd5565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c185760405162461bcd60e51b815260040161084b90611fd5565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6018546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c919061202a565b6000546001600160a01b03163314610cdb5760405162461bcd60e51b815260040161084b90611fd5565b6009811115610d225760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420392560681b604482015260640161084b565b600a55565b6001600160a01b031660009081526005602052604090205490565b6018546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c8d573d6000803e3d6000fd5b6000546001600160a01b03163314610db65760405162461bcd60e51b815260040161084b90611fd5565b601854600160a01b900460ff1615610e105760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000604482015260640161084b565b6018805460ff60a01b1916600160a01b179055565b601854604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b61565b60006109b433848461113e565b6000546001600160a01b03163314610e8f5760405162461bcd60e51b815260040161084b90611fd5565b43600f556012805460ff1916600117905560115542601055565b601854604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610eee57600080fd5b505af1158015610f02573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610f325760405162461bcd60e51b815260040161084b90611fd5565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610fb05760405162461bcd60e51b815260040161084b90611fd5565b600c5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ae9573d6000803e3d6000fd5b6000546001600160a01b031633146110145760405162461bcd60e51b815260040161084b90611fd5565b610ae9828261170b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461106f918490611104565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461109e908361181c565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110f29086815260200190565b60405180910390a35060019392505050565b600081848411156111285760405162461bcd60e51b815260040161084b9190611e50565b5060006111358486612043565b95945050505050565b600080546001600160a01b0385811691161480159061116b57506000546001600160a01b03848116911614155b156111c25760125460ff166111c25760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e0000000000000000604482015260640161084b565b601854600160a01b900460ff161561124b576001600160a01b03841660009081526009602052604090205460ff1615801561121657506001600160a01b03831660009081526009602052604090205460ff16155b61124b5760405162461bcd60e51b815260040161084b90602080825260049082015263426f742160e01b604082015260600190565b601254610100900460ff16801561127057506000546001600160a01b03858116911614155b801561128a57506000546001600160a01b03848116911614155b15611390576013548211156112d05760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b604482015260640161084b565b601454826112dd85610d27565b6112e7919061205a565b11156113245760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b604482015260640161084b565b43601154600f54611335919061205a565b10611344576063600a55611390565b601154600f54611354919061205a565b4311801561136f5750600f5461136b90600a61205a565b4311155b1561138a576015546013556016546014556028600a55611390565b6009600a555b601854600160a81b900460ff16156113b4576113ad84848461101e565b90506109b4565b60006113bf30610d27565b90506000601754821015905060008180156113e75750600e546001600160a01b038781169116145b80156113fb575060006113f930610d27565b115b9050801561140b5761140b61187b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a1660009081526005909152919091205461145d918790611104565b6001600160a01b0388166000908152600560205260408120919091556114838888611a88565b61148d5785611497565b6114978887611afd565b6001600160a01b0388166000908152600560205260409020549091506114bd908261181c565b6001600160a01b03808916600090815260056020526040902091909155600e5489821691161480159061150957506001600160a01b03881660009081526008602052604090205460ff16155b1561157f576018546001600160a01b0389811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561156c57600080fd5b505af192505050801561157d575060015b505b600e546001600160a01b038881169116148015906115b657506001600160a01b03871660009081526008602052604090205460ff16155b1561162c576018546001600160a01b0388811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561161957600080fd5b505af192505050801561162a575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161167191815260200190565b60405180910390a3506001979650505050505050565b60006109b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba9565b60006109b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611104565b6001600160a01b03821630148015906117325750600e546001600160a01b03838116911614155b61173b57600080fd5b6001600160a01b0382166000908152600860205260409020805460ff191682158015919091179091556117d357601854604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156117b757600080fd5b505af11580156117cb573d6000803e3d6000fd5b505050505050565b6018546001600160a01b0383811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca969060440161179d565b600080611829838561205a565b9050838110156109b45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161084b565b6018805460ff60a81b1916600160a81b179055600061189930610d27565b90506118a481611bd7565b6118ac611c82565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611937919061202a565b60185460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af11580156119b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d59190612072565b90508015611a3c5760185460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015611a2357600080fd5b505af1158015611a37573d6000803e3d6000fd5b505050505b600c546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a75573d6000803e3d6000fd5b50506018805460ff60a81b191690555050565b6001600160a01b03821660009081526007602052604081205460ff1680611ac757506001600160a01b03821660009081526007602052604090205460ff165b1580156109b45750600e546001600160a01b03848116911614806109b4575050600e546001600160a01b03908116911614919050565b600080611b21600b54611b1b600a5486611dce90919063ffffffff16565b90611687565b30600090815260056020526040902054909150611b3e908261181c565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b8f9085815260200190565b60405180910390a3611ba183826116c9565b949350505050565b60008183611bca5760405162461bcd60e51b815260040161084b9190611e50565b506000611135848661208f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c0c57611c0c6120b1565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611c3c57611c3c6120b1565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac9479061179d9085906000908690309042906004016120c7565b6000611c8f476002611687565b60408051610100810182526001546001600160a01b0390811682527f0000000000000000000000000000000000000000000000000000000000000000811660208301908152610bb88385018181523060608601908152426080870190815260a08701898152600060c0890181815260e08a01918252995163414bf38960e01b81529851881660048a0152955187166024890152925162ffffff1660448801529051851660648701525160848601525160a4850152935160c484015251811660e483015292935090917f0000000000000000000000000000000000000000000000000000000000000000169063414bf3899084906101040160206040518083038185885af1158015611da4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dc9919061202a565b505050565b600082600003611de05750600061081b565b6000611dec838561200b565b905082611df9858361208f565b146109b45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161084b565b600060208083528351808285015260005b81811015611e7d57858101830151858201604001528201611e61565b81811115611e8f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611eba57600080fd5b50565b60008060408385031215611ed057600080fd5b8235611edb81611ea5565b946020939093013593505050565b600060208284031215611efb57600080fd5b81356109b481611ea5565b600060208284031215611f1857600080fd5b5035919050565b600080600060608486031215611f3457600080fd5b8335611f3f81611ea5565b92506020840135611f4f81611ea5565b929592945050506040919091013590565b8015158114611eba57600080fd5b60008060408385031215611f8157600080fd5b8235611f8c81611ea5565b91506020830135611f9c81611f60565b809150509250929050565b60008060408385031215611fba57600080fd5b8235611fc581611ea5565b91506020830135611f9c81611ea5565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561202557612025611ff5565b500290565b60006020828403121561203c57600080fd5b5051919050565b60008282101561205557612055611ff5565b500390565b6000821982111561206d5761206d611ff5565b500190565b60006020828403121561208457600080fd5b81516109b481611f60565b6000826120ac57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121175784516001600160a01b0316835293830193918301916001016120f2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201bcdaaff06125c316b1afce4ef5d717d031874eef2a9d63a69e4aacd3c18f67964736f6c634300080d003360a060405273046eee2cc3188071c02bfc1745a6b17c656e3f3d6080526ec097ce7bc90715b34b9f100000000060095534801561003b57600080fd5b50604051610da0380380610da083398101604081905261005a9161008d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b608051610cc16100df600039600081816101aa01526107410152610cc16000f3fe6080604052600436106100e15760003560e01c8063997664d71161007f578063ce7c2ac211610059578063ce7c2ac21461025a578063d54ad2a1146102b1578063e2d2e219146102c7578063ecd0c0c3146102dd57600080fd5b8063997664d714610204578063b2bdfa7b1461021a578063b6b55f251461023a57600080fd5b80633a98ef39116100bb5780633a98ef391461014f5780635cc33f74146101785780636b35f578146101985780638ecc37fb146101e457600080fd5b80631014edf5146100ed57806314b6ca961461010f57806315f7e05e1461012f57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5061010d610108366004610ad8565b6102fd565b005b34801561011b57600080fd5b5061010d61012a366004610b04565b61035d565b34801561013b57600080fd5b5061010d61014a366004610b2e565b6104d5565b34801561015b57600080fd5b5061016560055481565b6040519081526020015b60405180910390f35b34801561018457600080fd5b50610165610193366004610b2e565b6104f8565b3480156101a457600080fd5b506101cc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016f565b3480156101f057600080fd5b506101656101ff366004610b2e565b61058b565b34801561021057600080fd5b5061016560065481565b34801561022657600080fd5b506001546101cc906001600160a01b031681565b34801561024657600080fd5b5061010d610255366004610b49565b610616565b34801561026657600080fd5b50610296610275366004610b2e565b60046020526000908152604090208054600182015460029092015490919083565b6040805193845260208401929092529082015260600161016f565b3480156102bd57600080fd5b5061016560075481565b3480156102d357600080fd5b5061016560085481565b3480156102e957600080fd5b506000546101cc906001600160a01b031681565b6001546001600160a01b0316331461031457600080fd5b476001600160a01b0382166108fc8461032d578261032f565b845b6040518115909202916000818181858888f19350505050158015610357573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461037457600080fd5b6001600160a01b0382166000908152600460205260409020541561039b5761039b82610670565b6000811180156103c157506001600160a01b038216600090815260046020526040902054155b1561042757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561045a565b8015801561044c57506001600160a01b03821660009081526004602052604090205415155b1561045a5761045a826107b4565b6001600160a01b03821660009081526004602052604090205460055461048b918391610485916108c9565b90610914565b6005556001600160a01b03821660009081526004602052604090208190556104b281610973565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b031633146104ec57600080fd5b6104f581610670565b50565b6001600160a01b03811660009081526004602052604081205461056c5760405162461bcd60e51b815260206004820152602160248201527f596f75277265206e6f742061205052494e544552207368617265686f6c6465726044820152602160f81b60648201526084015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105b257506000919050565b6001600160a01b0382166000908152600460205260408120546105d490610973565b6001600160a01b038416600090815260046020526040902060010154909150808211610604575060009392505050565b61060e82826108c9565b949350505050565b6000546001600160a01b0316331461062d57600080fd5b80156104f5576006546106409082610914565b60065560055460095461066a916106619161065b9085610990565b90610a12565b60085490610914565b60085550565b6001600160a01b03811660009081526004602052604081205490036106925750565b600061069d8261058b565b905080156107b0576007546106b29082610914565b6007556001600160a01b0382166000908152600460205260409020600201546106db9082610914565b6001600160a01b038316600090815260046020526040902060028101919091555461070590610973565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae9190610b62565b505b5050565b600280546107c490600190610b9a565b815481106107d4576107d4610bb1565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061081257610812610bb1565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161085e90600190610b9a565b8154811061086e5761086e610bb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108a4576108a4610bc7565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061090b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a54565b90505b92915050565b6000806109218385610bdd565b90508381101561090b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610563565b600061090e60095461065b6008548561099090919063ffffffff16565b6000826000036109a25750600061090e565b60006109ae8385610bf5565b9050826109bb8583610c14565b1461090b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610563565b600061090b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a8e565b60008184841115610a785760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610b9a565b95945050505050565b60008183610aaf5760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610c14565b80356001600160a01b0381168114610ad357600080fd5b919050565b60008060408385031215610aeb57600080fd5b82359150610afb60208401610abc565b90509250929050565b60008060408385031215610b1757600080fd5b610b2083610abc565b946020939093013593505050565b600060208284031215610b4057600080fd5b61090b82610abc565b600060208284031215610b5b57600080fd5b5035919050565b600060208284031215610b7457600080fd5b8151801515811461090b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610bac57610bac610b84565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610bf057610bf0610b84565b500190565b6000816000190483118215151615610c0f57610c0f610b84565b500290565b600082610c3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610c6357858101830151858201604001528201610c47565b81811115610c75576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220e95edeadce476ffb6337e5f72f82f106c3334ccfb97398d3b1669b4eda5fbdf564736f6c634300080d00330000000000000000000000000025ee49cef4ad4393f10119092cd8c95299f8df

Deployed Bytecode

0x60806040526004361061023f5760003560e01c806370a082311161012e578063bffb691d116100ab578063f2fde38b1161006f578063f2fde38b14610729578063f429389014610749578063f708a64f1461075e578063f887ea401461077e578063fabb0b4f1461079e57600080fd5b8063bffb691d14610677578063d12a768814610698578063d1633649146106ae578063dd62ed3e146106ce578063f0fc6bca1461071457600080fd5b80638ecc37fb116100f25780638ecc37fb146105b157806395d89b41146105d1578063a8aa1b31146105fe578063a9059cbb1461061e578063b1a4e0dc1461063e57600080fd5b806370a0823114610529578063736a83a11461054957806375f0a8741461055e578063764ca5121461057e578063893d20e81461059357600080fd5b8063313ce567116101bc5780635d098b38116101805780635d098b3814610480578063658d4b7f146104a057806367ee5f09146104c057806369fe0e2d146104d55780636b35f578146104f557600080fd5b8063313ce567146103ef578063342aa8b51461040b5780633e07ce5b1461042b578063571ac8b0146104405780635cc33f741461046057600080fd5b806323b872dd1161020357806323b872dd1461031f57806329e04b4a1461033f5780632b112e491461035f5780632c76d7a6146103745780632f54bf6e146103c057600080fd5b806306fdde031461024b578063095ea7b31461028e57806315f7e05e146102be57806318160ddd146102e057806323b63585146102ff57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b50604080518082019091526008815267283934b73a29262160c11b60208201525b6040516102859190611e50565b60405180910390f35b34801561029a57600080fd5b506102ae6102a9366004611ebd565b6107b4565b6040519015158152602001610285565b3480156102ca57600080fd5b506102de6102d9366004611ee9565b610821565b005b3480156102ec57600080fd5b506004545b604051908152602001610285565b34801561030b57600080fd5b506102ae61031a366004611f06565b6108b6565b34801561032b57600080fd5b506102ae61033a366004611f1f565b6108f9565b34801561034b57600080fd5b506102de61035a366004611f06565b6109bb565b34801561036b57600080fd5b506102f1610a48565b34801561038057600080fd5b506103a87f000000000000000000000000e592427a0aece92de3edee1f18e0157c0586156481565b6040516001600160a01b039091168152602001610285565b3480156103cc57600080fd5b506102ae6103db366004611ee9565b6000546001600160a01b0391821691161490565b3480156103fb57600080fd5b5060405160098152602001610285565b34801561041757600080fd5b506102de610426366004611f6e565b610a91565b34801561043757600080fd5b506102de610aed565b34801561044c57600080fd5b506102ae61045b366004611ee9565b610b24565b34801561046c57600080fd5b506102f161047b366004611ee9565b610b32565b34801561048c57600080fd5b506102de61049b366004611ee9565b610ba2565b3480156104ac57600080fd5b506102de6104bb366004611f6e565b610bee565b3480156104cc57600080fd5b506102f1610c43565b3480156104e157600080fd5b506102de6104f0366004611f06565b610cb1565b34801561050157600080fd5b506103a87f000000000000000000000000046eee2cc3188071c02bfc1745a6b17c656e3f3d81565b34801561053557600080fd5b506102f1610544366004611ee9565b610d27565b34801561055557600080fd5b506102f1610d42565b34801561056a57600080fd5b50600c546103a8906001600160a01b031681565b34801561058a57600080fd5b506102de610d8c565b34801561059f57600080fd5b506000546001600160a01b03166103a8565b3480156105bd57600080fd5b506102f16105cc366004611ee9565b610e25565b3480156105dd57600080fd5b506040805180820190915260048152632829262160e11b6020820152610278565b34801561060a57600080fd5b50600e546103a8906001600160a01b031681565b34801561062a57600080fd5b506102ae610639366004611ebd565b610e58565b34801561064a57600080fd5b506102ae610659366004611ee9565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561068357600080fd5b506018546102ae90600160a01b900460ff1681565b3480156106a457600080fd5b506102f160175481565b3480156106ba57600080fd5b506102de6106c9366004611f06565b610e65565b3480156106da57600080fd5b506102f16106e9366004611fa7565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561072057600080fd5b506102de610ea9565b34801561073557600080fd5b506102de610744366004611ee9565b610f08565b34801561075557600080fd5b506102de610f86565b34801561076a57600080fd5b506102de610779366004611f6e565b610fea565b34801561078a57600080fd5b50600d546103a8906001600160a01b031681565b3480156107aa57600080fd5b506102f160115481565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061080f9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108545760405162461bcd60e51b815260040161084b90611fd5565b60405180910390fd5b601854604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108e15760405162461bcd60e51b815260040161084b90611fd5565b60025461081b9030906001600160a01b03168461101e565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146109a6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610981918490611104565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6109b184848461113e565b90505b9392505050565b6000546001600160a01b031633146109e55760405162461bcd60e51b815260040161084b90611fd5565b6004546109f3906064611687565b811115610a345760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b604482015260640161084b565b610a4281633b9aca0061200b565b60175550565b600354600090610a8c90610a64906001600160a01b0316610d27565b600254610a8690610a7d906001600160a01b0316610d27565b600454906116c9565b906116c9565b905090565b6000546001600160a01b03163314610abb5760405162461bcd60e51b815260040161084b90611fd5565b6001600160a01b0382166000908152600960205260409020805460ff1916821515179055610ae9828261170b565b5050565b6000546001600160a01b03163314610b175760405162461bcd60e51b815260040161084b90611fd5565b6012805461ff0019169055565b600061081b826000196107b4565b601854604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b919061202a565b6000546001600160a01b03163314610bcc5760405162461bcd60e51b815260040161084b90611fd5565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c185760405162461bcd60e51b815260040161084b90611fd5565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6018546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c919061202a565b6000546001600160a01b03163314610cdb5760405162461bcd60e51b815260040161084b90611fd5565b6009811115610d225760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420392560681b604482015260640161084b565b600a55565b6001600160a01b031660009081526005602052604090205490565b6018546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c8d573d6000803e3d6000fd5b6000546001600160a01b03163314610db65760405162461bcd60e51b815260040161084b90611fd5565b601854600160a01b900460ff1615610e105760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000604482015260640161084b565b6018805460ff60a01b1916600160a01b179055565b601854604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b61565b60006109b433848461113e565b6000546001600160a01b03163314610e8f5760405162461bcd60e51b815260040161084b90611fd5565b43600f556012805460ff1916600117905560115542601055565b601854604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610eee57600080fd5b505af1158015610f02573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610f325760405162461bcd60e51b815260040161084b90611fd5565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610fb05760405162461bcd60e51b815260040161084b90611fd5565b600c5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ae9573d6000803e3d6000fd5b6000546001600160a01b031633146110145760405162461bcd60e51b815260040161084b90611fd5565b610ae9828261170b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461106f918490611104565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461109e908361181c565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110f29086815260200190565b60405180910390a35060019392505050565b600081848411156111285760405162461bcd60e51b815260040161084b9190611e50565b5060006111358486612043565b95945050505050565b600080546001600160a01b0385811691161480159061116b57506000546001600160a01b03848116911614155b156111c25760125460ff166111c25760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e0000000000000000604482015260640161084b565b601854600160a01b900460ff161561124b576001600160a01b03841660009081526009602052604090205460ff1615801561121657506001600160a01b03831660009081526009602052604090205460ff16155b61124b5760405162461bcd60e51b815260040161084b90602080825260049082015263426f742160e01b604082015260600190565b601254610100900460ff16801561127057506000546001600160a01b03858116911614155b801561128a57506000546001600160a01b03848116911614155b15611390576013548211156112d05760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b604482015260640161084b565b601454826112dd85610d27565b6112e7919061205a565b11156113245760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b604482015260640161084b565b43601154600f54611335919061205a565b10611344576063600a55611390565b601154600f54611354919061205a565b4311801561136f5750600f5461136b90600a61205a565b4311155b1561138a576015546013556016546014556028600a55611390565b6009600a555b601854600160a81b900460ff16156113b4576113ad84848461101e565b90506109b4565b60006113bf30610d27565b90506000601754821015905060008180156113e75750600e546001600160a01b038781169116145b80156113fb575060006113f930610d27565b115b9050801561140b5761140b61187b565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a1660009081526005909152919091205461145d918790611104565b6001600160a01b0388166000908152600560205260408120919091556114838888611a88565b61148d5785611497565b6114978887611afd565b6001600160a01b0388166000908152600560205260409020549091506114bd908261181c565b6001600160a01b03808916600090815260056020526040902091909155600e5489821691161480159061150957506001600160a01b03881660009081526008602052604090205460ff16155b1561157f576018546001600160a01b0389811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561156c57600080fd5b505af192505050801561157d575060015b505b600e546001600160a01b038881169116148015906115b657506001600160a01b03871660009081526008602052604090205460ff16155b1561162c576018546001600160a01b0388811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561161957600080fd5b505af192505050801561162a575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161167191815260200190565b60405180910390a3506001979650505050505050565b60006109b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ba9565b60006109b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611104565b6001600160a01b03821630148015906117325750600e546001600160a01b03838116911614155b61173b57600080fd5b6001600160a01b0382166000908152600860205260409020805460ff191682158015919091179091556117d357601854604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156117b757600080fd5b505af11580156117cb573d6000803e3d6000fd5b505050505050565b6018546001600160a01b0383811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca969060440161179d565b600080611829838561205a565b9050838110156109b45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161084b565b6018805460ff60a81b1916600160a81b179055600061189930610d27565b90506118a481611bd7565b6118ac611c82565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000046eee2cc3188071c02bfc1745a6b17c656e3f3d6001600160a01b0316906370a0823190602401602060405180830381865afa158015611913573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611937919061202a565b60185460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f000000000000000000000000046eee2cc3188071c02bfc1745a6b17c656e3f3d9091169063a9059cbb906044016020604051808303816000875af11580156119b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d59190612072565b90508015611a3c5760185460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b158015611a2357600080fd5b505af1158015611a37573d6000803e3d6000fd5b505050505b600c546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a75573d6000803e3d6000fd5b50506018805460ff60a81b191690555050565b6001600160a01b03821660009081526007602052604081205460ff1680611ac757506001600160a01b03821660009081526007602052604090205460ff165b1580156109b45750600e546001600160a01b03848116911614806109b4575050600e546001600160a01b03908116911614919050565b600080611b21600b54611b1b600a5486611dce90919063ffffffff16565b90611687565b30600090815260056020526040902054909150611b3e908261181c565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b8f9085815260200190565b60405180910390a3611ba183826116c9565b949350505050565b60008183611bca5760405162461bcd60e51b815260040161084b9190611e50565b506000611135848661208f565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c0c57611c0c6120b1565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611c3c57611c3c6120b1565b6001600160a01b039283166020918202929092010152600d5460405163791ac94760e01b815291169063791ac9479061179d9085906000908690309042906004016120c7565b6000611c8f476002611687565b60408051610100810182526001546001600160a01b0390811682527f000000000000000000000000046eee2cc3188071c02bfc1745a6b17c656e3f3d811660208301908152610bb88385018181523060608601908152426080870190815260a08701898152600060c0890181815260e08a01918252995163414bf38960e01b81529851881660048a0152955187166024890152925162ffffff1660448801529051851660648701525160848601525160a4850152935160c484015251811660e483015292935090917f000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564169063414bf3899084906101040160206040518083038185885af1158015611da4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dc9919061202a565b505050565b600082600003611de05750600061081b565b6000611dec838561200b565b905082611df9858361208f565b146109b45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161084b565b600060208083528351808285015260005b81811015611e7d57858101830151858201604001528201611e61565b81811115611e8f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611eba57600080fd5b50565b60008060408385031215611ed057600080fd5b8235611edb81611ea5565b946020939093013593505050565b600060208284031215611efb57600080fd5b81356109b481611ea5565b600060208284031215611f1857600080fd5b5035919050565b600080600060608486031215611f3457600080fd5b8335611f3f81611ea5565b92506020840135611f4f81611ea5565b929592945050506040919091013590565b8015158114611eba57600080fd5b60008060408385031215611f8157600080fd5b8235611f8c81611ea5565b91506020830135611f9c81611f60565b809150509250929050565b60008060408385031215611fba57600080fd5b8235611fc581611ea5565b91506020830135611f9c81611ea5565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561202557612025611ff5565b500290565b60006020828403121561203c57600080fd5b5051919050565b60008282101561205557612055611ff5565b500390565b6000821982111561206d5761206d611ff5565b500190565b60006020828403121561208457600080fd5b81516109b481611f60565b6000826120ac57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121175784516001600160a01b0316835293830193918301916001016120f2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201bcdaaff06125c316b1afce4ef5d717d031874eef2a9d63a69e4aacd3c18f67964736f6c634300080d0033

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

0000000000000000000000000025ee49cef4ad4393f10119092cd8c95299f8df

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000025ee49cef4ad4393f10119092cd8c95299f8df


Deployed Bytecode Sourcemap

13538:12332:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16523:80;;;;;;;;;;-1:-1:-1;16595:5:0;;;;;;;;;;;;-1:-1:-1;;;16595:5:0;;;;16523:80;;;;;;;:::i;:::-;;;;;;;;16945:216;;;;;;;;;;-1:-1:-1;16945:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;16945:216:0;1072:187:1;24137:110:0;;;;;;;;;;-1:-1:-1;24137:110:0;;;;;:::i;:::-;;:::i;:::-;;16253:88;;;;;;;;;;-1:-1:-1;16326:12:0;;16253:88;;;1662:25:1;;;1650:2;1635:18;16253:88:0;1516:177:1;24427:139:0;;;;;;;;;;-1:-1:-1;24427:139:0;;;;;:::i;:::-;;:::i;17463:370::-;;;;;;;;;;-1:-1:-1;17463:370:0;;;;;:::i;:::-;;:::i;25655:206::-;;;;;;;;;;-1:-1:-1;25655:206:0;;;;;:::i;:::-;;:::i;24578:142::-;;;;;;;;;;;;;:::i;14605:44::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2527:32:1;;;2509:51;;2497:2;2482:18;14605:44:0;2344:222:1;7068:103:0;;;;;;;;;;-1:-1:-1;7068:103:0;;;;;:::i;:::-;7123:4;7158:5;-1:-1:-1;;;;;7147:16:0;;;7158:5;;7147:16;;7068:103;16347:80;;;;;;;;;;-1:-1:-1;16347:80:0;;14016:1;2713:36:1;;2701:2;2686:18;16347:80:0;2571:184:1;22918:158:0;;;;;;;;;;-1:-1:-1;22918:158:0;;;;;:::i;:::-;;:::i;25284:80::-;;;;;;;;;;;;;:::i;17169:122::-;;;;;;;;;;-1:-1:-1;17169:122:0;;;;;:::i;:::-;;:::i;25119:157::-;;;;;;;;;;-1:-1:-1;25119:157:0;;;;;:::i;:::-;;:::i;24728:135::-;;;;;;;;;;-1:-1:-1;24728:135:0;;;;;:::i;:::-;;:::i;23579:119::-;;;;;;;;;;-1:-1:-1;23579:119:0;;;;;:::i;:::-;;:::i;24872:115::-;;;;;;;;;;;;;:::i;23706:137::-;;;;;;;;;;-1:-1:-1;23706:137:0;;;;;:::i;:::-;;:::i;13787:82::-;;;;;;;;;;;;;;;16693:105;;;;;;;;;;-1:-1:-1;16693:105:0;;;;;:::i;:::-;;:::i;24999:111::-;;;;;;;;;;;;;:::i;14473:92::-;;;;;;;;;;-1:-1:-1;14473:92:0;;;;-1:-1:-1;;;;;14473:92:0;;;25482:165;;;;;;;;;;;;;:::i;16609:78::-;;;;;;;;;;-1:-1:-1;16661:7:0;16679:5;-1:-1:-1;;;;;16679:5:0;16609:78;;24259:156;;;;;;;;;;-1:-1:-1;24259:156:0;;;;;:::i;:::-;;:::i;16433:84::-;;;;;;;;;;-1:-1:-1;16507:7:0;;;;;;;;;;;;-1:-1:-1;;;16507:7:0;;;;16433:84;;14656:19;;;;;;;;;;-1:-1:-1;14656:19:0;;;;-1:-1:-1;;;;;14656:19:0;;;17299:156;;;;;;;;;;-1:-1:-1;17299:156:0;;;;;:::i;:::-;;:::i;25372:102::-;;;;;;;;;;-1:-1:-1;25372:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;25452:14:0;25428:4;25452:14;;;:5;:14;;;;;;;;;25372:102;15205:36;;;;;;;;;;-1:-1:-1;15205:36:0;;;;-1:-1:-1;;;15205:36:0;;;;;;15081:59;;;;;;;;;;;;;;;;22688:210;;;;;;;;;;-1:-1:-1;22688:210:0;;;;;:::i;:::-;;:::i;16804:133::-;;;;;;;;;;-1:-1:-1;16804:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;16906:19:0;;;16888:7;16906:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;16804:133;24035:90;;;;;;;;;;;;;:::i;7296:136::-;;;;;;;;;;-1:-1:-1;7296:136:0;;;;;:::i;:::-;;:::i;23853:174::-;;;;;;;;;;;;;:::i;23439:132::-;;;;;;;;;;-1:-1:-1;23439:132:0;;;;;:::i;:::-;;:::i;14574:24::-;;;;;;;;;;-1:-1:-1;14574:24:0;;;;-1:-1:-1;;;;;14574:24:0;;;14752:25;;;;;;;;;;;;;;;;16945:216;17049:10;17020:4;17037:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;17037:32:0;;;;;;;;;;:41;;;17094:37;17020:4;;17037:32;;17094:37;;;;17072:6;1662:25:1;;1650:2;1635:18;;1516:177;17094:37:0;;;;;;;;-1:-1:-1;17149:4:0;16945:216;;;;;:::o;24137:110::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;;;;;;;;;24206:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;24206:33:0;;-1:-1:-1;;;;;2527:32:1;;;24206:33:0::1;::::0;::::1;2509:51:1::0;24206:11:0;;::::1;::::0;:25:::1;::::0;2482:18:1;;24206:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24137:110:::0;:::o;24427:139::-;24491:4;7158:5;;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;24545:4:::1;::::0;24515:43:::1;::::0;24538:4:::1;::::0;-1:-1:-1;;;;;24545:4:0::1;24551:6:::0;24515:14:::1;:43::i;17463:370::-:0;-1:-1:-1;;;;;17583:19:0;;17563:4;17583:19;;;:11;:19;;;;;;;;17603:10;17583:31;;;;;;;;-1:-1:-1;;17583:52:0;17580:186;;17685:69;;;;;;;;;;;-1:-1:-1;;;17685:69:0;;;;;;;;-1:-1:-1;;;;;17685:19:0;;-1:-1:-1;17685:19:0;;;:11;:19;;;;;17705:10;17685:31;;;;;;;;;;:69;;17721:6;;17685:35;:69::i;:::-;-1:-1:-1;;;;;17651:19:0;;;;;;:11;:19;;;;;;;;17671:10;17651:31;;;;;;;:103;17580:186;17785:40;17799:6;17807:9;17818:6;17785:13;:40::i;:::-;17778:47;;17463:370;;;;;;:::o;25655:206::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;25753:12:::1;::::0;:21:::1;::::0;25770:3:::1;25753:16;:21::i;:::-;25743:6;:31;;25734:60;;;::::0;-1:-1:-1;;;25734:60:0;;5117:2:1;25734:60:0::1;::::0;::::1;5099:21:1::0;5156:2;5136:18;;;5129:30;-1:-1:-1;;;5175:18:1;;;5168:45;5230:18;;25734:60:0::1;4915:339:1::0;25734:60:0::1;25837:16;:6:::0;25846:7:::1;25837:16;:::i;:::-;25805:29;:48:::0;-1:-1:-1;25655:206:0:o;24578:142::-;24706:4;;24631:7;;24658:54;;24696:15;;-1:-1:-1;;;;;24706:4:0;24696:9;:15::i;:::-;24685:4;;24658:33;;24675:15;;-1:-1:-1;;;;;24685:4:0;24675:9;:15::i;:::-;24658:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;24651:61;;24578:142;:::o;22918:158::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22995:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;22995:24:0::1;::::0;::::1;;;::::0;;23030:38:::1;22995:15:::0;:24;23030:20:::1;:38::i;:::-;22918:158:::0;;:::o;25284:80::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;25340:8:::1;:16:::0;;-1:-1:-1;;25340:16:0::1;::::0;;25284:80::o;17169:122::-;17224:4;17248:35;17256:7;-1:-1:-1;;17248:7:0;:35::i;25119:157::-;25222:11;;:46;;-1:-1:-1;;;25222:46:0;;-1:-1:-1;;;;;2527:32:1;;;25222:46:0;;;2509:51:1;25195:7:0;;25222:11;;:33;;2482:18:1;;25222:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;24728:135::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;24812:15:::1;:43:::0;;-1:-1:-1;;;;;;24812:43:0::1;-1:-1:-1::0;;;;;24812:43:0;;;::::1;::::0;;;::::1;::::0;;24728:135::o;23579:119::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23662:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;23662:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23579:119::o;24872:115::-;24951:11;;:28;;;-1:-1:-1;;;24951:28:0;;;;24924:7;;-1:-1:-1;;;;;24951:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;23706:137::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;23784:1:::1;23776:4;:9;;23767:42;;;::::0;-1:-1:-1;;;23767:42:0;;5955:2:1;23767:42:0::1;::::0;::::1;5937:21:1::0;5994:2;5974:18;;;5967:30;-1:-1:-1;;;6013:18:1;;;6006:49;6072:18;;23767:42:0::1;5753:343:1::0;23767:42:0::1;23820:8;:15:::0;23706:137::o;16693:105::-;-1:-1:-1;;;;;16777:18:0;16759:7;16777:18;;;:9;:18;;;;;;;16693:105::o;24999:111::-;25076:11;;:26;;;-1:-1:-1;;;25076:26:0;;;;25049:7;;-1:-1:-1;;;;;25076:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;;;;;25482:165;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;25552:16:::1;::::0;-1:-1:-1;;;25552:16:0;::::1;;;:25;25543:62;;;::::0;-1:-1:-1;;;25543:62:0;;6303:2:1;25543:62:0::1;::::0;::::1;6285:21:1::0;6342:2;6322:18;;;6315:30;6381:25;6361:18;;;6354:53;6424:18;;25543:62:0::1;6101:347:1::0;25543:62:0::1;25616:16;:23:::0;;-1:-1:-1;;;;25616:23:0::1;-1:-1:-1::0;;;25616:23:0::1;::::0;;25482:165::o;24259:156::-;24360:11;;:47;;-1:-1:-1;;;24360:47:0;;-1:-1:-1;;;;;2527:32:1;;;24360:47:0;;;2509:51:1;24333:7:0;;24360:11;;:34;;2482:18:1;;24360:47:0;2344:222:1;17299:156:0;17379:4;17403:44;17417:10;17429:9;17440:6;17403:13;:44::i;22688:210::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;22773:12:::1;22760:10;:25:::0;22796:11:::1;:18:::0;;-1:-1:-1;;22796:18:0::1;22810:4;22796:18;::::0;;22825:10:::1;:24:::0;22875:15:::1;22860:12;:30:::0;22688:210::o;24035:90::-;24080:11;;:37;;-1:-1:-1;;;24080:37:0;;24106:10;24080:37;;;2509:51:1;-1:-1:-1;;;;;24080:11:0;;;;:25;;2482:18:1;;24080:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24035:90::o;7296:136::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;7372:5:::1;:11:::0;;-1:-1:-1;;;;;;7372:11:0::1;-1:-1:-1::0;;;;;7372:11:0;::::1;::::0;;::::1;::::0;;;7399:25:::1;::::0;2509:51:1;;;7399:25:0::1;::::0;2497:2:1;2482:18;7399:25:0::1;;;;;;;7296:136:::0;:::o;23853:174::-;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;23974:15:::1;::::0;23966:53:::1;::::0;23934:21:::1;::::0;-1:-1:-1;;;;;23974:15:0::1;::::0;23966:53;::::1;;;::::0;23934:21;;23905:26:::1;23966:53:::0;23905:26;23966:53;23934:21;23974:15;23966:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;23439:132:::0;7123:4;7158:5;-1:-1:-1;;;;;7158:5:0;6975:10;7147:16;6959:38;;;;-1:-1:-1;;;6959:38:0;;;;;;;:::i;:::-;23527:36:::1;23548:6;23556;23527:20;:36::i;19858:330::-:0;19988:53;;;;;;;;;;;-1:-1:-1;;;19988:53:0;;;;;;;;-1:-1:-1;;;;;19988:17:0;;19951:4;19988:17;;;:9;:17;;;;;;;:53;;20010:6;;19988:21;:53::i;:::-;-1:-1:-1;;;;;19968:17:0;;;;;;;:9;:17;;;;;;:73;;;;20075:20;;;;;;;:32;;20100:6;20075:24;:32::i;:::-;-1:-1:-1;;;;;20052:20:0;;;;;;;:9;:20;;;;;;;:55;;;;20123:35;;;;;;;;;;20151:6;1662:25:1;;1650:2;1635:18;;1516:177;20123:35:0;;;;;;;;-1:-1:-1;20176:4:0;19858:330;;;;;:::o;4730:192::-;4816:7;4852:12;4844:6;;;;4836:29;;;;-1:-1:-1;;;4836:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4876:9:0;4888:5;4892:1;4888;:5;:::i;:::-;4876:17;4730:192;-1:-1:-1;;;;;4730:192:0:o;17841:2005::-;17933:4;17963:5;;-1:-1:-1;;;;;17954:14:0;;;17963:5;;17954:14;;;;:35;;-1:-1:-1;17984:5:0;;-1:-1:-1;;;;;17972:17:0;;;17984:5;;17972:17;;17954:35;17950:89;;;17999:11;;;;17991:48;;;;-1:-1:-1;;;17991:48:0;;7001:2:1;17991:48:0;;;6983:21:1;7040:2;7020:18;;;7013:30;7079:26;7059:18;;;7052:54;7123:18;;17991:48:0;6799:348:1;17991:48:0;18094:16;;-1:-1:-1;;;18094:16:0;;;;18090:102;;;-1:-1:-1;;;;;18137:13:0;;;;;;:5;:13;;;;;;;;18136:14;:35;;;;-1:-1:-1;;;;;;18155:16:0;;;;;;:5;:16;;;;;;;;18154:17;18136:35;18127:53;;;;-1:-1:-1;;;18127:53:0;;;;;;7354:2:1;7336:21;;;7393:1;7373:18;;;7366:29;-1:-1:-1;;;7426:2:1;7411:18;;7404:34;7470:2;7455:18;;7152:327;18127:53:0;18206:8;;;;;;;:25;;;;-1:-1:-1;18226:5:0;;-1:-1:-1;;;;;18218:13:0;;;18226:5;;18218:13;;18206:25;:46;;;;-1:-1:-1;18247:5:0;;-1:-1:-1;;;;;18235:17:0;;;18247:5;;18235:17;;18206:46;18202:614;;;18287:6;;18279;:14;;18270:40;;;;-1:-1:-1;;;18270:40:0;;7686:2:1;18270:40:0;;;7668:21:1;7725:2;7705:18;;;7698:30;-1:-1:-1;;;7744:18:1;;;7737:42;7796:18;;18270:40:0;7484:336:1;18270:40:0;18367:9;;18357:6;18334:20;18344:9;18334;:20::i;:::-;:29;;;;:::i;:::-;:42;;18325:68;;;;-1:-1:-1;;;18325:68:0;;7686:2:1;18325:68:0;;;7668:21:1;7725:2;7705:18;;;7698:30;-1:-1:-1;;;7744:18:1;;;7737:42;7796:18;;18325:68:0;7484:336:1;18325:68:0;18440:12;18425:10;;18412;;:23;;;;:::i;:::-;18411:41;18408:397;;18497:2;18486:8;:13;18408:397;;;18553:10;;18540;;:23;;;;:::i;:::-;18524:12;:40;:75;;;;-1:-1:-1;18584:10:0;;:15;;18597:2;18584:15;:::i;:::-;18568:12;:31;;18524:75;18521:284;;;18642:7;;18633:6;:16;18680:10;;18668:9;:22;18720:2;18709:8;:13;18521:284;;;18788:1;18777:8;:12;18521:284;18838:6;;-1:-1:-1;;;18838:6:0;;;;18835:63;;;18854:41;18869:6;18877:9;18888:6;18854:14;:41::i;:::-;18847:48;;;;18835:63;18916:28;18947:24;18965:4;18947:9;:24::i;:::-;18916:55;;18984:24;19035:29;;19011:20;:53;;18984:80;;19081:19;19104;:38;;;;-1:-1:-1;19138:4:0;;-1:-1:-1;;;;;19127:15:0;;;19138:4;;19127:15;19104:38;:70;;;;;19173:1;19146:24;19164:4;19146:9;:24::i;:::-;:28;19104:70;19081:94;;19189:14;19186:33;;;19206:10;:8;:10::i;:::-;19251:53;;;;;;;;;;;-1:-1:-1;;;19251:53:0;;;;;;;;-1:-1:-1;;;;;19251:17:0;;-1:-1:-1;19251:17:0;;;:9;:17;;;;;;;;:53;;19273:6;;19251:21;:53::i;:::-;-1:-1:-1;;;;;19231:17:0;;;;;;:9;:17;;;;;:73;;;;19342:32;19241:6;19364:9;19342:13;:32::i;:::-;:67;;19403:6;19342:67;;;19377:23;19385:6;19393;19377:7;:23::i;:::-;-1:-1:-1;;;;;19453:20:0;;;;;;:9;:20;;;;;;19317:92;;-1:-1:-1;19453:40:0;;19317:92;19453:24;:40::i;:::-;-1:-1:-1;;;;;19430:20:0;;;;;;;:9;:20;;;;;:63;;;;19519:4;;19509:14;;;19519:4;;19509:14;;;;:43;;-1:-1:-1;;;;;;19528:24:0;;;;;;:16;:24;;;;;;;;19527:25;19509:43;19506:114;;;19559:11;;-1:-1:-1;;;;;19588:17:0;;;19559:11;19588:17;;;:9;:17;;;;;;;;19559:47;;-1:-1:-1;;;19559:47:0;;;;;8132:51:1;;;;8199:18;;;8192:34;19559:11:0;;;:20;;8105:18:1;;19559:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19555:63;;19646:4;;-1:-1:-1;;;;;19633:17:0;;;19646:4;;19633:17;;;;:49;;-1:-1:-1;;;;;;19655:27:0;;;;;;:16;:27;;;;;;;;19654:28;19633:49;19630:126;;;19689:11;;-1:-1:-1;;;;;19721:20:0;;;19689:11;19721:20;;;:9;:20;;;;;;;;19689:53;;-1:-1:-1;;;19689:53:0;;;;;8132:51:1;;;;8199:18;;;8192:34;19689:11:0;;;:20;;8105:18:1;;19689:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19685:69;;19790:9;-1:-1:-1;;;;;19773:43:0;19782:6;-1:-1:-1;;;;;19773:43:0;;19801:14;19773:43;;;;1662:25:1;;1650:2;1635:18;;1516:177;19773:43:0;;;;;;;;-1:-1:-1;19834:4:0;;17841:2005;-1:-1:-1;;;;;;;17841:2005:0:o;5184:132::-;5242:7;5269:39;5273:1;5276;5269:39;;;;;;;;;;;;;;;;;:3;:39::i;4588:136::-;4646:7;4673:43;4677:1;4680;4673:43;;;;;;;;;;;;;;;;;:3;:43::i;23094:337::-;-1:-1:-1;;;;;23181:23:0;;23199:4;23181:23;;;;:41;;-1:-1:-1;23218:4:0;;-1:-1:-1;;;;;23208:14:0;;;23218:4;;23208:14;;23181:41;23173:50;;;;;;-1:-1:-1;;;;;23234:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;23234:33:0;;;;;;;;;;;;23278:146;;23303:11;;:31;;-1:-1:-1;;;23303:31:0;;-1:-1:-1;;;;;8150:32:1;;;23303:31:0;;;8132:51:1;23303:11:0;8199:18:1;;;8192:34;23303:11:0;;;;:20;;8105:18:1;;23303:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22918:158;;:::o;23278:146::-;23365:11;;-1:-1:-1;;;;;23394:17:0;;;23365:11;23394:17;;;:9;:17;;;;;;;;23365:47;;-1:-1:-1;;;23365:47:0;;;;;8132:51:1;;;;8199:18;;;8192:34;23365:11:0;;;:20;;8105:18:1;;23365:47:0;7958:274:1;4401:181:0;4459:7;;4491:5;4495:1;4491;:5;:::i;:::-;4479:17;;4520:1;4515;:6;;4507:46;;;;-1:-1:-1;;;4507:46:0;;8726:2:1;4507:46:0;;;8708:21:1;8765:2;8745:18;;;8738:30;8804:29;8784:18;;;8777:57;8851:18;;4507:46:0;8524:351:1;20780:520:0;15296:6;:13;;-1:-1:-1;;;;15296:13:0;-1:-1:-1;;;15296:13:0;;;;20854:24:::1;20872:4;20854:9;:24::i;:::-;20831:47;;20899:30;20916:12;20899:16;:30::i;:::-;20940:18;:16;:18::i;:::-;20991:36;::::0;-1:-1:-1;;;20991:36:0;;21021:4:::1;20991:36;::::0;::::1;2509:51:1::0;20971:17:0::1;::::0;20998:3:::1;-1:-1:-1::0;;;;;20991:21:0::1;::::0;::::1;::::0;2482:18:1;;20991:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21084:11;::::0;21055:53:::1;::::0;-1:-1:-1;;;21055:53:0;;-1:-1:-1;;;;;21084:11:0;;::::1;21055:53;::::0;::::1;8132:51:1::0;8199:18;;;8192:34;;;20971:56:0;;-1:-1:-1;21040:12:0::1;::::0;21062:3:::1;21055:20:::0;;::::1;::::0;::::1;::::0;8105:18:1;;21055:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21040:68;;21125:7;21121:82;;;21149:11;::::0;:30:::1;::::0;-1:-1:-1;;;21149:30:0;;::::1;::::0;::::1;1662:25:1::0;;;-1:-1:-1;;;;;21149:11:0;;::::1;::::0;:19:::1;::::0;1635:18:1;;21149:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21121:82;21236:15;::::0;21228:56:::1;::::0;-1:-1:-1;;;;;21236:15:0;;::::1;::::0;21262:21:::1;21228:56:::0;::::1;;;::::0;21236:15:::1;21228:56:::0;21236:15;21228:56;21262:21;21236:15;21228:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15314:6:0;:14;;-1:-1:-1;;;;15314:14:0;;;-1:-1:-1;;20780:520:0:o;20199:206::-;-1:-1:-1;;;;;20308:19:0;;20280:4;20308:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;20331:22:0;;;;;;:11;:22;;;;;;;;20308:45;20306:48;:90;;;;-1:-1:-1;20370:4:0;;-1:-1:-1;;;;;20360:14:0;;;20370:4;;20360:14;;:35;;-1:-1:-1;;20391:4:0;;-1:-1:-1;;;;;20391:4:0;;;20378:17;;;;20199:206;-1:-1:-1;20199:206:0:o;20413:354::-;20480:7;20500:17;20540:40;20565:14;;20540:20;20551:8;;20540:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;20636:4;20618:24;;;;:9;:24;;;;;;20528:52;;-1:-1:-1;20618:39:0;;20528:52;20618:28;:39::i;:::-;20609:4;20591:24;;;;:9;:24;;;;;;;:66;;;;20673:42;;-1:-1:-1;;;;;20673:42:0;;;;;;;20705:9;1662:25:1;;1650:2;1635:18;;1516:177;20673:42:0;;;;;;;;20738:21;:6;20749:9;20738:10;:21::i;:::-;20731:28;20413:354;-1:-1:-1;;;;20413:354:0:o;5322:345::-;5408:7;5510:12;5503:5;5495:28;;;;-1:-1:-1;;;5495:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5534:9:0;5546:5;5550:1;5546;:5;:::i;21807:489::-;21959:16;;;21973:1;21959:16;;;;;;;;21935:21;;21959:16;;;;;;;;;;-1:-1:-1;21959:16:0;21935:40;;22004:4;21986;21991:1;21986:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21986:23:0;;;:7;;;;;;;;;:23;22030:4;;;22020:7;;22030:4;;;22020;;22030;22020:7;;;;;;:::i;:::-;-1:-1:-1;;;;;22020:14:0;;;:7;;;;;;;;;:14;22073:6;;:215;;-1:-1:-1;;;22073:215:0;;:6;;;:57;;:215;;22145:11;;22073:6;;22215:4;;22242;;22262:15;;22073:215;;;:::i;21312:487::-;21359:20;21382:28;:21;21408:1;21382:25;:28::i;:::-;21523:257;;;;;;;;21576:4;;-1:-1:-1;;;;;21576:4:0;;;21523:257;;21599:3;21523:257;;;;;;;;21438:4;21523:257;;;;;;21655:4;21523:257;;;;;;21679:15;21523:257;;;;;;;;;;;;-1:-1:-1;21523:257:0;;;;;;;;;;;;21455:336;;-1:-1:-1;;;21455:336:0;;10884:13:1;;10880:22;;21455:336:0;;;10862:41:1;10945:24;;10941:33;;10919:20;;;10912:63;11017:24;;11043:8;11013:39;10991:20;;;10984:69;11095:24;;11091:33;;11069:20;;;11062:63;11163:24;11141:20;;;11134:54;11226:24;11204:20;;;11197:54;11289:24;;11267:20;;;11260:54;11356:24;11352:33;;11330:20;;;11323:63;21523:257:0;;-1:-1:-1;21438:4:0;;21455:15;:32;;;;21523:257;;10796:19:1;;21455:336:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21348:451;;21312:487::o;4928:250::-;4986:7;5010:1;5015;5010:6;5006:47;;-1:-1:-1;5040:1:0;5033:8;;5006:47;5065:9;5077:5;5081:1;5077;:5;:::i;:::-;5065:17;-1:-1:-1;5110:1:0;5101:5;5105:1;5065:17;5101:5;:::i;:::-;:10;5093:56;;;;-1:-1:-1;;;5093:56:0;;11599:2:1;5093:56:0;;;11581:21:1;11638:2;11618:18;;;11611:30;11677:34;11657:18;;;11650:62;-1:-1:-1;;;11728:18:1;;;11721:31;11769:19;;5093:56:0;11397: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;2760:118::-;2846:5;2839:13;2832:21;2825:5;2822:32;2812:60;;2868:1;2865;2858:12;2883:382;2948:6;2956;3009:2;2997:9;2988:7;2984:23;2980:32;2977:52;;;3025:1;3022;3015:12;2977:52;3064:9;3051:23;3083:31;3108:5;3083:31;:::i;:::-;3133:5;-1:-1:-1;3190:2:1;3175:18;;3162:32;3203:30;3162:32;3203:30;:::i;:::-;3252:7;3242:17;;;2883:382;;;;;:::o;3702:388::-;3770:6;3778;3831:2;3819:9;3810:7;3806:23;3802:32;3799:52;;;3847:1;3844;3837:12;3799:52;3886:9;3873:23;3905:31;3930:5;3905:31;:::i;:::-;3955:5;-1:-1:-1;4012:2:1;3997:18;;3984:32;4025:33;3984:32;4025:33;:::i;4581:329::-;4783:2;4765:21;;;4822:1;4802:18;;;4795:29;-1:-1:-1;;;4855:2:1;4840:18;;4833:36;4901:2;4886:18;;4581:329::o;5259:127::-;5320:10;5315:3;5311:20;5308:1;5301:31;5351:4;5348:1;5341:15;5375:4;5372:1;5365:15;5391:168;5431:7;5497:1;5493;5489:6;5485:14;5482:1;5479:21;5474:1;5467:9;5460:17;5456:45;5453:71;;;5504:18;;:::i;:::-;-1:-1:-1;5544:9:1;;5391:168::o;5564:184::-;5634:6;5687:2;5675:9;5666:7;5662:23;5658:32;5655:52;;;5703:1;5700;5693:12;5655:52;-1:-1:-1;5726:16:1;;5564:184;-1:-1:-1;5564:184:1:o;6669:125::-;6709:4;6737:1;6734;6731:8;6728:34;;;6742:18;;:::i;:::-;-1:-1:-1;6779:9:1;;6669:125::o;7825:128::-;7865:3;7896:1;7892:6;7889:1;7886:13;7883:39;;;7902:18;;:::i;:::-;-1:-1:-1;7938:9:1;;7825:128::o;8880:245::-;8947:6;9000:2;8988:9;8979:7;8975:23;8971:32;8968:52;;;9016:1;9013;9006:12;8968:52;9048:9;9042:16;9067:28;9089:5;9067:28;:::i;9130:217::-;9170:1;9196;9186:132;;9240:10;9235:3;9231:20;9228:1;9221:31;9275:4;9272:1;9265:15;9303:4;9300:1;9293:15;9186:132;-1:-1:-1;9332:9:1;;9130:217::o;9484:127::-;9545:10;9540:3;9536:20;9533:1;9526:31;9576:4;9573:1;9566:15;9600:4;9597:1;9590:15;9616:980;9878:4;9926:3;9915:9;9911:19;9957:6;9946:9;9939:25;9983:2;10021:6;10016:2;10005:9;10001:18;9994:34;10064:3;10059:2;10048:9;10044:18;10037:31;10088:6;10123;10117:13;10154:6;10146;10139:22;10192:3;10181:9;10177:19;10170:26;;10231:2;10223:6;10219:15;10205:29;;10252:1;10262:195;10276:6;10273:1;10270:13;10262:195;;;10341:13;;-1:-1:-1;;;;;10337:39:1;10325:52;;10432:15;;;;10397:12;;;;10373:1;10291:9;10262:195;;;-1:-1:-1;;;;;;;10513:32:1;;;;10508:2;10493:18;;10486:60;-1:-1:-1;;;10577:3:1;10562:19;10555:35;10474:3;9616:980;-1:-1:-1;;;9616:980:1:o

Swarm Source

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