ETH Price: $3,353.50 (-0.63%)
Gas: 10 Gwei

Token

SafeCash (SAFE)
 

Overview

Max Total Supply

1,000,000,000 SAFE

Holders

127

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,008,968.875214608 SAFE

Value
$0.00
0x8129d4010a676a660502a4770d8a97f8d1788e5f
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:
SAFE

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-12-17
*/

// SPDX-License-Identifier: Unlicensed

/**
SAFE CASH: Keep Your Transactions Safe & Anonymous Private.

Website: https://www.safecash.cash
Telegram: https://t.me/safucash_erc
Twitter: https://twitter.com/safucash_erc
Dapp: https://app.safecash.cash
 */

pragma solidity = 0.8.19;

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);
}

interface IUniswapRouterV1 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    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 swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapRouterV2 is IUniswapRouterV1 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface IUniswapFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpAddr, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpAddr);
    function createPair(address tokenA, address tokenB) external returns (address lpAddr);
}

abstract contract Context {
    constructor() {
    }

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract SAFE is Context, Ownable, IERC20 {

    string constant private _name = "SafeCash";
    string constant private _symbol = "SAFE";
    uint8 constant private _decimals = 9;

    uint256 constant public _totalSupply = 10 ** 9 * 10**9;
    uint256 constant public minTokensForSwap = _totalSupply / 100_000;
    uint256 constant public trnsFee = 0;
    uint256 constant public feeDenominator = 1_000;
    uint256 public feeOnPurchase = 200;
    uint256 public feeOnSale = 200;
    uint256 private _maxTxAmount = 25 * _totalSupply / 1000;
    bool private swapFeeActive = true;

    address public lpAddr;
    IUniswapRouterV2 public uniswapRouter;
    address payable private _teamWallet;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    bool public tradeActive = false;
    bool private _inswaps;
    bool private noTxLimit = false;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _feeExcludedAddy;
    mapping (address => bool) private _lpOwnerAddy;
    mapping (address => bool) private _lpAddy;
    mapping (address => uint256) private balance;

    modifier inSwapFlag {
        _inswaps = true;
        _;
        _inswaps = false;
    }
    event SwapAndLiquify();


    constructor () {
        uniswapRouter = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _feeExcludedAddy[msg.sender] = true;
        _teamWallet = payable(address(0x92c0E54d79A2166CEf51B9e8ae2931C05b1CC407));
        _feeExcludedAddy[_teamWallet] = true;
        _lpOwnerAddy[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        lpAddr = IUniswapFactoryV2(uniswapRouter.factory()).createPair(uniswapRouter.WETH(), address(this));
        _lpAddy[lpAddr] = true;
        _approve(msg.sender, address(uniswapRouter), type(uint256).max);
        _approve(address(this), address(uniswapRouter), type(uint256).max);
    }
                            
    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "Couldnt approve on Zero Address");
        require(spender != address(0), "Couldnt approve on Zero Address");

        _allowances[sender][spender] = 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] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }
    
    function onLaunch() external onlyOwner {
        require(!tradeActive, "Already done start trading");
        tradeActive = true;
    }
    
    function onRemoveLimits() external onlyOwner {
        require(!noTxLimit,"Already done remove limits");
        _maxTxAmount = _totalSupply;
        noTxLimit = true;
        feeOnPurchase = 10;
        feeOnSale = 10;
    }
    
    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } 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 allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }
    
    function isTrnf(address ins, address out) internal view returns (bool) { 
        bool _is_transfer = !_lpAddy[out] && !_lpAddy[ins];
        return _is_transfer;
    }
    
    function getAmountParams(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = feeOnPurchase;  else if (issell)  fee = feeOnSale;  else  fee = trnsFee; 
        if (fee == 0)  return amount; 
        uint256 feeAmount = amount * fee / feeDenominator;
        if (feeAmount > 0) {
            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }
        return amount - feeAmount;
    }
    
    function swapBack(uint256 tokenAmount) internal inSwapFlag {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

        if (_allowances[address(this)][address(uniswapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(uniswapRouter)] = type(uint256).max;
        }

        try uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        if(address(this).balance > 0) _teamWallet.transfer(address(this).balance);
    } 
    
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    
    function isSwapBack(address ins) internal view returns (bool) {
        bool canswap = swapFeeActive && !_feeExcludedAddy[ins];
        return canswap;
    }
    
    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "Cannot transfer to DEAD address");
        require(from != address(0), "Cannot transfer from DEAD address");
        require(amount > 0, "Transfer token amount must be greater than zero");

        if (isExcludedFees(from,to)) {
            require(tradeActive,"Trade is not started");
                    if(!_lpAddy[to] && from != address(this) && to != address(this) || isTrnf(from,to) && !noTxLimit)  { require(balanceOf(to) + amount <= _maxTxAmount,"_maxTxAmount exceed"); }}


        if(isSaleTx(from, to) &&  !_inswaps && isSwapBack(from)) {

            uint256 tokenAmount = balanceOf(address(this));
            if(tokenAmount >= minTokensForSwap) { 
                if(amount > minTokensForSwap) swapBack(tokenAmount);
             }
        }

        if (_feeExcludedAddy[from] || _feeExcludedAddy[to]){
            takeFee = false;
        }
        uint256 amountAfterFee = (takeFee) ? getAmountParams(from, isPurchaseTx(from, to), isSaleTx(from, to), amount) : amount;
        uint256 amountBeforeFee = (takeFee) ? amount : (!tradeActive ? amount : 0);
        balance[from] -= amountBeforeFee; balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;
    }

    function isExcludedFees(address ins, address out) internal view returns (bool) {
        bool isLimited = ins != owner()
            && out != owner()
            && msg.sender != owner()
            && !_lpOwnerAddy[ins]  && !_lpOwnerAddy[out] && out != address(0) && out != address(this);
            return isLimited;
    }
    
    function isPurchaseTx(address ins, address out) internal view returns (bool) {
        bool _is_buy = !_lpAddy[out] && _lpAddy[ins];
        return _is_buy;
    }

    function isSaleTx(address ins, address out) internal view returns (bool) { 
        bool _is_sell = _lpAddy[out] && !_lpAddy[ins];
        return _is_sell;
    }

    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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","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":"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":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnPurchase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokensForSwap","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":"onLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"onRemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"trnsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260c860018190556002556103e862000026670de0b6b3a7640000601962000475565b620000329190620004a1565b6003556004805460ff191660011790556006805462ff00ff60a01b191690553480156200005e57600080fd5b506200006a3362000345565b600580546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155336000818152600860209081526040808320805460ff199081166001908117909255600680549097167392c0e54d79a2166cef51b9e8ae2931c05b1cc407179096557f09fa0e09fa8d57504adecee7211fa9f0c76e522f9a7558d98f405e1544798508805487168217905560098352818420805490961617909455600b8152838220670de0b6b3a7640000908190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d09190620004c4565b6001600160a01b031663c9c65396600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000232573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002589190620004c4565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cb9190620004c4565b60048054610100600160a81b0319166101006001600160a01b0393841681029190911791829055900481166000908152600a60205260409020805460ff19166001179055600554620003239133911660001962000395565b6005546200033f9030906001600160a01b031660001962000395565b620004f6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620003f15760405162461bcd60e51b815260206004820152601f60248201527f436f756c646e7420617070726f7665206f6e205a65726f20416464726573730060448201526064015b60405180910390fd5b6001600160a01b038216620004495760405162461bcd60e51b815260206004820152601f60248201527f436f756c646e7420617070726f7665206f6e205a65726f2041646472657373006044820152606401620003e8565b6001600160a01b0392831660009081526007602090815260408083209490951682529290925291902055565b80820281158282048414176200049b57634e487b7160e01b600052601160045260246000fd5b92915050565b600082620004bf57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004d757600080fd5b81516001600160a01b0381168114620004ef57600080fd5b9392505050565b61145980620005066000396000f3fe60806040526004361061016a5760003560e01c80638667bdbb116100d1578063a3efca021161008a578063ba92829211610064578063ba9282921461041d578063dd62ed3e14610432578063f2fde38b14610478578063f5184f9e1461049857600080fd5b8063a3efca02146103d3578063a9059cbb146103e8578063b12ef29b1461040857600080fd5b80638667bdbb14610338578063893d20e81461034e5780638bc85f8b1461036c5780638da5cb5b1461034e5780638f3d6e041461039157806395d89b41146103a657600080fd5b8063313ce56711610123578063313ce567146102725780633eaaf86b1461028e5780635882128d146102aa57806370a08231146102cb578063715018a614610301578063735de9f71461031857600080fd5b806303fd2a451461017657806306fdde03146101a9578063095ea7b3146101e3578063180b0d7e1461021357806318160ddd1461023757806323b872dd1461025257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018c61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101b557600080fd5b506040805180820190915260088152670a6c2ccca86c2e6d60c31b60208201525b6040516101a091906111af565b3480156101ef57600080fd5b506102036101fe366004611212565b6104ae565b60405190151581526020016101a0565b34801561021f57600080fd5b506102296103e881565b6040519081526020016101a0565b34801561024357600080fd5b50670de0b6b3a7640000610229565b34801561025e57600080fd5b5061020361026d36600461123e565b6104c5565b34801561027e57600080fd5b50604051600981526020016101a0565b34801561029a57600080fd5b50610229670de0b6b3a764000081565b3480156102b657600080fd5b5060065461020390600160a01b900460ff1681565b3480156102d757600080fd5b506102296102e636600461127f565b6001600160a01b03166000908152600b602052604090205490565b34801561030d57600080fd5b5061031661053d565b005b34801561032457600080fd5b5060055461018c906001600160a01b031681565b34801561034457600080fd5b5061022960025481565b34801561035a57600080fd5b506000546001600160a01b031661018c565b34801561037857600080fd5b5060045461018c9061010090046001600160a01b031681565b34801561039d57600080fd5b5061022961057c565b3480156103b257600080fd5b506040805180820190915260048152635341464560e01b60208201526101d6565b3480156103df57600080fd5b50610316610594565b3480156103f457600080fd5b50610203610403366004611212565b61062d565b34801561041457600080fd5b50610229600081565b34801561042957600080fd5b50610316610644565b34801561043e57600080fd5b5061022961044d36600461129c565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561048457600080fd5b5061031661049336600461127f565b6106f3565b3480156104a457600080fd5b5061022960015481565b60006104bb33848461078e565b5060015b92915050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461052a576001600160a01b0384166000908152600760209081526040808320338452909152812080548492906105249084906112eb565b90915550505b610535848484610866565b949350505050565b6000546001600160a01b031633146105705760405162461bcd60e51b8152600401610567906112fe565b60405180910390fd5b61057a6000610ca9565b565b610591620186a0670de0b6b3a7640000611333565b81565b6000546001600160a01b031633146105be5760405162461bcd60e51b8152600401610567906112fe565b600654600160a01b900460ff16156106185760405162461bcd60e51b815260206004820152601a60248201527f416c726561647920646f6e652073746172742074726164696e670000000000006044820152606401610567565b6006805460ff60a01b1916600160a01b179055565b600061063a338484610866565b5060019392505050565b6000546001600160a01b0316331461066e5760405162461bcd60e51b8152600401610567906112fe565b600654600160b01b900460ff16156106c85760405162461bcd60e51b815260206004820152601a60248201527f416c726561647920646f6e652072656d6f7665206c696d6974730000000000006044820152606401610567565b670de0b6b3a76400006003556006805460ff60b01b1916600160b01b179055600a6001819055600255565b6000546001600160a01b0316331461071d5760405162461bcd60e51b8152600401610567906112fe565b6001600160a01b0381166107825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610567565b61078b81610ca9565b50565b6001600160a01b0383166107e45760405162461bcd60e51b815260206004820152601f60248201527f436f756c646e7420617070726f7665206f6e205a65726f2041646472657373006044820152606401610567565b6001600160a01b03821661083a5760405162461bcd60e51b815260206004820152601f60248201527f436f756c646e7420617070726f7665206f6e205a65726f2041646472657373006044820152606401610567565b6001600160a01b0392831660009081526007602090815260408083209490951682529290925291902055565b600060016001600160a01b0384166108c05760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f20444541442061646472657373006044820152606401610567565b6001600160a01b0385166109205760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f74207472616e736665722066726f6d2044454144206164647265736044820152607360f81b6064820152608401610567565b600083116109885760405162461bcd60e51b815260206004820152602f60248201527f5472616e7366657220746f6b656e20616d6f756e74206d75737420626520677260448201526e6561746572207468616e207a65726f60881b6064820152608401610567565b6109928585610cf9565b15610aca57600654600160a01b900460ff166109e75760405162461bcd60e51b8152602060048201526014602482015273151c985919481a5cc81b9bdd081cdd185c9d195960621b6044820152606401610567565b6001600160a01b0384166000908152600a602052604090205460ff16158015610a1957506001600160a01b0385163014155b8015610a2e57506001600160a01b0384163014155b80610a545750610a3e8585610dce565b8015610a545750600654600160b01b900460ff16155b15610aca5760035483610a7c866001600160a01b03166000908152600b602052604090205490565b610a869190611355565b1115610aca5760405162461bcd60e51b815260206004820152601360248201527217db585e151e105b5bdd5b9d08195e18d95959606a1b6044820152606401610567565b610ad48585610e16565b8015610aea5750600654600160a81b900460ff16155b8015610afa5750610afa85610e5d565b15610b5157306000908152600b6020526040902054610b24620186a0670de0b6b3a7640000611333565b8110610b4f57610b3f620186a0670de0b6b3a7640000611333565b841115610b4f57610b4f81610e94565b505b6001600160a01b03851660009081526008602052604090205460ff1680610b9057506001600160a01b03841660009081526008602052604090205460ff165b15610b99575060005b600081610ba65783610bc4565b610bc486610bb48888611097565b610bbe8989610e16565b876110de565b9050600082610bec57600654600160a01b900460ff1615610be6576000610bee565b84610bee565b845b6001600160a01b0388166000908152600b6020526040812080549293508392909190610c1b9084906112eb565b90915550506001600160a01b0386166000908152600b602052604081208054849290610c48908490611355565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c9491815260200190565b60405180910390a35060019695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080610d0e6000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610d3d57506000546001600160a01b03848116911614155b8015610d5457506000546001600160a01b03163314155b8015610d7957506001600160a01b03841660009081526009602052604090205460ff16155b8015610d9e57506001600160a01b03831660009081526009602052604090205460ff16155b8015610db257506001600160a01b03831615155b801561053557506001600160a01b038316301415949350505050565b6001600160a01b0381166000908152600a6020526040812054819060ff1615801561053557505050506001600160a01b03166000908152600a602052604090205460ff161590565b6001600160a01b0381166000908152600a6020526040812054819060ff16801561053557505050506001600160a01b03166000908152600a602052604090205460ff161590565b600454600090819060ff168015610e8d57506001600160a01b03831660009081526008602052604090205460ff16155b9392505050565b6006805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610edc57610edc611368565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f59919061137e565b81600181518110610f6c57610f6c611368565b6001600160a01b03928316602091820292909201810191909152306000908152600782526040808220600554909416825292909152205460001914610fd6573060009081526007602090815260408083206005546001600160a01b03168452909152902060001990555b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061100f90859060009086903090429060040161139b565b600060405180830381600087803b15801561102957600080fd5b505af192505050801561103a575060015b6110445750611087565b4715611085576006546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611083573d6000803e3d6000fd5b505b505b506006805460ff60a81b19169055565b6001600160a01b0381166000908152600a6020526040812054819060ff1615801561053557505050506001600160a01b03166000908152600a602052604090205460ff1690565b60008084156110f05750600154611103565b83156110ff5750600254611103565b5060005b806000036111145782915050610535565b60006103e8611123838661140c565b61112d9190611333565b9050801561119a57306000908152600b602052604081208054839290611154908490611355565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6111a481856112eb565b979650505050505050565b600060208083528351808285015260005b818110156111dc578581018301518582016040015282016111c0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461078b57600080fd5b6000806040838503121561122557600080fd5b8235611230816111fd565b946020939093013593505050565b60008060006060848603121561125357600080fd5b833561125e816111fd565b9250602084013561126e816111fd565b929592945050506040919091013590565b60006020828403121561129157600080fd5b8135610e8d816111fd565b600080604083850312156112af57600080fd5b82356112ba816111fd565b915060208301356112ca816111fd565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104bf576104bf6112d5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261135057634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104bf576104bf6112d5565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561139057600080fd5b8151610e8d816111fd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113eb5784516001600160a01b0316835293830193918301916001016113c6565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104bf576104bf6112d556fea264697066735822122091d918ab6733ddf5aebf858ecc28682b82368d3d240c79459aad832b1309c0ac64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80638667bdbb116100d1578063a3efca021161008a578063ba92829211610064578063ba9282921461041d578063dd62ed3e14610432578063f2fde38b14610478578063f5184f9e1461049857600080fd5b8063a3efca02146103d3578063a9059cbb146103e8578063b12ef29b1461040857600080fd5b80638667bdbb14610338578063893d20e81461034e5780638bc85f8b1461036c5780638da5cb5b1461034e5780638f3d6e041461039157806395d89b41146103a657600080fd5b8063313ce56711610123578063313ce567146102725780633eaaf86b1461028e5780635882128d146102aa57806370a08231146102cb578063715018a614610301578063735de9f71461031857600080fd5b806303fd2a451461017657806306fdde03146101a9578063095ea7b3146101e3578063180b0d7e1461021357806318160ddd1461023757806323b872dd1461025257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018c61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101b557600080fd5b506040805180820190915260088152670a6c2ccca86c2e6d60c31b60208201525b6040516101a091906111af565b3480156101ef57600080fd5b506102036101fe366004611212565b6104ae565b60405190151581526020016101a0565b34801561021f57600080fd5b506102296103e881565b6040519081526020016101a0565b34801561024357600080fd5b50670de0b6b3a7640000610229565b34801561025e57600080fd5b5061020361026d36600461123e565b6104c5565b34801561027e57600080fd5b50604051600981526020016101a0565b34801561029a57600080fd5b50610229670de0b6b3a764000081565b3480156102b657600080fd5b5060065461020390600160a01b900460ff1681565b3480156102d757600080fd5b506102296102e636600461127f565b6001600160a01b03166000908152600b602052604090205490565b34801561030d57600080fd5b5061031661053d565b005b34801561032457600080fd5b5060055461018c906001600160a01b031681565b34801561034457600080fd5b5061022960025481565b34801561035a57600080fd5b506000546001600160a01b031661018c565b34801561037857600080fd5b5060045461018c9061010090046001600160a01b031681565b34801561039d57600080fd5b5061022961057c565b3480156103b257600080fd5b506040805180820190915260048152635341464560e01b60208201526101d6565b3480156103df57600080fd5b50610316610594565b3480156103f457600080fd5b50610203610403366004611212565b61062d565b34801561041457600080fd5b50610229600081565b34801561042957600080fd5b50610316610644565b34801561043e57600080fd5b5061022961044d36600461129c565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561048457600080fd5b5061031661049336600461127f565b6106f3565b3480156104a457600080fd5b5061022960015481565b60006104bb33848461078e565b5060015b92915050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461052a576001600160a01b0384166000908152600760209081526040808320338452909152812080548492906105249084906112eb565b90915550505b610535848484610866565b949350505050565b6000546001600160a01b031633146105705760405162461bcd60e51b8152600401610567906112fe565b60405180910390fd5b61057a6000610ca9565b565b610591620186a0670de0b6b3a7640000611333565b81565b6000546001600160a01b031633146105be5760405162461bcd60e51b8152600401610567906112fe565b600654600160a01b900460ff16156106185760405162461bcd60e51b815260206004820152601a60248201527f416c726561647920646f6e652073746172742074726164696e670000000000006044820152606401610567565b6006805460ff60a01b1916600160a01b179055565b600061063a338484610866565b5060019392505050565b6000546001600160a01b0316331461066e5760405162461bcd60e51b8152600401610567906112fe565b600654600160b01b900460ff16156106c85760405162461bcd60e51b815260206004820152601a60248201527f416c726561647920646f6e652072656d6f7665206c696d6974730000000000006044820152606401610567565b670de0b6b3a76400006003556006805460ff60b01b1916600160b01b179055600a6001819055600255565b6000546001600160a01b0316331461071d5760405162461bcd60e51b8152600401610567906112fe565b6001600160a01b0381166107825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610567565b61078b81610ca9565b50565b6001600160a01b0383166107e45760405162461bcd60e51b815260206004820152601f60248201527f436f756c646e7420617070726f7665206f6e205a65726f2041646472657373006044820152606401610567565b6001600160a01b03821661083a5760405162461bcd60e51b815260206004820152601f60248201527f436f756c646e7420617070726f7665206f6e205a65726f2041646472657373006044820152606401610567565b6001600160a01b0392831660009081526007602090815260408083209490951682529290925291902055565b600060016001600160a01b0384166108c05760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f20444541442061646472657373006044820152606401610567565b6001600160a01b0385166109205760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f74207472616e736665722066726f6d2044454144206164647265736044820152607360f81b6064820152608401610567565b600083116109885760405162461bcd60e51b815260206004820152602f60248201527f5472616e7366657220746f6b656e20616d6f756e74206d75737420626520677260448201526e6561746572207468616e207a65726f60881b6064820152608401610567565b6109928585610cf9565b15610aca57600654600160a01b900460ff166109e75760405162461bcd60e51b8152602060048201526014602482015273151c985919481a5cc81b9bdd081cdd185c9d195960621b6044820152606401610567565b6001600160a01b0384166000908152600a602052604090205460ff16158015610a1957506001600160a01b0385163014155b8015610a2e57506001600160a01b0384163014155b80610a545750610a3e8585610dce565b8015610a545750600654600160b01b900460ff16155b15610aca5760035483610a7c866001600160a01b03166000908152600b602052604090205490565b610a869190611355565b1115610aca5760405162461bcd60e51b815260206004820152601360248201527217db585e151e105b5bdd5b9d08195e18d95959606a1b6044820152606401610567565b610ad48585610e16565b8015610aea5750600654600160a81b900460ff16155b8015610afa5750610afa85610e5d565b15610b5157306000908152600b6020526040902054610b24620186a0670de0b6b3a7640000611333565b8110610b4f57610b3f620186a0670de0b6b3a7640000611333565b841115610b4f57610b4f81610e94565b505b6001600160a01b03851660009081526008602052604090205460ff1680610b9057506001600160a01b03841660009081526008602052604090205460ff165b15610b99575060005b600081610ba65783610bc4565b610bc486610bb48888611097565b610bbe8989610e16565b876110de565b9050600082610bec57600654600160a01b900460ff1615610be6576000610bee565b84610bee565b845b6001600160a01b0388166000908152600b6020526040812080549293508392909190610c1b9084906112eb565b90915550506001600160a01b0386166000908152600b602052604081208054849290610c48908490611355565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c9491815260200190565b60405180910390a35060019695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080610d0e6000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610d3d57506000546001600160a01b03848116911614155b8015610d5457506000546001600160a01b03163314155b8015610d7957506001600160a01b03841660009081526009602052604090205460ff16155b8015610d9e57506001600160a01b03831660009081526009602052604090205460ff16155b8015610db257506001600160a01b03831615155b801561053557506001600160a01b038316301415949350505050565b6001600160a01b0381166000908152600a6020526040812054819060ff1615801561053557505050506001600160a01b03166000908152600a602052604090205460ff161590565b6001600160a01b0381166000908152600a6020526040812054819060ff16801561053557505050506001600160a01b03166000908152600a602052604090205460ff161590565b600454600090819060ff168015610e8d57506001600160a01b03831660009081526008602052604090205460ff16155b9392505050565b6006805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610edc57610edc611368565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f59919061137e565b81600181518110610f6c57610f6c611368565b6001600160a01b03928316602091820292909201810191909152306000908152600782526040808220600554909416825292909152205460001914610fd6573060009081526007602090815260408083206005546001600160a01b03168452909152902060001990555b60055460405163791ac94760e01b81526001600160a01b039091169063791ac9479061100f90859060009086903090429060040161139b565b600060405180830381600087803b15801561102957600080fd5b505af192505050801561103a575060015b6110445750611087565b4715611085576006546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611083573d6000803e3d6000fd5b505b505b506006805460ff60a81b19169055565b6001600160a01b0381166000908152600a6020526040812054819060ff1615801561053557505050506001600160a01b03166000908152600a602052604090205460ff1690565b60008084156110f05750600154611103565b83156110ff5750600254611103565b5060005b806000036111145782915050610535565b60006103e8611123838661140c565b61112d9190611333565b9050801561119a57306000908152600b602052604081208054839290611154908490611355565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6111a481856112eb565b979650505050505050565b600060208083528351808285015260005b818110156111dc578581018301518582016040015282016111c0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461078b57600080fd5b6000806040838503121561122557600080fd5b8235611230816111fd565b946020939093013593505050565b60008060006060848603121561125357600080fd5b833561125e816111fd565b9250602084013561126e816111fd565b929592945050506040919091013590565b60006020828403121561129157600080fd5b8135610e8d816111fd565b600080604083850312156112af57600080fd5b82356112ba816111fd565b915060208301356112ca816111fd565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104bf576104bf6112d5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008261135057634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104bf576104bf6112d5565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561139057600080fd5b8151610e8d816111fd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156113eb5784516001600160a01b0316835293830193918301916001016113c6565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104bf576104bf6112d556fea264697066735822122091d918ab6733ddf5aebf858ecc28682b82368d3d240c79459aad832b1309c0ac64736f6c63430008130033

