ETH Price: $3,367.58 (-3.42%)

Token

TORO (TORO)
 

Overview

Max Total Supply

100,000,000 TORO

Holders

528 (0.00%)

Market

Price

$0.00 @ 0.000001 ETH

Onchain Market Cap

$237,607.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.614274973593260626 TORO

Value
$0.00 ( ~0 Eth) [0.0000%]
0x69f8968b98a6b66dfc0363466347a1e386d39b14
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Torogram, pioneering social media, revolutionizing online interaction with innovative features and a unique user-focused experience

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TOROGRAM

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.22;

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    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 IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) external virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) external virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

}

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() external virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) external 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);
    }
}


interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

contract TOROGRAM is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public immutable uniswapV2Pair;
    uint256 public payoutTaxAtAmount = 50000 * (10**18);
    uint256 public maxBuy = 1500000 * (10**18);
    uint256 public totalTax = 5;
    mapping (address => bool) public isTaxesExempt;
    address payable public taxWallet = payable(0x2bd1D559434d028914c3266512AEF77eD1b2B76B);

    event PaidOutTaxes(uint256 contract_token_balance);
    
    bool private inSwapping;
    modifier lockTheSwap {
        inSwapping = true;
        _;
        inSwapping = false;
    }

    constructor() ERC20("TORO", "TORO") {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        isTaxesExempt[owner()] = true;
        isTaxesExempt[taxWallet] = true;
        isTaxesExempt[address(this)] = true;
        
        _createSupply(owner(), 100000000 * (10**18));

    }

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

        if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if(from == uniswapV2Pair && !isTaxesExempt[to]) { // ONLY MAX WALLET FOR BUYING, SELLING ALWAYS WORKS
            uint256 token_receiver = balanceOf(to);
            require(token_receiver.add(amount) <= maxBuy, "TORO: Exceeds maximum buy token amount");
        }
        
        uint256 contract_token_balance = balanceOf(address(this));
        bool overMinTokenBalance = contract_token_balance >= payoutTaxAtAmount;
       
        if(to == uniswapV2Pair && overMinTokenBalance && !inSwapping) { // ONLY PAYOUT TAXES WHEN SELLING AND OVER MIN AMOUNT TO PAYOUT
            payoutTaxes(contract_token_balance);
        }

        if((to == uniswapV2Pair && !isTaxesExempt[from]) || (from == uniswapV2Pair && !isTaxesExempt[to])) { // ONLY DEDUCT FEES WHILE BUYING/SELLING
            uint256 taxes = amount.mul(totalTax).div(100);
            amount = amount.sub(taxes);
            super._transfer(from, address(this), taxes); 
        }

        super._transfer(from, to, amount);

    }

    function payoutTaxes(uint256 contract_token_balance) private lockTheSwap {
        swapTokensForETH(contract_token_balance);
        taxWallet.transfer(address(this).balance);
        emit PaidOutTaxes(contract_token_balance);
    }

    function swapTokensForETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        if(allowance(address(this), address(uniswapV2Router)) < tokenAmount) {
          _approve(address(this), address(uniswapV2Router), ~uint256(0));
        }

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        
    }

    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":false,"internalType":"uint256","name":"contract_token_balance","type":"uint256"}],"name":"PaidOutTaxes","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTaxesExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuy","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":[],"name":"payoutTaxAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}]

