ETH Price: $2,660.64 (+2.07%)

Token

Cryptogold (CRYPTOGOLD)
 

Overview

Max Total Supply

100,000,000 CRYPTOGOLD

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.899888358567312024 CRYPTOGOLD

Value
$0.00
0x5f8a5489cce9a41728ad78c93d0e93acb0e789cb
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:
Cryptogold

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Website: https://cryptogoldtoken.org
Telegram: https://t.me/cryptogold_token
*/

pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint
    );

    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

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

interface IUniswapV2Router02 {
    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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Cryptogold is Context, IERC20, IERC20Metadata, Ownable {
    mapping(address => uint256) private _balances;

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

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isPairWithFee;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    string private _decimals;
    address payable private devWallet;
    uint public immutable maxFee;
    uint public buyFee;
    uint public sellFee;
    uint public denominator;
    uint public minTokenToSwap;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private inSwap = false;

    modifier lockLiquify() {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier onlyOwnerOrDev() {
        require(_msgSender() == owner() || _msgSender() == devWallet);
        _;
    }

    constructor() {
        _name = "Cryptogold";
        _symbol = "CRYPTOGOLD";
        devWallet = payable(0xc243F3e110064E4B07103Bf9E1ec9c7e90f5Cf00);
        buyFee = 10; //1%
        sellFee = 10; //1%
        maxFee = 20; //Max 2% immutable
        denominator = 1000;
        minTokenToSwap = 1_000_000 * 10 ** decimals();
        _totalSupply = 100_000_000 * 10 ** decimals();
        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        address factory = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;
        address token0 = address(this); 
        address token1 = _uniswapV2Router.WETH(); 

        uniswapV2Pair = address(
            uint160(uint(
                keccak256(
                    abi.encodePacked(
                        hex"ff",
                        factory,
                        keccak256(abi.encodePacked(token0, token1)),
                        hex"96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f"
                    )
                )
            ))
        );

        isPairWithFee[uniswapV2Pair] = true;
        uniswapV2Router = _uniswapV2Router;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[devWallet] = true;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );

        uint contractBalance = balanceOf(address(this));
        if (
            isPairWithFee[to] &&
            contractBalance >= minTokenToSwap &&
            !inSwap
        ) {
            liquify();
        }

        bool takeFee = false;
        uint netAmount = amount;
        uint feeAmount = 0;
        if (isPairWithFee[from] == true && !isExcludedFromFee[to]) {
            takeFee = true;
            feeAmount = (amount * buyFee) / denominator;
            netAmount = amount - feeAmount;
        } else if (!isExcludedFromFee[from] && isPairWithFee[to] == true) {
            takeFee = true;
            feeAmount = (amount * sellFee) / denominator;
            netAmount = amount - feeAmount;
        }

        _balances[from] = fromBalance - amount;
        _balances[to] += netAmount;

        emit Transfer(from, to, amount);

        if (takeFee == true) {
            _balances[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function setFee(uint _buyFee, uint _sellFee) external onlyOwner {
        require(_buyFee <= maxFee, "Buy fee exceed max");
        require(_sellFee <= maxFee, "Sell fee exceed max");
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function excludeFromFee(address account, bool isExclude) public onlyOwnerOrDev {
        isExcludedFromFee[account] = isExclude;
    }

    function pairWithFee(address account, bool isPair) public onlyOwnerOrDev {
        isPairWithFee[account] = isPair;
    }

    function setMinTokenToSwap(uint amount) external onlyOwnerOrDev {
        minTokenToSwap = amount;
    }

    function setDevWallet(address account) public onlyOwnerOrDev {
        devWallet = payable(account);
        isExcludedFromFee[devWallet] = true;
    }

    function swapTokensForETH(uint tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToWallet(address payable wallet, uint amount) private {
        wallet.transfer(amount);
    }

    function liquify() internal lockLiquify {
        uint contractBalance = balanceOf(address(this));
        swapTokensForETH(contractBalance);
        uint contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToWallet(devWallet, contractETHBalance);
        }
    }

    function manualSwap() external {
        require(_msgSender() == devWallet);
        uint contractBalance = balanceOf(address(this));
        require(contractBalance > 0, "No tokens to swap");
        swapTokensForETH(contractBalance);
    }

    function manualSend() external {
        require(_msgSender() == devWallet);
        uint contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "No ETH to send");
        sendETHToWallet(devWallet, contractETHBalance);
    }

    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":[{"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":[{"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExclude","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPairWithFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isPair","type":"bool"}],"name":"pairWithFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600f805460ff60a01b191690553480156200001e57600080fd5b506200002a3362000347565b60408051808201909152600a81526910dc9e5c1d1bd9dbdb1960b21b60208201526006906200005a90826200043c565b5060408051808201909152600a81526910d496541513d1d3d31160b21b60208201526007906200008b90826200043c565b50600980546001600160a01b03191673c243f3e110064e4b07103bf9e1ec9c7e90f5cf00179055600a808055600b5560146080526103e8600c55620000ce601290565b620000db90600a6200061d565b620000ea90620f424062000635565b600d55620000fb6012600a6200061d565b6200010b906305f5e10062000635565b600581905533600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3604080516315ab88c960e31b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f913091600091859163ad5c46489160048083019260209291908290030181865afa158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec91906200064f565b6040516001600160601b0319606085811b8216602084015283901b166034820152909150839060480160405160208183030381529060405280519060200120604051602001620002a19291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6001600160601b031916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b60408051601f198184030181529181528151602092830120600f80546001600160a01b039283166001600160a01b03199182168117909255600091825260048552838220805460ff199081166001908117909255600e80549b86169b9093169a909a17909155815483168252600390945282812080548916851790553081528281208054891685179055600954909116815220805490951617909355506200067a915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003c257607f821691505b602082108103620003e357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200043757600081815260208120601f850160051c81016020861015620004125750805b601f850160051c820191505b8181101562000433578281556001016200041e565b5050505b505050565b81516001600160401b0381111562000458576200045862000397565b6200047081620004698454620003ad565b84620003e9565b602080601f831160018114620004a857600084156200048f5750858301515b600019600386901b1c1916600185901b17855562000433565b600085815260208120601f198616915b82811015620004d957888601518255948401946001909101908401620004b8565b5085821015620004f85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200055f57816000190482111562000543576200054362000508565b808516156200055157918102915b93841c939080029062000523565b509250929050565b600082620005785750600162000617565b81620005875750600062000617565b8160018114620005a05760028114620005ab57620005cb565b600191505062000617565b60ff841115620005bf57620005bf62000508565b50506001821b62000617565b5060208310610133831016604e8410600b8410161715620005f0575081810a62000617565b620005fc83836200051e565b806000190482111562000613576200061362000508565b0290505b92915050565b60006200062e60ff84168362000567565b9392505050565b808202811582820484141762000617576200061762000508565b6000602082840312156200066257600080fd5b81516001600160a01b03811681146200062e57600080fd5b608051611d2e620006a4600039600081816101ef015281816109a80152610a320152611d2e6000f3fe6080604052600436106101d15760003560e01c806351bc3c85116100f757806396ce079511610095578063df8408fe11610064578063df8408fe146105c0578063f097ea1a146105e0578063f2fde38b14610600578063f42938901461062057600080fd5b806396ce079514610517578063a457c2d71461052d578063a9059cbb1461054d578063dd62ed3e1461056d57600080fd5b806370a08231116100d157806370a082311461047f578063715018a6146104c25780638da5cb5b146104d757806395d89b411461050257600080fd5b806351bc3c851461041a57806352f7c9881461042f5780635342acb41461044f57600080fd5b806323b872dd1161016f578063395093511161013e578063395093511461038757806347062402146103a757806349bd5a5e146103bd5780634edc0381146103ea57600080fd5b806323b872dd146103155780632b14ca56146103355780632cdb15d81461034b578063313ce5671461036b57600080fd5b80631694505e116101ab5780631694505e1461027657806318160ddd146102c85780631884f1e6146102dd5780631f53ac02146102f357600080fd5b806301f59d16146101dd57806306fdde0314610224578063095ea7b31461024657600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506102117f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b34801561023057600080fd5b50610239610635565b60405161021b9190611961565b34801561025257600080fd5b506102666102613660046119ef565b6106c7565b604051901515815260200161021b565b34801561028257600080fd5b50600e546102a39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021b565b3480156102d457600080fd5b50600554610211565b3480156102e957600080fd5b50610211600d5481565b3480156102ff57600080fd5b5061031361030e366004611a1b565b6106e1565b005b34801561032157600080fd5b50610266610330366004611a3f565b6107ba565b34801561034157600080fd5b50610211600b5481565b34801561035757600080fd5b50610313610366366004611a80565b6107de565b34801561037757600080fd5b506040516012815260200161021b565b34801561039357600080fd5b506102666103a23660046119ef565b610890565b3480156103b357600080fd5b50610211600a5481565b3480156103c957600080fd5b50600f546102a39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103f657600080fd5b50610266610405366004611a1b565b60046020526000908152604090205460ff1681565b34801561042657600080fd5b506103136108dc565b34801561043b57600080fd5b5061031361044a366004611abe565b61099e565b34801561045b57600080fd5b5061026661046a366004611a1b565b60036020526000908152604090205460ff1681565b34801561048b57600080fd5b5061021161049a366004611a1b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b3480156104ce57600080fd5b50610313610ac5565b3480156104e357600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166102a3565b34801561050e57600080fd5b50610239610ad9565b34801561052357600080fd5b50610211600c5481565b34801561053957600080fd5b506102666105483660046119ef565b610ae8565b34801561055957600080fd5b506102666105683660046119ef565b610bb9565b34801561057957600080fd5b50610211610588366004611ae0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b3480156105cc57600080fd5b506103136105db366004611a80565b610bc7565b3480156105ec57600080fd5b506103136105fb366004611b0e565b610c79565b34801561060c57600080fd5b5061031361061b366004611a1b565b610cda565b34801561062c57600080fd5b50610313610d8e565b60606006805461064490611b27565b80601f016020809104026020016040519081016040528092919081815260200182805461067090611b27565b80156106bd5780601f10610692576101008083540402835291602001916106bd565b820191906000526020600020905b8154815290600101906020018083116106a057829003601f168201915b5050505050905090565b6000336106d5818585610e53565b60019150505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610734575060095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61073d57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000090921682179055600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000336107c8858285611006565b6107d38585856110dd565b506001949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610831575060095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61083a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260046020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106d590829086906108d7908790611ba9565b610e53565b60095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091657600080fd5b3060009081526001602052604090205480610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f20746f6b656e7320746f207377617000000000000000000000000000000060448201526064015b60405180910390fd5b61099b816115c0565b50565b6109a6611773565b7f0000000000000000000000000000000000000000000000000000000000000000821115610a30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4275792066656520657863656564206d617800000000000000000000000000006044820152606401610989565b7f0000000000000000000000000000000000000000000000000000000000000000811115610aba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f53656c6c2066656520657863656564206d6178000000000000000000000000006044820152606401610989565b600a91909155600b55565b610acd611773565b610ad760006117f4565b565b60606007805461064490611b27565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610989565b6107d38286868403610e53565b6000336106d58185856110dd565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610c1a575060095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c2357600080fd5b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610ccc575060095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610cd557600080fd5b600d55565b610ce2611773565b73ffffffffffffffffffffffffffffffffffffffff8116610d85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610989565b61099b816117f4565b60095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dc857600080fd5b4780610e30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2045544820746f2073656e640000000000000000000000000000000000006044820152606401610989565b60095461099b9073ffffffffffffffffffffffffffffffffffffffff1682611869565b73ffffffffffffffffffffffffffffffffffffffff8316610ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610989565b73ffffffffffffffffffffffffffffffffffffffff8216610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610989565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110d757818110156110ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610989565b6110d78484848403610e53565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610989565b73ffffffffffffffffffffffffffffffffffffffff8216611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610989565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054818110156112d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610989565b3060009081526001602090815260408083205473ffffffffffffffffffffffffffffffffffffffff8716845260049092529091205460ff16801561131f5750600d548110155b80156113465750600f5474010000000000000000000000000000000000000000900460ff16155b15611353576113536118b1565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260408120548490829060ff16151560011480156113b7575073ffffffffffffffffffffffffffffffffffffffff871660009081526003602052604090205460ff16155b156113ed57600c54600a54600194506113d09088611bbc565b6113da9190611bd3565b90506113e68187611c0e565b915061147f565b73ffffffffffffffffffffffffffffffffffffffff881660009081526003602052604090205460ff1615801561144d575073ffffffffffffffffffffffffffffffffffffffff871660009081526004602052604090205460ff1615156001145b1561147f57600c54600b54600194506114669088611bbc565b6114709190611bd3565b905061147c8187611c0e565b91505b6114898686611c0e565b73ffffffffffffffffffffffffffffffffffffffff808a1660009081526001602052604080822093909355908916815290812080548492906114cc908490611ba9565b925050819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161153291815260200190565b60405180910390a38215156001036115b6573060009081526001602052604081208054839290611563908490611ba9565b9091555050604051818152309073ffffffffffffffffffffffffffffffffffffffff8a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b5050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115f5576115f5611c21565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600e54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116989190611c50565b816001815181106116ab576116ab611c21565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600e546116de9130911684610e53565b600e546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac9479061173d908590600090869030904290600401611c6d565b600060405180830381600087803b15801561175757600080fd5b505af115801561176b573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f193505050501580156118ac573d6000803e3d6000fd5b505050565b600f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905530600090815260016020526040812054905061190b816115c0565b478015611935576009546119359073ffffffffffffffffffffffffffffffffffffffff1682611869565b5050600f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b600060208083528351808285015260005b8181101561198e57858101830151858201604001528201611972565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461099b57600080fd5b60008060408385031215611a0257600080fd5b8235611a0d816119cd565b946020939093013593505050565b600060208284031215611a2d57600080fd5b8135611a38816119cd565b9392505050565b600080600060608486031215611a5457600080fd5b8335611a5f816119cd565b92506020840135611a6f816119cd565b929592945050506040919091013590565b60008060408385031215611a9357600080fd5b8235611a9e816119cd565b915060208301358015158114611ab357600080fd5b809150509250929050565b60008060408385031215611ad157600080fd5b50508035926020909101359150565b60008060408385031215611af357600080fd5b8235611afe816119cd565b91506020830135611ab3816119cd565b600060208284031215611b2057600080fd5b5035919050565b600181811c90821680611b3b57607f821691505b602082108103611b74577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156106db576106db611b7a565b80820281158282048414176106db576106db611b7a565b600082611c09577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b818103818111156106db576106db611b7a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215611c6257600080fd5b8151611a38816119cd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cca57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611c98565b505073ffffffffffffffffffffffffffffffffffffffff96909616606085015250505060800152939250505056fea26469706673582212204bb50b1763355793e8bb93d448018cc25cc62845ab0fa19fdc5e99eed08d45ec64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c806351bc3c85116100f757806396ce079511610095578063df8408fe11610064578063df8408fe146105c0578063f097ea1a146105e0578063f2fde38b14610600578063f42938901461062057600080fd5b806396ce079514610517578063a457c2d71461052d578063a9059cbb1461054d578063dd62ed3e1461056d57600080fd5b806370a08231116100d157806370a082311461047f578063715018a6146104c25780638da5cb5b146104d757806395d89b411461050257600080fd5b806351bc3c851461041a57806352f7c9881461042f5780635342acb41461044f57600080fd5b806323b872dd1161016f578063395093511161013e578063395093511461038757806347062402146103a757806349bd5a5e146103bd5780634edc0381146103ea57600080fd5b806323b872dd146103155780632b14ca56146103355780632cdb15d81461034b578063313ce5671461036b57600080fd5b80631694505e116101ab5780631694505e1461027657806318160ddd146102c85780631884f1e6146102dd5780631f53ac02146102f357600080fd5b806301f59d16146101dd57806306fdde0314610224578063095ea7b31461024657600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506102117f000000000000000000000000000000000000000000000000000000000000001481565b6040519081526020015b60405180910390f35b34801561023057600080fd5b50610239610635565b60405161021b9190611961565b34801561025257600080fd5b506102666102613660046119ef565b6106c7565b604051901515815260200161021b565b34801561028257600080fd5b50600e546102a39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161021b565b3480156102d457600080fd5b50600554610211565b3480156102e957600080fd5b50610211600d5481565b3480156102ff57600080fd5b5061031361030e366004611a1b565b6106e1565b005b34801561032157600080fd5b50610266610330366004611a3f565b6107ba565b34801561034157600080fd5b50610211600b5481565b34801561035757600080fd5b50610313610366366004611a80565b6107de565b34801561037757600080fd5b506040516012815260200161021b565b34801561039357600080fd5b506102666103a23660046119ef565b610890565b3480156103b357600080fd5b50610211600a5481565b3480156103c957600080fd5b50600f546102a39073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103f657600080fd5b50610266610405366004611a1b565b60046020526000908152604090205460ff1681565b34801561042657600080fd5b506103136108dc565b34801561043b57600080fd5b5061031361044a366004611abe565b61099e565b34801561045b57600080fd5b5061026661046a366004611a1b565b60036020526000908152604090205460ff1681565b34801561048b57600080fd5b5061021161049a366004611a1b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b3480156104ce57600080fd5b50610313610ac5565b3480156104e357600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166102a3565b34801561050e57600080fd5b50610239610ad9565b34801561052357600080fd5b50610211600c5481565b34801561053957600080fd5b506102666105483660046119ef565b610ae8565b34801561055957600080fd5b506102666105683660046119ef565b610bb9565b34801561057957600080fd5b50610211610588366004611ae0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b3480156105cc57600080fd5b506103136105db366004611a80565b610bc7565b3480156105ec57600080fd5b506103136105fb366004611b0e565b610c79565b34801561060c57600080fd5b5061031361061b366004611a1b565b610cda565b34801561062c57600080fd5b50610313610d8e565b60606006805461064490611b27565b80601f016020809104026020016040519081016040528092919081815260200182805461067090611b27565b80156106bd5780601f10610692576101008083540402835291602001916106bd565b820191906000526020600020905b8154815290600101906020018083116106a057829003601f168201915b5050505050905090565b6000336106d5818585610e53565b60019150505b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610734575060095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61073d57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff000000000000000000000000000000000000000090921682179055600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000336107c8858285611006565b6107d38585856110dd565b506001949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610831575060095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61083a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260046020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906106d590829086906108d7908790611ba9565b610e53565b60095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091657600080fd5b3060009081526001602052604090205480610992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f20746f6b656e7320746f207377617000000000000000000000000000000060448201526064015b60405180910390fd5b61099b816115c0565b50565b6109a6611773565b7f0000000000000000000000000000000000000000000000000000000000000014821115610a30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4275792066656520657863656564206d617800000000000000000000000000006044820152606401610989565b7f0000000000000000000000000000000000000000000000000000000000000014811115610aba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f53656c6c2066656520657863656564206d6178000000000000000000000000006044820152606401610989565b600a91909155600b55565b610acd611773565b610ad760006117f4565b565b60606007805461064490611b27565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610989565b6107d38286868403610e53565b6000336106d58185856110dd565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610c1a575060095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c2357600080fd5b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff16331480610ccc575060095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610cd557600080fd5b600d55565b610ce2611773565b73ffffffffffffffffffffffffffffffffffffffff8116610d85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610989565b61099b816117f4565b60095473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dc857600080fd5b4780610e30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e6f2045544820746f2073656e640000000000000000000000000000000000006044820152606401610989565b60095461099b9073ffffffffffffffffffffffffffffffffffffffff1682611869565b73ffffffffffffffffffffffffffffffffffffffff8316610ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610989565b73ffffffffffffffffffffffffffffffffffffffff8216610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610989565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110d757818110156110ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610989565b6110d78484848403610e53565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610989565b73ffffffffffffffffffffffffffffffffffffffff8216611223576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610989565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054818110156112d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610989565b3060009081526001602090815260408083205473ffffffffffffffffffffffffffffffffffffffff8716845260049092529091205460ff16801561131f5750600d548110155b80156113465750600f5474010000000000000000000000000000000000000000900460ff16155b15611353576113536118b1565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260408120548490829060ff16151560011480156113b7575073ffffffffffffffffffffffffffffffffffffffff871660009081526003602052604090205460ff16155b156113ed57600c54600a54600194506113d09088611bbc565b6113da9190611bd3565b90506113e68187611c0e565b915061147f565b73ffffffffffffffffffffffffffffffffffffffff881660009081526003602052604090205460ff1615801561144d575073ffffffffffffffffffffffffffffffffffffffff871660009081526004602052604090205460ff1615156001145b1561147f57600c54600b54600194506114669088611bbc565b6114709190611bd3565b905061147c8187611c0e565b91505b6114898686611c0e565b73ffffffffffffffffffffffffffffffffffffffff808a1660009081526001602052604080822093909355908916815290812080548492906114cc908490611ba9565b925050819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161153291815260200190565b60405180910390a38215156001036115b6573060009081526001602052604081208054839290611563908490611ba9565b9091555050604051818152309073ffffffffffffffffffffffffffffffffffffffff8a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b5050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115f5576115f5611c21565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600e54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116989190611c50565b816001815181106116ab576116ab611c21565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600e546116de9130911684610e53565b600e546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac9479061173d908590600090869030904290600401611c6d565b600060405180830381600087803b15801561175757600080fd5b505af115801561176b573d6000803e3d6000fd5b505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f193505050501580156118ac573d6000803e3d6000fd5b505050565b600f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905530600090815260016020526040812054905061190b816115c0565b478015611935576009546119359073ffffffffffffffffffffffffffffffffffffffff1682611869565b5050600f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b600060208083528351808285015260005b8181101561198e57858101830151858201604001528201611972565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461099b57600080fd5b60008060408385031215611a0257600080fd5b8235611a0d816119cd565b946020939093013593505050565b600060208284031215611a2d57600080fd5b8135611a38816119cd565b9392505050565b600080600060608486031215611a5457600080fd5b8335611a5f816119cd565b92506020840135611a6f816119cd565b929592945050506040919091013590565b60008060408385031215611a9357600080fd5b8235611a9e816119cd565b915060208301358015158114611ab357600080fd5b809150509250929050565b60008060408385031215611ad157600080fd5b50508035926020909101359150565b60008060408385031215611af357600080fd5b8235611afe816119cd565b91506020830135611ab3816119cd565b600060208284031215611b2057600080fd5b5035919050565b600181811c90821680611b3b57607f821691505b602082108103611b74577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156106db576106db611b7a565b80820281158282048414176106db576106db611b7a565b600082611c09577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b818103818111156106db576106db611b7a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215611c6257600080fd5b8151611a38816119cd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cca57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611c98565b505073ffffffffffffffffffffffffffffffffffffffff96909616606085015250505060800152939250505056fea26469706673582212204bb50b1763355793e8bb93d448018cc25cc62845ab0fa19fdc5e99eed08d45ec64736f6c63430008130033

Deployed Bytecode Sourcemap

3484:9442:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3959:28;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;3959:28:0;;;;;;;;5945:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6943:226::-;;;;;;;;;;-1:-1:-1;6943:226:0;;;;;:::i;:::-;;:::i;:::-;;;1452:14:1;;1445:22;1427:41;;1415:2;1400:18;6943:226:0;1287:187:1;4110:41:0;;;;;;;;;;-1:-1:-1;4110:41:0;;;;;;;;;;;1681:42:1;1669:55;;;1651:74;;1639:2;1624:18;4110:41:0;1479:252:1;6266:108:0;;;;;;;;;;-1:-1:-1;6354:12:0;;6266:108;;4075:26;;;;;;;;;;;;;;;;11287:154;;;;;;;;;;-1:-1:-1;11287:154:0;;;;;:::i;:::-;;:::i;:::-;;7177:295;;;;;;;;;;-1:-1:-1;7177:295:0;;;;;:::i;:::-;;:::i;4019:19::-;;;;;;;;;;;;;;;;11042:123;;;;;;;;;;-1:-1:-1;11042:123:0;;;;;:::i;:::-;;:::i;6165:93::-;;;;;;;;;;-1:-1:-1;6165:93:0;;6248:2;3012:36:1;;3000:2;2985:18;6165:93:0;2870:184:1;7480:263:0;;;;;;;;;;-1:-1:-1;7480:263:0;;;;;:::i;:::-;;:::i;3994:18::-;;;;;;;;;;;;;;;;4158:28;;;;;;;;;;-1:-1:-1;4158:28:0;;;;;;;;3741:45;;;;;;;;;;-1:-1:-1;3741:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12373:246;;;;;;;;;;;;;:::i;10642:248::-;;;;;;;;;;-1:-1:-1;10642:248:0;;;;;:::i;:::-;;:::i;3685:49::-;;;;;;;;;;-1:-1:-1;3685:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6382:143;;;;;;;;;;-1:-1:-1;6382:143:0;;;;;:::i;:::-;6499:18;;6472:7;6499:18;;;:9;:18;;;;;;;6382:143;862:103;;;;;;;;;;;;;:::i;627:87::-;;;;;;;;;;-1:-1:-1;673:7:0;700:6;;;627:87;;6053:104;;;;;;;;;;;;;:::i;4045:23::-;;;;;;;;;;;;;;;;7751:498;;;;;;;;;;-1:-1:-1;7751:498:0;;;;;:::i;:::-;;:::i;6533:218::-;;;;;;;;;;-1:-1:-1;6533:218:0;;;;;:::i;:::-;;:::i;6759:176::-;;;;;;;;;;-1:-1:-1;6759:176:0;;;;;:::i;:::-;6900:18;;;;6873:7;6900:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6759:176;10898:136;;;;;;;;;;-1:-1:-1;10898:136:0;;;;;:::i;:::-;;:::i;11173:106::-;;;;;;;;;;-1:-1:-1;11173:106:0;;;;;:::i;:::-;;:::i;973:238::-;;;;;;;;;;-1:-1:-1;973:238:0;;;;;:::i;:::-;;:::i;12627:259::-;;;;;;;;;;;;;:::i;5945:100::-;5999:13;6032:5;6025:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5945:100;:::o;6943:226::-;7051:4;264:10;7107:32;264:10;7123:7;7132:6;7107:8;:32::i;:::-;7157:4;7150:11;;;6943:226;;;;;:::o;11287:154::-;673:7;700:6;;;264:10;4376:23;;:52;;-1:-1:-1;4419:9:0;;;;264:10;4403:25;;;4376:52;4368:61;;;;;;11359:9:::1;:28:::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;:9:::1;11398:28:::0;;;:17:::1;:28;::::0;;;;:35;;;::::1;11359:28:::0;11398:35:::1;::::0;;11287:154::o;7177:295::-;7308:4;264:10;7366:38;7382:4;264:10;7397:6;7366:15;:38::i;:::-;7415:27;7425:4;7431:2;7435:6;7415:9;:27::i;:::-;-1:-1:-1;7460:4:0;;7177:295;-1:-1:-1;;;;7177:295:0:o;11042:123::-;673:7;700:6;;;264:10;4376:23;;:52;;-1:-1:-1;4419:9:0;;;;264:10;4403:25;;;4376:52;4368:61;;;;;;11126:22:::1;::::0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:31;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;11042:123::o;7480:263::-;264:10;7593:4;6900:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;7593:4;;264:10;7649:64;;264:10;;6900:27;;7674:38;;7702:10;;7674:38;:::i;:::-;7649:8;:64::i;12373:246::-;12439:9;;;;264:10;12423:25;;;12415:34;;;;;;12501:4;12460:20;6499:18;;;:9;:18;;;;;;12526:19;12518:49;;;;;;;5084:2:1;12518:49:0;;;5066:21:1;5123:2;5103:18;;;5096:30;5162:19;5142:18;;;5135:47;5199:18;;12518:49:0;;;;;;;;;12578:33;12595:15;12578:16;:33::i;:::-;12404:215;12373:246::o;10642:248::-;586:13;:11;:13::i;:::-;10736:6:::1;10725:7;:17;;10717:48;;;::::0;::::1;::::0;;5430:2:1;10717:48:0::1;::::0;::::1;5412:21:1::0;5469:2;5449:18;;;5442:30;5508:20;5488:18;;;5481:48;5546:18;;10717:48:0::1;5228:342:1::0;10717:48:0::1;10796:6;10784:8;:18;;10776:50;;;::::0;::::1;::::0;;5777:2:1;10776:50:0::1;::::0;::::1;5759:21:1::0;5816:2;5796:18;;;5789:30;5855:21;5835:18;;;5828:49;5894:18;;10776:50:0::1;5575:343:1::0;10776:50:0::1;10837:6;:16:::0;;;;10864:7:::1;:18:::0;10642:248::o;862:103::-;586:13;:11;:13::i;:::-;927:30:::1;954:1;927:18;:30::i;:::-;862:103::o:0;6053:104::-;6109:13;6142:7;6135:14;;;;;:::i;7751:498::-;264:10;7869:4;6900:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;7869:4;;264:10;8030:15;8010:16;:35;;7988:122;;;;;;;6125:2:1;7988:122:0;;;6107:21:1;6164:2;6144:18;;;6137:30;6203:34;6183:18;;;6176:62;6274:7;6254:18;;;6247:35;6299:19;;7988:122:0;5923:401:1;7988:122:0;8146:60;8155:5;8162:7;8190:15;8171:16;:34;8146:8;:60::i;6533:218::-;6637:4;264:10;6693:28;264:10;6710:2;6714:6;6693:9;:28::i;10898:136::-;673:7;700:6;;;264:10;4376:23;;:52;;-1:-1:-1;4419:9:0;;;;264:10;4403:25;;;4376:52;4368:61;;;;;;10988:26:::1;::::0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:38;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;10898:136::o;11173:106::-;673:7;700:6;;;264:10;4376:23;;:52;;-1:-1:-1;4419:9:0;;;;264:10;4403:25;;;4376:52;4368:61;;;;;;11248:14:::1;:23:::0;11173:106::o;973:238::-;586:13;:11;:13::i;:::-;1076:22:::1;::::0;::::1;1054:110;;;::::0;::::1;::::0;;6531:2:1;1054:110:0::1;::::0;::::1;6513:21:1::0;6570:2;6550:18;;;6543:30;6609:34;6589:18;;;6582:62;6680:8;6660:18;;;6653:36;6706:19;;1054:110:0::1;6329:402:1::0;1054:110:0::1;1175:28;1194:8;1175:18;:28::i;12627:259::-:0;12693:9;;;;264:10;12677:25;;;12669:34;;;;;;12740:21;12780:22;12772:49;;;;;;;6938:2:1;12772:49:0;;;6920:21:1;6977:2;6957:18;;;6950:30;7016:16;6996:18;;;6989:44;7050:18;;12772:49:0;6736:338:1;12772:49:0;12848:9;;12832:46;;12848:9;;12859:18;12832:15;:46::i;9744:380::-;9880:19;;;9872:68;;;;;;;7281:2:1;9872:68:0;;;7263:21:1;7320:2;7300:18;;;7293:30;7359:34;7339:18;;;7332:62;7430:6;7410:18;;;7403:34;7454:19;;9872:68:0;7079:400:1;9872:68:0;9959:21;;;9951:68;;;;;;;7686:2:1;9951:68:0;;;7668:21:1;7725:2;7705:18;;;7698:30;7764:34;7744:18;;;7737:62;7835:4;7815:18;;;7808:32;7857:19;;9951:68:0;7484:398:1;9951:68:0;10032:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10084:32;;160:25:1;;;10084:32:0;;133:18:1;10084:32:0;;;;;;;9744:380;;;:::o;10132:502::-;6900:18;;;;10267:24;6900:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;10354:17;10334:37;;10330:297;;10434:6;10414:16;:26;;10388:117;;;;;;;8089:2:1;10388:117:0;;;8071:21:1;8128:2;8108:18;;;8101:30;8167:31;8147:18;;;8140:59;8216:18;;10388:117:0;7887:353:1;10388:117:0;10549:51;10558:5;10565:7;10593:6;10574:16;:25;10549:8;:51::i;:::-;10256:378;10132:502;;;:::o;8257:1479::-;8388:18;;;8380:68;;;;;;;8447:2:1;8380:68:0;;;8429:21:1;8486:2;8466:18;;;8459:30;8525:34;8505:18;;;8498:62;8596:7;8576:18;;;8569:35;8621:19;;8380:68:0;8245:401:1;8380:68:0;8467:16;;;8459:64;;;;;;;8853:2:1;8459:64:0;;;8835:21:1;8892:2;8872:18;;;8865:30;8931:34;8911:18;;;8904:62;9002:5;8982:18;;;8975:33;9025:19;;8459:64:0;8651:399:1;8459:64:0;8558:15;;;8536:19;8558:15;;;:9;:15;;;;;;8606:21;;;;8584:109;;;;;;;9257:2:1;8584:109:0;;;9239:21:1;9296:2;9276:18;;;9269:30;9335:34;9315:18;;;9308:62;9406:8;9386:18;;;9379:36;9432:19;;8584:109:0;9055:402:1;8584:109:0;8747:4;8706:20;6499:18;;;:9;:18;;;;;;;;;8782:17;;;;;:13;:17;;;;;;;;;:67;;;;;8835:14;;8816:15;:33;;8782:67;:91;;;;-1:-1:-1;8867:6:0;;;;;;;8866:7;8782:91;8764:157;;;8900:9;:7;:9::i;:::-;9031:19;;;8933:12;9031:19;;;:13;:19;;;;;;8981:6;;8933:12;;9031:19;;:27;;:19;:27;:53;;;;-1:-1:-1;9063:21:0;;;;;;;:17;:21;;;;;;;;9062:22;9031:53;9027:413;;;9162:11;;9152:6;;9111:4;;-1:-1:-1;9143:15:0;;:6;:15;:::i;:::-;9142:31;;;;:::i;:::-;9130:43;-1:-1:-1;9200:18:0;9130:43;9200:6;:18;:::i;:::-;9188:30;;9027:413;;;9241:23;;;;;;;:17;:23;;;;;;;;9240:24;:53;;;;-1:-1:-1;9268:17:0;;;;;;;:13;:17;;;;;;;;:25;;:17;:25;9240:53;9236:204;;;9372:11;;9361:7;;9320:4;;-1:-1:-1;9352:16:0;;:6;:16;:::i;:::-;9351:32;;;;:::i;:::-;9339:44;-1:-1:-1;9410:18:0;9339:44;9410:6;:18;:::i;:::-;9398:30;;9236:204;9470:20;9484:6;9470:11;:20;:::i;:::-;9452:15;;;;;;;;:9;:15;;;;;;:38;;;;9501:13;;;;;;;;:26;;9518:9;;9452:15;9501:26;;9518:9;;9501:26;:::i;:::-;;;;;;;;9560:2;9545:26;;9554:4;9545:26;;;9564:6;9545:26;;;;160:25:1;;148:2;133:18;;14:177;9545:26:0;;;;;;;;9588:15;;;9599:4;9588:15;9584:145;;9638:4;9620:24;;;;:9;:24;;;;;:37;;9648:9;;9620:24;:37;;9648:9;;9620:37;:::i;:::-;;;;-1:-1:-1;;9677:40:0;;160:25:1;;;9700:4:0;;9677:40;;;;;;148:2:1;133:18;9677:40:0;;;;;;;9584:145;8369:1367;;;;;8257:1479;;;:::o;11449:469::-;11537:16;;;11551:1;11537:16;;;;;;;;11513:21;;11537:16;;;;;;;;;;-1:-1:-1;11537:16:0;11513:40;;11582:4;11564;11569:1;11564:7;;;;;;;;:::i;:::-;:23;;;;:7;;;;;;;;;;:23;;;;11608:15;;:22;;;;;;;;:15;;;;;:20;;:22;;;;;11564:7;;11608:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11598:4;11603:1;11598:7;;;;;;;;:::i;:::-;:32;;;;:7;;;;;;;;;:32;11673:15;;11641:62;;11658:4;;11673:15;11691:11;11641:8;:62::i;:::-;11714:15;;:196;;;;;:15;;;;;:66;;:196;;11795:11;;11714:15;;11837:4;;11864;;11884:15;;11714:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11502:416;11449:469;:::o;722:132::-;673:7;700:6;786:23;700:6;264:10;786:23;778:68;;;;;;;11914:2:1;778:68:0;;;11896:21:1;;;11933:18;;;11926:30;11992:34;11972:18;;;11965:62;12044:18;;778:68:0;11712:356:1;1219:191:0;1293:16;1312:6;;;1329:17;;;;;;;;;;1362:40;;1312:6;;;;;;;1362:40;;1293:16;1362:40;1282:128;1219:191;:::o;11926:112::-;12007:23;;:15;;;;:23;;;;;12023:6;;12007:23;;;;12023:6;12007:15;:23;;;;;;;;;;;;;;;;;;;;;11926:112;;:::o;12046:319::-;4265:6;:13;;;;;;;;12138:4:::1;-1:-1:-1::0;6499:18:0;;;-1:-1:-1;6499:18:0;;;;;;12097:47:::1;;12155:33;12172:15;12155:16;:33::i;:::-;12225:21;12261:22:::0;;12257:101:::1;;12316:9;::::0;12300:46:::1;::::0;12316:9:::1;;12327:18:::0;12300:15:::1;:46::i;:::-;-1:-1:-1::0;;4301:6:0;:14;;;;;;12046:319::o;196:607:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;794:2;724:66;719:2;711:6;707:15;703:88;692:9;688:104;684:113;676:121;;;;196:607;;;;:::o;808:154::-;894:42;887:5;883:54;876:5;873:65;863:93;;952:1;949;942:12;967:315;1035:6;1043;1096:2;1084:9;1075:7;1071:23;1067:32;1064:52;;;1112:1;1109;1102:12;1064:52;1151:9;1138:23;1170:31;1195:5;1170:31;:::i;:::-;1220:5;1272:2;1257:18;;;;1244:32;;-1:-1:-1;;;967:315:1:o;1736:247::-;1795:6;1848:2;1836:9;1827:7;1823:23;1819:32;1816:52;;;1864:1;1861;1854:12;1816:52;1903:9;1890:23;1922:31;1947:5;1922:31;:::i;:::-;1972:5;1736:247;-1:-1:-1;;;1736:247:1:o;1988:456::-;2065:6;2073;2081;2134:2;2122:9;2113:7;2109:23;2105:32;2102:52;;;2150:1;2147;2140:12;2102:52;2189:9;2176:23;2208:31;2233:5;2208:31;:::i;:::-;2258:5;-1:-1:-1;2315:2:1;2300:18;;2287:32;2328:33;2287:32;2328:33;:::i;:::-;1988:456;;2380:7;;-1:-1:-1;;;2434:2:1;2419:18;;;;2406:32;;1988:456::o;2449:416::-;2514:6;2522;2575:2;2563:9;2554:7;2550:23;2546:32;2543:52;;;2591:1;2588;2581:12;2543:52;2630:9;2617:23;2649:31;2674:5;2649:31;:::i;:::-;2699:5;-1:-1:-1;2756:2:1;2741:18;;2728:32;2798:15;;2791:23;2779:36;;2769:64;;2829:1;2826;2819:12;2769:64;2852:7;2842:17;;;2449:416;;;;;:::o;3290:248::-;3358:6;3366;3419:2;3407:9;3398:7;3394:23;3390:32;3387:52;;;3435:1;3432;3425:12;3387:52;-1:-1:-1;;3458:23:1;;;3528:2;3513:18;;;3500:32;;-1:-1:-1;3290:248:1:o;3543:388::-;3611:6;3619;3672:2;3660:9;3651:7;3647:23;3643:32;3640:52;;;3688:1;3685;3678:12;3640:52;3727:9;3714:23;3746:31;3771:5;3746:31;:::i;:::-;3796:5;-1:-1:-1;3853:2:1;3838:18;;3825:32;3866:33;3825:32;3866:33;:::i;3936:180::-;3995:6;4048:2;4036:9;4027:7;4023:23;4019:32;4016:52;;;4064:1;4061;4054:12;4016:52;-1:-1:-1;4087:23:1;;3936:180;-1:-1:-1;3936:180:1:o;4121:437::-;4200:1;4196:12;;;;4243;;;4264:61;;4318:4;4310:6;4306:17;4296:27;;4264:61;4371:2;4363:6;4360:14;4340:18;4337:38;4334:218;;4408:77;4405:1;4398:88;4509:4;4506:1;4499:15;4537:4;4534:1;4527:15;4334:218;;4121:437;;;:::o;4563:184::-;4615:77;4612:1;4605:88;4712:4;4709:1;4702:15;4736:4;4733:1;4726:15;4752:125;4817:9;;;4838:10;;;4835:36;;;4851:18;;:::i;9462:168::-;9535:9;;;9566;;9583:15;;;9577:22;;9563:37;9553:71;;9604:18;;:::i;9635:274::-;9675:1;9701;9691:189;;9736:77;9733:1;9726:88;9837:4;9834:1;9827:15;9865:4;9862:1;9855:15;9691:189;-1:-1:-1;9894:9:1;;9635:274::o;9914:128::-;9981:9;;;10002:11;;;9999:37;;;10016:18;;:::i;10236:184::-;10288:77;10285:1;10278:88;10385:4;10382:1;10375:15;10409:4;10406:1;10399:15;10425:251;10495:6;10548:2;10536:9;10527:7;10523:23;10519:32;10516:52;;;10564:1;10561;10554:12;10516:52;10596:9;10590:16;10615:31;10640:5;10615:31;:::i;10681:1026::-;10943:4;10991:3;10980:9;10976:19;11022:6;11011:9;11004:25;11048:2;11086:6;11081:2;11070:9;11066:18;11059:34;11129:3;11124:2;11113:9;11109:18;11102:31;11153:6;11188;11182:13;11219:6;11211;11204:22;11257:3;11246:9;11242:19;11235:26;;11296:2;11288:6;11284:15;11270:29;;11317:1;11327:218;11341:6;11338:1;11335:13;11327:218;;;11406:13;;11421:42;11402:62;11390:75;;11520:15;;;;11485:12;;;;11363:1;11356:9;11327:218;;;-1:-1:-1;;11613:42:1;11601:55;;;;11596:2;11581:18;;11574:83;-1:-1:-1;;;11688:3:1;11673:19;11666:35;11562:3;10681:1026;-1:-1:-1;;;10681:1026:1:o

Swarm Source

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