ETH Price: $3,424.92 (-7.20%)

Token

Pen Pineapple Apple Pen (PPAP)
 

Overview

Max Total Supply

1,000,000,000 PPAP

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
43,061,223.543250775 PPAP

Value
$0.00
0x649a3ce71edeed7af56975fb14cc123a53accbf1
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:
PPAP

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
$PPAP, the ultimate memecoin in the history of crypto!

Website: https://www.ppapworld.live
Telegram: https://t.me/ppap_erc
Twitter: https://twitter.com/ppap_erc
 */

pragma solidity 0.8.19;

library LibSafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "LibSafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "LibSafeMath: 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, "LibSafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "LibSafeMath: 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 IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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 IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapRouter {
    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 PPAP is IERC20, Ownable {
    using LibSafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Pen Pineapple Apple Pen";
    string constant _symbol = "PPAP";
    uint8 constant _decimals = 9;

    uint256 _tTotal = 10 ** 9 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_tTotal * 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 = 25;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0x8697116BEe02a91D87Ce7FC22AA8a623f0208FD0;

    IUniswapRouter public router;
    address public pair;

    bool public swapEnabled = false;
    uint256 public feeSwapThreshold = _tTotal / 10000; // 0.5%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

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

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

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _tTotal; }
    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() && shouldTakeFee(sender) && recipient == pair && amount > feeSwapThreshold){ swapBack(); } 


        uint256 amountReceived = shouldTakeFee(sender) || !swapEnabled ? 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) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        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 !inSwap
        && swapEnabled
        && _balances[address(this)] >= feeSwapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = balanceOf(address(this));
        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,
                0x8697116BEe02a91D87Ce7FC22AA8a623f0208FD0,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

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

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

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

    function setSwapEnabled(bool value) external onlyOwner {
        swapEnabled = value;
    }
    
    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":"feeSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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 IUniswapRouter","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":"bool","name":"value","type":"bool"}],"name":"setSwapEnabled","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":"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"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a6200047b565b6200005890633b9aca0062000493565b600355606460035460026200006e919062000493565b6200007a9190620004ad565b600455600060098190556019600a8190556200009691620004d0565b600b556064600c55600d80546001600160a01b031916738697116bee02a91d87ce7fc22aa8a623f0208fd0179055600f805460ff60a01b19169055600354620000e39061271090620004ad565b601055348015620000f357600080fd5b5060008054336001600160a01b031991821617909155600154600e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000160573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001869190620004e6565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e9190620004e6565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002819190620004e6565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600e5485168452825280832060001990558254600d80548616855260078452828520805460ff19908116600190811790925592871680875260088652848720805485168317905591548716865283862080548416821790556002549096168552828520805490921690951790556003548484526005835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000511565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003bd578160001904821115620003a157620003a162000366565b80851615620003af57918102915b93841c939080029062000381565b509250929050565b600082620003d65750600162000475565b81620003e55750600062000475565b8160018114620003fe5760028114620004095762000429565b600191505062000475565b60ff8411156200041d576200041d62000366565b50506001821b62000475565b5060208310610133831016604e8410600b84101617156200044e575081810a62000475565b6200045a83836200037c565b806000190482111562000471576200047162000366565b0290505b92915050565b60006200048c60ff841683620003c5565b9392505050565b808202811582820484141762000475576200047562000366565b600082620004cb57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000475576200047562000366565b600060208284031215620004f957600080fd5b81516001600160a01b03811681146200048c57600080fd5b61149b80620005216000396000f3fe6080604052600436106101445760003560e01c806370a08231116100b6578063dd62ed3e1161006f578063dd62ed3e146103da578063de28707114610420578063e01af92c14610436578063e96fada214610456578063f1d5f51714610476578063f887ea401461049657600080fd5b806370a08231146102f0578063715018a614610326578063893d20e81461033b57806395d89b411461036d578063a8aa1b311461039a578063a9059cbb146103ba57600080fd5b8063313ce56711610108578063313ce56714610246578063364333f41461026257806352f7c98814610279578063571ac8b0146102995780636c0a24eb146102b95780636ddd1713146102cf57600080fd5b806306fdde0314610150578063095ea7b3146101a857806318160ddd146101d857806323b872dd146101f75780632f54bf6e1461021757600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152601781527f50656e2050696e656170706c65204170706c652050656e00000000000000000060208201525b60405161019f919061115a565b60405180910390f35b3480156101b457600080fd5b506101c86101c33660046111bd565b6104b6565b604051901515815260200161019f565b3480156101e457600080fd5b506003545b60405190815260200161019f565b34801561020357600080fd5b506101c86102123660046111e9565b610523565b34801561022357600080fd5b506101c861023236600461122a565b6000546001600160a01b0391821691161490565b34801561025257600080fd5b506040516009815260200161019f565b34801561026e57600080fd5b506102776105e5565b005b34801561028557600080fd5b50610277610294366004611247565b610621565b3480156102a557600080fd5b506101c86102b436600461122a565b61066f565b3480156102c557600080fd5b506101e960045481565b3480156102db57600080fd5b50600f546101c890600160a01b900460ff1681565b3480156102fc57600080fd5b506101e961030b36600461122a565b6001600160a01b031660009081526005602052604090205490565b34801561033257600080fd5b5061027761067d565b34801561034757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161019f565b34801561037957600080fd5b506040805180820190915260048152630505041560e41b6020820152610192565b3480156103a657600080fd5b50600f54610355906001600160a01b031681565b3480156103c657600080fd5b506101c86103d53660046111bd565b6106ec565b3480156103e657600080fd5b506101e96103f5366004611269565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561042c57600080fd5b506101e960105481565b34801561044257600080fd5b506102776104513660046112a2565b6106f9565b34801561046257600080fd5b50600d54610355906001600160a01b031681565b34801561048257600080fd5b506102776104913660046112c4565b610741565b3480156104a257600080fd5b50600e54610355906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105119086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146105d0576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546105ab91849061078c565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105db8484846107c6565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561061e573d6000803e3d6000fd5b50565b6000546001600160a01b031633146106545760405162461bcd60e51b815260040161064b906112dd565b60405180910390fd5b6009829055600a8190556106688183611313565b600b555050565b600061051d826000196104b6565b6000546001600160a01b031633146106a75760405162461bcd60e51b815260040161064b906112dd565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006105de3384846107c6565b6000546001600160a01b031633146107235760405162461bcd60e51b815260040161064b906112dd565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316331461076b5760405162461bcd60e51b815260040161064b906112dd565b6103e88160035461077c9190611326565b610786919061133d565b60045550565b600081848411156107b05760405162461bcd60e51b815260040161064b919061115a565b5060006107bd848661135f565b95945050505050565b60115460009060ff16156107e6576107df8484846109f0565b90506105de565b600f546001600160a01b0384811691161480159061081257506002546001600160a01b03848116911614155b156108bd576001600160a01b03831660009081526008602052604090205460ff168061086357506004546001600160a01b038416600090815260056020526040902054610860908490611313565b11155b6108bd5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161064b565b6108c5610ad6565b80156108ea57506001600160a01b03841660009081526007602052604090205460ff16155b80156109035750600f546001600160a01b038481169116145b8015610910575060105482115b1561091d5761091d610b17565b6001600160a01b03841660009081526007602052604081205460ff16158061094f5750600f54600160a01b900460ff16155b6109595782610963565b6109638584610ed7565b6001600160a01b0385166000908152600560205260409020549091506109899082610fe2565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109dd9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610a4191849061078c565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610a709083610fe2565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ac49086815260200190565b60405180910390a35060019392505050565b60115460009060ff16158015610af55750600f54600160a01b900460ff165b8015610b1257506010543060009081526005602052604090205410155b905090565b6011805460ff191660011790553060009081526005602052604081205490506000610b5e6002610b58600b54610b586009548761104190919063ffffffff16565b906110c5565b90506000610b6c8383611107565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610ba657610ba6611372565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c239190611388565b81600181518110610c3657610c36611372565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610c809086906000908790309042906004016113a5565b600060405180830381600087803b158015610c9a57600080fd5b505af1158015610cae573d6000803e3d6000fd5b505050506000610cc7824761110790919063ffffffff16565b90506000610ced610ce460026009546110c590919063ffffffff16565b600b5490611107565b90506000610d0f6002610b5884610b586009548861104190919063ffffffff16565b90506000610d2c83610b58600a548761104190919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610d83576040519150601f19603f3d011682016040523d82523d6000602084013e610d88565b606091505b5050905080610dd95760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161064b565b8815610ec157600e5460405163f305d71960e01b8152306004820152602481018b90526000604482018190526064820152738697116bee02a91d87ce7fc22aa8a623f0208fd060848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015610e5f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e849190611416565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385166000908152600590915291822054610f2891849061078c565b6001600160a01b038416600090815260056020526040812091909155600c54600b54610f5a9190610b58908690611041565b30600090815260056020526040902054909150610f779082610fe2565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc89085815260200190565b60405180910390a3610fda8382611107565b949350505050565b600080610fef8385611313565b9050838110156105de5760405162461bcd60e51b815260206004820152601e60248201527f4c6962536166654d6174683a206164646974696f6e206f766572666c6f770000604482015260640161064b565b6000826000036110535750600061051d565b600061105f8385611326565b90508261106c858361133d565b146105de5760405162461bcd60e51b8152602060048201526024808201527f4c6962536166654d6174683a206d756c7469706c69636174696f6e206f766572604482015263666c6f7760e01b606482015260840161064b565b60006105de83836040518060400160405280601d81526020017f4c6962536166654d6174683a206469766973696f6e206279207a65726f00000081525061112c565b60006105de83836040518060600160405280602181526020016114456021913961078c565b6000818361114d5760405162461bcd60e51b815260040161064b919061115a565b5060006107bd848661133d565b600060208083528351808285015260005b818110156111875785810183015185820160400152820161116b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461061e57600080fd5b600080604083850312156111d057600080fd5b82356111db816111a8565b946020939093013593505050565b6000806000606084860312156111fe57600080fd5b8335611209816111a8565b92506020840135611219816111a8565b929592945050506040919091013590565b60006020828403121561123c57600080fd5b81356105de816111a8565b6000806040838503121561125a57600080fd5b50508035926020909101359150565b6000806040838503121561127c57600080fd5b8235611287816111a8565b91506020830135611297816111a8565b809150509250929050565b6000602082840312156112b457600080fd5b813580151581146105de57600080fd5b6000602082840312156112d657600080fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561051d5761051d6112fd565b808202811582820484141761051d5761051d6112fd565b60008261135a57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561051d5761051d6112fd565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561139a57600080fd5b81516105de816111a8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113f55784516001600160a01b0316835293830193918301916001016113d0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561142b57600080fd5b835192506020840151915060408401519050925092509256fe4c6962536166654d6174683a207375627472616374696f6e206f766572666c6f77a2646970667358221220a6cfbbe6a2088171b3975ae1bedcc8d0e15a0b41d5d3e99200f04d10bcdef5d764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806370a08231116100b6578063dd62ed3e1161006f578063dd62ed3e146103da578063de28707114610420578063e01af92c14610436578063e96fada214610456578063f1d5f51714610476578063f887ea401461049657600080fd5b806370a08231146102f0578063715018a614610326578063893d20e81461033b57806395d89b411461036d578063a8aa1b311461039a578063a9059cbb146103ba57600080fd5b8063313ce56711610108578063313ce56714610246578063364333f41461026257806352f7c98814610279578063571ac8b0146102995780636c0a24eb146102b95780636ddd1713146102cf57600080fd5b806306fdde0314610150578063095ea7b3146101a857806318160ddd146101d857806323b872dd146101f75780632f54bf6e1461021757600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152601781527f50656e2050696e656170706c65204170706c652050656e00000000000000000060208201525b60405161019f919061115a565b60405180910390f35b3480156101b457600080fd5b506101c86101c33660046111bd565b6104b6565b604051901515815260200161019f565b3480156101e457600080fd5b506003545b60405190815260200161019f565b34801561020357600080fd5b506101c86102123660046111e9565b610523565b34801561022357600080fd5b506101c861023236600461122a565b6000546001600160a01b0391821691161490565b34801561025257600080fd5b506040516009815260200161019f565b34801561026e57600080fd5b506102776105e5565b005b34801561028557600080fd5b50610277610294366004611247565b610621565b3480156102a557600080fd5b506101c86102b436600461122a565b61066f565b3480156102c557600080fd5b506101e960045481565b3480156102db57600080fd5b50600f546101c890600160a01b900460ff1681565b3480156102fc57600080fd5b506101e961030b36600461122a565b6001600160a01b031660009081526005602052604090205490565b34801561033257600080fd5b5061027761067d565b34801561034757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161019f565b34801561037957600080fd5b506040805180820190915260048152630505041560e41b6020820152610192565b3480156103a657600080fd5b50600f54610355906001600160a01b031681565b3480156103c657600080fd5b506101c86103d53660046111bd565b6106ec565b3480156103e657600080fd5b506101e96103f5366004611269565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561042c57600080fd5b506101e960105481565b34801561044257600080fd5b506102776104513660046112a2565b6106f9565b34801561046257600080fd5b50600d54610355906001600160a01b031681565b34801561048257600080fd5b506102776104913660046112c4565b610741565b3480156104a257600080fd5b50600e54610355906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105119086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146105d0576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546105ab91849061078c565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105db8484846107c6565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561061e573d6000803e3d6000fd5b50565b6000546001600160a01b031633146106545760405162461bcd60e51b815260040161064b906112dd565b60405180910390fd5b6009829055600a8190556106688183611313565b600b555050565b600061051d826000196104b6565b6000546001600160a01b031633146106a75760405162461bcd60e51b815260040161064b906112dd565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006105de3384846107c6565b6000546001600160a01b031633146107235760405162461bcd60e51b815260040161064b906112dd565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316331461076b5760405162461bcd60e51b815260040161064b906112dd565b6103e88160035461077c9190611326565b610786919061133d565b60045550565b600081848411156107b05760405162461bcd60e51b815260040161064b919061115a565b5060006107bd848661135f565b95945050505050565b60115460009060ff16156107e6576107df8484846109f0565b90506105de565b600f546001600160a01b0384811691161480159061081257506002546001600160a01b03848116911614155b156108bd576001600160a01b03831660009081526008602052604090205460ff168061086357506004546001600160a01b038416600090815260056020526040902054610860908490611313565b11155b6108bd5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161064b565b6108c5610ad6565b80156108ea57506001600160a01b03841660009081526007602052604090205460ff16155b80156109035750600f546001600160a01b038481169116145b8015610910575060105482115b1561091d5761091d610b17565b6001600160a01b03841660009081526007602052604081205460ff16158061094f5750600f54600160a01b900460ff16155b6109595782610963565b6109638584610ed7565b6001600160a01b0385166000908152600560205260409020549091506109899082610fe2565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109dd9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610a4191849061078c565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610a709083610fe2565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ac49086815260200190565b60405180910390a35060019392505050565b60115460009060ff16158015610af55750600f54600160a01b900460ff165b8015610b1257506010543060009081526005602052604090205410155b905090565b6011805460ff191660011790553060009081526005602052604081205490506000610b5e6002610b58600b54610b586009548761104190919063ffffffff16565b906110c5565b90506000610b6c8383611107565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610ba657610ba6611372565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c239190611388565b81600181518110610c3657610c36611372565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610c809086906000908790309042906004016113a5565b600060405180830381600087803b158015610c9a57600080fd5b505af1158015610cae573d6000803e3d6000fd5b505050506000610cc7824761110790919063ffffffff16565b90506000610ced610ce460026009546110c590919063ffffffff16565b600b5490611107565b90506000610d0f6002610b5884610b586009548861104190919063ffffffff16565b90506000610d2c83610b58600a548761104190919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610d83576040519150601f19603f3d011682016040523d82523d6000602084013e610d88565b606091505b5050905080610dd95760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161064b565b8815610ec157600e5460405163f305d71960e01b8152306004820152602481018b90526000604482018190526064820152738697116bee02a91d87ce7fc22aa8a623f0208fd060848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015610e5f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e849190611416565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0385166000908152600590915291822054610f2891849061078c565b6001600160a01b038416600090815260056020526040812091909155600c54600b54610f5a9190610b58908690611041565b30600090815260056020526040902054909150610f779082610fe2565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fc89085815260200190565b60405180910390a3610fda8382611107565b949350505050565b600080610fef8385611313565b9050838110156105de5760405162461bcd60e51b815260206004820152601e60248201527f4c6962536166654d6174683a206164646974696f6e206f766572666c6f770000604482015260640161064b565b6000826000036110535750600061051d565b600061105f8385611326565b90508261106c858361133d565b146105de5760405162461bcd60e51b8152602060048201526024808201527f4c6962536166654d6174683a206d756c7469706c69636174696f6e206f766572604482015263666c6f7760e01b606482015260840161064b565b60006105de83836040518060400160405280601d81526020017f4c6962536166654d6174683a206469766973696f6e206279207a65726f00000081525061112c565b60006105de83836040518060600160405280602181526020016114456021913961078c565b6000818361114d5760405162461bcd60e51b815260040161064b919061115a565b5060006107bd848661133d565b600060208083528351808285015260005b818110156111875785810183015185820160400152820161116b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461061e57600080fd5b600080604083850312156111d057600080fd5b82356111db816111a8565b946020939093013593505050565b6000806000606084860312156111fe57600080fd5b8335611209816111a8565b92506020840135611219816111a8565b929592945050506040919091013590565b60006020828403121561123c57600080fd5b81356105de816111a8565b6000806040838503121561125a57600080fd5b50508035926020909101359150565b6000806040838503121561127c57600080fd5b8235611287816111a8565b91506020830135611297816111a8565b809150509250929050565b6000602082840312156112b457600080fd5b813580151581146105de57600080fd5b6000602082840312156112d657600080fd5b5035919050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561051d5761051d6112fd565b808202811582820484141761051d5761051d6112fd565b60008261135a57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561051d5761051d6112fd565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561139a57600080fd5b81516105de816111a8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113f55784516001600160a01b0316835293830193918301916001016113d0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561142b57600080fd5b835192506020840151915060408401519050925092509256fe4c6962536166654d6174683a207375627472616374696f6e206f766572666c6f77a2646970667358221220a6cfbbe6a2088171b3975ae1bedcc8d0e15a0b41d5d3e99200f04d10bcdef5d764736f6c63430008130033