60a0604052690a968163f0a57b4000006007556a013da329b63364718000006008556005600955600b80546001600160a01b031916732bd1d559434d028914c3266512aef77ed1b2b76b17905534801562000058575f80fd5b50604080518082018252600480825263544f524f60e01b6020808401829052845180860190955291845290830152906003620000958382620004be565b506004620000a48282620004be565b505050620000c1620000bb620002e660201b60201c565b620002ea565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000117573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200013d91906200058a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000189573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001af91906200058a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001fa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022091906200058a565b600680546001600160a01b0319166001600160a01b0385811691909117909155811660805290506001600a5f6200025f6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600b549091168152600a90925280822080548416600190811790915530835291208054909216179055620002de620002cc6005546001600160a01b031690565b6a52b7d2dcc80cd2e40000006200033b565b5050620005df565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620003965760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620003a99190620005b9565b90915550506001600160a01b0382165f9081526020819052604081208054839290620003d7908490620005b9565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200044957607f821691505b6020821081036200046857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004b957805f5260205f20601f840160051c81016020851015620004955750805b601f840160051c820191505b81811015620004b6575f8155600101620004a1565b50505b505050565b81516001600160401b03811115620004da57620004da62000420565b620004f281620004eb845462000434565b846200046e565b602080601f83116001811462000528575f8415620005105750858301515b5f19600386901b1c1916600185901b17855562000582565b5f85815260208120601f198616915b82811015620005585788860151825594840194600190910190840162000537565b50858210156200057657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f602082840312156200059b575f80fd5b81516001600160a01b0381168114620005b2575f80fd5b9392505050565b80820180821115620005d957634e487b7160e01b5f52601160045260245ffd5b92915050565b6080516111ba620006145f395f81816102360152818161085f01528181610956015281816109b30152610a1201526111ba5ff3fe608060405260043610610113575f3560e01c806370db69d61161009d57806395d89b411161006257806395d89b4114610317578063a9059cbb1461032b578063dd62ed3e1461034a578063f2fde38b1461038e578063fe85b42b146103ad575f80fd5b806370db69d61461028c578063715018a6146102a1578063715a1606146102b75780637df36af0146102cc5780638da5cb5b146102fa575f80fd5b806323b872dd116100e357806323b872dd146101cc5780632dc0562d146101eb578063313ce5671461020a57806349bd5a5e1461022557806370a0823114610258575f80fd5b806306fdde031461011e578063095ea7b3146101485780631694505e1461017757806318160ddd146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b506101326103c2565b60405161013f9190610f22565b60405180910390f35b348015610153575f80fd5b50610167610162366004610f82565b610452565b604051901515815260200161013f565b348015610182575f80fd5b50600654610196906001600160a01b031681565b6040516001600160a01b03909116815260200161013f565b3480156101b9575f80fd5b506002545b60405190815260200161013f565b3480156101d7575f80fd5b506101676101e6366004610fac565b610468565b3480156101f6575f80fd5b50600b54610196906001600160a01b031681565b348015610215575f80fd5b506040516012815260200161013f565b348015610230575f80fd5b506101967f000000000000000000000000000000000000000000000000000000000000000081565b348015610263575f80fd5b506101be610272366004610fea565b6001600160a01b03165f9081526020819052604090205490565b348015610297575f80fd5b506101be60085481565b3480156102ac575f80fd5b506102b5610515565b005b3480156102c2575f80fd5b506101be60075481565b3480156102d7575f80fd5b506101676102e6366004610fea565b600a6020525f908152604090205460ff1681565b348015610305575f80fd5b506005546001600160a01b0316610196565b348015610322575f80fd5b5061013261057a565b348015610336575f80fd5b50610167610345366004610f82565b610589565b348015610355575f80fd5b506101be610364366004611005565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610399575f80fd5b506102b56103a8366004610fea565b610595565b3480156103b8575f80fd5b506101be60095481565b6060600380546103d19061103c565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd9061103c565b80156104485780601f1061041f57610100808354040283529160200191610448565b820191905f5260205f20905b81548152906001019060200180831161042b57829003601f168201915b5050505050905090565b5f61045e338484610660565b5060015b92915050565b5f610474848484610783565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156104fd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61050a8533858403610660565b506001949350505050565b6005546001600160a01b0316331461056f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f4565b6105785f610abc565b565b6060600480546103d19061103c565b5f61045e338484610783565b6005546001600160a01b031633146105ef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f4565b6001600160a01b0381166106545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f4565b61065d81610abc565b50565b6001600160a01b0383166106c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f4565b6001600160a01b0382166107235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f4565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107e55760405162461bcd60e51b8152602060048201526024808201527f544f524f3a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f4565b6001600160a01b0382166108465760405162461bcd60e51b815260206004820152602260248201527f544f524f3a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f4565b805f0361085d5761085883835f610b0d565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480156108b657506001600160a01b0382165f908152600a602052604090205460ff16155b1561093f576001600160a01b0382165f908152602081905260409020546008546108e08284610cda565b111561093d5760405162461bcd60e51b815260206004820152602660248201527f544f524f3a2045786365656473206d6178696d756d2062757920746f6b656e20604482015265185b5bdd5b9d60d21b60648201526084016104f4565b505b305f908152602081905260409020546007548110157f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811690851614801561098d5750805b80156109a35750600b54600160a01b900460ff16155b156109b1576109b182610cec565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015610a0a57506001600160a01b0385165f908152600a602052604090205460ff16155b80610a6957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316148015610a6957506001600160a01b0384165f908152600a602052604090205460ff16155b15610aaa575f610a8f6064610a8960095487610d8290919063ffffffff16565b90610d8d565b9050610a9b8482610d98565b9350610aa8863083610b0d565b505b610ab5858585610b0d565b5050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316610b715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f4565b6001600160a01b038216610bd35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f4565b6001600160a01b0383165f9081526020819052604090205481811015610c4a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104f4565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610c80908490611088565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ccc91815260200190565b60405180910390a350505050565b5f610ce58284611088565b9392505050565b600b805460ff60a01b1916600160a01b179055610d0881610da3565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d3e573d5f803e3d5ffd5b506040518181527fac35835418bf6f25ae2ac4387c93c996cdbd809b6d558d7271f767b4aa98918d9060200160405180910390a150600b805460ff60a01b19169055565b5f610ce5828461109b565b5f610ce582846110b2565b5f610ce582846110d1565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610dd657610dd66110e4565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5191906110f8565b81600181518110610e6457610e646110e4565b6001600160a01b03928316602091820292909201810191909152600654305f90815260018352604080822092909416815291522054821115610eb957600654610eb99030906001600160a01b03165f19610660565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ef19085905f90869030904290600401611113565b5f604051808303815f87803b158015610f08575f80fd5b505af1158015610f1a573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b81811015610f4e57858101830151858201604001528201610f32565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461065d575f80fd5b5f8060408385031215610f93575f80fd5b8235610f9e81610f6e565b946020939093013593505050565b5f805f60608486031215610fbe575f80fd5b8335610fc981610f6e565b92506020840135610fd981610f6e565b929592945050506040919091013590565b5f60208284031215610ffa575f80fd5b8135610ce581610f6e565b5f8060408385031215611016575f80fd5b823561102181610f6e565b9150602083013561103181610f6e565b809150509250929050565b600181811c9082168061105057607f821691505b60208210810361106e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561046257610462611074565b808202811582820484141761046257610462611074565b5f826110cc57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561046257610462611074565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611108575f80fd5b8151610ce581610f6e565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156111635784516001600160a01b03168352938301939183019160010161113e565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b3bcb855793ef1b0709493fc942c888bfcda6530d394933bc262fb025ac7be9464736f6c63430008160033

