ETH Price: $3,634.12 (+9.37%)

Token

PepeForPresident (Pepe4Prez)
 

Overview

Max Total Supply

420,696,969 Pepe4Prez

Holders

120

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
192,712.056355044007582563 Pepe4Prez

Value
$0.00
0x5209efcca35577d11ca5937b0b87f93d914c6379
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:
Pepe4Prez

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-10
*/

/*

Telegram: https://t.me/Pepe4prez
Twitter : https://twitter.com/Pepe4prez42069
Web     : https://PepePrez.co
                                                                                                                                                                                                                                             
*/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
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 Pepe4Prez is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "PepeForPresident";
    string constant _symbol = "Pepe4Prez";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 420696969 * (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;

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 3;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address internal marketingFeeReceiver = 0x36abe5B30da74d7151e4C76D2c181a9Ea923546B;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 2; // 0.5%
    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[0x36abe5B30da74d7151e4C76D2c181a9Ea923546B] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x36abe5B30da74d7151e4C76D2c181a9Ea923546B] = 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.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

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

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _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) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.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(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

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

    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 clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

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

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","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":[],"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":"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"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486012600a620004e6565b62000058906319135389620004fe565b600355606460035460026200006e9190620004fe565b6200007a919062000520565b600455600060098190556003600a819055620000969162000543565b600b556064600c55600d80546001600160a01b0319167336abe5b30da74d7151e4c76d2c181a9ea923546b179055600f805460ff60a01b1916600160a01b179055600354620000e9906103e89062000520565b620000f6906002620004fe565b6010553480156200010657600080fd5b5060008054336001600160a01b031991821617909155600154600e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200016e57600080fd5b505afa15801562000183573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a991906200055e565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020657600080fd5b505afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024191906200055e565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200028957600080fd5b505af11580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c491906200055e565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600e54851684528252808320600019905582547fb2e3481ac4d8d2ea1c4d74f74fa4d7be1d5c3f228af00f2f768039a684fafe25805460ff1990811660019081179092559186168086526008855283862080548416831790557f6378a5fd5a111e8f323e53e4785132068724346964ab89d9c383c4384207830d8054841683179055600254909616855282852080549092161790556003548484526005835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000589565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004285781600019048211156200040c576200040c620003d1565b808516156200041a57918102915b93841c9390800290620003ec565b509250929050565b6000826200044157506001620004e0565b816200045057506000620004e0565b8160018114620004695760028114620004745762000494565b6001915050620004e0565b60ff841115620004885762000488620003d1565b50506001821b620004e0565b5060208310610133831016604e8410600b8410161715620004b9575081810a620004e0565b620004c58383620003e7565b8060001904821115620004dc57620004dc620003d1565b0290505b92915050565b6000620004f760ff84168362000430565b9392505050565b60008160001904831182151516156200051b576200051b620003d1565b500290565b6000826200053e57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005595762000559620003d1565b500190565b6000602082840312156200057157600080fd5b81516001600160a01b0381168114620004f757600080fd5b61139e80620005996000396000f3fe60806040526004361061012e5760003560e01c80636c0a24eb116100ab57806395d89b411161006f57806395d89b4114610360578063a8aa1b3114610392578063a9059cbb146103b2578063dd62ed3e146103d2578063f1d5f51714610418578063f887ea401461043857600080fd5b80636c0a24eb146102ac5780636ddd1713146102c257806370a08231146102e3578063715018a614610319578063893d20e81461032e57600080fd5b80632f54bf6e116100f25780632f54bf6e1461020a578063313ce56714610239578063364333f41461025557806352f7c9881461026c578063571ac8b01461028c57600080fd5b80630445b6671461013a57806306fdde0314610163578063095ea7b3146101a557806318160ddd146101d557806323b872dd146101ea57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060105481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5060408051808201909152601081526f14195c19519bdc941c995cda59195b9d60821b60208201525b60405161015a9190611088565b3480156101b157600080fd5b506101c56101c03660046110f2565b610458565b604051901515815260200161015a565b3480156101e157600080fd5b50600354610150565b3480156101f657600080fd5b506101c561020536600461111e565b6104c5565b34801561021657600080fd5b506101c561022536600461115f565b6000546001600160a01b0391821691161490565b34801561024557600080fd5b506040516012815260200161015a565b34801561026157600080fd5b5061026a610587565b005b34801561027857600080fd5b5061026a61028736600461117c565b6105c3565b34801561029857600080fd5b506101c56102a736600461115f565b610611565b3480156102b857600080fd5b5061015060045481565b3480156102ce57600080fd5b50600f546101c590600160a01b900460ff1681565b3480156102ef57600080fd5b506101506102fe36600461115f565b6001600160a01b031660009081526005602052604090205490565b34801561032557600080fd5b5061026a61061f565b34801561033a57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561036c57600080fd5b506040805180820190915260098152682832b8329a283932bd60b91b6020820152610198565b34801561039e57600080fd5b50600f54610348906001600160a01b031681565b3480156103be57600080fd5b506101c56103cd3660046110f2565b61068e565b3480156103de57600080fd5b506101506103ed36600461119e565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561042457600080fd5b5061026a6104333660046111d7565b61069b565b34801561044457600080fd5b50600e54610348906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104b39086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610572576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461054d9184906106e6565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61057d848484610720565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105c0573d6000803e3d6000fd5b50565b6000546001600160a01b031633146105f65760405162461bcd60e51b81526004016105ed906111f0565b60405180910390fd5b6009829055600a81905561060a8183611226565b600b555050565b60006104bf82600019610458565b6000546001600160a01b031633146106495760405162461bcd60e51b81526004016105ed906111f0565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000610580338484610720565b6000546001600160a01b031633146106c55760405162461bcd60e51b81526004016105ed906111f0565b6103e8816003546106d6919061123e565b6106e0919061125d565b60045550565b6000818484111561070a5760405162461bcd60e51b81526004016105ed9190611088565b506000610717848661127f565b95945050505050565b60115460009060ff16156107405761073984848461094a565b9050610580565b600f546001600160a01b0384811691161480159061076c57506002546001600160a01b03848116911614155b15610817576001600160a01b03831660009081526008602052604090205460ff16806107bd57506004546001600160a01b0384166000908152600560205260409020546107ba908490611226565b11155b6108175760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105ed565b61081f610a30565b1561082c5761082c610a88565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526005909152919091205461087e9184906106e6565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108b357826108bd565b6108bd8584610e52565b6001600160a01b0385166000908152600560205260409020549091506108e39082610ef8565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109379085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461099b9184906106e6565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546109ca9083610ef8565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a1e9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610a51575060115460ff16155b8015610a665750600f54600160a01b900460ff165b8015610a8357506010543060009081526005602052604090205410155b905090565b6011805460ff19166001179055601054600b54600954600091610abb91600291610ab59182908790610f57565b90610fd6565b90506000610ac98383611018565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610b0357610b03611296565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610b5757600080fd5b505afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f91906112ac565b81600181518110610ba257610ba2611296565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610bec9086906000908790309042906004016112c9565b600060405180830381600087803b158015610c0657600080fd5b505af1158015610c1a573d6000803e3d6000fd5b505050506000610c33824761101890919063ffffffff16565b90506000610c59610c506002600954610fd690919063ffffffff16565b600b5490611018565b90506000610c7b6002610ab584610ab560095488610f5790919063ffffffff16565b90506000610c9883610ab5600a5487610f5790919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610cef576040519150601f19603f3d011682016040523d82523d6000602084013e610cf4565b606091505b5050905080610d455760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016105ed565b8815610e3c57600e5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201527336abe5b30da74d7151e4c76d2c181a9ea923546b60848201524260a48201526001600160a01b039091169063f305d71990859060c4016060604051808303818588803b158015610dc657600080fd5b505af1158015610dda573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dff919061133a565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610e70600c54610ab5600b5486610f5790919063ffffffff16565b30600090815260056020526040902054909150610e8d9082610ef8565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ede9085815260200190565b60405180910390a3610ef08382611018565b949350505050565b600080610f058385611226565b9050838110156105805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ed565b600082610f66575060006104bf565b6000610f72838561123e565b905082610f7f858361125d565b146105805760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ed565b600061058083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061105a565b600061058083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506106e6565b6000818361107b5760405162461bcd60e51b81526004016105ed9190611088565b506000610717848661125d565b600060208083528351808285015260005b818110156110b557858101830151858201604001528201611099565b818111156110c7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146105c057600080fd5b6000806040838503121561110557600080fd5b8235611110816110dd565b946020939093013593505050565b60008060006060848603121561113357600080fd5b833561113e816110dd565b9250602084013561114e816110dd565b929592945050506040919091013590565b60006020828403121561117157600080fd5b8135610580816110dd565b6000806040838503121561118f57600080fd5b50508035926020909101359150565b600080604083850312156111b157600080fd5b82356111bc816110dd565b915060208301356111cc816110dd565b809150509250929050565b6000602082840312156111e957600080fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561123957611239611210565b500190565b600081600019048311821515161561125857611258611210565b500290565b60008261127a57634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561129157611291611210565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156112be57600080fd5b8151610580816110dd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113195784516001600160a01b0316835293830193918301916001016112f4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561134f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d958b7b377d464f52c1d318ab21a2998848acafd2de0124f29a949ba564fee3264736f6c63430008090033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80636c0a24eb116100ab57806395d89b411161006f57806395d89b4114610360578063a8aa1b3114610392578063a9059cbb146103b2578063dd62ed3e146103d2578063f1d5f51714610418578063f887ea401461043857600080fd5b80636c0a24eb146102ac5780636ddd1713146102c257806370a08231146102e3578063715018a614610319578063893d20e81461032e57600080fd5b80632f54bf6e116100f25780632f54bf6e1461020a578063313ce56714610239578063364333f41461025557806352f7c9881461026c578063571ac8b01461028c57600080fd5b80630445b6671461013a57806306fdde0314610163578063095ea7b3146101a557806318160ddd146101d557806323b872dd146101ea57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060105481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5060408051808201909152601081526f14195c19519bdc941c995cda59195b9d60821b60208201525b60405161015a9190611088565b3480156101b157600080fd5b506101c56101c03660046110f2565b610458565b604051901515815260200161015a565b3480156101e157600080fd5b50600354610150565b3480156101f657600080fd5b506101c561020536600461111e565b6104c5565b34801561021657600080fd5b506101c561022536600461115f565b6000546001600160a01b0391821691161490565b34801561024557600080fd5b506040516012815260200161015a565b34801561026157600080fd5b5061026a610587565b005b34801561027857600080fd5b5061026a61028736600461117c565b6105c3565b34801561029857600080fd5b506101c56102a736600461115f565b610611565b3480156102b857600080fd5b5061015060045481565b3480156102ce57600080fd5b50600f546101c590600160a01b900460ff1681565b3480156102ef57600080fd5b506101506102fe36600461115f565b6001600160a01b031660009081526005602052604090205490565b34801561032557600080fd5b5061026a61061f565b34801561033a57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561036c57600080fd5b506040805180820190915260098152682832b8329a283932bd60b91b6020820152610198565b34801561039e57600080fd5b50600f54610348906001600160a01b031681565b3480156103be57600080fd5b506101c56103cd3660046110f2565b61068e565b3480156103de57600080fd5b506101506103ed36600461119e565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561042457600080fd5b5061026a6104333660046111d7565b61069b565b34801561044457600080fd5b50600e54610348906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104b39086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610572576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461054d9184906106e6565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61057d848484610720565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105c0573d6000803e3d6000fd5b50565b6000546001600160a01b031633146105f65760405162461bcd60e51b81526004016105ed906111f0565b60405180910390fd5b6009829055600a81905561060a8183611226565b600b555050565b60006104bf82600019610458565b6000546001600160a01b031633146106495760405162461bcd60e51b81526004016105ed906111f0565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000610580338484610720565b6000546001600160a01b031633146106c55760405162461bcd60e51b81526004016105ed906111f0565b6103e8816003546106d6919061123e565b6106e0919061125d565b60045550565b6000818484111561070a5760405162461bcd60e51b81526004016105ed9190611088565b506000610717848661127f565b95945050505050565b60115460009060ff16156107405761073984848461094a565b9050610580565b600f546001600160a01b0384811691161480159061076c57506002546001600160a01b03848116911614155b15610817576001600160a01b03831660009081526008602052604090205460ff16806107bd57506004546001600160a01b0384166000908152600560205260409020546107ba908490611226565b11155b6108175760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016105ed565b61081f610a30565b1561082c5761082c610a88565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526005909152919091205461087e9184906106e6565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108b357826108bd565b6108bd8584610e52565b6001600160a01b0385166000908152600560205260409020549091506108e39082610ef8565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109379085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461099b9184906106e6565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546109ca9083610ef8565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a1e9086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610a51575060115460ff16155b8015610a665750600f54600160a01b900460ff165b8015610a8357506010543060009081526005602052604090205410155b905090565b6011805460ff19166001179055601054600b54600954600091610abb91600291610ab59182908790610f57565b90610fd6565b90506000610ac98383611018565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610b0357610b03611296565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610b5757600080fd5b505afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f91906112ac565b81600181518110610ba257610ba2611296565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610bec9086906000908790309042906004016112c9565b600060405180830381600087803b158015610c0657600080fd5b505af1158015610c1a573d6000803e3d6000fd5b505050506000610c33824761101890919063ffffffff16565b90506000610c59610c506002600954610fd690919063ffffffff16565b600b5490611018565b90506000610c7b6002610ab584610ab560095488610f5790919063ffffffff16565b90506000610c9883610ab5600a5487610f5790919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610cef576040519150601f19603f3d011682016040523d82523d6000602084013e610cf4565b606091505b5050905080610d455760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016105ed565b8815610e3c57600e5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201527336abe5b30da74d7151e4c76d2c181a9ea923546b60848201524260a48201526001600160a01b039091169063f305d71990859060c4016060604051808303818588803b158015610dc657600080fd5b505af1158015610dda573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dff919061133a565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610e70600c54610ab5600b5486610f5790919063ffffffff16565b30600090815260056020526040902054909150610e8d9082610ef8565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ede9085815260200190565b60405180910390a3610ef08382611018565b949350505050565b600080610f058385611226565b9050838110156105805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ed565b600082610f66575060006104bf565b6000610f72838561123e565b905082610f7f858361125d565b146105805760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ed565b600061058083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061105a565b600061058083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506106e6565b6000818361107b5760405162461bcd60e51b81526004016105ed9190611088565b506000610717848661125d565b600060208083528351808285015260005b818110156110b557858101830151858201604001528201611099565b818111156110c7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146105c057600080fd5b6000806040838503121561110557600080fd5b8235611110816110dd565b946020939093013593505050565b60008060006060848603121561113357600080fd5b833561113e816110dd565b9250602084013561114e816110dd565b929592945050506040919091013590565b60006020828403121561117157600080fd5b8135610580816110dd565b6000806040838503121561118f57600080fd5b50508035926020909101359150565b600080604083850312156111b157600080fd5b82356111bc816110dd565b915060208301356111cc816110dd565b809150509250929050565b6000602082840312156111e957600080fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561123957611239611210565b500190565b600081600019048311821515161561125857611258611210565b500290565b60008261127a57634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561129157611291611210565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156112be57600080fd5b8151610580816110dd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113195784516001600160a01b0316835293830193918301916001016112f4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561134f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d958b7b377d464f52c1d318ab21a2998848acafd2de0124f29a949ba564fee3264736f6c63430008090033

Deployed Bytecode Sourcemap

4446:7758:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5467:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5467:54:0;;;;;;;;6552:80;;;;;;;;;;-1:-1:-1;6624:5:0;;;;;;;;;;;;-1:-1:-1;;;6624:5:0;;;;6552:80;;;;;;;:::i;6974:216::-;;;;;;;;;;-1:-1:-1;6974:216:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;6974:216:0;1254:187:1;6282:88:0;;;;;;;;;;-1:-1:-1;6355:12:0;;6282:88;;7492:370;;;;;;;;;;-1:-1:-1;7492:370:0;;;;;:::i;:::-;;:::i;2684:103::-;;;;;;;;;;-1:-1:-1;2684:103:0;;;;;:::i;:::-;2739:4;2774:5;-1:-1:-1;;;;;2763:16:0;;;2774:5;;2763:16;;2684:103;6376:80;;;;;;;;;;-1:-1:-1;6376:80:0;;4781:2;2301:36:1;;2289:2;2274:18;6376:80:0;2159:184:1;11633:118:0;;;;;;;;;;;;;:::i;:::-;;11909:220;;;;;;;;;;-1:-1:-1;11909:220:0;;;;;:::i;:::-;;:::i;7198:122::-;;;;;;;;;;-1:-1:-1;7198:122:0;;;;;:::i;:::-;;:::i;4851:58::-;;;;;;;;;;;;;;;;5430:30;;;;;;;;;;-1:-1:-1;5430:30:0;;;;-1:-1:-1;;;5430:30:0;;;;;;6722:105;;;;;;;;;;-1:-1:-1;6722:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6806:18:0;6788:7;6806:18;;;:9;:18;;;;;;;6722:105;2793:131;;;;;;;;;;;;;:::i;6638:78::-;;;;;;;;;;-1:-1:-1;6690:7:0;6708:5;-1:-1:-1;;;;;6708:5:0;6638:78;;;-1:-1:-1;;;;;2765:32:1;;;2747:51;;2735:2;2720:18;6638:78:0;2601:203:1;6462:84:0;;;;;;;;;;-1:-1:-1;6536:7:0;;;;;;;;;;;;-1:-1:-1;;;6536:7:0;;;;6462:84;;5402:19;;;;;;;;;;-1:-1:-1;5402:19:0;;;;-1:-1:-1;;;;;5402:19:0;;;7328:156;;;;;;;;;;-1:-1:-1;7328:156:0;;;;;:::i;:::-;;:::i;6833:133::-;;;;;;;;;;-1:-1:-1;6833:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6935:19:0;;;6917:7;6935:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6833:133;11759:142;;;;;;;;;;-1:-1:-1;11759:142:0;;;;;:::i;:::-;;:::i;5371:24::-;;;;;;;;;;-1:-1:-1;5371:24:0;;;;-1:-1:-1;;;;;5371:24:0;;;6974:216;7078:10;7049:4;7066:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7066:32:0;;;;;;;;;;:41;;;7123:37;7049:4;;7066:32;;7123:37;;;;7101:6;160:25:1;;148:2;133:18;;14:177;7123:37:0;;;;;;;;-1:-1:-1;7178:4:0;6974:216;;;;;:::o;7492:370::-;-1:-1:-1;;;;;7612:19:0;;7592:4;7612:19;;;:11;:19;;;;;;;;7632:10;7612:31;;;;;;;;-1:-1:-1;;7612:52:0;7609:186;;7714:69;;;;;;;;;;;-1:-1:-1;;;7714:69:0;;;;;;;;-1:-1:-1;;;;;7714:19:0;;-1:-1:-1;7714:19:0;;;:11;:19;;;;;7734:10;7714:31;;;;;;;;;;:69;;7750:6;;7714:35;:69::i;:::-;-1:-1:-1;;;;;7680:19:0;;;;;;:11;:19;;;;;;;;7700:10;7680:31;;;;;;;:103;7609:186;7814:40;7828:6;7836:9;7847:6;7814:13;:40::i;:::-;7807:47;;7492:370;;;;;;:::o;11633:118::-;11690:20;;11682:61;;-1:-1:-1;;;;;11690:20:0;;;;11721:21;11682:61;;;;;11690:20;11682:61;11690:20;11682:61;11721:21;11690:20;11682:61;;;;;;;;;;;;;;;;;;;;;11633:118::o;11909:220::-;2739:4;2774:5;-1:-1:-1;;;;;2774:5:0;2645:10;2763:16;2629:38;;;;-1:-1:-1;;;2629:38:0;;;;;;;:::i;:::-;;;;;;;;;12002:12:::1;:28:::0;;;12043:12:::1;:28:::0;;;12094:27:::1;12058:13:::0;12017;12094:27:::1;:::i;:::-;12083:8;:38:::0;-1:-1:-1;;11909:220:0:o;7198:122::-;7253:4;7277:35;7285:7;-1:-1:-1;;7277:7:0;:35::i;2793:131::-;2739:4;2774:5;-1:-1:-1;;;;;2774:5:0;2645:10;2763:16;2629:38;;;;-1:-1:-1;;;2629:38:0;;;;;;;:::i;:::-;2866:1:::1;2850:18:::0;;-1:-1:-1;;;;;;2850:18:0::1;::::0;;2884:32:::1;::::0;2747:51:1;;;2884:32:0::1;::::0;2735:2:1;2720:18;2884:32:0::1;;;;;;;2793:131::o:0;7328:156::-;7408:4;7432:44;7446:10;7458:9;7469:6;7432:13;:44::i;11759:142::-;2739:4;2774:5;-1:-1:-1;;;;;2774:5:0;2645:10;2763:16;2629:38;;;;-1:-1:-1;;;2629:38:0;;;;;;;:::i;:::-;11889:4:::1;11871:13;11856:12;;:28;;;;:::i;:::-;11855:38;;;;:::i;:::-;11836:16;:57:::0;-1:-1:-1;11759:142:0:o;773:190::-;859:7;895:12;887:6;;;;879:29;;;;-1:-1:-1;;;879:29:0;;;;;;;;:::i;:::-;-1:-1:-1;919:9:0;931:5;935:1;931;:5;:::i;:::-;919:17;773:190;-1:-1:-1;;;;;773:190:0:o;7870:792::-;7982:6;;7962:4;;7982:6;;7979:63;;;7998:41;8013:6;8021:9;8032:6;7998:14;:41::i;:::-;7991:48;;;;7979:63;8079:4;;-1:-1:-1;;;;;8066:17:0;;;8079:4;;8066:17;;;;:38;;-1:-1:-1;8100:4:0;;-1:-1:-1;;;;;8087:17:0;;;8100:4;;8087:17;;8066:38;8062:200;;;-1:-1:-1;;;;;8129:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;8192:16:0;;-1:-1:-1;;;;;8159:20:0;;;;;;:9;:20;;;;;;:29;;8182:6;;8159:29;:::i;:::-;:49;;8129:79;8121:129;;;;-1:-1:-1;;;8121:129:0;;4939:2:1;8121:129:0;;;4921:21:1;4978:2;4958:18;;;4951:30;5017:34;4997:18;;;4990:62;-1:-1:-1;;;5068:18:1;;;5061:35;5113:19;;8121:129:0;4737:401:1;8121:129:0;8285:16;:14;:16::i;:::-;8282:35;;;8304:10;:8;:10::i;:::-;8350:53;;;;;;;;;;;-1:-1:-1;;;8350:53:0;;;;;;;;-1:-1:-1;;;;;8350:17:0;;-1:-1:-1;8350:17:0;;;:9;:17;;;;;;;;:53;;8372:6;;8350:21;:53::i;:::-;-1:-1:-1;;;;;8330:17:0;;;;;;:9;:17;;;;;;;;:73;;;;9099:11;:19;;;;;;;;9098:20;8441:56;;8491:6;8441:56;;;8465:23;8473:6;8481;8465:7;:23::i;:::-;-1:-1:-1;;;;;8531:20:0;;;;;;:9;:20;;;;;;8416:81;;-1:-1:-1;8531:40:0;;8416:81;8531:24;:40::i;:::-;-1:-1:-1;;;;;8508:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8589:43;;;;;;;;;;8617:14;160:25:1;;148:2;133:18;;14:177;8589:43:0;;;;;;;;-1:-1:-1;8650:4:0;;7870:792;-1:-1:-1;;;;7870:792:0:o;8674:330::-;8804:53;;;;;;;;;;;-1:-1:-1;;;8804:53:0;;;;;;;;-1:-1:-1;;;;;8804:17:0;;8767:4;8804:17;;;:9;:17;;;;;;;:53;;8826:6;;8804:21;:53::i;:::-;-1:-1:-1;;;;;8784:17:0;;;;;;;:9;:17;;;;;;:73;;;;8891:20;;;;;;;:32;;8916:6;8891:24;:32::i;:::-;-1:-1:-1;;;;;8868:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8939:35;;;;;;;;;;8967:6;160:25:1;;148:2;133:18;;14:177;8939:35:0;;;;;;;;-1:-1:-1;8992:4:0;8674:330;;;;;:::o;9471:197::-;9558:4;;9520;;-1:-1:-1;;;;;9558:4:0;9544:10;:18;;;;:38;;-1:-1:-1;9576:6:0;;;;9575:7;9544:38;:62;;;;-1:-1:-1;9595:11:0;;-1:-1:-1;;;9595:11:0;;;;9544:62;:116;;;;-1:-1:-1;9647:13:0;;9637:4;9619:24;;;;:9;:24;;;;;;:41;;9544:116;9537:123;;9471:197;:::o;9676:1571::-;5576:6;:13;;-1:-1:-1;;5576:13:0;5585:4;5576:13;;;9756::::1;::::0;9849:8:::1;::::0;9831:12:::1;::::0;5576:6;;9806:59:::1;::::0;9863:1:::1;::::0;9806:52:::1;::::0;;;9756:13;;9806:24:::1;:38::i;:::-;:42:::0;::::1;:52::i;:59::-;9780:85:::0;-1:-1:-1;9876:20:0::1;9899:41;:20:::0;9780:85;9899:24:::1;:41::i;:::-;9977:16;::::0;;9991:1:::1;9977:16:::0;;;;;::::1;::::0;;9876:64;;-1:-1:-1;9953:21:0::1;::::0;9977:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9977:16:0::1;9953:40;;10022:4;10004;10009:1;10004:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10004:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10048:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;10048:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;10004:7;;10048:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10038:4;10043:1;10038:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10038:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;10132:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;10132:188:0;;10098:21:::1;::::0;10132:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;10204:12;;10074:21:::1;::::0;10247:4;;10274::::1;::::0;10294:15:::1;::::0;10132:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10331:17;10351:40;10377:13;10351:21;:25;;:40;;;;:::i;:::-;10331:60;;10402:19;10424:33;10437:19;10454:1;10437:12;;:16;;:19;;;;:::i;:::-;10424:8;::::0;;:12:::1;:33::i;:::-;10402:55;;10468:26;10497:51;10546:1;10497:44;10529:11;10497:27;10511:12;;10497:9;:13;;:27;;;;:::i;:51::-;10468:80;;10559:26;10588:44;10620:11;10588:27;10602:12;;10588:9;:13;;:27;;;;:::i;:44::-;10706:20;::::0;10698:77:::1;::::0;10559:73;;-1:-1:-1;10648:21:0::1;::::0;-1:-1:-1;;;;;10706:20:0;;::::1;::::0;10765:5:::1;::::0;10559:73;;10648:21;10698:77;10648:21;10698:77;10559:73;10706:20;10765:5;10698:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10647:128;;;10794:16;10786:59;;;::::0;-1:-1:-1;;;10786:59:0;;7060:2:1;10786:59:0::1;::::0;::::1;7042:21:1::0;7099:2;7079:18;;;7072:30;7138:32;7118:18;;;7111:60;7188:18;;10786:59:0::1;6858:354:1::0;10786:59:0::1;10861:19:::0;;10858:382:::1;;10896:6;::::0;:264:::1;::::0;-1:-1:-1;;;10896:264:0;;10972:4:::1;10896:264;::::0;::::1;7558:34:1::0;7608:18;;;7601:34;;;10896:6:0::1;7651:18:1::0;;;7644:34;;;7694:18;;;7687:34;11069:42:0::1;7737:19:1::0;;;7730:44;11130:15:0::1;7790:19:1::0;;;7783:35;-1:-1:-1;;;;;10896:6:0;;::::1;::::0;:22:::1;::::0;10926:18;;7492:19:1;;10896:264:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11180:48:0::1;::::0;;8314:25:1;;;8370:2;8355:18;;8348:34;;;11180:48:0::1;::::0;-1:-1:-1;8287:18:1;11180:48:0::1;;;;;;;10858:382;-1:-1:-1::0;;5594:6:0;:14;;-1:-1:-1;;5594:14:0;;;-1:-1:-1;;;;;;;;9676:1571:0:o;9134:329::-;9201:7;9221:17;9241:40;9266:14;;9241:20;9252:8;;9241:6;:10;;:20;;;;:::i;:40::-;9337:4;9319:24;;;;:9;:24;;;;;;9221:60;;-1:-1:-1;9319:39:0;;9221:60;9319:28;:39::i;:::-;9310:4;9292:24;;;;:9;:24;;;;;;;:66;;;;9374:42;;-1:-1:-1;;;;;9374:42:0;;;;;;;9406:9;160:25:1;;148:2;133:18;;14:177;9374:42:0;;;;;;;;9434:21;:6;9445:9;9434:10;:21::i;:::-;9427:28;9134:329;-1:-1:-1;;;;9134:329:0:o;446:179::-;504:7;;536:5;540:1;536;:5;:::i;:::-;524:17;;565:1;560;:6;;552:46;;;;-1:-1:-1;;;552:46:0;;8595:2:1;552:46:0;;;8577:21:1;8634:2;8614:18;;;8607:30;8673:29;8653:18;;;8646:57;8720:18;;552:46:0;8393:351:1;969:246:0;1027:7;1051:6;1047:47;;-1:-1:-1;1081:1:0;1074:8;;1047:47;1104:9;1116:5;1120:1;1116;:5;:::i;:::-;1104:17;-1:-1:-1;1149:1:0;1140:5;1144:1;1104:17;1140:5;:::i;:::-;:10;1132:56;;;;-1:-1:-1;;;1132:56:0;;8951:2:1;1132:56:0;;;8933:21:1;8990:2;8970:18;;;8963:30;9029:34;9009:18;;;9002:62;-1:-1:-1;;;9080:18:1;;;9073:31;9121:19;;1132:56:0;8749:397:1;1221:132:0;1279:7;1306:39;1310:1;1313;1306:39;;;;;;;;;;;;;;;;;:3;:39::i;631:136::-;689:7;716:43;720:1;723;716:43;;;;;;;;;;;;;;;;;:3;:43::i;1359:189::-;1445:7;1480:12;1473:5;1465:28;;;;-1:-1:-1;;;1465:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1504:9:0;1516:5;1520:1;1516;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;1907:247::-;1966:6;2019:2;2007:9;1998:7;1994:23;1990:32;1987:52;;;2035:1;2032;2025:12;1987:52;2074:9;2061:23;2093:31;2118:5;2093:31;:::i;2348:248::-;2416:6;2424;2477:2;2465:9;2456:7;2452:23;2448:32;2445:52;;;2493:1;2490;2483:12;2445:52;-1:-1:-1;;2516:23:1;;;2586:2;2571:18;;;2558:32;;-1:-1:-1;2348:248:1:o;2809:388::-;2877:6;2885;2938:2;2926:9;2917:7;2913:23;2909:32;2906:52;;;2954:1;2951;2944:12;2906:52;2993:9;2980:23;3012:31;3037:5;3012:31;:::i;:::-;3062:5;-1:-1:-1;3119:2:1;3104:18;;3091:32;3132:33;3091:32;3132:33;:::i;:::-;3184:7;3174:17;;;2809:388;;;;;:::o;3202:180::-;3261:6;3314:2;3302:9;3293:7;3289:23;3285:32;3282:52;;;3330:1;3327;3320:12;3282:52;-1:-1:-1;3353:23:1;;3202:180;-1:-1:-1;3202:180:1:o;3613:329::-;3815:2;3797:21;;;3854:1;3834:18;;;3827:29;-1:-1:-1;;;3887:2:1;3872:18;;3865:36;3933:2;3918:18;;3613:329::o;3947:127::-;4008:10;4003:3;3999:20;3996:1;3989:31;4039:4;4036:1;4029:15;4063:4;4060:1;4053:15;4079:128;4119:3;4150:1;4146:6;4143:1;4140:13;4137:39;;;4156:18;;:::i;:::-;-1:-1:-1;4192:9:1;;4079:128::o;4212:168::-;4252:7;4318:1;4314;4310:6;4306:14;4303:1;4300:21;4295:1;4288:9;4281:17;4277:45;4274:71;;;4325:18;;:::i;:::-;-1:-1:-1;4365:9:1;;4212:168::o;4385:217::-;4425:1;4451;4441:132;;4495:10;4490:3;4486:20;4483:1;4476:31;4530:4;4527:1;4520:15;4558:4;4555:1;4548:15;4441:132;-1:-1:-1;4587:9:1;;4385:217::o;4607:125::-;4647:4;4675:1;4672;4669:8;4666:34;;;4680:18;;:::i;:::-;-1:-1:-1;4717:9:1;;4607:125::o;5275:127::-;5336:10;5331:3;5327:20;5324:1;5317:31;5367:4;5364:1;5357:15;5391:4;5388:1;5381:15;5407:251;5477:6;5530:2;5518:9;5509:7;5505:23;5501:32;5498:52;;;5546:1;5543;5536:12;5498:52;5578:9;5572:16;5597:31;5622:5;5597:31;:::i;5663:980::-;5925:4;5973:3;5962:9;5958:19;6004:6;5993:9;5986:25;6030:2;6068:6;6063:2;6052:9;6048:18;6041:34;6111:3;6106:2;6095:9;6091:18;6084:31;6135:6;6170;6164:13;6201:6;6193;6186:22;6239:3;6228:9;6224:19;6217:26;;6278:2;6270:6;6266:15;6252:29;;6299:1;6309:195;6323:6;6320:1;6317:13;6309:195;;;6388:13;;-1:-1:-1;;;;;6384:39:1;6372:52;;6479:15;;;;6444:12;;;;6420:1;6338:9;6309:195;;;-1:-1:-1;;;;;;;6560:32:1;;;;6555:2;6540:18;;6533:60;-1:-1:-1;;;6624:3:1;6609:19;6602:35;6521:3;5663:980;-1:-1:-1;;;5663:980:1:o;7829:306::-;7917:6;7925;7933;7986:2;7974:9;7965:7;7961:23;7957:32;7954:52;;;8002:1;7999;7992:12;7954:52;8031:9;8025:16;8015:26;;8081:2;8070:9;8066:18;8060:25;8050:35;;8125:2;8114:9;8110:18;8104:25;8094:35;;7829:306;;;;;:::o

Swarm Source

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