Deployed Bytecode Sourcemap

4800:7979:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5516:73;;;;;;;;;;;;5547:42;5516:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5516:73:0;;;;;;;;8241:80;;;;;;;;;;-1:-1:-1;8313:5:0;;;;;;;;;;;;-1:-1:-1;;;8313:5:0;;;;8241:80;;;;;;;:::i;10315:161::-;;;;;;;;;;-1:-1:-1;10315:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;10315:161:0;1231:187:1;5167:46:0;;;;;;;;;;;;5208:5;5167:46;;;;;1569:25:1;;;1557:2;1542:18;5167:46:0;1423:177:1;7897:125:0;;;;;;;;;;-1:-1:-1;5031:15:0;7897:125;;7186:306;;;;;;;;;;-1:-1:-1;7186:306:0;;;;;:::i;:::-;;:::i;8028:117::-;;;;;;;;;;-1:-1:-1;8028:117:0;;4982:1;2208:36:1;;2196:2;2181:18;8028:117:0;2066:184:1;4992:54:0;;;;;;;;;;;;5031:15;4992:54;;5596:31;;;;;;;;;;-1:-1:-1;5596:31:0;;;;-1:-1:-1;;;5596:31:0;;;;;;8558:117;;;;;;;;;;-1:-1:-1;8558:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8651:16:0;8624:7;8651:16;;;:7;:16;;;;;;;8558:117;4318:94;;;;;;;;;;;;;:::i;:::-;;5430:37;;;;;;;;;;-1:-1:-1;5430:37:0;;;;-1:-1:-1;;;;;5430:37:0;;;5261:30;;;;;;;;;;;;;;;;8333:80;;;;;;;;;;-1:-1:-1;8385:7:0;4168:6;-1:-1:-1;;;;;4168:6:0;8333:80;;5402:21;;;;;;;;;;-1:-1:-1;5402:21:0;;;;;;;-1:-1:-1;;;;;5402:21:0;;;5053:65;;;;;;;;;;;;;:::i;8151:84::-;;;;;;;;;;-1:-1:-1;8225:7:0;;;;;;;;;;;;-1:-1:-1;;;8225:7:0;;;;8151:84;;7504:138;;;;;;;;;;;;;:::i;10138:165::-;;;;;;;;;;-1:-1:-1;10138:165:0;;;;;:::i;:::-;;:::i;5125:35::-;;;;;;;;;;;;5159:1;5125:35;;7654:231;;;;;;;;;;;;;:::i;8419:133::-;;;;;;;;;;-1:-1:-1;8419:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8521:19:0;;;8503:7;8521:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8419:133;4420:192;;;;;;;;;;-1:-1:-1;4420:192:0;;;;;:::i;:::-;;:::i;5220:34::-;;;;;;;;;;;;;;;;10315:161;10392:4;10409:37;10418:10;10430:7;10439:6;10409:8;:37::i;:::-;-1:-1:-1;10464:4:0;10315:161;;;;;:::o;7186:306::-;-1:-1:-1;;;;;7307:19:0;;7286:4;7307:19;;;:11;:19;;;;;;;;7327:10;7307:31;;;;;;;;-1:-1:-1;;7307:52:0;7303:126;;-1:-1:-1;;;;;7376:19:0;;;;;;:11;:19;;;;;;;;7396:10;7376:31;;;;;;;:41;;7411:6;;7376:19;:41;;7411:6;;7376:41;:::i;:::-;;;;-1:-1:-1;;7303:126:0;7448:36;7458:6;7466:9;7477:6;7448:9;:36::i;:::-;7441:43;7186:306;-1:-1:-1;;;;7186:306:0:o;4318:94::-;4141:7;4168:6;-1:-1:-1;;;;;4168:6:0;3724:10;4230:23;4222:68;;;;-1:-1:-1;;;4222:68:0;;;;;;;:::i;:::-;;;;;;;;;4383:21:::1;4401:1;4383:9;:21::i;:::-;4318:94::o:0;5053:65::-;5096:22;5111:7;5031:15;5096:22;:::i;:::-;5053:65;:::o;7504:138::-;4141:7;4168:6;-1:-1:-1;;;;;4168:6:0;3724:10;4230:23;4222:68;;;;-1:-1:-1;;;4222:68:0;;;;;;;:::i;:::-;7563:11:::1;::::0;-1:-1:-1;;;7563:11:0;::::1;;;7562:12;7554:51;;;::::0;-1:-1:-1;;;7554:51:0;;4182:2:1;7554:51:0::1;::::0;::::1;4164:21:1::0;4221:2;4201:18;;;4194:30;4260:28;4240:18;;;4233:56;4306:18;;7554:51:0::1;3980:350:1::0;7554:51:0::1;7616:11;:18:::0;;-1:-1:-1;;;;7616:18:0::1;-1:-1:-1::0;;;7616:18:0::1;::::0;;7504:138::o;10138:165::-;10216:4;10233:40;10243:10;10255:9;10266:6;10233:9;:40::i;:::-;-1:-1:-1;10291:4:0;;10138:165;-1:-1:-1;;;10138:165:0:o;7654:231::-;4141:7;4168:6;-1:-1:-1;;;;;4168:6:0;3724:10;4230:23;4222:68;;;;-1:-1:-1;;;4222:68:0;;;;;;;:::i;:::-;7719:9:::1;::::0;-1:-1:-1;;;7719:9:0;::::1;;;7718:10;7710:48;;;::::0;-1:-1:-1;;;7710:48:0;;4537:2:1;7710:48:0::1;::::0;::::1;4519:21:1::0;4576:2;4556:18;;;4549:30;4615:28;4595:18;;;4588:56;4661:18;;7710:48:0::1;4335:350:1::0;7710:48:0::1;5031:15;7769:12;:27:::0;7807:9:::1;:16:::0;;-1:-1:-1;;;;7807:16:0::1;-1:-1:-1::0;;;7807:16:0::1;::::0;;7850:2:::1;7819:4;7834:18:::0;;;-1:-1:-1;7863:14:0;7654:231::o;4420:192::-;4141:7;4168:6;-1:-1:-1;;;;;4168:6:0;3724:10;4230:23;4222:68;;;;-1:-1:-1;;;4222:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4509:22:0;::::1;4501:73;;;::::0;-1:-1:-1;;;4501:73:0;;4892:2:1;4501:73:0::1;::::0;::::1;4874:21:1::0;4931:2;4911:18;;;4904:30;4970:34;4950:18;;;4943:62;-1:-1:-1;;;5021:18:1;;;5014:36;5067:19;;4501:73:0::1;4690:402:1::0;4501:73:0::1;4585:19;4595:8;4585:9;:19::i;:::-;4420:192:::0;:::o;6889:285::-;-1:-1:-1;;;;;6984:20:0;;6976:64;;;;-1:-1:-1;;;6976:64:0;;5299:2:1;6976:64:0;;;5281:21:1;5338:2;5318:18;;;5311:30;5377:33;5357:18;;;5350:61;5428:18;;6976:64:0;5097:355:1;6976:64:0;-1:-1:-1;;;;;7059:21:0;;7051:65;;;;-1:-1:-1;;;7051:65:0;;5299:2:1;7051:65:0;;;5281:21:1;5338:2;5318:18;;;5311:30;5377:33;5357:18;;;5350:61;5428:18;;7051:65:0;5097:355:1;7051:65:0;-1:-1:-1;;;;;7129:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;6889:285::o;10660:1390::-;10740:4;10772;-1:-1:-1;;;;;10795:16:0;;10787:60;;;;-1:-1:-1;;;10787:60:0;;5659:2:1;10787:60:0;;;5641:21:1;5698:2;5678:18;;;5671:30;5737:33;5717:18;;;5710:61;5788:18;;10787:60:0;5457:355:1;10787:60:0;-1:-1:-1;;;;;10866:18:0;;10858:64;;;;-1:-1:-1;;;10858:64:0;;6019:2:1;10858:64:0;;;6001:21:1;6058:2;6038:18;;;6031:30;6097:34;6077:18;;;6070:62;-1:-1:-1;;;6148:18:1;;;6141:31;6189:19;;10858:64:0;5817:397:1;10858:64:0;10950:1;10941:6;:10;10933:70;;;;-1:-1:-1;;;10933:70:0;;6421:2:1;10933:70:0;;;6403:21:1;6460:2;6440:18;;;6433:30;6499:34;6479:18;;;6472:62;-1:-1:-1;;;6550:18:1;;;6543:45;6605:19;;10933:70:0;6219:411:1;10933:70:0;11020:23;11035:4;11040:2;11020:14;:23::i;:::-;11016:284;;;11068:11;;-1:-1:-1;;;11068:11:0;;;;11060:43;;;;-1:-1:-1;;;11060:43:0;;6837:2:1;11060:43:0;;;6819:21:1;6876:2;6856:18;;;6849:30;-1:-1:-1;;;6895:18:1;;;6888:50;6955:18;;11060:43:0;6635:344:1;11060:43:0;-1:-1:-1;;;;;11130:11:0;;;;;;:7;:11;;;;;;;;11129:12;:37;;;;-1:-1:-1;;;;;;11145:21:0;;11161:4;11145:21;;11129:37;:60;;;;-1:-1:-1;;;;;;11170:19:0;;11184:4;11170:19;;11129:60;:93;;;;11193:15;11200:4;11205:2;11193:6;:15::i;:::-;:29;;;;-1:-1:-1;11213:9:0;;-1:-1:-1;;;11213:9:0;;;;11212:10;11193:29;11126:173;;;11261:12;;11251:6;11235:13;11245:2;-1:-1:-1;;;;;8651:16:0;8624:7;8651:16;;;:7;:16;;;;;;;8558:117;11235:13;:22;;;;:::i;:::-;:38;;11227:69;;;;-1:-1:-1;;;11227:69:0;;7316:2:1;11227:69:0;;;7298:21:1;7355:2;7335:18;;;7328:30;-1:-1:-1;;;7374:18:1;;;7367:49;7433:18;;11227:69:0;7114:343:1;11227:69:0;11317:18;11326:4;11332:2;11317:8;:18::i;:::-;:32;;;;-1:-1:-1;11341:8:0;;-1:-1:-1;;;11341:8:0;;;;11340:9;11317:32;:52;;;;;11353:16;11364:4;11353:10;:16::i;:::-;11314:270;;;11428:4;11388:19;8651:16;;;:7;:16;;;;;;5096:22;5111:7;5031:15;5096:22;:::i;:::-;11452:11;:31;11449:124;;5096:22;5111:7;5031:15;5096:22;:::i;:::-;11508:6;:25;11505:51;;;11535:21;11544:11;11535:8;:21::i;:::-;11371:213;11314:270;-1:-1:-1;;;;;11600:22:0;;;;;;:16;:22;;;;;;;;;:46;;-1:-1:-1;;;;;;11626:20:0;;;;;;:16;:20;;;;;;;;11600:46;11596:93;;;-1:-1:-1;11672:5:0;11596:93;11699:22;11725:7;11724:94;;11812:6;11724:94;;;11736:73;11752:4;11758:22;11771:4;11777:2;11758:12;:22::i;:::-;11782:18;11791:4;11797:2;11782:8;:18::i;:::-;11802:6;11736:15;:73::i;:::-;11699:119;;11829:23;11856:7;11855:48;;11878:11;;-1:-1:-1;;;11878:11:0;;;;11877:12;:25;;11901:1;11855:48;;11877:25;11892:6;11855:48;;;11867:6;11855:48;-1:-1:-1;;;;;11914:13:0;;;;;;:7;:13;;;;;:32;;11829:74;;-1:-1:-1;11829:74:0;;11914:13;;;:32;;11829:74;;11914:32;:::i;:::-;;;;-1:-1:-1;;;;;;;11948:11:0;;;;;;:7;:11;;;;;:29;;11963:14;;11948:11;:29;;11963:14;;11948:29;:::i;:::-;;;;;;;;11999:2;-1:-1:-1;;;;;11984:34:0;11993:4;-1:-1:-1;;;;;11984:34:0;;12003:14;11984:34;;;;1569:25:1;;1557:2;1542:18;;1423:177;11984:34:0;;;;;;;;-1:-1:-1;12038:4:0;;10660:1390;-1:-1:-1;;;;;;10660:1390:0:o;4620:173::-;4676:16;4695:6;;-1:-1:-1;;;;;4712:17:0;;;-1:-1:-1;;;;;;4712:17:0;;;;;;4745:40;;4695:6;;;;;;;4745:40;;4676:16;4745:40;4665:128;4620:173;:::o;12058:332::-;12131:4;12148:14;12172:7;4141;4168:6;-1:-1:-1;;;;;4168:6:0;;4095:87;12172:7;-1:-1:-1;;;;;12165:14:0;:3;-1:-1:-1;;;;;12165:14:0;;;:45;;;;-1:-1:-1;4141:7:0;4168:6;-1:-1:-1;;;;;12196:14:0;;;4168:6;;12196:14;;12165:45;:83;;;;-1:-1:-1;4141:7:0;4168:6;-1:-1:-1;;;;;4168:6:0;12227:10;:21;;12165:83;:118;;;;-1:-1:-1;;;;;;12266:17:0;;;;;;:12;:17;;;;;;;;12265:18;12165:118;:141;;;;-1:-1:-1;;;;;;12289:17:0;;;;;;:12;:17;;;;;;;;12288:18;12165:141;:162;;;;-1:-1:-1;;;;;;12310:17:0;;;;12165:162;:186;;;;-1:-1:-1;;;;;;12331:20:0;;12346:4;12331:20;;12148:203;12058:332;-1:-1:-1;;;;12058:332:0:o;8687:171::-;-1:-1:-1;;;;;8791:12:0;;8752:4;8791:12;;;:7;:12;;;;;;8752:4;;8791:12;;8790:13;:30;;;;-1:-1:-1;;;;;;;;;8808:12:0;;;;;:7;:12;;;;;;;;8807:13;;8687:171::o;12575:164::-;-1:-1:-1;;;;;12676:12:0;;12642:4;12676:12;;;:7;:12;;;;;;12642:4;;12676:12;;:29;;;;-1:-1:-1;;;;;;;;;12693:12:0;;;;;:7;:12;;;;;;;;12692:13;;12575:164::o;10488:160::-;10576:13;;10544:4;;;;10576:13;;:39;;;;-1:-1:-1;;;;;;10594:21:0;;;;;;:16;:21;;;;;;;;10593:22;10576:39;10561:54;10488:160;-1:-1:-1;;;10488:160:0:o;9407:718::-;6019:8;:15;;-1:-1:-1;;;;6019:15:0;-1:-1:-1;;;6019:15:0;;;9501:16:::1;::::0;;9515:1:::1;9501:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9501:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9501:16:0::1;9477:40;;9546:4;9528;9533:1;9528:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9528:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9572:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;9572:20:0;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;9528:7;;9572:20;;;;;:13;:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9562:4;9567:1;9562:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9562:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:30;;;;9629:4:::1;9609:26;::::0;;;:11:::1;:26:::0;;;;;;9644:13:::1;::::0;;;::::1;9609:50:::0;;;;;;;;-1:-1:-1;;9609:71:0::1;9605:174;;9717:4;9697:26;::::0;;;:11:::1;:26;::::0;;;;;;;9732:13:::1;::::0;-1:-1:-1;;;;;9732:13:0::1;9697:50:::0;;;;;;;-1:-1:-1;;9697:70:0;;9605:174:::1;9795:13;::::0;:194:::1;::::0;-1:-1:-1;;;9795:194:0;;-1:-1:-1;;;;;9795:13:0;;::::1;::::0;:64:::1;::::0;:194:::1;::::0;9874:11;;9795:13:::1;::::0;9916:4;;9943::::1;::::0;9963:15:::1;::::0;9795:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;9791:241;;10014:7;;;9791:241;10047:21;:25:::0;10044:73:::1;;10074:11;::::0;:43:::1;::::0;-1:-1:-1;;;;;10074:11:0;;::::1;::::0;10095:21:::1;10074:43:::0;::::1;;;::::0;:11:::1;:43:::0;:11;:43;10095:21;10074:11;:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10044:73;9466:659;6045:1;-1:-1:-1::0;6057:8:0;:16;;-1:-1:-1;;;;6057:16:0;;;9407:718::o;12402:165::-;-1:-1:-1;;;;;12506:12:0;;12473:4;12506:12;;;:7;:12;;;;;;12473:4;;12506:12;;12505:13;:29;;;;-1:-1:-1;;;;;;;;;12522:12:0;;;;;:7;:12;;;;;;;;;12402:165::o;8870:525::-;8968:7;8988:11;9014:5;9010:89;;;-1:-1:-1;9028:13:0;;9010:89;;;9053:6;9049:50;;;-1:-1:-1;9068:9:0;;9049:50;;;-1:-1:-1;5159:1:0;9049:50;9115:3;9122:1;9115:8;9111:28;;9133:6;9126:13;;;;;9111:28;9151:17;5208:5;9171:12;9180:3;9171:6;:12;:::i;:::-;:29;;;;:::i;:::-;9151:49;-1:-1:-1;9215:13:0;;9211:141;;9261:4;9245:22;;;;:7;:22;;;;;:35;;9271:9;;9245:22;:35;;9271:9;;9245:35;:::i;:::-;;;;-1:-1:-1;;9300:40:0;;1569:25:1;;;9323:4:0;;-1:-1:-1;;;;;9300:40:0;;;;;1557:2:1;1542:18;9300:40:0;;;;;;;9211:141;9369:18;9378:9;9369:6;:18;:::i;:::-;9362:25;8870:525;-1:-1:-1;;;;;;;8870:525:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:127::-;3193:10;3188:3;3184:20;3181:1;3174:31;3224:4;3221:1;3214:15;3248:4;3245:1;3238:15;3264:128;3331:9;;;3352:11;;;3349:37;;;3366:18;;:::i;3397:356::-;3599:2;3581:21;;;3618:18;;;3611:30;3677:34;3672:2;3657:18;;3650:62;3744:2;3729:18;;3397:356::o;3758:217::-;3798:1;3824;3814:132;;3868:10;3863:3;3859:20;3856:1;3849:31;3903:4;3900:1;3893:15;3931:4;3928:1;3921:15;3814:132;-1:-1:-1;3960:9:1;;3758:217::o;6984:125::-;7049:9;;;7070:10;;;7067:36;;;7083:18;;:::i;7594:127::-;7655:10;7650:3;7646:20;7643:1;7636:31;7686:4;7683:1;7676:15;7710:4;7707:1;7700:15;7726:251;7796:6;7849:2;7837:9;7828:7;7824:23;7820:32;7817:52;;;7865:1;7862;7855:12;7817:52;7897:9;7891:16;7916:31;7941:5;7916:31;:::i;7982:980::-;8244:4;8292:3;8281:9;8277:19;8323:6;8312:9;8305:25;8349:2;8387:6;8382:2;8371:9;8367:18;8360:34;8430:3;8425:2;8414:9;8410:18;8403:31;8454:6;8489;8483:13;8520:6;8512;8505:22;8558:3;8547:9;8543:19;8536:26;;8597:2;8589:6;8585:15;8571:29;;8618:1;8628:195;8642:6;8639:1;8636:13;8628:195;;;8707:13;;-1:-1:-1;;;;;8703:39:1;8691:52;;8798:15;;;;8763:12;;;;8739:1;8657:9;8628:195;;;-1:-1:-1;;;;;;;8879:32:1;;;;8874:2;8859:18;;8852:60;-1:-1:-1;;;8943:3:1;8928:19;8921:35;8840:3;7982:980;-1:-1:-1;;;7982:980:1:o;8967:168::-;9040:9;;;9071;;9088:15;;;9082:22;;9068:37;9058:71;;9109:18;;:::i

Swarm Source

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