Deployed Bytecode

0x608060405260043610610113575f3560e01c806370db69d61161009d57806395d89b411161006257806395d89b4114610317578063a9059cbb1461032b578063dd62ed3e1461034a578063f2fde38b1461038e578063fe85b42b146103ad575f80fd5b806370db69d61461028c578063715018a6146102a1578063715a1606146102b75780637df36af0146102cc5780638da5cb5b146102fa575f80fd5b806323b872dd116100e357806323b872dd146101cc5780632dc0562d146101eb578063313ce5671461020a57806349bd5a5e1461022557806370a0823114610258575f80fd5b806306fdde031461011e578063095ea7b3146101485780631694505e1461017757806318160ddd146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b506101326103c2565b60405161013f9190610f22565b60405180910390f35b348015610153575f80fd5b50610167610162366004610f82565b610452565b604051901515815260200161013f565b348015610182575f80fd5b50600654610196906001600160a01b031681565b6040516001600160a01b03909116815260200161013f565b3480156101b9575f80fd5b506002545b60405190815260200161013f565b3480156101d7575f80fd5b506101676101e6366004610fac565b610468565b3480156101f6575f80fd5b50600b54610196906001600160a01b031681565b348015610215575f80fd5b506040516012815260200161013f565b348015610230575f80fd5b506101967f000000000000000000000000bca0660a58fe70e153e6b533eb130943b68e666b81565b348015610263575f80fd5b506101be610272366004610fea565b6001600160a01b03165f9081526020819052604090205490565b348015610297575f80fd5b506101be60085481565b3480156102ac575f80fd5b506102b5610515565b005b3480156102c2575f80fd5b506101be60075481565b3480156102d7575f80fd5b506101676102e6366004610fea565b600a6020525f908152604090205460ff1681565b348015610305575f80fd5b506005546001600160a01b0316610196565b348015610322575f80fd5b5061013261057a565b348015610336575f80fd5b50610167610345366004610f82565b610589565b348015610355575f80fd5b506101be610364366004611005565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610399575f80fd5b506102b56103a8366004610fea565b610595565b3480156103b8575f80fd5b506101be60095481565b6060600380546103d19061103c565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd9061103c565b80156104485780601f1061041f57610100808354040283529160200191610448565b820191905f5260205f20905b81548152906001019060200180831161042b57829003601f168201915b5050505050905090565b5f61045e338484610660565b5060015b92915050565b5f610474848484610783565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156104fd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61050a8533858403610660565b506001949350505050565b6005546001600160a01b0316331461056f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f4565b6105785f610abc565b565b6060600480546103d19061103c565b5f61045e338484610783565b6005546001600160a01b031633146105ef5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f4565b6001600160a01b0381166106545760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f4565b61065d81610abc565b50565b6001600160a01b0383166106c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f4565b6001600160a01b0382166107235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f4565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107e55760405162461bcd60e51b8152602060048201526024808201527f544f524f3a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f4565b6001600160a01b0382166108465760405162461bcd60e51b815260206004820152602260248201527f544f524f3a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f4565b805f0361085d5761085883835f610b0d565b505050565b7f000000000000000000000000bca0660a58fe70e153e6b533eb130943b68e666b6001600160a01b0316836001600160a01b03161480156108b657506001600160a01b0382165f908152600a602052604090205460ff16155b1561093f576001600160a01b0382165f908152602081905260409020546008546108e08284610cda565b111561093d5760405162461bcd60e51b815260206004820152602660248201527f544f524f3a2045786365656473206d6178696d756d2062757920746f6b656e20604482015265185b5bdd5b9d60d21b60648201526084016104f4565b505b305f908152602081905260409020546007548110157f000000000000000000000000bca0660a58fe70e153e6b533eb130943b68e666b6001600160a01b0390811690851614801561098d5750805b80156109a35750600b54600160a01b900460ff16155b156109b1576109b182610cec565b7f000000000000000000000000bca0660a58fe70e153e6b533eb130943b68e666b6001600160a01b0316846001600160a01b0316148015610a0a57506001600160a01b0385165f908152600a602052604090205460ff16155b80610a6957507f000000000000000000000000bca0660a58fe70e153e6b533eb130943b68e666b6001600160a01b0316856001600160a01b0316148015610a6957506001600160a01b0384165f908152600a602052604090205460ff16155b15610aaa575f610a8f6064610a8960095487610d8290919063ffffffff16565b90610d8d565b9050610a9b8482610d98565b9350610aa8863083610b0d565b505b610ab5858585610b0d565b5050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316610b715760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f4565b6001600160a01b038216610bd35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f4565b6001600160a01b0383165f9081526020819052604090205481811015610c4a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104f4565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610c80908490611088565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ccc91815260200190565b60405180910390a350505050565b5f610ce58284611088565b9392505050565b600b805460ff60a01b1916600160a01b179055610d0881610da3565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d3e573d5f803e3d5ffd5b506040518181527fac35835418bf6f25ae2ac4387c93c996cdbd809b6d558d7271f767b4aa98918d9060200160405180910390a150600b805460ff60a01b19169055565b5f610ce5828461109b565b5f610ce582846110b2565b5f610ce582846110d1565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610dd657610dd66110e4565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5191906110f8565b81600181518110610e6457610e646110e4565b6001600160a01b03928316602091820292909201810191909152600654305f90815260018352604080822092909416815291522054821115610eb957600654610eb99030906001600160a01b03165f19610660565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ef19085905f90869030904290600401611113565b5f604051808303815f87803b158015610f08575f80fd5b505af1158015610f1a573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b81811015610f4e57858101830151858201604001528201610f32565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461065d575f80fd5b5f8060408385031215610f93575f80fd5b8235610f9e81610f6e565b946020939093013593505050565b5f805f60608486031215610fbe575f80fd5b8335610fc981610f6e565b92506020840135610fd981610f6e565b929592945050506040919091013590565b5f60208284031215610ffa575f80fd5b8135610ce581610f6e565b5f8060408385031215611016575f80fd5b823561102181610f6e565b9150602083013561103181610f6e565b809150509250929050565b600181811c9082168061105057607f821691505b60208210810361106e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561046257610462611074565b808202811582820484141761046257610462611074565b5f826110cc57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561046257610462611074565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611108575f80fd5b8151610ce581610f6e565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156111635784516001600160a01b03168352938301939183019160010161113e565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b3bcb855793ef1b0709493fc942c888bfcda6530d394933bc262fb025ac7be9464736f6c63430008160033

