ETH Price: $3,289.62 (+1.06%)
Gas: 5 Gwei

Token

BlurAI (BlurAI)
 

Overview

Max Total Supply

10,000,000,000 BlurAI

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000959 BlurAI

Value
$0.00
0x42087cae53091564bfaf3a4bc7c0dc9621138877
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:
BlurAI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-19
*/

/**
BlurAI (BlurAI)
https://twitter.com/officialblurai
https://t.me/blurAIportal
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
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 Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract BlurAI is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "BlurAI";
    string constant _symbol = "BlurAI";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 10_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = _totalSupply*2/100;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping(address => bool) public isBot;

    //reduce after launch to deter sniper/bots
    uint256 marketingFee = 15;
    uint256 sellMarketingFee = 45;

    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = msg.sender;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    bool public swapbyLimit = false;
    uint256 public swapThreshold = _totalSupply / 1000 * 3; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[DEAD] = true;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        require(!isBot[sender], "Bot Address");

        if(shouldSwapBack()){ swapBack(); } 

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

        uint256 amountReceived =  amount;
        if(shouldTakeFee(sender)){
            if(sender == pair){
                amountReceived = takeFee(sender, amount,false);
            }else{
                amountReceived = takeFee(sender, amount,true);
            } 
        }


        _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 shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        uint feeAmount = isSell ? amount.mul(sellMarketingFee).div(feeDenominator) : amount.mul(marketingFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 amountToSwap = _balances[address(this)];
        if (swapbyLimit){
            if (amountToSwap >= swapThreshold*2)
                amountToSwap = swapThreshold*2;
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        if (address(this).balance > 60000000000000000){
            payable(marketingFeeReceiver).transfer(address(this).balance);
        }
      
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

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

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 100;
        require (_maxWalletAmount >= _totalSupply/100);
    }

    function swapStatus (bool swapstatus, bool swaplimit) external onlyOwner {
        swapEnabled = swapstatus;
        swapbyLimit = swaplimit;
    }

    function setFees(uint256 _MarketingFee, uint256 _sellMarketingFee) external onlyOwner {
         marketingFee = _MarketingFee;
         sellMarketingFee = _sellMarketingFee;
         require(marketingFee <= 15 && sellMarketingFee <= 40);
    }

    function setThreshold(uint256 _treshold) external onlyOwner {
         swapThreshold = _treshold;
    }

    function setFeeReceivers(address _marketingFeeReceiver) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
    }
    
}

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":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"swapstatus","type":"bool"},{"internalType":"bool","name":"swaplimit","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbyLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a6200044f565b62000059906402540be40062000467565b600355606460035460026200006f919062000467565b6200007b919062000481565b600455600f600a819055602d600b556064600c55600d80546001600160a01b03191633179055805461ffff60a01b1916600160a01b179055600354620000c5906103e89062000481565b620000d290600362000467565b601055348015620000e257600080fd5b5060008054336001600160a01b031991821617909155600154600e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200014f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001759190620004a4565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fd9190620004a4565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002709190620004a4565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600e5485168452825280832060001990558254841680845260078352818420805460ff19908116600190811790925560088552838620805482168317905560025490961685528285208054909616179094556003548484526005835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004cf565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003915781600019048211156200037557620003756200033a565b808516156200038357918102915b93841c939080029062000355565b509250929050565b600082620003aa5750600162000449565b81620003b95750600062000449565b8160018114620003d25760028114620003dd57620003fd565b600191505062000449565b60ff841115620003f157620003f16200033a565b50506001821b62000449565b5060208310610133831016604e8410600b841016171562000422575081810a62000449565b6200042e838362000350565b80600019048211156200044557620004456200033a565b0290505b92915050565b60006200046060ff84168362000399565b9392505050565b80820281158282048414176200044957620004496200033a565b6000826200049f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004b757600080fd5b81516001600160a01b03811681146200046057600080fd5b61146680620004df6000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec578063b4198a471161008a578063e96fada211610064578063e96fada2146104e7578063f1d5f51714610507578063f429389014610527578063f887ea401461053c57600080fd5b8063b4198a4714610461578063dd62ed3e14610481578063e01bb688146104c757600080fd5b806395d89b41116100c657806395d89b41146101d5578063960bfe0414610401578063a8aa1b3114610421578063a9059cbb1461044157600080fd5b806370a0823114610384578063715018a6146103ba578063893d20e8146103cf57600080fd5b80632f54bf6e116101595780633bbac579116101335780633bbac579146102fd578063571ac8b01461032d5780636c0a24eb1461034d5780636ddd17131461036357600080fd5b80632f54bf6e14610291578063313ce567146102c0578063349e6127146102dc57600080fd5b80630445b667146101ac57806306fdde03146101d5578063095ea7b31461020a5780630b78f9c01461023a57806318160ddd1461025c57806323b872dd1461027157600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c260105481565b6040519081526020015b60405180910390f35b3480156101e157600080fd5b506040805180820182526006815265426c7572414960d01b602082015290516101cc919061114e565b34801561021657600080fd5b5061022a6102253660046111b1565b61055c565b60405190151581526020016101cc565b34801561024657600080fd5b5061025a6102553660046111dd565b6105c9565b005b34801561026857600080fd5b506003546101c2565b34801561027d57600080fd5b5061022a61028c3660046111ff565b610627565b34801561029d57600080fd5b5061022a6102ac366004611240565b6000546001600160a01b0391821691161490565b3480156102cc57600080fd5b50604051600981526020016101cc565b3480156102e857600080fd5b50600f5461022a90600160a81b900460ff1681565b34801561030957600080fd5b5061022a610318366004611240565b60096020526000908152604090205460ff1681565b34801561033957600080fd5b5061022a610348366004611240565b6106e9565b34801561035957600080fd5b506101c260045481565b34801561036f57600080fd5b50600f5461022a90600160a01b900460ff1681565b34801561039057600080fd5b506101c261039f366004611240565b6001600160a01b031660009081526005602052604090205490565b3480156103c657600080fd5b5061025a6106f7565b3480156103db57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101cc565b34801561040d57600080fd5b5061025a61041c36600461125d565b610766565b34801561042d57600080fd5b50600f546103e9906001600160a01b031681565b34801561044d57600080fd5b5061022a61045c3660046111b1565b610795565b34801561046d57600080fd5b5061025a61047c36600461128b565b6107a2565b34801561048d57600080fd5b506101c261049c3660046112be565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156104d357600080fd5b5061025a6104e2366004611240565b610800565b3480156104f357600080fd5b50600d546103e9906001600160a01b031681565b34801561051357600080fd5b5061025a61052236600461125d565b61084c565b34801561053357600080fd5b5061025a6108b3565b34801561054857600080fd5b50600e546103e9906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b79086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146105fc5760405162461bcd60e51b81526004016105f3906112f7565b60405180910390fd5b600a829055600b819055600f821180159061061a57506028600b5411155b61062357600080fd5b5050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146106d4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546106af9184906108ec565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6106df848484610926565b90505b9392505050565b60006105c38260001961055c565b6000546001600160a01b031633146107215760405162461bcd60e51b81526004016105f3906112f7565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146107905760405162461bcd60e51b81526004016105f3906112f7565b601055565b60006106e2338484610926565b6000546001600160a01b031633146107cc5760405162461bcd60e51b81526004016105f3906112f7565b600f805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055565b6000546001600160a01b0316331461082a5760405162461bcd60e51b81526004016105f3906112f7565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108765760405162461bcd60e51b81526004016105f3906112f7565b606481600354610886919061132d565b6108909190611344565b6004556003546108a290606490611344565b60045410156108b057600080fd5b50565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108b0573d6000803e3d6000fd5b600081848411156109105760405162461bcd60e51b81526004016105f3919061114e565b50600061091d8486611366565b95945050505050565b60115460009060ff16156109465761093f848484610bcb565b90506106e2565b600f546001600160a01b0384811691161480159061097257506002546001600160a01b03848116911614155b15610a1d576001600160a01b03831660009081526008602052604090205460ff16806109c357506004546001600160a01b0384166000908152600560205260409020546109c0908490611379565b11155b610a1d5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105f3565b6001600160a01b03841660009081526009602052604090205460ff1615610a745760405162461bcd60e51b815260206004820152600b60248201526a426f74204164647265737360a81b60448201526064016105f3565b610a7c610cb1565b15610a8957610a89610d09565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610adb9184906108ec565b6001600160a01b038516600090815260056020908152604080832093909355600790522054829060ff16610b4157600f546001600160a01b0390811690861603610b3257610b2b85846000610ef2565b9050610b41565b610b3e85846001610ef2565b90505b6001600160a01b038416600090815260056020526040902054610b649082610fbb565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bb89085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610c1c9184906108ec565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610c4b9083610fbb565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c9f9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610cd2575060115460ff16155b8015610ce75750600f54600160a01b900460ff165b8015610d0457506010543060009081526005602052604090205410155b905090565b6011805460ff1916600117905530600090815260056020526040902054600f54600160a81b900460ff1615610d5d57601054610d4690600261132d565b8110610d5d57601054610d5a90600261132d565b90505b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610d9257610d9261138c565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906113a2565b81600181518110610e2257610e2261138c565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790610e689085906000908690309042906004016113bf565b600060405180830381600087803b158015610e8257600080fd5b505af1158015610e96573d6000803e3d6000fd5b5050505066d529ae9e860000471115610ee457600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610ee2573d6000803e3d6000fd5b505b50506011805460ff19169055565b60008082610f2057610f1b600c54610f15600a548761101a90919063ffffffff16565b9061109c565b610f3b565b610f3b600c54610f15600b548761101a90919063ffffffff16565b30600090815260056020526040902054909150610f589082610fbb565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa99085815260200190565b60405180910390a361091d84826110de565b600080610fc88385611379565b9050838110156106e25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f3565b60008260000361102c575060006105c3565b6000611038838561132d565b9050826110458583611344565b146106e25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f3565b60006106e283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611120565b60006106e283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506108ec565b600081836111415760405162461bcd60e51b81526004016105f3919061114e565b50600061091d8486611344565b600060208083528351808285015260005b8181101561117b5785810183015185820160400152820161115f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108b057600080fd5b600080604083850312156111c457600080fd5b82356111cf8161119c565b946020939093013593505050565b600080604083850312156111f057600080fd5b50508035926020909101359150565b60008060006060848603121561121457600080fd5b833561121f8161119c565b9250602084013561122f8161119c565b929592945050506040919091013590565b60006020828403121561125257600080fd5b81356106e28161119c565b60006020828403121561126f57600080fd5b5035919050565b8035801515811461128657600080fd5b919050565b6000806040838503121561129e57600080fd5b6112a783611276565b91506112b560208401611276565b90509250929050565b600080604083850312156112d157600080fd5b82356112dc8161119c565b915060208301356112ec8161119c565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105c3576105c3611317565b60008261136157634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156105c3576105c3611317565b808201808211156105c3576105c3611317565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156113b457600080fd5b81516106e28161119c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561140f5784516001600160a01b0316835293830193918301916001016113ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204285f1a8e7b406ece6c0aeaf9408dbdd8e4b60c770c06e5cd289c743ef62baa564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec578063b4198a471161008a578063e96fada211610064578063e96fada2146104e7578063f1d5f51714610507578063f429389014610527578063f887ea401461053c57600080fd5b8063b4198a4714610461578063dd62ed3e14610481578063e01bb688146104c757600080fd5b806395d89b41116100c657806395d89b41146101d5578063960bfe0414610401578063a8aa1b3114610421578063a9059cbb1461044157600080fd5b806370a0823114610384578063715018a6146103ba578063893d20e8146103cf57600080fd5b80632f54bf6e116101595780633bbac579116101335780633bbac579146102fd578063571ac8b01461032d5780636c0a24eb1461034d5780636ddd17131461036357600080fd5b80632f54bf6e14610291578063313ce567146102c0578063349e6127146102dc57600080fd5b80630445b667146101ac57806306fdde03146101d5578063095ea7b31461020a5780630b78f9c01461023a57806318160ddd1461025c57806323b872dd1461027157600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c260105481565b6040519081526020015b60405180910390f35b3480156101e157600080fd5b506040805180820182526006815265426c7572414960d01b602082015290516101cc919061114e565b34801561021657600080fd5b5061022a6102253660046111b1565b61055c565b60405190151581526020016101cc565b34801561024657600080fd5b5061025a6102553660046111dd565b6105c9565b005b34801561026857600080fd5b506003546101c2565b34801561027d57600080fd5b5061022a61028c3660046111ff565b610627565b34801561029d57600080fd5b5061022a6102ac366004611240565b6000546001600160a01b0391821691161490565b3480156102cc57600080fd5b50604051600981526020016101cc565b3480156102e857600080fd5b50600f5461022a90600160a81b900460ff1681565b34801561030957600080fd5b5061022a610318366004611240565b60096020526000908152604090205460ff1681565b34801561033957600080fd5b5061022a610348366004611240565b6106e9565b34801561035957600080fd5b506101c260045481565b34801561036f57600080fd5b50600f5461022a90600160a01b900460ff1681565b34801561039057600080fd5b506101c261039f366004611240565b6001600160a01b031660009081526005602052604090205490565b3480156103c657600080fd5b5061025a6106f7565b3480156103db57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101cc565b34801561040d57600080fd5b5061025a61041c36600461125d565b610766565b34801561042d57600080fd5b50600f546103e9906001600160a01b031681565b34801561044d57600080fd5b5061022a61045c3660046111b1565b610795565b34801561046d57600080fd5b5061025a61047c36600461128b565b6107a2565b34801561048d57600080fd5b506101c261049c3660046112be565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156104d357600080fd5b5061025a6104e2366004611240565b610800565b3480156104f357600080fd5b50600d546103e9906001600160a01b031681565b34801561051357600080fd5b5061025a61052236600461125d565b61084c565b34801561053357600080fd5b5061025a6108b3565b34801561054857600080fd5b50600e546103e9906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105b79086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146105fc5760405162461bcd60e51b81526004016105f3906112f7565b60405180910390fd5b600a829055600b819055600f821180159061061a57506028600b5411155b61062357600080fd5b5050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146106d4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546106af9184906108ec565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6106df848484610926565b90505b9392505050565b60006105c38260001961055c565b6000546001600160a01b031633146107215760405162461bcd60e51b81526004016105f3906112f7565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146107905760405162461bcd60e51b81526004016105f3906112f7565b601055565b60006106e2338484610926565b6000546001600160a01b031633146107cc5760405162461bcd60e51b81526004016105f3906112f7565b600f805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055565b6000546001600160a01b0316331461082a5760405162461bcd60e51b81526004016105f3906112f7565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108765760405162461bcd60e51b81526004016105f3906112f7565b606481600354610886919061132d565b6108909190611344565b6004556003546108a290606490611344565b60045410156108b057600080fd5b50565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108b0573d6000803e3d6000fd5b600081848411156109105760405162461bcd60e51b81526004016105f3919061114e565b50600061091d8486611366565b95945050505050565b60115460009060ff16156109465761093f848484610bcb565b90506106e2565b600f546001600160a01b0384811691161480159061097257506002546001600160a01b03848116911614155b15610a1d576001600160a01b03831660009081526008602052604090205460ff16806109c357506004546001600160a01b0384166000908152600560205260409020546109c0908490611379565b11155b610a1d5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105f3565b6001600160a01b03841660009081526009602052604090205460ff1615610a745760405162461bcd60e51b815260206004820152600b60248201526a426f74204164647265737360a81b60448201526064016105f3565b610a7c610cb1565b15610a8957610a89610d09565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610adb9184906108ec565b6001600160a01b038516600090815260056020908152604080832093909355600790522054829060ff16610b4157600f546001600160a01b0390811690861603610b3257610b2b85846000610ef2565b9050610b41565b610b3e85846001610ef2565b90505b6001600160a01b038416600090815260056020526040902054610b649082610fbb565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bb89085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610c1c9184906108ec565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610c4b9083610fbb565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c9f9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610cd2575060115460ff16155b8015610ce75750600f54600160a01b900460ff165b8015610d0457506010543060009081526005602052604090205410155b905090565b6011805460ff1916600117905530600090815260056020526040902054600f54600160a81b900460ff1615610d5d57601054610d4690600261132d565b8110610d5d57601054610d5a90600261132d565b90505b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610d9257610d9261138c565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906113a2565b81600181518110610e2257610e2261138c565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790610e689085906000908690309042906004016113bf565b600060405180830381600087803b158015610e8257600080fd5b505af1158015610e96573d6000803e3d6000fd5b5050505066d529ae9e860000471115610ee457600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610ee2573d6000803e3d6000fd5b505b50506011805460ff19169055565b60008082610f2057610f1b600c54610f15600a548761101a90919063ffffffff16565b9061109c565b610f3b565b610f3b600c54610f15600b548761101a90919063ffffffff16565b30600090815260056020526040902054909150610f589082610fbb565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa99085815260200190565b60405180910390a361091d84826110de565b600080610fc88385611379565b9050838110156106e25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105f3565b60008260000361102c575060006105c3565b6000611038838561132d565b9050826110458583611344565b146106e25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105f3565b60006106e283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611120565b60006106e283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506108ec565b600081836111415760405162461bcd60e51b81526004016105f3919061114e565b50600061091d8486611344565b600060208083528351808285015260005b8181101561117b5785810183015185820160400152820161115f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108b057600080fd5b600080604083850312156111c457600080fd5b82356111cf8161119c565b946020939093013593505050565b600080604083850312156111f057600080fd5b50508035926020909101359150565b60008060006060848603121561121457600080fd5b833561121f8161119c565b9250602084013561122f8161119c565b929592945050506040919091013590565b60006020828403121561125257600080fd5b81356106e28161119c565b60006020828403121561126f57600080fd5b5035919050565b8035801515811461128657600080fd5b919050565b6000806040838503121561129e57600080fd5b6112a783611276565b91506112b560208401611276565b90509250929050565b600080604083850312156112d157600080fd5b82356112dc8161119c565b915060208301356112ec8161119c565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105c3576105c3611317565b60008261136157634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156105c3576105c3611317565b808201808211156105c3576105c3611317565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156113b457600080fd5b81516106e28161119c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561140f5784516001600160a01b0316835293830193918301916001016113ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204285f1a8e7b406ece6c0aeaf9408dbdd8e4b60c770c06e5cd289c743ef62baa564736f6c63430008120033

Deployed Bytecode Sourcemap

4172:7566:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5225:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5225:54:0;;;;;;;;6190:80;;;;;;;;;;-1:-1:-1;6262:5:0;;;;;;;;;;;-1:-1:-1;;;6262:5:0;;;;6190:80;;;;6262:5;6190:80;:::i;6612:216::-;;;;;;;;;;-1:-1:-1;6612:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6612:216:0;1205:187:1;11223:247:0;;;;;;;;;;-1:-1:-1;11223:247:0;;;;;:::i;:::-;;:::i;:::-;;5920:88;;;;;;;;;;-1:-1:-1;5993:12:0;;5920:88;;7130:370;;;;;;;;;;-1:-1:-1;7130:370:0;;;;;:::i;:::-;;:::i;2410:103::-;;;;;;;;;;-1:-1:-1;2410:103:0;;;;;:::i;:::-;2465:4;2500:5;-1:-1:-1;;;;;2489:16:0;;;2500:5;;2489:16;;2410:103;6014:80;;;;;;;;;;-1:-1:-1;6014:80:0;;4491:1;2505:36:1;;2493:2;2478:18;6014:80:0;2363:184:1;5187:31:0;;;;;;;;;;-1:-1:-1;5187:31:0;;;;-1:-1:-1;;;5187:31:0;;;;;;4833:37;;;;;;;;;;-1:-1:-1;4833:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6836:122;;;;;;;;;;-1:-1:-1;6836:122:0;;;;;:::i;:::-;;:::i;4565:52::-;;;;;;;;;;;;;;;;5150:30;;;;;;;;;;-1:-1:-1;5150:30:0;;;;-1:-1:-1;;;5150:30:0;;;;;;6360:105;;;;;;;;;;-1:-1:-1;6360:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6444:18:0;6426:7;6444:18;;;:9;:18;;;;;;;6360:105;2519:131;;;;;;;;;;;;;:::i;6276:78::-;;;;;;;;;;-1:-1:-1;6328:7:0;6346:5;-1:-1:-1;;;;;6346:5:0;6276:78;;;-1:-1:-1;;;;;2716:32:1;;;2698:51;;2686:2;2671:18;6276:78:0;2552:203:1;11478:105:0;;;;;;;;;;-1:-1:-1;11478:105:0;;;;;:::i;:::-;;:::i;5122:19::-;;;;;;;;;;-1:-1:-1;5122:19:0;;;;-1:-1:-1;;;;;5122:19:0;;;6966:156;;;;;;;;;;-1:-1:-1;6966:156:0;;;;;:::i;:::-;;:::i;11065:150::-;;;;;;;;;;-1:-1:-1;11065:150:0;;;;;:::i;:::-;;:::i;6471:133::-;;;;;;;;;;-1:-1:-1;6471:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6573:19:0;;;6555:7;6573:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6471:133;11591:138;;;;;;;;;;-1:-1:-1;11591:138:0;;;;;:::i;:::-;;:::i;5034:48::-;;;;;;;;;;-1:-1:-1;5034:48:0;;;;-1:-1:-1;;;;;5034:48:0;;;10859:198;;;;;;;;;;-1:-1:-1;10859:198:0;;;;;:::i;:::-;;:::i;10740:111::-;;;;;;;;;;;;;:::i;5091:24::-;;;;;;;;;;-1:-1:-1;5091:24:0;;;;-1:-1:-1;;;;;5091:24:0;;;6612:216;6716:10;6687:4;6704:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6704:32:0;;;;;;;;;;:41;;;6761:37;6687:4;;6704:32;;6761:37;;;;6739:6;160:25:1;;148:2;133:18;;14:177;6761:37:0;;;;;;;;-1:-1:-1;6816:4:0;6612:216;;;;;:::o;11223:247::-;2465:4;2500:5;-1:-1:-1;;;;;2500:5:0;2371:10;2489:16;2355:38;;;;-1:-1:-1;;;2355:38:0;;;;;;;:::i;:::-;;;;;;;;;11321:12:::1;:28:::0;;;11361:16:::1;:36:::0;;;11433:2:::1;11417:18:::0;::::1;::::0;::::1;::::0;:44:::1;;;11459:2;11439:16;;:22;;11417:44;11409:53;;;::::0;::::1;;11223:247:::0;;:::o;7130:370::-;-1:-1:-1;;;;;7250:19:0;;7230:4;7250:19;;;:11;:19;;;;;;;;7270:10;7250:31;;;;;;;;-1:-1:-1;;7250:52:0;7247:186;;7352:69;;;;;;;;;;;-1:-1:-1;;;7352:69:0;;;;;;;;-1:-1:-1;;;;;7352:19:0;;-1:-1:-1;7352:19:0;;;:11;:19;;;;;7372:10;7352:31;;;;;;;;;;:69;;7388:6;;7352:35;:69::i;:::-;-1:-1:-1;;;;;7318:19:0;;;;;;:11;:19;;;;;;;;7338:10;7318:31;;;;;;;:103;7247:186;7452:40;7466:6;7474:9;7485:6;7452:13;:40::i;:::-;7445:47;;7130:370;;;;;;:::o;6836:122::-;6891:4;6915:35;6923:7;-1:-1:-1;;6915:7:0;:35::i;2519:131::-;2465:4;2500:5;-1:-1:-1;;;;;2500:5:0;2371:10;2489:16;2355:38;;;;-1:-1:-1;;;2355:38:0;;;;;;;:::i;:::-;2592:1:::1;2576:18:::0;;-1:-1:-1;;;;;;2576:18:0::1;::::0;;2610:32:::1;::::0;2698:51:1;;;2610:32:0::1;::::0;2686:2:1;2671:18;2610:32:0::1;;;;;;;2519:131::o:0;11478:105::-;2465:4;2500:5;-1:-1:-1;;;;;2500:5:0;2371:10;2489:16;2355:38;;;;-1:-1:-1;;;2355:38:0;;;;;;;:::i;:::-;11550:13:::1;:25:::0;11478:105::o;6966:156::-;7046:4;7070:44;7084:10;7096:9;7107:6;7070:13;:44::i;11065:150::-;2465:4;2500:5;-1:-1:-1;;;;;2500:5:0;2371:10;2489:16;2355:38;;;;-1:-1:-1;;;2355:38:0;;;;;;;:::i;:::-;11149:11:::1;:24:::0;;-1:-1:-1;;;;11184:23:0;-1:-1:-1;;;11149:24:0;::::1;;::::0;;;::::1;-1:-1:-1::0;;;;11184:23:0;;;;;-1:-1:-1;;;11184:23:0;::::1;;::::0;;;::::1;;::::0;;11065:150::o;11591:138::-;2465:4;2500:5;-1:-1:-1;;;;;2500:5:0;2371:10;2489:16;2355:38;;;;-1:-1:-1;;;2355:38:0;;;;;;;:::i;:::-;11677:20:::1;:44:::0;;-1:-1:-1;;;;;;11677:44:0::1;-1:-1:-1::0;;;;;11677:44:0;;;::::1;::::0;;;::::1;::::0;;11591:138::o;10859:198::-;2465:4;2500:5;-1:-1:-1;;;;;2500:5:0;2371:10;2489:16;2355:38;;;;-1:-1:-1;;;2355:38:0;;;;;;;:::i;:::-;10989:3:::1;10971:13;10956:12;;:28;;;;:::i;:::-;10955:37;;;;:::i;:::-;10936:16;:56:::0;11032:12:::1;::::0;:16:::1;::::0;11045:3:::1;::::0;11032:16:::1;:::i;:::-;11012;;:36;;11003:46;;;::::0;::::1;;10859:198:::0;:::o;10740:111::-;10790:20;;10782:61;;-1:-1:-1;;;;;10790:20:0;;;;10821:21;10782:61;;;;;10790:20;10782:61;10790:20;10782:61;10821:21;10790:20;10782:61;;;;;;;;;;;;;;;;;;;499:190;585:7;621:12;613:6;;;;605:29;;;;-1:-1:-1;;;605:29:0;;;;;;;;:::i;:::-;-1:-1:-1;645:9:0;657:5;661:1;657;:5;:::i;:::-;645:17;499:190;-1:-1:-1;;;;;499:190:0:o;7508:1043::-;7620:6;;7600:4;;7620:6;;7617:63;;;7636:41;7651:6;7659:9;7670:6;7636:14;:41::i;:::-;7629:48;;;;7617:63;7717:4;;-1:-1:-1;;;;;7704:17:0;;;7717:4;;7704:17;;;;:38;;-1:-1:-1;7738:4:0;;-1:-1:-1;;;;;7725:17:0;;;7738:4;;7725:17;;7704:38;7700:200;;;-1:-1:-1;;;;;7767:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;7830:16:0;;-1:-1:-1;;;;;7797:20:0;;;;;;:9;:20;;;;;;:29;;7820:6;;7797:29;:::i;:::-;:49;;7767:79;7759:129;;;;-1:-1:-1;;;7759:129:0;;5308:2:1;7759:129:0;;;5290:21:1;5347:2;5327:18;;;5320:30;5386:34;5366:18;;;5359:62;-1:-1:-1;;;5437:18:1;;;5430:35;5482:19;;7759:129:0;5106:401:1;7759:129:0;-1:-1:-1;;;;;7929:13:0;;;;;;:5;:13;;;;;;;;7928:14;7920:38;;;;-1:-1:-1;;;7920:38:0;;5714:2:1;7920:38:0;;;5696:21:1;5753:2;5733:18;;;5726:30;-1:-1:-1;;;5772:18:1;;;5765:41;5823:18;;7920:38:0;5512:335:1;7920:38:0;7974:16;:14;:16::i;:::-;7971:35;;;7993:10;:8;:10::i;:::-;8039:53;;;;;;;;;;;-1:-1:-1;;;8039:53:0;;;;;;;;-1:-1:-1;;;;;8039:17:0;;-1:-1:-1;8039:17:0;;;:9;:17;;;;;;;;:53;;8061:6;;8039:21;:53::i;:::-;-1:-1:-1;;;;;8019:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8988:11;:19;;;;8131:6;;8988:19;;8148:235;;8201:4;;-1:-1:-1;;;;;8201:4:0;;;8191:14;;;;8188:183;;8242:29;8250:6;8258;8265:5;8242:7;:29::i;:::-;8225:46;;8188:183;;;8327:28;8335:6;8343;8350:4;8327:7;:28::i;:::-;8310:45;;8188:183;-1:-1:-1;;;;;8420:20:0;;;;;;:9;:20;;;;;;:40;;8445:14;8420:24;:40::i;:::-;-1:-1:-1;;;;;8397:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8478:43;;;;;;;;;;8506:14;160:25:1;;148:2;133:18;;14:177;8478:43:0;;;;;;;;-1:-1:-1;8539:4:0;;7508:1043;-1:-1:-1;;;;7508:1043:0:o;8563:330::-;8693:53;;;;;;;;;;;-1:-1:-1;;;8693:53:0;;;;;;;;-1:-1:-1;;;;;8693:17:0;;8656:4;8693:17;;;:9;:17;;;;;;;:53;;8715:6;;8693:21;:53::i;:::-;-1:-1:-1;;;;;8673:17:0;;;;;;;:9;:17;;;;;;:73;;;;8780:20;;;;;;;:32;;8805:6;8780:24;:32::i;:::-;-1:-1:-1;;;;;8757:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8828:35;;;;;;;;;;8856:6;160:25:1;;148:2;133:18;;14:177;8828:35:0;;;;;;;;-1:-1:-1;8881:4:0;8563:330;;;;;:::o;9434:197::-;9521:4;;9483;;-1:-1:-1;;;;;9521:4:0;9507:10;:18;;;;:38;;-1:-1:-1;9539:6:0;;;;9538:7;9507:38;:62;;;;-1:-1:-1;9558:11:0;;-1:-1:-1;;;9558:11:0;;;;9507:62;:116;;;;-1:-1:-1;9610:13:0;;9600:4;9582:24;;;;:9;:24;;;;;;:41;;9507:116;9500:123;;9434:197;:::o;9639:715::-;5327:6;:13;;-1:-1:-1;;5327:13:0;5336:4;5327:13;;;9729:4:::1;5327:6:::0;9711:24;;;:9:::1;:24;::::0;;;;;9750:11:::1;::::0;-1:-1:-1;;;9750:11:0;::::1;5327:13:::0;9750:11:::1;9746:127;;;9797:13;::::0;:15:::1;::::0;9811:1:::1;9797:15;:::i;:::-;9781:12;:31;9777:84;;9846:13;::::0;:15:::1;::::0;9860:1:::1;9846:15;:::i;:::-;9831:30;;9777:84;9907:16;::::0;;9921:1:::1;9907:16:::0;;;;;::::1;::::0;;9883:21:::1;::::0;9907:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9907:16:0::1;9883:40;;9952:4;9934;9939:1;9934:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9934:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9978:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9978:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9934:7;;9978:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9968:4;9973:1;9968:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9968:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;10004:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;10004:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;10076:12;;10004:6:::1;::::0;10119:4;;10146::::1;::::0;10166:15:::1;::::0;10004:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10233:17;10209:21;:41;10205:134;;;10274:20;::::0;10266:61:::1;::::0;-1:-1:-1;;;;;10274:20:0;;::::1;::::0;10305:21:::1;10266:61:::0;::::1;;;::::0;10274:20:::1;10266:61:::0;10274:20;10266:61;10305:21;10274:20;10266:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10205:134;-1:-1:-1::0;;5345:6:0;:14;;-1:-1:-1;;5345:14:0;;;9639:715::o;9023:403::-;9103:7;9123:14;9140:6;:104;;9200:44;9229:14;;9200:24;9211:12;;9200:6;:10;;:24;;;;:::i;:::-;:28;;:44::i;:::-;9140:104;;;9149:48;9182:14;;9149:28;9160:16;;9149:6;:10;;:28;;;;:::i;:48::-;9300:4;9282:24;;;;:9;:24;;;;;;9123:121;;-1:-1:-1;9282:39:0;;9123:121;9282:28;:39::i;:::-;9273:4;9255:24;;;;:9;:24;;;;;;;:66;;;;9337:42;;-1:-1:-1;;;;;9337:42:0;;;;;;;9369:9;160:25:1;;148:2;133:18;;14:177;9337:42:0;;;;;;;;9397:21;:6;9408:9;9397:10;:21::i;172:179::-;230:7;;262:5;266:1;262;:5;:::i;:::-;250:17;;291:1;286;:6;;278:46;;;;-1:-1:-1;;;278:46:0;;7559:2:1;278:46:0;;;7541:21:1;7598:2;7578:18;;;7571:30;7637:29;7617:18;;;7610:57;7684:18;;278:46:0;7357:351:1;695:246:0;753:7;777:1;782;777:6;773:47;;-1:-1:-1;807:1:0;800:8;;773:47;830:9;842:5;846:1;842;:5;:::i;:::-;830:17;-1:-1:-1;875:1:0;866:5;870:1;830:17;866:5;:::i;:::-;:10;858:56;;;;-1:-1:-1;;;858:56:0;;7915:2:1;858:56:0;;;7897:21:1;7954:2;7934:18;;;7927:30;7993:34;7973:18;;;7966:62;-1:-1:-1;;;8044:18:1;;;8037:31;8085:19;;858:56:0;7713:397:1;947:132:0;1005:7;1032:39;1036:1;1039;1032:39;;;;;;;;;;;;;;;;;:3;:39::i;357:136::-;415:7;442:43;446:1;449;442:43;;;;;;;;;;;;;;;;;:3;:43::i;1085:189::-;1171:7;1206:12;1199:5;1191:28;;;;-1:-1:-1;;;1191:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1230:9:0;1242:5;1246:1;1242;:5;:::i;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;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:248::-;1465:6;1473;1526:2;1514:9;1505:7;1501:23;1497:32;1494:52;;;1542:1;1539;1532:12;1494:52;-1:-1:-1;;1565:23:1;;;1635:2;1620:18;;;1607:32;;-1:-1:-1;1397:248:1:o;1650:456::-;1727:6;1735;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1851:9;1838:23;1870:31;1895:5;1870:31;:::i;:::-;1920:5;-1:-1:-1;1977:2:1;1962:18;;1949:32;1990:33;1949:32;1990:33;:::i;:::-;1650:456;;2042:7;;-1:-1:-1;;;2096:2:1;2081:18;;;;2068:32;;1650:456::o;2111:247::-;2170:6;2223:2;2211:9;2202:7;2198:23;2194:32;2191:52;;;2239:1;2236;2229:12;2191:52;2278:9;2265:23;2297:31;2322:5;2297:31;:::i;2760:180::-;2819:6;2872:2;2860:9;2851:7;2847:23;2843:32;2840:52;;;2888:1;2885;2878:12;2840:52;-1:-1:-1;2911:23:1;;2760:180;-1:-1:-1;2760:180:1:o;2945:160::-;3010:20;;3066:13;;3059:21;3049:32;;3039:60;;3095:1;3092;3085:12;3039:60;2945:160;;;:::o;3110:248::-;3172:6;3180;3233:2;3221:9;3212:7;3208:23;3204:32;3201:52;;;3249:1;3246;3239:12;3201:52;3272:26;3288:9;3272:26;:::i;:::-;3262:36;;3317:35;3348:2;3337:9;3333:18;3317:35;:::i;:::-;3307:45;;3110:248;;;;;:::o;3363:388::-;3431:6;3439;3492:2;3480:9;3471:7;3467:23;3463:32;3460:52;;;3508:1;3505;3498:12;3460:52;3547:9;3534:23;3566:31;3591:5;3566:31;:::i;:::-;3616:5;-1:-1:-1;3673:2:1;3658:18;;3645:32;3686:33;3645:32;3686:33;:::i;:::-;3738:7;3728:17;;;3363:388;;;;;:::o;3982:329::-;4184:2;4166:21;;;4223:1;4203:18;;;4196:29;-1:-1:-1;;;4256:2:1;4241:18;;4234:36;4302:2;4287:18;;3982:329::o;4316:127::-;4377:10;4372:3;4368:20;4365:1;4358:31;4408:4;4405:1;4398:15;4432:4;4429:1;4422:15;4448:168;4521:9;;;4552;;4569:15;;;4563:22;;4549:37;4539:71;;4590:18;;:::i;4621:217::-;4661:1;4687;4677:132;;4731:10;4726:3;4722:20;4719:1;4712:31;4766:4;4763:1;4756:15;4794:4;4791:1;4784:15;4677:132;-1:-1:-1;4823:9:1;;4621:217::o;4843:128::-;4910:9;;;4931:11;;;4928:37;;;4945:18;;:::i;4976:125::-;5041:9;;;5062:10;;;5059:36;;;5075:18;;:::i;5984:127::-;6045:10;6040:3;6036:20;6033:1;6026:31;6076:4;6073:1;6066:15;6100:4;6097:1;6090:15;6116:251;6186:6;6239:2;6227:9;6218:7;6214:23;6210:32;6207:52;;;6255:1;6252;6245:12;6207:52;6287:9;6281:16;6306:31;6331:5;6306:31;:::i;6372:980::-;6634:4;6682:3;6671:9;6667:19;6713:6;6702:9;6695:25;6739:2;6777:6;6772:2;6761:9;6757:18;6750:34;6820:3;6815:2;6804:9;6800:18;6793:31;6844:6;6879;6873:13;6910:6;6902;6895:22;6948:3;6937:9;6933:19;6926:26;;6987:2;6979:6;6975:15;6961:29;;7008:1;7018:195;7032:6;7029:1;7026:13;7018:195;;;7097:13;;-1:-1:-1;;;;;7093:39:1;7081:52;;7188:15;;;;7153:12;;;;7129:1;7047:9;7018:195;;;-1:-1:-1;;;;;;;7269:32:1;;;;7264:2;7249:18;;7242:60;-1:-1:-1;;;7333:3:1;7318:19;7311:35;7230:3;6372:980;-1:-1:-1;;;6372:980:1:o

Swarm Source

ipfs://4285f1a8e7b406ece6c0aeaf9408dbdd8e4b60c770c06e5cd289c743ef62baa5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.