Deployed Bytecode Sourcemap

4289:7487:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6331:80;;;;;;;;;;-1:-1:-1;6403:5:0;;;;;;;;;;;;;;;;;6331:80;;;;;;;:::i;:::-;;;;;;;;6753:216;;;;;;;;;;-1:-1:-1;6753:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6753:216:0;1023:187:1;6066:83:0;;;;;;;;;;-1:-1:-1;6139:7:0;;6066:83;;;1361:25:1;;;1349:2;1334:18;6066:83:0;1215:177:1;7271:370:0;;;;;;;;;;-1:-1:-1;7271:370:0;;;;;:::i;:::-;;:::i;2519:103::-;;;;;;;;;;-1:-1:-1;2519:103:0;;;;;:::i;:::-;2574:4;2609:5;-1:-1:-1;;;;;2598:16:0;;;2609:5;;2598:16;;2519:103;6155:80;;;;;;;;;;-1:-1:-1;6155:80:0;;4625:1;2252:36:1;;2240:2;2225:18;6155:80:0;2110:184:1;11109:118:0;;;;;;;;;;;;;:::i;:::-;;11380:220;;;;;;;;;;-1:-1:-1;11380:220:0;;;;;:::i;:::-;;:::i;6977:122::-;;;;;;;;;;-1:-1:-1;6977:122:0;;;;;:::i;:::-;;:::i;4687:53::-;;;;;;;;;;;;;;;;5264:31;;;;;;;;;;-1:-1:-1;5264:31:0;;;;-1:-1:-1;;;5264:31:0;;;;;;6501:105;;;;;;;;;;-1:-1:-1;6501:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6585:18:0;6567:7;6585:18;;;:9;:18;;;;;;;6501:105;2628:131;;;;;;;;;;;;;:::i;6417:78::-;;;;;;;;;;-1:-1:-1;6469:7:0;6487:5;-1:-1:-1;;;;;6487:5:0;6417:78;;;-1:-1:-1;;;;;2716:32:1;;;2698:51;;2686:2;2671:18;6417:78:0;2552:203:1;6241:84:0;;;;;;;;;;-1:-1:-1;6315:7:0;;;;;;;;;;;;-1:-1:-1;;;6315:7:0;;;;6241:84;;5236:19;;;;;;;;;;-1:-1:-1;5236:19:0;;;;-1:-1:-1;;;;;5236:19:0;;;7107:156;;;;;;;;;;-1:-1:-1;7107:156:0;;;;;:::i;:::-;;:::i;6612:133::-;;;;;;;;;;-1:-1:-1;6612:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6714:19:0;;;6696:7;6714:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6612:133;5302:49;;;;;;;;;;;;;;;;11612:93;;;;;;;;;;-1:-1:-1;11612:93:0;;;;;:::i;:::-;;:::i;5112:80::-;;;;;;;;;;-1:-1:-1;5112:80:0;;;;-1:-1:-1;;;;;5112:80:0;;;11235:137;;;;;;;;;;-1:-1:-1;11235:137:0;;;;;:::i;:::-;;:::i;5201:28::-;;;;;;;;;;-1:-1:-1;5201:28:0;;;;-1:-1:-1;;;;;5201:28:0;;;6753:216;6857:10;6828:4;6845:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6845:32:0;;;;;;;;;;:41;;;6902:37;6828:4;;6845:32;;6902:37;;;;6880:6;1361:25:1;;1349:2;1334:18;;1215:177;6902:37:0;;;;;;;;-1:-1:-1;6957:4:0;6753:216;;;;;:::o;7271:370::-;-1:-1:-1;;;;;7391:19:0;;7371:4;7391:19;;;:11;:19;;;;;;;;7411:10;7391:31;;;;;;;;-1:-1:-1;;7391:52:0;7388:186;;7493:69;;;;;;;;;;;-1:-1:-1;;;7493:69:0;;;;;;;;-1:-1:-1;;;;;7493:19:0;;-1:-1:-1;7493:19:0;;;:11;:19;;;;;7513:10;7493:31;;;;;;;;;;:69;;7529:6;;7493:35;:69::i;:::-;-1:-1:-1;;;;;7459:19:0;;;;;;:11;:19;;;;;;;;7479:10;7459:31;;;;;;;:103;7388:186;7593:40;7607:6;7615:9;7626:6;7593:13;:40::i;:::-;7586:47;;7271:370;;;;;;:::o;11109:118::-;11166:20;;11158:61;;-1:-1:-1;;;;;11166:20:0;;;;11197:21;11158:61;;;;;11166:20;11158:61;11166:20;11158:61;11197:21;11166:20;11158:61;;;;;;;;;;;;;;;;;;;;;11109:118::o;11380:220::-;2574:4;2609:5;-1:-1:-1;;;;;2609:5:0;2480:10;2598:16;2464:38;;;;-1:-1:-1;;;2464:38:0;;;;;;;:::i;:::-;;;;;;;;;11473:12:::1;:28:::0;;;11514:12:::1;:28:::0;;;11565:27:::1;11529:13:::0;11488;11565:27:::1;:::i;:::-;11554:8;:38:::0;-1:-1:-1;;11380:220:0:o;6977:122::-;7032:4;7056:35;7064:7;-1:-1:-1;;7056:7:0;:35::i;2628:131::-;2574:4;2609:5;-1:-1:-1;;;;;2609:5:0;2480:10;2598:16;2464:38;;;;-1:-1:-1;;;2464:38:0;;;;;;;:::i;:::-;2701:1:::1;2685:18:::0;;-1:-1:-1;;;;;;2685:18:0::1;::::0;;2719:32:::1;::::0;2698:51:1;;;2719:32:0::1;::::0;2686:2:1;2671:18;2719:32:0::1;;;;;;;2628:131::o:0;7107:156::-;7187:4;7211:44;7225:10;7237:9;7248:6;7211:13;:44::i;11612:93::-;2574:4;2609:5;-1:-1:-1;;;;;2609:5:0;2480:10;2598:16;2464:38;;;;-1:-1:-1;;;2464:38:0;;;;;;;:::i;:::-;11678:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;11678:19:0::1;-1:-1:-1::0;;;;11678:19:0;;::::1;::::0;;;::::1;::::0;;11612:93::o;11235:137::-;2574:4;2609:5;-1:-1:-1;;;;;2609:5:0;2480:10;2598:16;2464:38;;;;-1:-1:-1;;;2464:38:0;;;;;;;:::i;:::-;11360:4:::1;11342:13;11332:7;;:23;;;;:::i;:::-;11331:33;;;;:::i;:::-;11312:16;:52:::0;-1:-1:-1;11235:137:0:o;601:190::-;687:7;723:12;715:6;;;;707:29;;;;-1:-1:-1;;;707:29:0;;;;;;;;:::i;:::-;-1:-1:-1;747:9:0;759:5;763:1;759;:5;:::i;:::-;747:17;601:190;-1:-1:-1;;;;;601:190:0:o;7649:799::-;7761:6;;7741:4;;7761:6;;7758:63;;;7777:41;7792:6;7800:9;7811:6;7777:14;:41::i;:::-;7770:48;;;;7758:63;7858:4;;-1:-1:-1;;;;;7845:17:0;;;7858:4;;7845:17;;;;:38;;-1:-1:-1;7879:4:0;;-1:-1:-1;;;;;7866:17:0;;;7879:4;;7866:17;;7845:38;7841:200;;;-1:-1:-1;;;;;7908:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;7971:16:0;;-1:-1:-1;;;;;7938:20:0;;;;;;:9;:20;;;;;;:29;;7961:6;;7938:29;:::i;:::-;:49;;7908:79;7900:129;;;;-1:-1:-1;;;7900:129:0;;5172:2:1;7900:129:0;;;5154:21:1;5211:2;5191:18;;;5184:30;5250:34;5230:18;;;5223:62;-1:-1:-1;;;5301:18:1;;;5294:35;5346:19;;7900:129:0;4970:401:1;7900:129:0;8064:16;:14;:16::i;:::-;:41;;;;-1:-1:-1;;;;;;8885:19:0;;8860:4;8885:19;;;:11;:19;;;;;;;;8884:20;8084:21;8064:62;;;;-1:-1:-1;8122:4:0;;-1:-1:-1;;;;;8109:17:0;;;8122:4;;8109:17;8064:62;:91;;;;;8139:16;;8130:6;:25;8064:91;8061:110;;;8158:10;:8;:10::i;:::-;-1:-1:-1;;;;;8885:19:0;;8186:22;8885:19;;;:11;:19;;;;;;;;8884:20;8211:37;;;-1:-1:-1;8237:11:0;;-1:-1:-1;;;8237:11:0;;;;8236:12;8211:37;:72;;8277:6;8211:72;;;8251:23;8259:6;8267;8251:7;:23::i;:::-;-1:-1:-1;;;;;8317:20:0;;;;;;:9;:20;;;;;;8186:97;;-1:-1:-1;8317:40:0;;8186:97;8317:24;:40::i;:::-;-1:-1:-1;;;;;8294:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8375:43;;;;;;;;;;8403:14;1361:25:1;;1349:2;1334:18;;1215:177;8375:43:0;;;;;;;;-1:-1:-1;8436:4:0;;7649:799;-1:-1:-1;;;;7649:799:0:o;8460:330::-;8590:53;;;;;;;;;;;-1:-1:-1;;;8590:53:0;;;;;;;;-1:-1:-1;;;;;8590:17:0;;8553:4;8590:17;;;:9;:17;;;;;;;:53;;8612:6;;8590:21;:53::i;:::-;-1:-1:-1;;;;;8570:17:0;;;;;;;:9;:17;;;;;;:73;;;;8677:20;;;;;;;:32;;8702:6;8677:24;:32::i;:::-;-1:-1:-1;;;;;8654:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8725:35;;;;;;;;;;8753:6;1361:25:1;;1349:2;1334:18;;1215:177;8725:35:0;;;;;;;;-1:-1:-1;8778:4:0;8460:330;;;;;:::o;9341:169::-;9415:6;;9390:4;;9415:6;;9414:7;:31;;;;-1:-1:-1;9434:11:0;;-1:-1:-1;;;9434:11:0;;;;9414:31;:88;;;;-1:-1:-1;9486:16:0;;9476:4;9458:24;;;;:9;:24;;;;;;:44;;9414:88;9407:95;;9341:169;:::o;9518:1583::-;5406:6;:13;;-1:-1:-1;;5406:13:0;5415:4;5406:13;;;9616:4:::1;-1:-1:-1::0;6585:18:0;;;:9;:18;;;;;;9567:55:::1;;9633:23;9659:59;9716:1;9659:52;9702:8;;9659:38;9684:12;;9659:20;:24;;:38;;;;:::i;:::-;:42:::0;::::1;:52::i;:59::-;9633:85:::0;-1:-1:-1;9729:20:0::1;9752:41;:20:::0;9633:85;9752:24:::1;:41::i;:::-;9830:16;::::0;;9844:1:::1;9830:16:::0;;;;;::::1;::::0;;9729:64;;-1:-1:-1;9806:21:0::1;::::0;9830:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9830:16:0::1;9806:40;;9875:4;9857;9862:1;9857:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9857:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9901:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9901:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9857:7;;9901:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9891:4;9896:1;9891:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9891:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9985:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;9985:188:0;;9951:21:::1;::::0;9985:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;10057:12;;9927:21:::1;::::0;10100:4;;10127::::1;::::0;10147:15:::1;::::0;9985:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10184:17;10204:40;10230:13;10204:21;:25;;:40;;;;:::i;:::-;10184:60;;10255:19;10277:33;10290:19;10307:1;10290:12;;:16;;:19;;;;:::i;:::-;10277:8;::::0;;:12:::1;:33::i;:::-;10255:55;;10321:26;10350:51;10399:1;10350:44;10382:11;10350:27;10364:12;;10350:9;:13;;:27;;;;:::i;:51::-;10321:80;;10412:26;10441:44;10473:11;10441:27;10455:12;;10441:9;:13;;:27;;;;:::i;:44::-;10559:20;::::0;10551:77:::1;::::0;10412:73;;-1:-1:-1;10501:21:0::1;::::0;-1:-1:-1;;;;;10559:20:0;;::::1;::::0;10618:5:::1;::::0;10412:73;;10501:21;10551:77;10501:21;10551:77;10412:73;10559:20;10618:5;10551:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10500:128;;;10647:16;10639:59;;;::::0;-1:-1:-1;;;10639:59:0;;7293:2:1;10639:59:0::1;::::0;::::1;7275:21:1::0;7332:2;7312:18;;;7305:30;7371:32;7351:18;;;7344:60;7421:18;;10639:59:0::1;7091:354:1::0;10639:59:0::1;10714:19:::0;;10711:383:::1;;10749:6;::::0;:265:::1;::::0;-1:-1:-1;;;10749:265:0;;10825:4:::1;10749:265;::::0;::::1;7791:34:1::0;7841:18;;;7834:34;;;10749:6:0::1;7884:18:1::0;;;7877:34;;;7927:18;;;7920:34;10923:42:0::1;7970:19:1::0;;;7963:44;10984:15:0::1;8023:19:1::0;;;8016:35;-1:-1:-1;;;;;10749:6:0;;::::1;::::0;:22:::1;::::0;10779:18;;7725:19:1;;10749:265:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11034:48:0::1;::::0;;8547:25:1;;;8603:2;8588:18;;8581:34;;;11034:48:0::1;::::0;-1:-1:-1;8520:18:1;11034:48:0::1;;;;;;;10711:383;-1:-1:-1::0;;5424:6:0;:14;;-1:-1:-1;;5424:14:0;;;-1:-1:-1;;;;;;;;9518:1583:0:o;8920:413::-;9027:53;;;;;;;;;;;-1:-1:-1;;;9027:53:0;;;;;;;;-1:-1:-1;;;;;9027:17:0;;8987:7;9027:17;;;:9;:17;;;;;;;:53;;9049:6;;9027:21;:53::i;:::-;-1:-1:-1;;;;;9007:17:0;;;;;;:9;:17;;;;;:73;;;;9136:14;;9122:8;;9111:40;;9136:14;9111:20;;:6;;:10;:20::i;:40::-;9207:4;9189:24;;;;:9;:24;;;;;;9091:60;;-1:-1:-1;9189:39:0;;9091:60;9189:28;:39::i;:::-;9180:4;9162:24;;;;:9;:24;;;;;;;:66;;;;9244:42;;-1:-1:-1;;;;;9244:42:0;;;;;;;9276:9;1361:25:1;;1349:2;1334:18;;1215:177;9244:42:0;;;;;;;;9304:21;:6;9315:9;9304:10;:21::i;:::-;9297:28;8920:413;-1:-1:-1;;;;8920:413:0:o;268:182::-;326:7;;358:5;362:1;358;:5;:::i;:::-;346:17;;387:1;382;:6;;374:49;;;;-1:-1:-1;;;374:49:0;;8828:2:1;374:49:0;;;8810:21:1;8867:2;8847:18;;;8840:30;8906:32;8886:18;;;8879:60;8956:18;;374:49:0;8626:354:1;797:249:0;855:7;879:1;884;879:6;875:47;;-1:-1:-1;909:1:0;902:8;;875:47;932:9;944:5;948:1;944;:5;:::i;:::-;932:17;-1:-1:-1;977:1:0;968:5;972:1;932:17;968:5;:::i;:::-;:10;960:59;;;;-1:-1:-1;;;960:59:0;;9187:2:1;960:59:0;;;9169:21:1;9226:2;9206:18;;;9199:30;9265:34;9245:18;;;9238:62;-1:-1:-1;;;9316:18:1;;;9309:34;9360:19;;960:59:0;8985:400:1;1052:135:0;1110:7;1137:42;1141:1;1144;1137:42;;;;;;;;;;;;;;;;;:3;:42::i;456:139::-;514:7;541:46;545:1;548;541:46;;;;;;;;;;;;;;;;;:3;:46::i;1193:189::-;1279:7;1314:12;1307:5;1299:28;;;;-1:-1:-1;;;1299:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1338:9:0;1350:5;1354:1;1350;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:273::-;3209:6;3262:2;3250:9;3241:7;3237:23;3233:32;3230:52;;;3278:1;3275;3268:12;3230:52;3317:9;3304:23;3370:5;3363:13;3356:21;3349:5;3346:32;3336:60;;3392:1;3389;3382:12;3431:180;3490:6;3543:2;3531:9;3522:7;3518:23;3514:32;3511:52;;;3559:1;3556;3549:12;3511:52;-1:-1:-1;3582:23:1;;3431:180;-1:-1:-1;3431:180:1:o;3846:329::-;4048:2;4030:21;;;4087:1;4067:18;;;4060:29;-1:-1:-1;;;4120:2:1;4105:18;;4098:36;4166:2;4151:18;;3846:329::o;4180:127::-;4241:10;4236:3;4232:20;4229:1;4222:31;4272:4;4269:1;4262:15;4296:4;4293:1;4286:15;4312:125;4377:9;;;4398:10;;;4395:36;;;4411:18;;:::i;4442:168::-;4515:9;;;4546;;4563:15;;;4557:22;;4543:37;4533:71;;4584:18;;:::i;4615:217::-;4655:1;4681;4671:132;;4725:10;4720:3;4716:20;4713:1;4706:31;4760:4;4757:1;4750:15;4788:4;4785:1;4778:15;4671:132;-1:-1:-1;4817:9:1;;4615:217::o;4837:128::-;4904:9;;;4925:11;;;4922:37;;;4939:18;;:::i;5508:127::-;5569:10;5564:3;5560:20;5557:1;5550:31;5600:4;5597:1;5590:15;5624:4;5621:1;5614:15;5640:251;5710:6;5763:2;5751:9;5742:7;5738:23;5734:32;5731:52;;;5779:1;5776;5769:12;5731:52;5811:9;5805:16;5830:31;5855:5;5830:31;:::i;5896:980::-;6158:4;6206:3;6195:9;6191:19;6237:6;6226:9;6219:25;6263:2;6301:6;6296:2;6285:9;6281:18;6274:34;6344:3;6339:2;6328:9;6324:18;6317:31;6368:6;6403;6397:13;6434:6;6426;6419:22;6472:3;6461:9;6457:19;6450:26;;6511:2;6503:6;6499:15;6485:29;;6532:1;6542:195;6556:6;6553:1;6550:13;6542:195;;;6621:13;;-1:-1:-1;;;;;6617:39:1;6605:52;;6712:15;;;;6677:12;;;;6653:1;6571:9;6542:195;;;-1:-1:-1;;;;;;;6793:32:1;;;;6788:2;6773:18;;6766:60;-1:-1:-1;;;6857:3:1;6842:19;6835:35;6754:3;5896:980;-1:-1:-1;;;5896:980:1:o;8062:306::-;8150:6;8158;8166;8219:2;8207:9;8198:7;8194:23;8190:32;8187:52;;;8235:1;8232;8225:12;8187:52;8264:9;8258:16;8248:26;;8314:2;8303:9;8299:18;8293:25;8283:35;;8358:2;8347:9;8343:18;8337:25;8327:35;;8062:306;;;;;:::o

Swarm Source

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