Deployed Bytecode Sourcemap

6404:3475:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2008:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2932:171;;;;;;;;;;-1:-1:-1;2932:171:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;2932:171:0;1023:187:1;6482:41:0;;;;;;;;;;-1:-1:-1;6482:41:0;;;;-1:-1:-1;;;;;6482:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;6482:41:0;1215:229:1;2335:110:0;;;;;;;;;;-1:-1:-1;2425:12:0;;2335:110;;;1595:25:1;;;1583:2;1568:18;2335:110:0;1449:177:1;3111:494:0;;;;;;;;;;-1:-1:-1;3111:494:0;;;;;:::i;:::-;;:::i;6769:86::-;;;;;;;;;;-1:-1:-1;6769:86:0;;;;-1:-1:-1;;;;;6769:86:0;;;2232:95;;;;;;;;;;-1:-1:-1;2232:95:0;;2317:2;2458:36:1;;2446:2;2431:18;2232:95:0;2316:184:1;6530:38:0;;;;;;;;;;;;;;;2453:127;;;;;;;;;;-1:-1:-1;2453:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2554:18:0;2527:7;2554:18;;;;;;;;;;;;2453:127;6633:42;;;;;;;;;;;;;;;;5370:96;;;;;;;;;;;;;:::i;:::-;;6575:51;;;;;;;;;;;;;;;;6716:46;;;;;;;;;;-1:-1:-1;6716:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5147:87;;;;;;;;;;-1:-1:-1;5220:6:0;;-1:-1:-1;;;;;5220:6:0;5147:87;;2118:106;;;;;;;;;;;;;:::i;2588:177::-;;;;;;;;;;-1:-1:-1;2588:177:0;;;;;:::i;:::-;;:::i;2773:151::-;;;;;;;;;;-1:-1:-1;2773:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2889:18:0;;;2862:7;2889:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2773:151;5474:194;;;;;;;;;;-1:-1:-1;5474:194:0;;;;;:::i;:::-;;:::i;6682:27::-;;;;;;;;;;;;;;;;2008:102;2064:13;2097:5;2090:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2008:102;:::o;2932:171::-;3017:4;3034:39;180:10;3057:7;3066:6;3034:8;:39::i;:::-;-1:-1:-1;3091:4:0;2932:171;;;;;:::o;3111:494::-;3253:4;3270:36;3280:6;3288:9;3299:6;3270:9;:36::i;:::-;-1:-1:-1;;;;;3346:19:0;;3319:24;3346:19;;;:11;:19;;;;;;;;180:10;3346:33;;;;;;;;3398:26;;;;3390:79;;;;-1:-1:-1;;;3390:79:0;;3945:2:1;3390:79:0;;;3927:21:1;3984:2;3964:18;;;3957:30;4023:34;4003:18;;;3996:62;-1:-1:-1;;;4074:18:1;;;4067:38;4122:19;;3390:79:0;;;;;;;;;3505:57;3514:6;180:10;3555:6;3536:16;:25;3505:8;:57::i;:::-;-1:-1:-1;3593:4:0;;3111:494;-1:-1:-1;;;;3111:494:0:o;5370:96::-;5220:6;;-1:-1:-1;;;;;5220:6:0;180:10;5282:23;5274:68;;;;-1:-1:-1;;;5274:68:0;;4354:2:1;5274:68:0;;;4336:21:1;;;4373:18;;;4366:30;4432:34;4412:18;;;4405:62;4484:18;;5274:68:0;4152:356:1;5274:68:0;5437:21:::1;5455:1;5437:9;:21::i;:::-;5370:96::o:0;2118:106::-;2176:13;2209:7;2202:14;;;;;:::i;2588:177::-;2676:4;2693:42;180:10;2717:9;2728:6;2693:9;:42::i;5474:194::-;5220:6;;-1:-1:-1;;;;;5220:6:0;180:10;5282:23;5274:68;;;;-1:-1:-1;;;5274:68:0;;4354:2:1;5274:68:0;;;4336:21:1;;;4373:18;;;4366:30;4432:34;4412:18;;;4405:62;4484:18;;5274:68:0;4152:356:1;5274:68:0;-1:-1:-1;;;;;5565:22:0;::::1;5557:73;;;::::0;-1:-1:-1;;;5557:73:0;;4715:2:1;5557:73:0::1;::::0;::::1;4697:21:1::0;4754:2;4734:18;;;4727:30;4793:34;4773:18;;;4766:62;-1:-1:-1;;;4844:18:1;;;4837:36;4890:19;;5557:73:0::1;4513:402:1::0;5557:73:0::1;5641:19;5651:8;5641:9;:19::i;:::-;5474:194:::0;:::o;4527:380::-;-1:-1:-1;;;;;4663:19:0;;4655:68;;;;-1:-1:-1;;;4655:68:0;;5122:2:1;4655:68:0;;;5104:21:1;5161:2;5141:18;;;5134:30;5200:34;5180:18;;;5173:62;-1:-1:-1;;;5251:18:1;;;5244:34;5295:19;;4655:68:0;4920:400:1;4655:68:0;-1:-1:-1;;;;;4742:21:0;;4734:68;;;;-1:-1:-1;;;4734:68:0;;5527:2:1;4734:68:0;;;5509:21:1;5566:2;5546:18;;;5539:30;5605:34;5585:18;;;5578:62;-1:-1:-1;;;5656:18:1;;;5649:32;5698:19;;4734:68:0;5325:398:1;4734:68:0;-1:-1:-1;;;;;4815:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4867:32;;1595:25:1;;;4867:32:0;;1568:18:1;4867:32:0;;;;;;;4527:380;;;:::o;7645:1360::-;-1:-1:-1;;;;;7743:18:0;;7735:67;;;;-1:-1:-1;;;7735:67:0;;5930:2:1;7735:67:0;;;5912:21:1;5969:2;5949:18;;;5942:30;6008:34;5988:18;;;5981:62;-1:-1:-1;;;6059:18:1;;;6052:34;6103:19;;7735:67:0;5728:400:1;7735:67:0;-1:-1:-1;;;;;7821:16:0;;7813:63;;;;-1:-1:-1;;;7813:63:0;;6335:2:1;7813:63:0;;;6317:21:1;6374:2;6354:18;;;6347:30;6413:34;6393:18;;;6386:62;-1:-1:-1;;;6464:18:1;;;6457:32;6506:19;;7813:63:0;6133:398:1;7813:63:0;7892:6;7902:1;7892:11;7889:92;;7920:28;7936:4;7942:2;7946:1;7920:15;:28::i;:::-;7645:1360;;;:::o;7889:92::-;8004:13;-1:-1:-1;;;;;7996:21:0;:4;-1:-1:-1;;;;;7996:21:0;;:43;;;;-1:-1:-1;;;;;;8022:17:0;;;;;;:13;:17;;;;;;;;8021:18;7996:43;7993:267;;;-1:-1:-1;;;;;2554:18:0;;8108:22;2554:18;;;;;;;;;;;8199:6;;8169:26;2554:18;8188:6;8169:18;:26::i;:::-;:36;;8161:87;;;;-1:-1:-1;;;8161:87:0;;6738:2:1;8161:87:0;;;6720:21:1;6777:2;6757:18;;;6750:30;6816:34;6796:18;;;6789:62;-1:-1:-1;;;6867:18:1;;;6860:36;6913:19;;8161:87:0;6536:402:1;8161:87:0;8041:219;7993:267;8331:4;8280:30;2554:18;;;;;;;;;;;8401:17;;8375:43;;;8447:13;-1:-1:-1;;;;;8441:19:0;;;;;;;:42;;;;;8464:19;8441:42;:57;;;;-1:-1:-1;8488:10:0;;-1:-1:-1;;;8488:10:0;;;;8487:11;8441:57;8438:188;;;8579:35;8591:22;8579:11;:35::i;:::-;8648:13;-1:-1:-1;;;;;8642:19:0;:2;-1:-1:-1;;;;;8642:19:0;;:43;;;;-1:-1:-1;;;;;;8666:19:0;;;;;;:13;:19;;;;;;;;8665:20;8642:43;8641:94;;;;8699:13;-1:-1:-1;;;;;8691:21:0;:4;-1:-1:-1;;;;;8691:21:0;;:43;;;;-1:-1:-1;;;;;;8717:17:0;;;;;;:13;:17;;;;;;;;8716:18;8691:43;8638:312;;;8793:13;8809:29;8834:3;8809:20;8820:8;;8809:6;:10;;:20;;;;:::i;:::-;:24;;:29::i;:::-;8793:45;-1:-1:-1;8862:17:0;:6;8793:45;8862:10;:17::i;:::-;8853:26;;8894:43;8910:4;8924;8931:5;8894:15;:43::i;:::-;8737:213;8638:312;8962:33;8978:4;8984:2;8988:6;8962:15;:33::i;:::-;7724:1281;;7645:1360;;;:::o;5676:173::-;5751:6;;;-1:-1:-1;;;;;5768:17:0;;;-1:-1:-1;;;;;;5768:17:0;;;;;;;5801:40;;5751:6;;;5768:17;5751:6;;5801:40;;5732:16;;5801:40;5721:128;5676:173;:::o;3613:614::-;-1:-1:-1;;;;;3753:20:0;;3745:70;;;;-1:-1:-1;;;3745:70:0;;7145:2:1;3745:70:0;;;7127:21:1;7184:2;7164:18;;;7157:30;7223:34;7203:18;;;7196:62;-1:-1:-1;;;7274:18:1;;;7267:35;7319:19;;3745:70:0;6943:401:1;3745:70:0;-1:-1:-1;;;;;3834:23:0;;3826:71;;;;-1:-1:-1;;;3826:71:0;;7551:2:1;3826:71:0;;;7533:21:1;7590:2;7570:18;;;7563:30;7629:34;7609:18;;;7602:62;-1:-1:-1;;;7680:18:1;;;7673:33;7723:19;;3826:71:0;7349:399:1;3826:71:0;-1:-1:-1;;;;;3934:17:0;;3910:21;3934:17;;;;;;;;;;;3970:23;;;;3962:74;;;;-1:-1:-1;;;3962:74:0;;7955:2:1;3962:74:0;;;7937:21:1;7994:2;7974:18;;;7967:30;8033:34;8013:18;;;8006:62;-1:-1:-1;;;8084:18:1;;;8077:36;8130:19;;3962:74:0;7753:402:1;3962:74:0;-1:-1:-1;;;;;4072:17:0;;;:9;:17;;;;;;;;;;;4092:22;;;4072:42;;4136:20;;;;;;;;:30;;4108:6;;4072:9;4136:30;;4108:6;;4136:30;:::i;:::-;;;;;;;;4201:9;-1:-1:-1;;;;;4184:35:0;4193:6;-1:-1:-1;;;;;4184:35:0;;4212:6;4184:35;;;;1595:25:1;;1583:2;1568:18;;1449:177;4184:35:0;;;;;;;;3734:493;3613:614;;;:::o;229:98::-;287:7;314:5;318:1;314;:5;:::i;:::-;307:12;229:98;-1:-1:-1;;;229:98:0:o;9013:236::-;6989:10;:17;;-1:-1:-1;;;;6989:17:0;-1:-1:-1;;;6989:17:0;;;9097:40:::1;9114:22:::0;9097:16:::1;:40::i;:::-;9148:9;::::0;:41:::1;::::0;-1:-1:-1;;;;;9148:9:0;;::::1;::::0;9167:21:::1;9148:41:::0;::::1;;;::::0;:9:::1;:41:::0;:9;:41;9167:21;9148:9;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;9205:36:0::1;::::0;1595:25:1;;;9205:36:0::1;::::0;1583:2:1;1568:18;9205:36:0::1;;;;;;;-1:-1:-1::0;7029:10:0;:18;;-1:-1:-1;;;;7029:18:0;;;9013:236::o;441:98::-;499:7;526:5;530:1;526;:5;:::i;547:98::-;605:7;632:5;636:1;632;:5;:::i;335:98::-;393:7;420:5;424:1;420;:5;:::i;9257:580::-;9349:16;;;9363:1;9349:16;;;;;;;;9325:21;;9349:16;;;;;;;;;;-1:-1:-1;9349:16:0;9325:40;;9394:4;9376;9381:1;9376:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9376:23:0;;;:7;;;;;;;;;;:23;;;;9420:15;;:22;;;-1:-1:-1;;;9420:22:0;;;;:15;;;;;:20;;:22;;;;;9376:7;;9420:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9410:4;9415:1;9410:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9410:32:0;;;:7;;;;;;;;;;:32;;;;9491:15;;9476:4;2862:7;2889:18;;;:11;:18;;;;;;9491:15;;;;2889:27;;;;;;9511:11;-1:-1:-1;9455:156:0;;;9569:15;;9537:62;;9554:4;;-1:-1:-1;;;;;9569:15:0;-1:-1:-1;;9537:8:0;:62::i;:::-;9623:15;;:196;;-1:-1:-1;;;9623:196:0;;-1:-1:-1;;;;;9623:15:0;;;;:66;;:196;;9704:11;;9623:15;;9746:4;;9773;;9793:15;;9623:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9312:525;9257:580;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2713:247::-;2772:6;2825:2;2813:9;2804:7;2800:23;2796:32;2793:52;;;2841:1;2838;2831:12;2793:52;2880:9;2867:23;2899:31;2924:5;2899:31;:::i;2965:388::-;3033:6;3041;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;3149:9;3136:23;3168:31;3193:5;3168:31;:::i;:::-;3218:5;-1:-1:-1;3275:2:1;3260:18;;3247:32;3288:33;3247:32;3288:33;:::i;:::-;3340:7;3330:17;;;2965:388;;;;;:::o;3358:380::-;3437:1;3433:12;;;;3480;;;3501:61;;3555:4;3547:6;3543:17;3533:27;;3501:61;3608:2;3600:6;3597:14;3577:18;3574:38;3571:161;;3654:10;3649:3;3645:20;3642:1;3635:31;3689:4;3686:1;3679:15;3717:4;3714:1;3707:15;3571:161;;3358:380;;;:::o;8160:127::-;8221:10;8216:3;8212:20;8209:1;8202:31;8252:4;8249:1;8242:15;8276:4;8273:1;8266:15;8292:125;8357:9;;;8378:10;;;8375:36;;;8391:18;;:::i;8422:168::-;8495:9;;;8526;;8543:15;;;8537:22;;8523:37;8513:71;;8564:18;;:::i;8595:217::-;8635:1;8661;8651:132;;8705:10;8700:3;8696:20;8693:1;8686:31;8740:4;8737:1;8730:15;8768:4;8765:1;8758:15;8651:132;-1:-1:-1;8797:9:1;;8595:217::o;8817:128::-;8884:9;;;8905:11;;;8902:37;;;8919:18;;:::i;9082:127::-;9143:10;9138:3;9134:20;9131:1;9124:31;9174:4;9171:1;9164:15;9198:4;9195:1;9188:15;9214:251;9284:6;9337:2;9325:9;9316:7;9312:23;9308:32;9305:52;;;9353:1;9350;9343:12;9305:52;9385:9;9379:16;9404:31;9429:5;9404:31;:::i;9470:980::-;9732:4;9780:3;9769:9;9765:19;9811:6;9800:9;9793:25;9837:2;9875:6;9870:2;9859:9;9855:18;9848:34;9918:3;9913:2;9902:9;9898:18;9891:31;9942:6;9977;9971:13;10008:6;10000;9993:22;10046:3;10035:9;10031:19;10024:26;;10085:2;10077:6;10073:15;10059:29;;10106:1;10116:195;10130:6;10127:1;10124:13;10116:195;;;10195:13;;-1:-1:-1;;;;;10191:39:1;10179:52;;10286:15;;;;10251:12;;;;10227:1;10145:9;10116:195;;;-1:-1:-1;;;;;;;10367:32:1;;;;10362:2;10347:18;;10340:60;-1:-1:-1;;;10431:3:1;10416:19;10409:35;10328:3;9470:980;-1:-1:-1;;;9470:980:1:o

Swarm Source

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