ETH Price: $3,429.27 (+11.53%)
Gas: 70 Gwei

Token

Bellyrub Inu ($BRINU)
 

Overview

Max Total Supply

1,000,000,000 $BRINU

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,761,391.378634949 $BRINU

Value
$0.00
0x6e9cd8864a04f5a799c1de68d5b738cd2ad70534
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:
BellyrubInu

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 50 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-30
*/

/* 

$BRINU is a digital token built on ethereum blockchain with a unique utility designed to belly rub holders giving the pleasure, sense of safety and trust  for their investment. This will be made possible by the various utilities to be introduced by the $BRINU team after launch. 

Telegram: https://t.me/bellyrubportal
Web : https://www.bellyrubinu.net
Discord: https://discord.gg/FSa7g2NZ
Twitter: http://twitter.com/bellyrubinu
Medium: https://link.medium.com/CvISoTJwoyb



*/


// SPDX-License-Identifier: Unlicensed


pragma solidity 0.8.17;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address public _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface 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 InterfaceLP {
    function sync() external;
}

contract BellyrubInu is Ownable, ERC20 {
    using SafeMath for uint256;

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

    string constant _name = "Bellyrub Inu";
    string constant _symbol = "$BRINU";
    uint8 constant _decimals = 9; 
  

    uint256 _totalSupply = 1 * 10**9 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply.mul(3).div(100);
    uint256 public _maxWalletToken = _totalSupply.mul(3).div(100);

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

    
    mapping (address => bool) isFeeexempt;
    mapping (address => bool) isTxLimitexempt;

    uint256 private liquidityFee    = 1;
    uint256 private marketingFee    = 2;
    uint256 private devFee          = 1;
    uint256 private teamFee         = 1; 
    uint256 private burnFee         = 0;
    uint256 public totalFee         = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 100; 

    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;
    
    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    
    bool public TradingOpen = false; 

    bool public abMode = false;
    mapping (address => bool) public isabed;   

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 10 / 1000; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeexempt[msg.sender] = true;
        isFeeexempt[devFeeReceiver] = true;
            
        isTxLimitexempt[msg.sender] = true;
        isTxLimitexempt[pair] = true;
        isTxLimitexempt[devFeeReceiver] = true;
        isTxLimitexempt[marketingFeeReceiver] = true;
        isTxLimitexempt[address(this)] = true;
        
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x9c20D743B04c380070098562fD9cDa33D84CFB55;
        devFeeReceiver = 0x93E817F9a9959C206D85Cd0798f9BDBdb2d24Fed;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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 setMaxWallet(uint256 maxWallPercent) external onlyOwner {
         require(_maxWalletToken >= _totalSupply / 1000); 
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 1000;
                
    }

    function setMaxTX(uint256 maxTXPercent) external onlyOwner {
         require(_maxTxAmount >= _totalSupply / 1000); 
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

      
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");
        
             if(abMode){
                require(isabed[recipient],"Not abed"); 
          }
        }
               
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver && recipient != marketingFeeReceiver && !isTxLimitexempt[recipient]){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        

        // Checks max transaction limit
        checkTxLimit(sender, amount); 

        if(shouldSwapBack()){ swapBack(); }
                    
         //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

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

        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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitexempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeexempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckETH(uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(teamFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

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

     function manualSend() external { 
             payable(autoLiquidityReceiver).transfer(address(this).balance);

    }

    function clearForeignToken(address tokenAddress, uint256 tokens) public returns (bool) {
               if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(autoLiquidityReceiver, tokens);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
          
    }

     function enableAB(bool _status) public onlyOwner {
        abMode = _status;
    }

    function manageAB(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isabed[addresses[i]] = status;
        }
    }

    function openTrading() public onlyOwner {
        TradingOpen = true;
        buyMultiplier = 500;
        sellMultiplier = 800;
        transferMultiplier = 1900;
    }

        
           
    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHdev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountETHdev}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function setTeamAddress(address holder, bool exempt) external onlyOwner {
        isFeeexempt[holder] = exempt;
        isTxLimitexempt[holder] = exempt;
    }

    
    function updateFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _devFee, uint256 _burnFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_devFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator / 5, "Fees can not be more than 20%"); 
    }

    function updateFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 antibot = 0;

    for(uint i=0; i < addresses.length; i++){
        antibot = antibot + tokens[i];
    }

    require(balanceOf(from) >= antibot, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}
  


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"abMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableAB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isabed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageAB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTeamAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a620006f8565b6200004290633b9aca0062000709565b6005556200007c6064620000686003600554620004c860201b6200135d1790919060201c565b6200055f60201b620013df1790919060201c565b600655620000a26064620000686003600554620004c860201b6200135d1790919060201c565b6007556001600c556002600d556001600e556001600f556000601055601054600e54600c54600d54600f54620000d9919062000723565b620000e5919062000723565b620000f1919062000723565b620000fd919062000723565b60115560646012819055601381905560148190556015819055601e601b55601c55601f805461ffff60a01b191690556021805460ff191660011790556005546103e8906200014d90600a62000709565b62000159919062000739565b6022553480156200016957600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000229573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024f91906200075c565b600280546001600160a01b0319166001600160a01b03928316179055601d546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d491906200075c565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000326573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034c91906200075c565b601f80546001600160a01b039283166001600160a01b031991821681178355601e805483169091179055306000818152600960209081526040808320601d54881684528252808320600019905533808452600a8352818420805460ff199081166001908117909255601880548b1687528487208054831684179055838752600b8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601780548b1687528487208054831684179055968652838620805490911690911790556016805487168217905584548616739c20d743b04c380070098562fd9cda33d84cfb5517909455855485167393e817f9a9959c206d85cd0798f9bdbdb2d24fed1790955560198054851684179055600354601a80549095169616959095179092556005548183526008855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007d7565b600082600003620004dc5750600062000559565b6000620004ea838562000709565b905082620004f9858362000739565b14620005565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200055683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005a960201b60201c565b60008183620005cd5760405162461bcd60e51b81526004016200054d919062000787565b506000620005dc848662000739565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200063c578160001904821115620006205762000620620005e5565b808516156200062e57918102915b93841c939080029062000600565b509250929050565b600082620006555750600162000559565b81620006645750600062000559565b81600181146200067d57600281146200068857620006a8565b600191505062000559565b60ff8411156200069c576200069c620005e5565b50506001821b62000559565b5060208310610133831016604e8410600b8410161715620006cd575081810a62000559565b620006d98383620005fb565b8060001904821115620006f057620006f0620005e5565b029392505050565b60006200055660ff84168362000644565b8082028115828204841417620005595762000559620005e5565b80820180821115620005595762000559620005e5565b6000826200075757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076f57600080fd5b81516001600160a01b03811681146200055657600080fd5b600060208083528351808285015260005b81811015620007b65785810183015185820160400152820162000798565b506000604082860101526040601f19601f8301168501019250505092915050565b6125d180620007e76000396000f3fe60806040526004361061022b5760003560e01c80637fd1938e11610124578063d51ed1c8116100a6578063d51ed1c814610652578063d78e139d14610672578063dc21a63614610692578063dc6500f4146106b2578063dd62ed3e146106d2578063f08bf67b14610718578063f0a9e36514610747578063f2fde38b14610767578063f429389014610787578063f887ea401461079c578063fc3843ef146107bc57600080fd5b80637fd1938e146104e8578063893d20e8146105095780638cc5510f146105305780638da5cb5b1461055057806395d89b411461056e578063992c58e41461059d578063a8aa1b31146105bd578063a9059cbb146105dd578063aba1193d146105fd578063b2bdfa7b1461061d578063c9567bf91461063d57600080fd5b80632b112e49116101ad5780632b112e49146103bc578063313ce567146103d1578063333c39a5146103ed578063571ac8b01461040d5780635d0044ca1461042d5780636ce46bc31461044d5780636ddd17131461046d57806370a0823114610487578063715018a6146104a757806378109e54146104bc5780637d1db4a5146104d257600080fd5b80630445b6671461023757806306fdde031461026057806308fd3d051461029e578063095ea7b3146102cf5780631161ae39146102ef57806318160ddd1461030f5780631ca0a28d146103245780631df4ccfc14610346578063201e79911461035c57806323b872dd1461037c5780632ad756721461039c57600080fd5b3661023257005b600080fd5b34801561024357600080fd5b5061024d60225481565b6040519081526020015b60405180910390f35b34801561026c57600080fd5b5060408051808201909152600c81526b42656c6c7972756220496e7560a01b60208201525b6040516102579190611fe8565b3480156102aa57600080fd5b50601f546102bf90600160a01b900460ff1681565b6040519015158152602001610257565b3480156102db57600080fd5b506102bf6102ea366004612052565b6107d1565b3480156102fb57600080fd5b506102bf61030a36600461207c565b61083e565b34801561031b57600080fd5b5060055461024d565b34801561033057600080fd5b5061034461033f3660046120ea565b610852565b005b34801561035257600080fd5b5061024d60115481565b34801561036857600080fd5b5061034461037736600461207c565b610a57565b34801561038857600080fd5b506102bf61039736600461216b565b610a8c565b3480156103a857600080fd5b506103446103b73660046121a7565b610b4e565b3480156103c857600080fd5b5061024d610bd7565b3480156103dd57600080fd5b5060405160098152602001610257565b3480156103f957600080fd5b5061034461040836600461220c565b610c20565b34801561041957600080fd5b506102bf610428366004612225565b610c89565b34801561043957600080fd5b5061034461044836600461220c565b610c97565b34801561045957600080fd5b50610344610468366004612240565b610d00565b34801561047957600080fd5b506021546102bf9060ff1681565b34801561049357600080fd5b5061024d6104a2366004612225565b610d3b565b3480156104b357600080fd5b50610344610d56565b3480156104c857600080fd5b5061024d60075481565b3480156104de57600080fd5b5061024d60065481565b3480156104f457600080fd5b50601f546102bf90600160a81b900460ff1681565b34801561051557600080fd5b506000546001600160a01b03165b604051610257919061226c565b34801561053c57600080fd5b5061034461054b36600461228e565b610dca565b34801561055c57600080fd5b506000546001600160a01b0316610523565b34801561057a57600080fd5b50604080518082019091526006815265244252494e5560d01b6020820152610291565b3480156105a957600080fd5b506103446105b83660046122c5565b610e32565b3480156105c957600080fd5b50601f54610523906001600160a01b031681565b3480156105e957600080fd5b506102bf6105f8366004612052565b610ef8565b34801561060957600080fd5b50610344610618366004612308565b610f05565b34801561062957600080fd5b50600054610523906001600160a01b031681565b34801561064957600080fd5b50610344610f46565b34801561065e57600080fd5b5061024d61066d36600461220c565b610f97565b34801561067e57600080fd5b5061034461068d36600461220c565b610fd7565b34801561069e57600080fd5b506103446106ad366004612326565b61102b565b3480156106be57600080fd5b506103446106cd36600461237d565b6110ca565b3480156106de57600080fd5b5061024d6106ed36600461239a565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561072457600080fd5b506102bf610733366004612225565b602080526000908152604090205460ff1681565b34801561075357600080fd5b506102bf610762366004612052565b611112565b34801561077357600080fd5b50610344610782366004612225565b611203565b34801561079357600080fd5b506103446112ed565b3480156107a857600080fd5b50601d54610523906001600160a01b031681565b3480156107c857600080fd5b50610344611329565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061082c9086815260200190565b60405180910390a35060015b92915050565b60008261084a83610f97565b119392505050565b6000546001600160a01b031633146108855760405162461bcd60e51b815260040161087c906123cd565b60405180910390fd5b6101f583106108ec5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b606482015260840161087c565b82811461094c5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b606482015260840161087c565b6000805b848110156109905783838281811061096a5761096a612402565b905060200201358261097c919061242e565b91508061098881612441565b915050610950565b508061099b87610d3b565b10156109e75760405162461bcd60e51b815260206004820152601b60248201527a139bdd08195b9bdd59da081d1bdad95b9cc81a5b881dd85b1b195d602a1b604482015260640161087c565b60005b84811015610a4e57610a3b87878784818110610a0857610a08612402565b9050602002016020810190610a1d9190612225565b868685818110610a2f57610a2f612402565b9050602002013561141e565b5080610a4681612441565b9150506109ea565b50505050505050565b6000546001600160a01b03163314610a815760405162461bcd60e51b815260040161087c906123cd565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610b39576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610b149184906114f2565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b4484848461152c565b90505b9392505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260040161087c906123cd565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610c1b90610bf3906001600160a01b0316610d3b565b600354610c1590610c0c906001600160a01b0316610d3b565b600554906118eb565b906118eb565b905090565b6000546001600160a01b03163314610c4a5760405162461bcd60e51b815260040161087c906123cd565b6103e8600554610c5a919061245a565b6006541015610c6857600080fd5b6103e881600554610c79919061247c565b610c83919061245a565b60065550565b6000610838826000196107d1565b6000546001600160a01b03163314610cc15760405162461bcd60e51b815260040161087c906123cd565b6103e8600554610cd1919061245a565b6007541015610cdf57600080fd5b6103e881600554610cf0919061247c565b610cfa919061245a565b60075550565b6000546001600160a01b03163314610d2a5760405162461bcd60e51b815260040161087c906123cd565b601391909155601491909155601555565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610d805760405162461bcd60e51b815260040161087c906123cd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610df45760405162461bcd60e51b815260040161087c906123cd565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b815260040161087c906123cd565b600c869055600f859055600d849055600e8390556010829055610e8d82610e87858188818c8c61192d565b9061192d565b6011556012819055610ea060058261245a565b60115410610ef05760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161087c565b505050505050565b6000610b4733848461152c565b6000546001600160a01b03163314610f2f5760405162461bcd60e51b815260040161087c906123cd565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610f705760405162461bcd60e51b815260040161087c906123cd565b601f805460ff60a01b1916600160a01b1790556101f460145561032060135561076c601555565b6000610838610fa4610bd7565b601f54610fd190610fca90600290610fc4906001600160a01b0316610d3b565b9061135d565b859061135d565b906113df565b60195447906001600160a01b03166108fc6064610ff4858561247c565b610ffe919061245a565b6040518115909202916000818181858888f19350505050158015611026573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146110555760405162461bcd60e51b815260040161087c906123cd565b60005b828110156110c457816020600086868581811061107757611077612402565b905060200201602081019061108c9190612225565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556110bd81612441565b9050611058565b50505050565b6000546001600160a01b031633146110f45760405162461bcd60e51b815260040161087c906123cd565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b60008160000361118c576040516370a0823160e01b81526001600160a01b038416906370a082319061114890309060040161226c565b602060405180830381865afa158015611165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111899190612493565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af11580156111df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4791906124ac565b6000546001600160a01b0316331461122d5760405162461bcd60e51b815260040161087c906123cd565b6001600160a01b0381166112925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161087c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611326573d6000803e3d6000fd5b50565b6000546001600160a01b031633146113535760405162461bcd60e51b815260040161087c906123cd565b61135b61198a565b565b60008260000361136f57506000610838565b600061137b838561247c565b905082611388858361245a565b14610b475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161087c565b6000610b4783836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611d71565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461146f9184906114f2565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461149e908361192d565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061257c833981519152906114e09086815260200190565b60405180910390a35060019392505050565b600081848411156115165760405162461bcd60e51b815260040161087c9190611fe8565b50600061152384866124c9565b95945050505050565b60235460009060ff161561154c5761154584848461141e565b9050610b47565b6001600160a01b03841660009081526001602052604090205460ff1615801561158e57506001600160a01b03831660009081526001602052604090205460ff16155b1561164757601f54600160a01b900460ff166115e35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161087c565b601f54600160a81b900460ff1615611647576001600160a01b038316600090815260208052604090205460ff166116475760405162461bcd60e51b8152602060048201526008602482015267139bdd081858995960c21b604482015260640161087c565b6001600160a01b03841660009081526001602052604090205460ff1615801561167957506001600160a01b0383163014155b801561169357506003546001600160a01b03848116911614155b80156116ad5750601f546001600160a01b03848116911614155b80156116c75750601a546001600160a01b03848116911614155b80156116e157506017546001600160a01b03848116911614155b801561170657506001600160a01b0383166000908152600b602052604090205460ff16155b1561179c57600061171684610d3b565b600754909150611726848361242e565b111561179a5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161087c565b505b6117a68483611d9f565b6117ae611e0c565b156117bb576117bb61198a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461180d9184906114f2565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061185a57506001600160a01b0384166000908152600a602052604090205460ff165b61186e57611869858486611e5b565b611870565b825b6001600160a01b038516600090815260086020526040902054909150611896908261192d565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061257c833981519152906118d89085815260200190565b60405180910390a3506001949350505050565b6000610b4783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f2565b60008061193a838561242e565b905083811015610b475760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015260640161087c565b6023805460ff19166001179055601b54601c546000916119a99161083e565b6119b557600c546119b8565b60005b905060006119dc6002610fd1601154610fd18660225461135d90919063ffffffff16565b905060006119f5826022546118eb90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611a2f57611a2f612402565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a6057611a60612402565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611aaa9086906000908790309042906004016124dc565b600060405180830381600087803b158015611ac457600080fd5b505af1158015611ad8573d6000803e3d6000fd5b505050506000611af182476118eb90919063ffffffff16565b90506000611b0c611b038860026113df565b601154906118eb565b90506000611b216002610fd18481878d61135d565b90506000611b3e83610fd1600d548761135d90919063ffffffff16565b90506000611b5b84610fd1600f548861135d90919063ffffffff16565b90506000611b7885610fd1600e548961135d90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611bca576040519150601f19603f3d011682016040523d82523d6000602084013e611bcf565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611c1f576040519150601f19603f3d011682016040523d82523d6000602084013e611c24565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611c74576040519150601f19603f3d011682016040523d82523d6000602084013e611c79565b606091505b5060009250508b159050611d5957601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611cf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d1c919061254d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611d925760405162461bcd60e51b815260040161087c9190611fe8565b506000611523848661245a565b60065481111580611dc857506001600160a01b0382166000908152600b602052604090205460ff165b611e085760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161087c565b5050565b601f546000906001600160a01b03163314801590611e2d575060235460ff16155b8015611e3b575060215460ff165b8015610c1b57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611e815750601354611e9c565b601f546001600160a01b0390811690861603611e9c57506014545b6000611ec96012546064611eb0919061247c565b610fd184610fc46011548a61135d90919063ffffffff16565b90506000611ee8601154610fd16010548561135d90919063ffffffff16565b90506000611ef683836118eb565b30600090815260086020526040902054909150611f13908261192d565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611f41908361192d565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061257c833981519152910160405180910390a38115611fd257600554611f9b90836118eb565b6005556004546040518381526001600160a01b03918216918a169060008051602061257c8339815191529060200160405180910390a35b611fdc87846118eb565b98975050505050505050565b600060208083528351808285015260005b8181101561201557858101830151858201604001528201611ff9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461204d57600080fd5b919050565b6000806040838503121561206557600080fd5b61206e83612036565b946020939093013593505050565b6000806040838503121561208f57600080fd5b50508035926020909101359150565b60008083601f8401126120b057600080fd5b50813567ffffffffffffffff8111156120c857600080fd5b6020830191508360208260051b85010111156120e357600080fd5b9250929050565b60008060008060006060868803121561210257600080fd5b61210b86612036565b9450602086013567ffffffffffffffff8082111561212857600080fd5b61213489838a0161209e565b9096509450604088013591508082111561214d57600080fd5b5061215a8882890161209e565b969995985093965092949392505050565b60008060006060848603121561218057600080fd5b61218984612036565b925061219760208501612036565b9150604084013590509250925092565b600080600080600060a086880312156121bf57600080fd5b6121c886612036565b94506121d660208701612036565b93506121e460408701612036565b92506121f260608701612036565b915061220060808701612036565b90509295509295909350565b60006020828403121561221e57600080fd5b5035919050565b60006020828403121561223757600080fd5b610b4782612036565b60008060006060848603121561225557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0391909116815260200190565b801515811461132657600080fd5b600080604083850312156122a157600080fd5b6122aa83612036565b915060208301356122ba81612280565b809150509250929050565b60008060008060008060c087890312156122de57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561231b57600080fd5b823561206e81612280565b60008060006040848603121561233b57600080fd5b833567ffffffffffffffff81111561235257600080fd5b61235e8682870161209e565b909450925050602084013561237281612280565b809150509250925092565b60006020828403121561238f57600080fd5b8135610b4781612280565b600080604083850312156123ad57600080fd5b6123b683612036565b91506123c460208401612036565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561083857610838612418565b60006001820161245357612453612418565b5060010190565b60008261247757634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761083857610838612418565b6000602082840312156124a557600080fd5b5051919050565b6000602082840312156124be57600080fd5b8151610b4781612280565b8181038181111561083857610838612418565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561252c5784516001600160a01b031683529383019391830191600101612507565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561256257600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122077c680a28008aeb60407b8cac7c5175a202dbd337ee1fc688d783b8a6ab6df5e64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061022b5760003560e01c80637fd1938e11610124578063d51ed1c8116100a6578063d51ed1c814610652578063d78e139d14610672578063dc21a63614610692578063dc6500f4146106b2578063dd62ed3e146106d2578063f08bf67b14610718578063f0a9e36514610747578063f2fde38b14610767578063f429389014610787578063f887ea401461079c578063fc3843ef146107bc57600080fd5b80637fd1938e146104e8578063893d20e8146105095780638cc5510f146105305780638da5cb5b1461055057806395d89b411461056e578063992c58e41461059d578063a8aa1b31146105bd578063a9059cbb146105dd578063aba1193d146105fd578063b2bdfa7b1461061d578063c9567bf91461063d57600080fd5b80632b112e49116101ad5780632b112e49146103bc578063313ce567146103d1578063333c39a5146103ed578063571ac8b01461040d5780635d0044ca1461042d5780636ce46bc31461044d5780636ddd17131461046d57806370a0823114610487578063715018a6146104a757806378109e54146104bc5780637d1db4a5146104d257600080fd5b80630445b6671461023757806306fdde031461026057806308fd3d051461029e578063095ea7b3146102cf5780631161ae39146102ef57806318160ddd1461030f5780631ca0a28d146103245780631df4ccfc14610346578063201e79911461035c57806323b872dd1461037c5780632ad756721461039c57600080fd5b3661023257005b600080fd5b34801561024357600080fd5b5061024d60225481565b6040519081526020015b60405180910390f35b34801561026c57600080fd5b5060408051808201909152600c81526b42656c6c7972756220496e7560a01b60208201525b6040516102579190611fe8565b3480156102aa57600080fd5b50601f546102bf90600160a01b900460ff1681565b6040519015158152602001610257565b3480156102db57600080fd5b506102bf6102ea366004612052565b6107d1565b3480156102fb57600080fd5b506102bf61030a36600461207c565b61083e565b34801561031b57600080fd5b5060055461024d565b34801561033057600080fd5b5061034461033f3660046120ea565b610852565b005b34801561035257600080fd5b5061024d60115481565b34801561036857600080fd5b5061034461037736600461207c565b610a57565b34801561038857600080fd5b506102bf61039736600461216b565b610a8c565b3480156103a857600080fd5b506103446103b73660046121a7565b610b4e565b3480156103c857600080fd5b5061024d610bd7565b3480156103dd57600080fd5b5060405160098152602001610257565b3480156103f957600080fd5b5061034461040836600461220c565b610c20565b34801561041957600080fd5b506102bf610428366004612225565b610c89565b34801561043957600080fd5b5061034461044836600461220c565b610c97565b34801561045957600080fd5b50610344610468366004612240565b610d00565b34801561047957600080fd5b506021546102bf9060ff1681565b34801561049357600080fd5b5061024d6104a2366004612225565b610d3b565b3480156104b357600080fd5b50610344610d56565b3480156104c857600080fd5b5061024d60075481565b3480156104de57600080fd5b5061024d60065481565b3480156104f457600080fd5b50601f546102bf90600160a81b900460ff1681565b34801561051557600080fd5b506000546001600160a01b03165b604051610257919061226c565b34801561053c57600080fd5b5061034461054b36600461228e565b610dca565b34801561055c57600080fd5b506000546001600160a01b0316610523565b34801561057a57600080fd5b50604080518082019091526006815265244252494e5560d01b6020820152610291565b3480156105a957600080fd5b506103446105b83660046122c5565b610e32565b3480156105c957600080fd5b50601f54610523906001600160a01b031681565b3480156105e957600080fd5b506102bf6105f8366004612052565b610ef8565b34801561060957600080fd5b50610344610618366004612308565b610f05565b34801561062957600080fd5b50600054610523906001600160a01b031681565b34801561064957600080fd5b50610344610f46565b34801561065e57600080fd5b5061024d61066d36600461220c565b610f97565b34801561067e57600080fd5b5061034461068d36600461220c565b610fd7565b34801561069e57600080fd5b506103446106ad366004612326565b61102b565b3480156106be57600080fd5b506103446106cd36600461237d565b6110ca565b3480156106de57600080fd5b5061024d6106ed36600461239a565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561072457600080fd5b506102bf610733366004612225565b602080526000908152604090205460ff1681565b34801561075357600080fd5b506102bf610762366004612052565b611112565b34801561077357600080fd5b50610344610782366004612225565b611203565b34801561079357600080fd5b506103446112ed565b3480156107a857600080fd5b50601d54610523906001600160a01b031681565b3480156107c857600080fd5b50610344611329565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061082c9086815260200190565b60405180910390a35060015b92915050565b60008261084a83610f97565b119392505050565b6000546001600160a01b031633146108855760405162461bcd60e51b815260040161087c906123cd565b60405180910390fd5b6101f583106108ec5760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b606482015260840161087c565b82811461094c5760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b606482015260840161087c565b6000805b848110156109905783838281811061096a5761096a612402565b905060200201358261097c919061242e565b91508061098881612441565b915050610950565b508061099b87610d3b565b10156109e75760405162461bcd60e51b815260206004820152601b60248201527a139bdd08195b9bdd59da081d1bdad95b9cc81a5b881dd85b1b195d602a1b604482015260640161087c565b60005b84811015610a4e57610a3b87878784818110610a0857610a08612402565b9050602002016020810190610a1d9190612225565b868685818110610a2f57610a2f612402565b9050602002013561141e565b5080610a4681612441565b9150506109ea565b50505050505050565b6000546001600160a01b03163314610a815760405162461bcd60e51b815260040161087c906123cd565b601b91909155601c55565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610b39576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610b149184906114f2565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610b4484848461152c565b90505b9392505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260040161087c906123cd565b601680546001600160a01b03199081166001600160a01b03978816179091556017805482169587169590951790945560188054851693861693909317909255601a80548416918516919091179055601980549092169216919091179055565b600454600090610c1b90610bf3906001600160a01b0316610d3b565b600354610c1590610c0c906001600160a01b0316610d3b565b600554906118eb565b906118eb565b905090565b6000546001600160a01b03163314610c4a5760405162461bcd60e51b815260040161087c906123cd565b6103e8600554610c5a919061245a565b6006541015610c6857600080fd5b6103e881600554610c79919061247c565b610c83919061245a565b60065550565b6000610838826000196107d1565b6000546001600160a01b03163314610cc15760405162461bcd60e51b815260040161087c906123cd565b6103e8600554610cd1919061245a565b6007541015610cdf57600080fd5b6103e881600554610cf0919061247c565b610cfa919061245a565b60075550565b6000546001600160a01b03163314610d2a5760405162461bcd60e51b815260040161087c906123cd565b601391909155601491909155601555565b6001600160a01b031660009081526008602052604090205490565b6000546001600160a01b03163314610d805760405162461bcd60e51b815260040161087c906123cd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610df45760405162461bcd60e51b815260040161087c906123cd565b6001600160a01b039091166000908152600a60209081526040808320805494151560ff199586168117909155600b9092529091208054909216179055565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b815260040161087c906123cd565b600c869055600f859055600d849055600e8390556010829055610e8d82610e87858188818c8c61192d565b9061192d565b6011556012819055610ea060058261245a565b60115410610ef05760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e206e6f74206265206d6f7265207468616e20323025000000604482015260640161087c565b505050505050565b6000610b4733848461152c565b6000546001600160a01b03163314610f2f5760405162461bcd60e51b815260040161087c906123cd565b6021805460ff191692151592909217909155602255565b6000546001600160a01b03163314610f705760405162461bcd60e51b815260040161087c906123cd565b601f805460ff60a01b1916600160a01b1790556101f460145561032060135561076c601555565b6000610838610fa4610bd7565b601f54610fd190610fca90600290610fc4906001600160a01b0316610d3b565b9061135d565b859061135d565b906113df565b60195447906001600160a01b03166108fc6064610ff4858561247c565b610ffe919061245a565b6040518115909202916000818181858888f19350505050158015611026573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146110555760405162461bcd60e51b815260040161087c906123cd565b60005b828110156110c457816020600086868581811061107757611077612402565b905060200201602081019061108c9190612225565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556110bd81612441565b9050611058565b50505050565b6000546001600160a01b031633146110f45760405162461bcd60e51b815260040161087c906123cd565b601f8054911515600160a81b0260ff60a81b19909216919091179055565b60008160000361118c576040516370a0823160e01b81526001600160a01b038416906370a082319061114890309060040161226c565b602060405180830381865afa158015611165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111899190612493565b91505b60165460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af11580156111df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4791906124ac565b6000546001600160a01b0316331461122d5760405162461bcd60e51b815260040161087c906123cd565b6001600160a01b0381166112925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161087c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6016546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611326573d6000803e3d6000fd5b50565b6000546001600160a01b031633146113535760405162461bcd60e51b815260040161087c906123cd565b61135b61198a565b565b60008260000361136f57506000610838565b600061137b838561247c565b905082611388858361245a565b14610b475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161087c565b6000610b4783836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250611d71565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461146f9184906114f2565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461149e908361192d565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061257c833981519152906114e09086815260200190565b60405180910390a35060019392505050565b600081848411156115165760405162461bcd60e51b815260040161087c9190611fe8565b50600061152384866124c9565b95945050505050565b60235460009060ff161561154c5761154584848461141e565b9050610b47565b6001600160a01b03841660009081526001602052604090205460ff1615801561158e57506001600160a01b03831660009081526001602052604090205460ff16155b1561164757601f54600160a01b900460ff166115e35760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161087c565b601f54600160a81b900460ff1615611647576001600160a01b038316600090815260208052604090205460ff166116475760405162461bcd60e51b8152602060048201526008602482015267139bdd081858995960c21b604482015260640161087c565b6001600160a01b03841660009081526001602052604090205460ff1615801561167957506001600160a01b0383163014155b801561169357506003546001600160a01b03848116911614155b80156116ad5750601f546001600160a01b03848116911614155b80156116c75750601a546001600160a01b03848116911614155b80156116e157506017546001600160a01b03848116911614155b801561170657506001600160a01b0383166000908152600b602052604090205460ff16155b1561179c57600061171684610d3b565b600754909150611726848361242e565b111561179a5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000606482015260840161087c565b505b6117a68483611d9f565b6117ae611e0c565b156117bb576117bb61198a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461180d9184906114f2565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff168061185a57506001600160a01b0384166000908152600a602052604090205460ff165b61186e57611869858486611e5b565b611870565b825b6001600160a01b038516600090815260086020526040902054909150611896908261192d565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061257c833981519152906118d89085815260200190565b60405180910390a3506001949350505050565b6000610b4783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f2565b60008061193a838561242e565b905083811015610b475760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015260640161087c565b6023805460ff19166001179055601b54601c546000916119a99161083e565b6119b557600c546119b8565b60005b905060006119dc6002610fd1601154610fd18660225461135d90919063ffffffff16565b905060006119f5826022546118eb90919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611a2f57611a2f612402565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a6057611a60612402565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac94790611aaa9086906000908790309042906004016124dc565b600060405180830381600087803b158015611ac457600080fd5b505af1158015611ad8573d6000803e3d6000fd5b505050506000611af182476118eb90919063ffffffff16565b90506000611b0c611b038860026113df565b601154906118eb565b90506000611b216002610fd18481878d61135d565b90506000611b3e83610fd1600d548761135d90919063ffffffff16565b90506000611b5b84610fd1600f548861135d90919063ffffffff16565b90506000611b7885610fd1600e548961135d90919063ffffffff16565b6017546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611bca576040519150601f19603f3d011682016040523d82523d6000602084013e611bcf565b606091505b50506018546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611c1f576040519150601f19603f3d011682016040523d82523d6000602084013e611c24565b606091505b50506019546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611c74576040519150601f19603f3d011682016040523d82523d6000602084013e611c79565b606091505b5060009250508b159050611d5957601d5460165460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611cf7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d1c919061254d565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506023805460ff1916905550505050505050505050565b60008183611d925760405162461bcd60e51b815260040161087c9190611fe8565b506000611523848661245a565b60065481111580611dc857506001600160a01b0382166000908152600b602052604090205460ff165b611e085760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161087c565b5050565b601f546000906001600160a01b03163314801590611e2d575060235460ff16155b8015611e3b575060215460ff165b8015610c1b57505060225430600090815260086020526040902054101590565b601554601f54600091906001600160a01b0390811690841603611e815750601354611e9c565b601f546001600160a01b0390811690861603611e9c57506014545b6000611ec96012546064611eb0919061247c565b610fd184610fc46011548a61135d90919063ffffffff16565b90506000611ee8601154610fd16010548561135d90919063ffffffff16565b90506000611ef683836118eb565b30600090815260086020526040902054909150611f13908261192d565b3060009081526008602052604080822092909255601a546001600160a01b031681522054611f41908361192d565b601a546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b169160008051602061257c833981519152910160405180910390a38115611fd257600554611f9b90836118eb565b6005556004546040518381526001600160a01b03918216918a169060008051602061257c8339815191529060200160405180910390a35b611fdc87846118eb565b98975050505050505050565b600060208083528351808285015260005b8181101561201557858101830151858201604001528201611ff9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461204d57600080fd5b919050565b6000806040838503121561206557600080fd5b61206e83612036565b946020939093013593505050565b6000806040838503121561208f57600080fd5b50508035926020909101359150565b60008083601f8401126120b057600080fd5b50813567ffffffffffffffff8111156120c857600080fd5b6020830191508360208260051b85010111156120e357600080fd5b9250929050565b60008060008060006060868803121561210257600080fd5b61210b86612036565b9450602086013567ffffffffffffffff8082111561212857600080fd5b61213489838a0161209e565b9096509450604088013591508082111561214d57600080fd5b5061215a8882890161209e565b969995985093965092949392505050565b60008060006060848603121561218057600080fd5b61218984612036565b925061219760208501612036565b9150604084013590509250925092565b600080600080600060a086880312156121bf57600080fd5b6121c886612036565b94506121d660208701612036565b93506121e460408701612036565b92506121f260608701612036565b915061220060808701612036565b90509295509295909350565b60006020828403121561221e57600080fd5b5035919050565b60006020828403121561223757600080fd5b610b4782612036565b60008060006060848603121561225557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0391909116815260200190565b801515811461132657600080fd5b600080604083850312156122a157600080fd5b6122aa83612036565b915060208301356122ba81612280565b809150509250929050565b60008060008060008060c087890312156122de57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806040838503121561231b57600080fd5b823561206e81612280565b60008060006040848603121561233b57600080fd5b833567ffffffffffffffff81111561235257600080fd5b61235e8682870161209e565b909450925050602084013561237281612280565b809150509250925092565b60006020828403121561238f57600080fd5b8135610b4781612280565b600080604083850312156123ad57600080fd5b6123b683612036565b91506123c460208401612036565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561083857610838612418565b60006001820161245357612453612418565b5060010190565b60008261247757634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761083857610838612418565b6000602082840312156124a557600080fd5b5051919050565b6000602082840312156124be57600080fd5b8151610b4781612280565b8181038181111561083857610838612418565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561252c5784516001600160a01b031683529383019391830191600101612507565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561256257600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122077c680a28008aeb60407b8cac7c5175a202dbd337ee1fc688d783b8a6ab6df5e64736f6c63430008110033

Deployed Bytecode Sourcemap

5482:14368:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7272:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7272:55:0;;;;;;;;8806:80;;;;;;;;;;-1:-1:-1;8878:5:0;;;;;;;;;;;;-1:-1:-1;;;8878:5:0;;;;8806:80;;;;;;;:::i;7110:31::-;;;;;;;;;;-1:-1:-1;7110:31:0;;;;-1:-1:-1;;;7110:31:0;;;;;;;;;914:14:1;;907:22;889:41;;877:2;862:18;7110:31:0;749:187:1;9228:216:0;;;;;;;;;;-1:-1:-1;9228:216:0;;;;;:::i;:::-;;:::i;19016:150::-;;;;;;;;;;-1:-1:-1;19016:150:0;;;;;:::i;:::-;;:::i;8536:88::-;;;;;;;;;;-1:-1:-1;8609:12:0;;8536:88;;19170:606;;;;;;;;;;-1:-1:-1;19170:606:0;;;;;:::i;:::-;;:::i;:::-;;6464:90;;;;;;;;;;;;;;;;18497:182;;;;;;;;;;-1:-1:-1;18497:182:0;;;;;:::i;:::-;;:::i;9746:370::-;;;;;;;;;;-1:-1:-1;9746:370:0;;;;;:::i;:::-;;:::i;17886:440::-;;;;;;;;;;-1:-1:-1;17886:440:0;;;;;:::i;:::-;;:::i;18691:142::-;;;;;;;;;;;;;:::i;8630:80::-;;;;;;;;;;-1:-1:-1;8630:80:0;;5831:1;3819:36:1;;3807:2;3792:18;8630:80:0;3677:184:1;10355:187:0;;;;;;;;;;-1:-1:-1;10355:187:0;;;;;:::i;:::-;;:::i;9452:122::-;;;;;;;;;;-1:-1:-1;9452:122:0;;;;;:::i;:::-;;:::i;10128:219::-;;;;;;;;;;-1:-1:-1;10128:219:0;;;;;:::i;:::-;;:::i;14555:214::-;;;;;;;;;;-1:-1:-1;14555:214:0;;;;;:::i;:::-;;:::i;7235:30::-;;;;;;;;;;-1:-1:-1;7235:30:0;;;;;;;;8976:105;;;;;;;;;;-1:-1:-1;8976:105:0;;;;;:::i;:::-;;:::i;3539:148::-;;;;;;;;;;;;;:::i;5968:61::-;;;;;;;;;;;;;;;;5903:58;;;;;;;;;;;;;;;;7151:26;;;;;;;;;;-1:-1:-1;7151:26:0;;;;-1:-1:-1;;;7151:26:0;;;;;;8892:78;;;;;;;;;;-1:-1:-1;8944:7:0;3390:6;-1:-1:-1;;;;;3390:6:0;8892:78;;;;;;;:::i;17147:162::-;;;;;;;;;;-1:-1:-1;17147:162:0;;;;;:::i;:::-;;:::i;3325:79::-;;;;;;;;;;-1:-1:-1;3363:7:0;3390:6;-1:-1:-1;;;;;3390:6:0;3325:79;;8716:84;;;;;;;;;;-1:-1:-1;8790:7:0;;;;;;;;;;;;-1:-1:-1;;;8790:7:0;;;;8716:84;;17323:555;;;;;;;;;;-1:-1:-1;17323:555:0;;;;;:::i;:::-;;:::i;7078:19::-;;;;;;;;;;-1:-1:-1;7078:19:0;;;;-1:-1:-1;;;;;7078:19:0;;;9582:156;;;;;;;;;;-1:-1:-1;9582:156:0;;;;;:::i;:::-;;:::i;18334:155::-;;;;;;;;;;-1:-1:-1;18334:155:0;;;;;:::i;:::-;;:::i;2945:21::-;;;;;;;;;;-1:-1:-1;2945:21:0;;;;-1:-1:-1;;;;;2945:21:0;;;15073:174;;;;;;;;;;;;;:::i;18841:167::-;;;;;;;;;;-1:-1:-1;18841:167:0;;;;;:::i;:::-;;:::i;13836:198::-;;;;;;;;;;-1:-1:-1;13836:198:0;;;;;:::i;:::-;;:::i;14870:195::-;;;;;;;;;;-1:-1:-1;14870:195:0;;;;;:::i;:::-;;:::i;14778:84::-;;;;;;;;;;-1:-1:-1;14778:84:0;;;;;:::i;:::-;;:::i;9087:133::-;;;;;;;;;;-1:-1:-1;9087:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9189:19:0;;;9171:7;9189:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9087:133;7184:39;;;;;;;;;;-1:-1:-1;7184:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14263:284;;;;;;;;;;-1:-1:-1;14263:284:0;;;;;:::i;:::-;;:::i;3695:244::-;;;;;;;;;;-1:-1:-1;3695:244:0;;;;;:::i;:::-;;:::i;14135:120::-;;;;;;;;;;;;;:::i;7008:24::-;;;;;;;;;;-1:-1:-1;7008:24:0;;;;-1:-1:-1;;;;;7008:24:0;;;14043:83;;;;;;;;;;;;;:::i;9228:216::-;9332:10;9303:4;9320:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9320:32:0;;;;;;;;;;:41;;;9377:37;9303:4;;9320:32;;9377:37;;;;9355:6;160:25:1;;148:2;133:18;;14:177;9377:37:0;;;;;;;;-1:-1:-1;9432:4:0;9228:216;;;;;:::o;19016:150::-;19096:4;19152:6;19120:29;19140:8;19120:19;:29::i;:::-;:38;;19016:150;-1:-1:-1;;;19016:150:0:o;19170:606::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;;;;;;;;;19319:3:::1;19300:22:::0;::::1;19292:79;;;::::0;-1:-1:-1;;;19292:79:0;;7927:2:1;19292:79:0::1;::::0;::::1;7909:21:1::0;7966:2;7946:18;;;7939:30;8005:34;7985:18;;;7978:62;-1:-1:-1;;;8056:18:1;;;8049:43;8109:19;;19292:79:0::1;7725:409:1::0;19292:79:0::1;19386:33:::0;;::::1;19378:85;;;::::0;-1:-1:-1;;;19378:85:0;;8341:2:1;19378:85:0::1;::::0;::::1;8323:21:1::0;8380:2;8360:18;;;8353:30;8419:34;8399:18;;;8392:62;-1:-1:-1;;;8470:18:1;;;8463:38;8518:19;;19378:85:0::1;8139:404:1::0;19378:85:0::1;19472:15;19504:6:::0;19500:88:::1;19514:20:::0;;::::1;19500:88;;;19571:6;;19578:1;19571:9;;;;;;;:::i;:::-;;;;;;;19561:7;:19;;;;:::i;:::-;19551:29:::0;-1:-1:-1;19536:3:0;::::1;::::0;::::1;:::i;:::-;;;;19500:88;;;;19623:7;19604:15;19614:4;19604:9;:15::i;:::-;:26;;19596:66;;;::::0;-1:-1:-1;;;19596:66:0;;9284:2:1;19596:66:0::1;::::0;::::1;9266:21:1::0;9323:2;9303:18;;;9296:30;-1:-1:-1;;;9342:18:1;;;9335:57;9409:18;;19596:66:0::1;9082:351:1::0;19596:66:0::1;19675:6;19671:102;19685:20:::0;;::::1;19671:102;;;19722:43;19737:4;19742:9;;19752:1;19742:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;19755:6;;19762:1;19755:9;;;;;;;:::i;:::-;;;;;;;19722:14;:43::i;:::-;-1:-1:-1::0;19707:3:0;::::1;::::0;::::1;:::i;:::-;;;;19671:102;;;;19283:493;19170:606:::0;;;;;:::o;18497:182::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;18594:15:::1;:25:::0;;;;18630:26:::1;:41:::0;18497:182::o;9746:370::-;-1:-1:-1;;;;;9866:19:0;;9846:4;9866:19;;;:11;:19;;;;;;;;9886:10;9866:31;;;;;;;;-1:-1:-1;;9866:52:0;9863:186;;9968:69;;;;;;;;;;;-1:-1:-1;;;9968:69:0;;;;;;;;-1:-1:-1;;;;;9968:19:0;;-1:-1:-1;9968:19:0;;;:11;:19;;;;;9988:10;9968:31;;;;;;;;;;:69;;10004:6;;9968:35;:69::i;:::-;-1:-1:-1;;;;;9934:19:0;;;;;;:11;:19;;;;;;;;9954:10;9934:31;;;;;;;:103;9863:186;10068:40;10082:6;10090:9;10101:6;10068:13;:40::i;:::-;10061:47;;9746:370;;;;;;:::o;17886:440::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;18084:21:::1;:46:::0;;-1:-1:-1;;;;;;18084:46:0;;::::1;-1:-1:-1::0;;;;;18084:46:0;;::::1;;::::0;;;18141:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18196:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18239:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18284:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17886:440::o;18691:142::-;18819:4;;18744:7;;18771:54;;18809:15;;-1:-1:-1;;;;;18819:4:0;18809:9;:15::i;:::-;18798:4;;18771:33;;18788:15;;-1:-1:-1;;;;;18798:4:0;18788:9;:15::i;:::-;18771:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18764:61;;18691:142;:::o;10355:187::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;10465:4:::1;10450:12;;:19;;;;:::i;:::-;10434:12;;:35;;10426:44;;;::::0;::::1;;10530:4;10513:12;10498;;:27;;;;:::i;:::-;10497:37;;;;:::i;:::-;10482:12;:52:::0;-1:-1:-1;10355:187:0:o;9452:122::-;9507:4;9531:35;9539:7;-1:-1:-1;;9531:7:0;:35::i;10128:219::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;10247:4:::1;10232:12;;:19;;;;:::i;:::-;10213:15;;:38;;10205:47;;;::::0;::::1;;10317:4;10298:14;10283:12;;:29;;;;:::i;:::-;10282:39;;;;:::i;:::-;10264:15;:57:::0;-1:-1:-1;10128:219:0:o;14555:214::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;14654:14:::1;:22:::0;;;;14687:13:::1;:20:::0;;;;14718:18:::1;:27:::0;14555:214::o;8976:105::-;-1:-1:-1;;;;;9060:18:0;9042:7;9060:18;;;:9;:18;;;;;;;8976:105::o;3539:148::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;3646:1:::1;3630:6:::0;;3609:40:::1;::::0;-1:-1:-1;;;;;3630:6:0;;::::1;::::0;3609:40:::1;::::0;3646:1;;3609:40:::1;3677:1;3660:19:::0;;-1:-1:-1;;;;;;3660:19:0::1;::::0;;3539:148::o;17147:162::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17230:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;17230:28:0;;::::1;::::0;::::1;::::0;;;17269:15:::1;:23:::0;;;;;;:32;;;;::::1;;::::0;;17147:162::o;17323:555::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;17497:12:::1;:28:::0;;;17536:7:::1;:18:::0;;;17565:12:::1;:28:::0;;;17604:6:::1;:16:::0;;;17631:7:::1;:18:::0;;;17671:73:::1;17641:8:::0;17671:59:::1;17613:7:::0;17671:59;17580:13;17671:59;17512:13;17546:8;17671:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17660:8;:84:::0;17755:14:::1;:32:::0;;;17817:18:::1;17834:1;17772:15:::0;17817:18:::1;:::i;:::-;17806:8;;:29;17798:71;;;::::0;-1:-1:-1;;;17798:71:0;;10035:2:1;17798:71:0::1;::::0;::::1;10017:21:1::0;10074:2;10054:18;;;10047:30;10113:31;10093:18;;;10086:59;10162:18;;17798:71:0::1;9833:353:1::0;17798:71:0::1;17323:555:::0;;;;;;:::o;9582:156::-;9662:4;9686:44;9700:10;9712:9;9723:6;9686:13;:44::i;18334:155::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;18425:11:::1;:22:::0;;-1:-1:-1;;18425:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;18458:13:::1;:23:::0;18334:155::o;15073:174::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;15124:11:::1;:18:::0;;-1:-1:-1;;;;15124:18:0::1;-1:-1:-1::0;;;15124:18:0::1;::::0;;15169:3:::1;15124:11;15153:19:::0;15200:3:::1;15183:14;:20:::0;15235:4:::1;15214:18;:25:::0;15073:174::o;18841:167::-;18909:7;18936:64;18977:22;:20;:22::i;:::-;18959:4;;18936:36;;18949:22;;18969:1;;18949:15;;-1:-1:-1;;;;;18959:4:0;18949:9;:15::i;:::-;:19;;:22::i;:::-;18936:8;;:12;:36::i;:::-;:40;;:64::i;13836:198::-;13965:15;;13925:21;;-1:-1:-1;;;;;13965:15:0;13957:69;14022:3;13991:28;14003:16;13925:21;13991:28;:::i;:::-;:34;;;;:::i;:::-;13957:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13894:140;13836:198;:::o;14870:195::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;14964:9:::1;14959:99;14975:20:::0;;::::1;14959:99;;;15040:6;15017;:20;15024:9;;15034:1;15024:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15017:20:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15017:20:0;:29;;-1:-1:-1;;15017:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14997:3:::1;::::0;::::1;:::i;:::-;;;14959:99;;;;14870:195:::0;;;:::o;14778:84::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;14838:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;14838:16:0::1;-1:-1:-1::0;;;;14838:16:0;;::::1;::::0;;;::::1;::::0;;14778:84::o;14263:284::-;14344:4;14371:6;14381:1;14371:11;14368:95;;14407:44;;-1:-1:-1;;;14407:44:0;;-1:-1:-1;;;;;14407:29:0;;;;;:44;;14445:4;;14407:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14398:53;;14368:95;14509:21;;14480:59;;-1:-1:-1;;;14480:59:0;;-1:-1:-1;;;;;14509:21:0;;;14480:59;;;10554:51:1;10621:18;;;10614:34;;;14480:28:0;;;;;;10527:18:1;;14480:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3695:244::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3784:22:0;::::1;3776:73;;;::::0;-1:-1:-1;;;3776:73:0;;11111:2:1;3776:73:0::1;::::0;::::1;11093:21:1::0;11150:2;11130:18;;;11123:30;11189:34;11169:18;;;11162:62;-1:-1:-1;;;11240:18:1;;;11233:36;11286:19;;3776:73:0::1;10909:402:1::0;3776:73:0::1;3886:6;::::0;;3865:38:::1;::::0;-1:-1:-1;;;;;3865:38:0;;::::1;::::0;3886:6;::::1;::::0;3865:38:::1;::::0;::::1;3914:6;:17:::0;;-1:-1:-1;;;;;;3914:17:0::1;-1:-1:-1::0;;;;;3914:17:0;;;::::1;::::0;;;::::1;::::0;;3695:244::o;14135:120::-;14191:21;;14183:62;;-1:-1:-1;;;;;14191:21:0;;;;14223;14183:62;;;;;14191:21;14183:62;14191:21;14183:62;14223:21;14191;14183:62;;;;;;;;;;;;;;;;;;;;;14135:120::o;14043:83::-;3452:6;;-1:-1:-1;;;;;3452:6:0;2762:10;3452:22;3444:67;;;;-1:-1:-1;;;3444:67:0;;;;;;;:::i;:::-;14102:10:::1;:8;:10::i;:::-;14043:83::o:0;1124:250::-;1182:7;1206:1;1211;1206:6;1202:47;;-1:-1:-1;1236:1:0;1229:8;;1202:47;1261:9;1273:5;1277:1;1273;:5;:::i;:::-;1261:17;-1:-1:-1;1306:1:0;1297:5;1301:1;1261:17;1297:5;:::i;:::-;:10;1289:56;;;;-1:-1:-1;;;1289:56:0;;11518:2:1;1289:56:0;;;11500:21:1;11557:2;11537:18;;;11530:30;11596:34;11576:18;;;11569:62;-1:-1:-1;;;11647:18:1;;;11640:31;11688:19;;1289:56:0;11316:397:1;1380:132:0;1438:7;1465:39;1469:1;1472;1465:39;;;;;;;;;;;;;-1:-1:-1;;;1465:39:0;;;:3;:39::i;11982:330::-;12112:53;;;;;;;;;;;-1:-1:-1;;;12112:53:0;;;;;;;;-1:-1:-1;;;;;12112:17:0;;12075:4;12112:17;;;:9;:17;;;;;;;:53;;12134:6;;12112:21;:53::i;:::-;-1:-1:-1;;;;;12092:17:0;;;;;;;:9;:17;;;;;;:73;;;;12199:20;;;;;;;:32;;12224:6;12199:24;:32::i;:::-;-1:-1:-1;;;;;12176:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12247:35;;;;;;-1:-1:-1;;;;;;;;;;;12247:35:0;;;12275:6;160:25:1;;148:2;133:18;;14:177;12247:35:0;;;;;;;;-1:-1:-1;12300:4:0;11982:330;;;;;:::o;926:192::-;1012:7;1048:12;1040:6;;;;1032:29;;;;-1:-1:-1;;;1032:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1072:9:0;1084:5;1088:1;1084;:5;:::i;:::-;1072:17;926:192;-1:-1:-1;;;;;926:192:0:o;10558:1412::-;10670:6;;10650:4;;10670:6;;10667:63;;;10686:41;10701:6;10709:9;10720:6;10686:14;:41::i;:::-;10679:48;;;;10667:63;-1:-1:-1;;;;;10746:22:0;;;;;;:14;:22;;;;;;;;10745:23;:53;;;;-1:-1:-1;;;;;;10773:25:0;;;;;;:14;:25;;;;;;;;10772:26;10745:53;10742:233;;;10822:11;;-1:-1:-1;;;10822:11:0;;;;10814:43;;;;-1:-1:-1;;;10814:43:0;;12053:2:1;10814:43:0;;;12035:21:1;12092:2;12072:18;;;12065:30;-1:-1:-1;;;12111:18:1;;;12104:50;12171:18;;10814:43:0;11851:344:1;10814:43:0;10886:6;;-1:-1:-1;;;10886:6:0;;;;10883:81;;;-1:-1:-1;;;;;10920:17:0;;;;;;:6;:17;;;;;;;;10912:37;;;;-1:-1:-1;;;10912:37:0;;12402:2:1;10912:37:0;;;12384:21:1;12441:1;12421:18;;;12414:29;-1:-1:-1;;;12459:18:1;;;12452:38;12507:18;;10912:37:0;12200:331:1;10912:37:0;-1:-1:-1;;;;;11007:22:0;;;;;;:14;:22;;;;;;;;11006:23;:53;;;;-1:-1:-1;;;;;;11033:26:0;;11054:4;11033:26;;11006:53;:84;;;;-1:-1:-1;11085:4:0;;-1:-1:-1;;;;;11064:26:0;;;11085:4;;11064:26;;11006:84;:105;;;;-1:-1:-1;11107:4:0;;-1:-1:-1;;;;;11094:17:0;;;11107:4;;11094:17;;11006:105;:137;;;;-1:-1:-1;11128:15:0;;-1:-1:-1;;;;;11115:28:0;;;11128:15;;11115:28;;11006:137;:174;;;;-1:-1:-1;11160:20:0;;-1:-1:-1;;;;;11147:33:0;;;11160:20;;11147:33;;11006:174;:205;;;;-1:-1:-1;;;;;;11185:26:0;;;;;;:15;:26;;;;;;;;11184:27;11006:205;11002:397;;;11227:18;11248:20;11258:9;11248;:20::i;:::-;11316:15;;11227:41;;-1:-1:-1;11292:19:0;11305:6;11227:41;11292:19;:::i;:::-;11291:40;;11283:114;;;;-1:-1:-1;;;11283:114:0;;12738:2:1;11283:114:0;;;12720:21:1;12777:2;12757:18;;;12750:30;12816:34;12796:18;;;12789:62;12887:32;12867:18;;;12860:60;12937:19;;11283:114:0;12536:426:1;11283:114:0;11212:187;11002:397;11464:28;11477:6;11485;11464:12;:28::i;:::-;11509:16;:14;:16::i;:::-;11506:35;;;11528:10;:8;:10::i;:::-;11621:53;;;;;;;;;;;-1:-1:-1;;;11621:53:0;;;;;;;;-1:-1:-1;;;;;11621:17:0;;-1:-1:-1;11621:17:0;;;:9;:17;;;;;;;;:53;;11643:6;;11621:21;:53::i;:::-;-1:-1:-1;;;;;11601:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11713:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11736:22:0;;;;;;:11;:22;;;;;;;;11713:45;11712:93;;11771:34;11779:6;11787;11795:9;11771:7;:34::i;:::-;11712:93;;;11762:6;11712:93;-1:-1:-1;;;;;11839:20:0;;;;;;:9;:20;;;;;;11687:118;;-1:-1:-1;11839:40:0;;11687:118;11839:24;:40::i;:::-;-1:-1:-1;;;;;11816:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11897:43;;;;;;-1:-1:-1;;;;;;;;;;;11897:43:0;;;11925:14;160:25:1;;148:2;133:18;;14:177;11897:43:0;;;;;;;;-1:-1:-1;11958:4:0;;10558:1412;-1:-1:-1;;;;10558:1412:0:o;784:136::-;842:7;869:43;873:1;876;869:43;;;;;;;;;;;;;;;;;:3;:43::i;597:181::-;655:7;;687:5;691:1;687;:5;:::i;:::-;675:17;;716:1;711;:6;;703:46;;;;-1:-1:-1;;;703:46:0;;13169:2:1;703:46:0;;;13151:21:1;13208:2;13188:18;;;13181:30;-1:-1:-1;;;13227:18:1;;;13220:57;13294:18;;703:46:0;12967:351:1;15278:1861:0;7375:6;:13;;-1:-1:-1;;7375:13:0;7384:4;7375:13;;;15373:15:::1;::::0;15390:26:::1;::::0;7375:6;;15357:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15424:12;;15357:79;;;15420:1;15357:79;15327:109;;15447:23;15473:59;15530:1;15473:52;15516:8;;15473:38;15491:19;15473:13;;:17;;:38;;;;:::i;:59::-;15447:85;;15543:20;15566:34;15584:15;15566:13;;:17;;:34;;;;:::i;:::-;15637:16;::::0;;15651:1:::1;15637:16:::0;;;;;::::1;::::0;;15543:57;;-1:-1:-1;15613:21:0::1;::::0;15637:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15637:16:0::1;15613:40;;15682:4;15664;15669:1;15664:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15664:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15708:4:::1;::::0;15698:7;;15708:4;::::1;::::0;15698;;15708;;15698:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15698:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15783:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15783:188:0;;15749:21:::1;::::0;15783:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15855:12;;15725:21:::1;::::0;15898:4;;15925::::1;::::0;15945:15:::1;::::0;15783:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15984:17;16004:40;16030:13;16004:21;:25;;:40;;;;:::i;:::-;15984:60:::0;-1:-1:-1;16057:19:0::1;16079:40;16092:26;:19:::0;16116:1:::1;16092:23;:26::i;:::-;16079:8;::::0;;:12:::1;:40::i;:::-;16057:62:::0;-1:-1:-1;16140:26:0::1;16169:58;16225:1;16169:51;16057:62:::0;16169:51;:9;16183:19;16169:13:::1;:34::i;:58::-;16140:87;;16238:26;16267:44;16299:11;16267:27;16281:12;;16267:9;:13;;:27;;;;:::i;:44::-;16238:73;;16322:21;16346:39;16373:11;16346:22;16360:7;;16346:9;:13;;:22;;;;:::i;:39::-;16322:63;;16396:20;16419:38;16445:11;16419:21;16433:6;;16419:9;:13;;:21;;;;:::i;:38::-;16499:20;::::0;16491:65:::1;::::0;16396:61;;-1:-1:-1;16471:15:0::1;::::0;-1:-1:-1;;;;;16499:20:0;;::::1;::::0;16533:18;;16471:15;16491:65;16471:15;16491:65;16533:18;16499:20;16491:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16591:14:0::1;::::0;16583:53:::1;::::0;16470:86;;-1:-1:-1;;;;;;16591:14:0::1;::::0;16619:12;;16583:53:::1;::::0;;;16619:12;16591:14;16583:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16671:15:0::1;::::0;16663:55:::1;::::0;16567:69;;-1:-1:-1;;;;;;16671:15:0::1;::::0;16700:13;;16663:55:::1;::::0;;;16700:13;16671:15;16663:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16752:5:0::1;::::0;-1:-1:-1;;16773:19:0;;;-1:-1:-1;16770:362:0::1;;16808:6;::::0;16982:21:::1;::::0;16808:244:::1;::::0;-1:-1:-1;;;16808:244:0;;16884:4:::1;16808:244;::::0;::::1;14991:34:1::0;15041:18;;;15034:34;;;16808:6:0::1;15084:18:1::0;;;15077:34;;;15127:18;;;15120:34;-1:-1:-1;;;;;16982:21:0;;::::1;15170:19:1::0;;;15163:44;17022:15:0::1;15223:19:1::0;;;15216:35;16808:6:0;::::1;::::0;:22:::1;::::0;16838:18;;14925:19:1;;16808:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17072:48:0::1;::::0;;15747:25:1;;;15803:2;15788:18;;15781:34;;;17072:48:0::1;::::0;-1:-1:-1;15720:18:1;17072:48:0::1;;;;;;;16770:362;-1:-1:-1::0;;7393:6:0;:14;;-1:-1:-1;;7393:14:0;;;-1:-1:-1;;;;;;;;;;15278:1861:0:o;1518:189::-;1604:7;1639:12;1632:5;1624:28;;;;-1:-1:-1;;;1624:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1663:9:0;1675:5;1679:1;1675;:5;:::i;12320:166::-;12417:12;;12407:6;:22;;:49;;;-1:-1:-1;;;;;;12433:23:0;;;;;;:15;:23;;;;;;;;12407:49;12399:79;;;;-1:-1:-1;;;12399:79:0;;16028:2:1;12399:79:0;;;16010:21:1;16067:2;16047:18;;;16040:30;-1:-1:-1;;;16086:18:1;;;16079:47;16143:18;;12399:79:0;15826:341:1;12399:79:0;12320:166;;:::o;13631:197::-;13718:4;;13680;;-1:-1:-1;;;;;13718:4:0;13704:10;:18;;;;:38;;-1:-1:-1;13736:6:0;;;;13735:7;13704:38;:62;;;;-1:-1:-1;13755:11:0;;;;13704:62;:116;;;;-1:-1:-1;;13807:13:0;;13797:4;13779:24;;;;:9;:24;;;;;;:41;;;13631:197::o;12616:1007::-;12753:18;;12800:4;;12702:7;;12753:18;-1:-1:-1;;;;;12800:4:0;;;12787:17;;;;12784:154;;-1:-1:-1;12834:14:0;;12784:154;;;12879:4;;-1:-1:-1;;;;;12879:4:0;;;12869:14;;;;12866:72;;-1:-1:-1;12913:13:0;;12866:72;12950:17;12970:62;13011:14;;13028:3;13011:20;;;;:::i;:::-;12970:36;12995:10;12970:20;12981:8;;12970:6;:10;;:20;;;;:::i;:62::-;12950:82;;13043:18;13064:36;13091:8;;13064:22;13078:7;;13064:9;:13;;:22;;;;:::i;:36::-;13043:57;-1:-1:-1;13111:22:0;13136:25;:9;13043:57;13136:13;:25::i;:::-;13219:4;13201:24;;;;:9;:24;;;;;;13111:50;;-1:-1:-1;13201:44:0;;13111:50;13201:28;:44::i;:::-;13192:4;13174:24;;;;:9;:24;;;;;;:71;;;;13295:15;;-1:-1:-1;;;;;13295:15:0;13285:26;;;;:42;;13316:10;13285:30;:42::i;:::-;13266:15;;-1:-1:-1;;;;;13266:15:0;;;13256:26;;;;:9;:26;;;;;;;;;:71;;;;13343:47;160:25:1;;;13368:4:0;;13343:47;;;;-1:-1:-1;;;;;;;;;;;13343:47:0;133:18:1;13343:47:0;;;;;;;13424:14;;13421:154;;13469:12;;:28;;13486:10;13469:16;:28::i;:::-;13454:12;:43;13534:4;;13517:34;;160:25:1;;;-1:-1:-1;;;;;13534:4:0;;;;13517:34;;;-1:-1:-1;;;;;;;;;;;13517:34:0;148:2:1;133:18;13517:34:0;;;;;;;13421:154;13594:21;:6;13605:9;13594:10;:21::i;:::-;13587:28;12616:1007;-1:-1:-1;;;;;;;;12616:1007:0:o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;941:173::-;1009:20;;-1:-1:-1;;;;;1058:31:1;;1048:42;;1038:70;;1104:1;1101;1094:12;1038:70;941:173;;;:::o;1119:254::-;1187:6;1195;1248:2;1236:9;1227:7;1223:23;1219:32;1216:52;;;1264:1;1261;1254:12;1216:52;1287:29;1306:9;1287:29;:::i;:::-;1277:39;1363:2;1348:18;;;;1335:32;;-1:-1:-1;;;1119:254:1:o;1378:248::-;1446:6;1454;1507:2;1495:9;1486:7;1482:23;1478:32;1475:52;;;1523:1;1520;1513:12;1475:52;-1:-1:-1;;1546:23:1;;;1616:2;1601:18;;;1588:32;;-1:-1:-1;1378:248:1:o;1631:367::-;1694:8;1704:6;1758:3;1751:4;1743:6;1739:17;1735:27;1725:55;;1776:1;1773;1766:12;1725:55;-1:-1:-1;1799:20:1;;1842:18;1831:30;;1828:50;;;1874:1;1871;1864:12;1828:50;1911:4;1903:6;1899:17;1887:29;;1971:3;1964:4;1954:6;1951:1;1947:14;1939:6;1935:27;1931:38;1928:47;1925:67;;;1988:1;1985;1978:12;1925:67;1631:367;;;;;:::o;2003:847::-;2134:6;2142;2150;2158;2166;2219:2;2207:9;2198:7;2194:23;2190:32;2187:52;;;2235:1;2232;2225:12;2187:52;2258:29;2277:9;2258:29;:::i;:::-;2248:39;;2338:2;2327:9;2323:18;2310:32;2361:18;2402:2;2394:6;2391:14;2388:34;;;2418:1;2415;2408:12;2388:34;2457:70;2519:7;2510:6;2499:9;2495:22;2457:70;:::i;:::-;2546:8;;-1:-1:-1;2431:96:1;-1:-1:-1;2634:2:1;2619:18;;2606:32;;-1:-1:-1;2650:16:1;;;2647:36;;;2679:1;2676;2669:12;2647:36;;2718:72;2782:7;2771:8;2760:9;2756:24;2718:72;:::i;:::-;2003:847;;;;-1:-1:-1;2003:847:1;;-1:-1:-1;2809:8:1;;2692:98;2003:847;-1:-1:-1;;;2003:847:1:o;2855:328::-;2932:6;2940;2948;3001:2;2989:9;2980:7;2976:23;2972:32;2969:52;;;3017:1;3014;3007:12;2969:52;3040:29;3059:9;3040:29;:::i;:::-;3030:39;;3088:38;3122:2;3111:9;3107:18;3088:38;:::i;:::-;3078:48;;3173:2;3162:9;3158:18;3145:32;3135:42;;2855:328;;;;;:::o;3188:484::-;3283:6;3291;3299;3307;3315;3368:3;3356:9;3347:7;3343:23;3339:33;3336:53;;;3385:1;3382;3375:12;3336:53;3408:29;3427:9;3408:29;:::i;:::-;3398:39;;3456:38;3490:2;3479:9;3475:18;3456:38;:::i;:::-;3446:48;;3513:38;3547:2;3536:9;3532:18;3513:38;:::i;:::-;3503:48;;3570:38;3604:2;3593:9;3589:18;3570:38;:::i;:::-;3560:48;;3627:39;3661:3;3650:9;3646:19;3627:39;:::i;:::-;3617:49;;3188:484;;;;;;;;:::o;3866:180::-;3925:6;3978:2;3966:9;3957:7;3953:23;3949:32;3946:52;;;3994:1;3991;3984:12;3946:52;-1:-1:-1;4017:23:1;;3866:180;-1:-1:-1;3866:180:1:o;4051:186::-;4110:6;4163:2;4151:9;4142:7;4138:23;4134:32;4131:52;;;4179:1;4176;4169:12;4131:52;4202:29;4221:9;4202:29;:::i;4242:316::-;4319:6;4327;4335;4388:2;4376:9;4367:7;4363:23;4359:32;4356:52;;;4404:1;4401;4394:12;4356:52;-1:-1:-1;;4427:23:1;;;4497:2;4482:18;;4469:32;;-1:-1:-1;4548:2:1;4533:18;;;4520:32;;4242:316;-1:-1:-1;4242:316:1:o;4563:203::-;-1:-1:-1;;;;;4727:32:1;;;;4709:51;;4697:2;4682:18;;4563:203::o;4771:118::-;4857:5;4850:13;4843:21;4836:5;4833:32;4823:60;;4879:1;4876;4869:12;4894:315;4959:6;4967;5020:2;5008:9;4999:7;4995:23;4991:32;4988:52;;;5036:1;5033;5026:12;4988:52;5059:29;5078:9;5059:29;:::i;:::-;5049:39;;5138:2;5127:9;5123:18;5110:32;5151:28;5173:5;5151:28;:::i;:::-;5198:5;5188:15;;;4894:315;;;;;:::o;5214:523::-;5318:6;5326;5334;5342;5350;5358;5411:3;5399:9;5390:7;5386:23;5382:33;5379:53;;;5428:1;5425;5418:12;5379:53;-1:-1:-1;;5451:23:1;;;5521:2;5506:18;;5493:32;;-1:-1:-1;5572:2:1;5557:18;;5544:32;;5623:2;5608:18;;5595:32;;-1:-1:-1;5674:3:1;5659:19;;5646:33;;-1:-1:-1;5726:3:1;5711:19;5698:33;;-1:-1:-1;5214:523:1;-1:-1:-1;5214:523:1:o;5742:309::-;5807:6;5815;5868:2;5856:9;5847:7;5843:23;5839:32;5836:52;;;5884:1;5881;5874:12;5836:52;5923:9;5910:23;5942:28;5964:5;5942:28;:::i;6056:566::-;6148:6;6156;6164;6217:2;6205:9;6196:7;6192:23;6188:32;6185:52;;;6233:1;6230;6223:12;6185:52;6273:9;6260:23;6306:18;6298:6;6295:30;6292:50;;;6338:1;6335;6328:12;6292:50;6377:70;6439:7;6430:6;6419:9;6415:22;6377:70;:::i;:::-;6466:8;;-1:-1:-1;6351:96:1;-1:-1:-1;;6551:2:1;6536:18;;6523:32;6564:28;6523:32;6564:28;:::i;:::-;6611:5;6601:15;;;6056:566;;;;;:::o;6627:241::-;6683:6;6736:2;6724:9;6715:7;6711:23;6707:32;6704:52;;;6752:1;6749;6742:12;6704:52;6791:9;6778:23;6810:28;6832:5;6810:28;:::i;6873:260::-;6941:6;6949;7002:2;6990:9;6981:7;6977:23;6973:32;6970:52;;;7018:1;7015;7008:12;6970:52;7041:29;7060:9;7041:29;:::i;:::-;7031:39;;7089:38;7123:2;7112:9;7108:18;7089:38;:::i;:::-;7079:48;;6873:260;;;;;:::o;7364:356::-;7566:2;7548:21;;;7585:18;;;7578:30;7644:34;7639:2;7624:18;;7617:62;7711:2;7696:18;;7364:356::o;8548:127::-;8609:10;8604:3;8600:20;8597:1;8590:31;8640:4;8637:1;8630:15;8664:4;8661:1;8654:15;8680:127;8741:10;8736:3;8732:20;8729:1;8722:31;8772:4;8769:1;8762:15;8796:4;8793:1;8786:15;8812:125;8877:9;;;8898:10;;;8895:36;;;8911:18;;:::i;8942:135::-;8981:3;9002:17;;;8999:43;;9022:18;;:::i;:::-;-1:-1:-1;9069:1:1;9058:13;;8942:135::o;9438:217::-;9478:1;9504;9494:132;;9548:10;9543:3;9539:20;9536:1;9529:31;9583:4;9580:1;9573:15;9611:4;9608:1;9601:15;9494:132;-1:-1:-1;9640:9:1;;9438:217::o;9660:168::-;9733:9;;;9764;;9781:15;;;9775:22;;9761:37;9751:71;;9802:18;;:::i;10191:184::-;10261:6;10314:2;10302:9;10293:7;10289:23;10285:32;10282:52;;;10330:1;10327;10320:12;10282:52;-1:-1:-1;10353:16:1;;10191:184;-1:-1:-1;10191:184:1:o;10659:245::-;10726:6;10779:2;10767:9;10758:7;10754:23;10750:32;10747:52;;;10795:1;10792;10785:12;10747:52;10827:9;10821:16;10846:28;10868:5;10846:28;:::i;11718:128::-;11785:9;;;11806:11;;;11803:37;;;11820:18;;:::i;13455:980::-;13717:4;13765:3;13754:9;13750:19;13796:6;13785:9;13778:25;13822:2;13860:6;13855:2;13844:9;13840:18;13833:34;13903:3;13898:2;13887:9;13883:18;13876:31;13927:6;13962;13956:13;13993:6;13985;13978:22;14031:3;14020:9;14016:19;14009:26;;14070:2;14062:6;14058:15;14044:29;;14091:1;14101:195;14115:6;14112:1;14109:13;14101:195;;;14180:13;;-1:-1:-1;;;;;14176:39:1;14164:52;;14271:15;;;;14236:12;;;;14212:1;14130:9;14101:195;;;-1:-1:-1;;;;;;;14352:32:1;;;;14347:2;14332:18;;14325:60;-1:-1:-1;;;14416:3:1;14401:19;14394:35;14313:3;13455:980;-1:-1:-1;;;13455:980:1:o;15262:306::-;15350:6;15358;15366;15419:2;15407:9;15398:7;15394:23;15390:32;15387:52;;;15435:1;15432;15425:12;15387:52;15464:9;15458:16;15448:26;;15514:2;15503:9;15499:18;15493:25;15483:35;;15558:2;15547:9;15543:18;15537:25;15527:35;;15262:306;;;;;:::o

Swarm Source

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