ETH Price: $3,197.87 (-7.16%)
Gas: 15 Gwei

Token

AlexJonesInu (AJINU)
 

Overview

Max Total Supply

375,956.279201260029041382 AJINU

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,989.05 AJINU

Value
$0.00
0xa01257a31a8b54d469e2646e0f94adab60292122
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:
AJINU

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: AlexJonesInu.sol
pragma solidity ^0.8.0;
//SPDX-License-Identifier: MIT
//Hi, this is totally Alex from InfoWars
//Coming to you today to ask for your help
//In the war against me
//If you sign up now, I will personally thank you
//And mail you this cool PATRIOT coin
//This will keep us in the fight
//Please, I'm farting for my life here
//Thank you

import "./ERC20.sol";

//TNSC File
contract AJINU is ERC20 {

    uint BURN_FEE = 4;
    uint INFO_FEE = 1;
    uint infoMinimum = 1000 * 10**18;
    address payable public INFOWARS = payable(address(0xD0854b05A70acD0A737B5054Dd4959ef2b685320));
    address public owner;

    
constructor() ERC20 ('AlexJonesInu','AJINU') {
    _mint(msg.sender, 420000* 10 ** 18);
    owner = msg.sender;

    }
    
    
function transfer(address recipient, uint256 amount) public override returns (bool){

            uint burnAmount = amount*(BURN_FEE) / 100;
            uint infoAmount = amount*(INFO_FEE) / 100;
            _burn(_msgSender(), burnAmount);
            _transfer(_msgSender(), recipient, amount-(burnAmount)-(infoAmount));
            _transfer(_msgSender(), INFOWARS, infoAmount);
                    
      
      return true;
    }    


function transferFrom(address recipient, uint256 amount) public returns (bool){

            uint burnAmount = amount*(BURN_FEE) / 100;
            uint infoAmount = amount*(INFO_FEE) / 100;
            _burn(_msgSender(), burnAmount);
            _transfer(_msgSender(), recipient, amount-(burnAmount)-(infoAmount));
            _transfer(_msgSender(), INFOWARS, infoAmount);
      
      return true;
    }    
 

 
}

File 2 of 5: Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 3 of 5: ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
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;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    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");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    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");

        _beforeTokenTransfer(sender, recipient, amount);

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

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

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

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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 Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 4 of 5: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @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 approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 5 of 5: IERC20Metadata.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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"},{"inputs":[],"name":"INFOWARS","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"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":"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":"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"}]

608060405260046005556001600655683635c9adc5dea0000060075573d0854b05a70acd0a737b5054dd4959ef2b685320600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200007d57600080fd5b506040518060400160405280600c81526020017f416c65784a6f6e6573496e7500000000000000000000000000000000000000008152506040518060400160405280600581526020017f414a494e5500000000000000000000000000000000000000000000000000000081525081600390805190602001906200010292919062000304565b5080600490805190602001906200011b92919062000304565b5050506200013a336958f03ee118a13e8000006200018160201b60201c565b33600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000552565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001eb9062000407565b60405180910390fd5b6200020860008383620002fa60201b60201c565b80600260008282546200021c919062000457565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000273919062000457565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002da919062000429565b60405180910390a3620002f660008383620002ff60201b60201c565b5050565b505050565b505050565b8280546200031290620004be565b90600052602060002090601f01602090048101928262000336576000855562000382565b82601f106200035157805160ff191683800117855562000382565b8280016001018555821562000382579182015b828111156200038157825182559160200191906001019062000364565b5b50905062000391919062000395565b5090565b5b80821115620003b057600081600090555060010162000396565b5090565b6000620003c3601f8362000446565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200040181620004b4565b82525050565b600060208201905081810360008301526200042281620003b4565b9050919050565b6000602082019050620004406000830184620003f6565b92915050565b600082825260208201905092915050565b60006200046482620004b4565b91506200047183620004b4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004a957620004a8620004f4565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620004d757607f821691505b60208210811415620004ee57620004ed62000523565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6119bf80620005626000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d714610275578063a9059cbb146102a5578063c2e91d57146102d5578063dd62ed3e146102f3576100ea565b806370a08231146102095780638da5cb5b1461023957806395d89b4114610257576100ea565b806318160ddd116100c857806318160ddd1461016d57806323b872dd1461018b578063313ce567146101bb57806339509351146101d9576100ea565b806301c6adc3146100ef57806306fdde031461011f578063095ea7b31461013d575b600080fd5b610109600480360381019061010491906110a1565b610323565b604051610116919061152d565b60405180910390f35b6101276103d9565b6040516101349190611548565b60405180910390f35b610157600480360381019061015291906110a1565b61046b565b604051610164919061152d565b60405180910390f35b610175610489565b604051610182919061168a565b60405180910390f35b6101a560048036038101906101a09190611052565b610493565b6040516101b2919061152d565b60405180910390f35b6101c361058b565b6040516101d091906116a5565b60405180910390f35b6101f360048036038101906101ee91906110a1565b610594565b604051610200919061152d565b60405180910390f35b610223600480360381019061021e9190610fed565b610640565b604051610230919061168a565b60405180910390f35b610241610688565b60405161024e91906114f7565b60405180910390f35b61025f6106ae565b60405161026c9190611548565b60405180910390f35b61028f600480360381019061028a91906110a1565b610740565b60405161029c919061152d565b60405180910390f35b6102bf60048036038101906102ba91906110a1565b61082b565b6040516102cc919061152d565b60405180910390f35b6102dd6108e1565b6040516102ea9190611512565b60405180910390f35b61030d60048036038101906103089190611016565b610907565b60405161031a919061168a565b60405180910390f35b6000806064600554846103369190611763565b6103409190611732565b905060006064600654856103549190611763565b61035e9190611732565b905061037161036b61098e565b83610996565b61039961037c61098e565b8683858861038a91906117bd565b61039491906117bd565b610b6d565b6103cd6103a461098e565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610b6d565b60019250505092915050565b6060600380546103e89061188b565b80601f01602080910402602001604051908101604052809291908181526020018280546104149061188b565b80156104615780601f1061043657610100808354040283529160200191610461565b820191906000526020600020905b81548152906001019060200180831161044457829003601f168201915b5050505050905090565b600061047f61047861098e565b8484610dee565b6001905092915050565b6000600254905090565b60006104a0848484610b6d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104eb61098e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561056b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610562906115ea565b60405180910390fd5b61057f8561057761098e565b858403610dee565b60019150509392505050565b60006012905090565b60006106366105a161098e565b8484600160006105af61098e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461063191906116dc565b610dee565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546106bd9061188b565b80601f01602080910402602001604051908101604052809291908181526020018280546106e99061188b565b80156107365780601f1061070b57610100808354040283529160200191610736565b820191906000526020600020905b81548152906001019060200180831161071957829003601f168201915b5050505050905090565b6000806001600061074f61098e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561080c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108039061166a565b60405180910390fd5b61082061081761098e565b85858403610dee565b600191505092915050565b60008060646005548461083e9190611763565b6108489190611732565b9050600060646006548561085c9190611763565b6108669190611732565b905061087961087361098e565b83610996565b6108a161088461098e565b8683858861089291906117bd565b61089c91906117bd565b610b6d565b6108d56108ac61098e565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610b6d565b60019250505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fd9061160a565b60405180910390fd5b610a1282600083610fb9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8f9061158a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610aef91906117bd565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b54919061168a565b60405180910390a3610b6883600084610fbe565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd49061162a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c449061156a565b60405180910390fd5b610c58838383610fb9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd5906115ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d7191906116dc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd5919061168a565b60405180910390a3610de8848484610fbe565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e559061164a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec5906115aa565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fac919061168a565b60405180910390a3505050565b505050565b505050565b600081359050610fd28161195b565b92915050565b600081359050610fe781611972565b92915050565b600060208284031215610fff57600080fd5b600061100d84828501610fc3565b91505092915050565b6000806040838503121561102957600080fd5b600061103785828601610fc3565b925050602061104885828601610fc3565b9150509250929050565b60008060006060848603121561106757600080fd5b600061107586828701610fc3565b935050602061108686828701610fc3565b925050604061109786828701610fd8565b9150509250925092565b600080604083850312156110b457600080fd5b60006110c285828601610fc3565b92505060206110d385828601610fd8565b9150509250929050565b6110e681611803565b82525050565b6110f5816117f1565b82525050565b61110481611815565b82525050565b6000611115826116c0565b61111f81856116cb565b935061112f818560208601611858565b6111388161194a565b840191505092915050565b60006111506023836116cb565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006111b66022836116cb565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061121c6022836116cb565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006112826026836116cb565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006112e86028836116cb565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b600061134e6021836116cb565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113b46025836116cb565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061141a6024836116cb565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114806025836116cb565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6114e281611841565b82525050565b6114f18161184b565b82525050565b600060208201905061150c60008301846110ec565b92915050565b600060208201905061152760008301846110dd565b92915050565b600060208201905061154260008301846110fb565b92915050565b60006020820190508181036000830152611562818461110a565b905092915050565b6000602082019050818103600083015261158381611143565b9050919050565b600060208201905081810360008301526115a3816111a9565b9050919050565b600060208201905081810360008301526115c38161120f565b9050919050565b600060208201905081810360008301526115e381611275565b9050919050565b60006020820190508181036000830152611603816112db565b9050919050565b6000602082019050818103600083015261162381611341565b9050919050565b60006020820190508181036000830152611643816113a7565b9050919050565b600060208201905081810360008301526116638161140d565b9050919050565b6000602082019050818103600083015261168381611473565b9050919050565b600060208201905061169f60008301846114d9565b92915050565b60006020820190506116ba60008301846114e8565b92915050565b600081519050919050565b600082825260208201905092915050565b60006116e782611841565b91506116f283611841565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611727576117266118bd565b5b828201905092915050565b600061173d82611841565b915061174883611841565b925082611758576117576118ec565b5b828204905092915050565b600061176e82611841565b915061177983611841565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117b2576117b16118bd565b5b828202905092915050565b60006117c882611841565b91506117d383611841565b9250828210156117e6576117e56118bd565b5b828203905092915050565b60006117fc82611821565b9050919050565b600061180e82611821565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561187657808201518184015260208101905061185b565b83811115611885576000848401525b50505050565b600060028204905060018216806118a357607f821691505b602082108114156118b7576118b661191b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611964816117f1565b811461196f57600080fd5b50565b61197b81611841565b811461198657600080fd5b5056fea26469706673582212204127e452ff1f013c3ded26cd504ae57664ac37890ed2c17020163bc3ba00b98664736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d714610275578063a9059cbb146102a5578063c2e91d57146102d5578063dd62ed3e146102f3576100ea565b806370a08231146102095780638da5cb5b1461023957806395d89b4114610257576100ea565b806318160ddd116100c857806318160ddd1461016d57806323b872dd1461018b578063313ce567146101bb57806339509351146101d9576100ea565b806301c6adc3146100ef57806306fdde031461011f578063095ea7b31461013d575b600080fd5b610109600480360381019061010491906110a1565b610323565b604051610116919061152d565b60405180910390f35b6101276103d9565b6040516101349190611548565b60405180910390f35b610157600480360381019061015291906110a1565b61046b565b604051610164919061152d565b60405180910390f35b610175610489565b604051610182919061168a565b60405180910390f35b6101a560048036038101906101a09190611052565b610493565b6040516101b2919061152d565b60405180910390f35b6101c361058b565b6040516101d091906116a5565b60405180910390f35b6101f360048036038101906101ee91906110a1565b610594565b604051610200919061152d565b60405180910390f35b610223600480360381019061021e9190610fed565b610640565b604051610230919061168a565b60405180910390f35b610241610688565b60405161024e91906114f7565b60405180910390f35b61025f6106ae565b60405161026c9190611548565b60405180910390f35b61028f600480360381019061028a91906110a1565b610740565b60405161029c919061152d565b60405180910390f35b6102bf60048036038101906102ba91906110a1565b61082b565b6040516102cc919061152d565b60405180910390f35b6102dd6108e1565b6040516102ea9190611512565b60405180910390f35b61030d60048036038101906103089190611016565b610907565b60405161031a919061168a565b60405180910390f35b6000806064600554846103369190611763565b6103409190611732565b905060006064600654856103549190611763565b61035e9190611732565b905061037161036b61098e565b83610996565b61039961037c61098e565b8683858861038a91906117bd565b61039491906117bd565b610b6d565b6103cd6103a461098e565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610b6d565b60019250505092915050565b6060600380546103e89061188b565b80601f01602080910402602001604051908101604052809291908181526020018280546104149061188b565b80156104615780601f1061043657610100808354040283529160200191610461565b820191906000526020600020905b81548152906001019060200180831161044457829003601f168201915b5050505050905090565b600061047f61047861098e565b8484610dee565b6001905092915050565b6000600254905090565b60006104a0848484610b6d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104eb61098e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561056b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610562906115ea565b60405180910390fd5b61057f8561057761098e565b858403610dee565b60019150509392505050565b60006012905090565b60006106366105a161098e565b8484600160006105af61098e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461063191906116dc565b610dee565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546106bd9061188b565b80601f01602080910402602001604051908101604052809291908181526020018280546106e99061188b565b80156107365780601f1061070b57610100808354040283529160200191610736565b820191906000526020600020905b81548152906001019060200180831161071957829003601f168201915b5050505050905090565b6000806001600061074f61098e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561080c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108039061166a565b60405180910390fd5b61082061081761098e565b85858403610dee565b600191505092915050565b60008060646005548461083e9190611763565b6108489190611732565b9050600060646006548561085c9190611763565b6108669190611732565b905061087961087361098e565b83610996565b6108a161088461098e565b8683858861089291906117bd565b61089c91906117bd565b610b6d565b6108d56108ac61098e565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610b6d565b60019250505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fd9061160a565b60405180910390fd5b610a1282600083610fb9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8f9061158a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610aef91906117bd565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b54919061168a565b60405180910390a3610b6883600084610fbe565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd49061162a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c449061156a565b60405180910390fd5b610c58838383610fb9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd5906115ca565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d7191906116dc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dd5919061168a565b60405180910390a3610de8848484610fbe565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e559061164a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ece576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec5906115aa565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fac919061168a565b60405180910390a3505050565b505050565b505050565b600081359050610fd28161195b565b92915050565b600081359050610fe781611972565b92915050565b600060208284031215610fff57600080fd5b600061100d84828501610fc3565b91505092915050565b6000806040838503121561102957600080fd5b600061103785828601610fc3565b925050602061104885828601610fc3565b9150509250929050565b60008060006060848603121561106757600080fd5b600061107586828701610fc3565b935050602061108686828701610fc3565b925050604061109786828701610fd8565b9150509250925092565b600080604083850312156110b457600080fd5b60006110c285828601610fc3565b92505060206110d385828601610fd8565b9150509250929050565b6110e681611803565b82525050565b6110f5816117f1565b82525050565b61110481611815565b82525050565b6000611115826116c0565b61111f81856116cb565b935061112f818560208601611858565b6111388161194a565b840191505092915050565b60006111506023836116cb565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006111b66022836116cb565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061121c6022836116cb565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006112826026836116cb565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006112e86028836116cb565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b600061134e6021836116cb565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006113b46025836116cb565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061141a6024836116cb565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114806025836116cb565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6114e281611841565b82525050565b6114f18161184b565b82525050565b600060208201905061150c60008301846110ec565b92915050565b600060208201905061152760008301846110dd565b92915050565b600060208201905061154260008301846110fb565b92915050565b60006020820190508181036000830152611562818461110a565b905092915050565b6000602082019050818103600083015261158381611143565b9050919050565b600060208201905081810360008301526115a3816111a9565b9050919050565b600060208201905081810360008301526115c38161120f565b9050919050565b600060208201905081810360008301526115e381611275565b9050919050565b60006020820190508181036000830152611603816112db565b9050919050565b6000602082019050818103600083015261162381611341565b9050919050565b60006020820190508181036000830152611643816113a7565b9050919050565b600060208201905081810360008301526116638161140d565b9050919050565b6000602082019050818103600083015261168381611473565b9050919050565b600060208201905061169f60008301846114d9565b92915050565b60006020820190506116ba60008301846114e8565b92915050565b600081519050919050565b600082825260208201905092915050565b60006116e782611841565b91506116f283611841565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611727576117266118bd565b5b828201905092915050565b600061173d82611841565b915061174883611841565b925082611758576117576118ec565b5b828204905092915050565b600061176e82611841565b915061177983611841565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117b2576117b16118bd565b5b828202905092915050565b60006117c882611841565b91506117d383611841565b9250828210156117e6576117e56118bd565b5b828203905092915050565b60006117fc82611821565b9050919050565b600061180e82611821565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561187657808201518184015260208101905061185b565b83811115611885576000848401525b50505050565b600060028204905060018216806118a357607f821691505b602082108114156118b7576118b661191b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611964816117f1565b811461196f57600080fd5b50565b61197b81611841565b811461198657600080fd5b5056fea26469706673582212204127e452ff1f013c3ded26cd504ae57664ac37890ed2c17020163bc3ba00b98664736f6c63430008000033

Deployed Bytecode Sourcemap

371:1232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1184:408;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2063:98:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4160:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3151:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4793:478;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3000:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5666:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;586:20:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2274:102:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6365:405;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;743:434:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;486:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3873:149:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1184:408:0;1257:4;1277:15;1315:3;1303:8;;1295:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;1277:41;;1332:15;1370:3;1358:8;;1350:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;1332:41;;1387:31;1393:12;:10;:12::i;:::-;1407:10;1387:5;:31::i;:::-;1432:68;1442:12;:10;:12::i;:::-;1456:9;1488:10;1475;1467:6;:19;;;;:::i;:::-;:32;;;;:::i;:::-;1432:9;:68::i;:::-;1514:45;1524:12;:10;:12::i;:::-;1538:8;;;;;;;;;;;1548:10;1514:9;:45::i;:::-;1581:4;1574:11;;;;1184:408;;;;:::o;2063:98:2:-;2117:13;2149:5;2142:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2063:98;:::o;4160:166::-;4243:4;4259:39;4268:12;:10;:12::i;:::-;4282:7;4291:6;4259:8;:39::i;:::-;4315:4;4308:11;;4160:166;;;;:::o;3151:106::-;3212:7;3238:12;;3231:19;;3151:106;:::o;4793:478::-;4929:4;4945:36;4955:6;4963:9;4974:6;4945:9;:36::i;:::-;4992:24;5019:11;:19;5031:6;5019:19;;;;;;;;;;;;;;;:33;5039:12;:10;:12::i;:::-;5019:33;;;;;;;;;;;;;;;;4992:60;;5090:6;5070:16;:26;;5062:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5175:57;5184:6;5192:12;:10;:12::i;:::-;5225:6;5206:16;:25;5175:8;:57::i;:::-;5260:4;5253:11;;;4793:478;;;;;:::o;3000:91::-;3058:5;3082:2;3075:9;;3000:91;:::o;5666:212::-;5754:4;5770:80;5779:12;:10;:12::i;:::-;5793:7;5839:10;5802:11;:25;5814:12;:10;:12::i;:::-;5802:25;;;;;;;;;;;;;;;:34;5828:7;5802:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5770:8;:80::i;:::-;5867:4;5860:11;;5666:212;;;;:::o;3315:125::-;3389:7;3415:9;:18;3425:7;3415:18;;;;;;;;;;;;;;;;3408:25;;3315:125;;;:::o;586:20:0:-;;;;;;;;;;;;;:::o;2274:102:2:-;2330:13;2362:7;2355:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:102;:::o;6365:405::-;6458:4;6474:24;6501:11;:25;6513:12;:10;:12::i;:::-;6501:25;;;;;;;;;;;;;;;:34;6527:7;6501:34;;;;;;;;;;;;;;;;6474:61;;6573:15;6553:16;:35;;6545:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6664:67;6673:12;:10;:12::i;:::-;6687:7;6715:15;6696:16;:34;6664:8;:67::i;:::-;6759:4;6752:11;;;6365:405;;;;:::o;743:434:0:-;821:4;841:15;879:3;867:8;;859:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;841:41;;896:15;934:3;922:8;;914:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;896:41;;951:31;957:12;:10;:12::i;:::-;971:10;951:5;:31::i;:::-;996:68;1006:12;:10;:12::i;:::-;1020:9;1052:10;1039;1031:6;:19;;;;:::i;:::-;:32;;;;:::i;:::-;996:9;:68::i;:::-;1078:45;1088:12;:10;:12::i;:::-;1102:8;;;;;;;;;;;1112:10;1078:9;:45::i;:::-;1166:4;1159:11;;;;743:434;;;;:::o;486:94::-;;;;;;;;;;;;;:::o;3873:149:2:-;3962:7;3988:11;:18;4000:5;3988:18;;;;;;;;;;;;;;;:27;4007:7;3988:27;;;;;;;;;;;;;;;;3981:34;;3873:149;;;;:::o;587:96:1:-;640:7;666:10;659:17;;587:96;:::o;8942:576:2:-;9044:1;9025:21;;:7;:21;;;;9017:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9095:49;9116:7;9133:1;9137:6;9095:20;:49::i;:::-;9155:22;9180:9;:18;9190:7;9180:18;;;;;;;;;;;;;;;;9155:43;;9234:6;9216:14;:24;;9208:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9351:6;9334:14;:23;9313:9;:18;9323:7;9313:18;;;;;;;;;;;;;;;:44;;;;9393:6;9377:12;;:22;;;;;;;:::i;:::-;;;;;;;;9441:1;9415:37;;9424:7;9415:37;;;9445:6;9415:37;;;;;;:::i;:::-;;;;;;;;9463:48;9483:7;9500:1;9504:6;9463:19;:48::i;:::-;8942:576;;;:::o;7244:713::-;7397:1;7379:20;;:6;:20;;;;7371:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7480:1;7459:23;;:9;:23;;;;7451:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7533:47;7554:6;7562:9;7573:6;7533:20;:47::i;:::-;7591:21;7615:9;:17;7625:6;7615:17;;;;;;;;;;;;;;;;7591:41;;7667:6;7650:13;:23;;7642:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7786:6;7770:13;:22;7750:9;:17;7760:6;7750:17;;;;;;;;;;;;;;;:42;;;;7836:6;7812:9;:20;7822:9;7812:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7875:9;7858:35;;7867:6;7858:35;;;7886:6;7858:35;;;;;;:::i;:::-;;;;;;;;7904:46;7924:6;7932:9;7943:6;7904:19;:46::i;:::-;7244:713;;;;:::o;9941:370::-;10089:1;10072:19;;:5;:19;;;;10064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10169:1;10150:21;;:7;:21;;;;10142:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10251:6;10221:11;:18;10233:5;10221:18;;;;;;;;;;;;;;;:27;10240:7;10221:27;;;;;;;;;;;;;;;:36;;;;10288:7;10272:32;;10281:5;10272:32;;;10297:6;10272:32;;;;;;:::i;:::-;;;;;;;;9941:370;;;:::o;10895:121::-;;;;:::o;11604:120::-;;;;:::o;7:139:5:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:142::-;2052:32;2078:5;2052:32;:::i;:::-;2047:3;2040:45;2030:61;;:::o;2097:118::-;2184:24;2202:5;2184:24;:::i;:::-;2179:3;2172:37;2162:53;;:::o;2221:109::-;2302:21;2317:5;2302:21;:::i;:::-;2297:3;2290:34;2280:50;;:::o;2336:364::-;;2452:39;2485:5;2452:39;:::i;:::-;2507:71;2571:6;2566:3;2507:71;:::i;:::-;2500:78;;2587:52;2632:6;2627:3;2620:4;2613:5;2609:16;2587:52;:::i;:::-;2664:29;2686:6;2664:29;:::i;:::-;2659:3;2655:39;2648:46;;2428:272;;;;;:::o;2706:367::-;;2869:67;2933:2;2928:3;2869:67;:::i;:::-;2862:74;;2966:34;2962:1;2957:3;2953:11;2946:55;3032:5;3027:2;3022:3;3018:12;3011:27;3064:2;3059:3;3055:12;3048:19;;2852:221;;;:::o;3079:366::-;;3242:67;3306:2;3301:3;3242:67;:::i;:::-;3235:74;;3339:34;3335:1;3330:3;3326:11;3319:55;3405:4;3400:2;3395:3;3391:12;3384:26;3436:2;3431:3;3427:12;3420:19;;3225:220;;;:::o;3451:366::-;;3614:67;3678:2;3673:3;3614:67;:::i;:::-;3607:74;;3711:34;3707:1;3702:3;3698:11;3691:55;3777:4;3772:2;3767:3;3763:12;3756:26;3808:2;3803:3;3799:12;3792:19;;3597:220;;;:::o;3823:370::-;;3986:67;4050:2;4045:3;3986:67;:::i;:::-;3979:74;;4083:34;4079:1;4074:3;4070:11;4063:55;4149:8;4144:2;4139:3;4135:12;4128:30;4184:2;4179:3;4175:12;4168:19;;3969:224;;;:::o;4199:372::-;;4362:67;4426:2;4421:3;4362:67;:::i;:::-;4355:74;;4459:34;4455:1;4450:3;4446:11;4439:55;4525:10;4520:2;4515:3;4511:12;4504:32;4562:2;4557:3;4553:12;4546:19;;4345:226;;;:::o;4577:365::-;;4740:67;4804:2;4799:3;4740:67;:::i;:::-;4733:74;;4837:34;4833:1;4828:3;4824:11;4817:55;4903:3;4898:2;4893:3;4889:12;4882:25;4933:2;4928:3;4924:12;4917:19;;4723:219;;;:::o;4948:369::-;;5111:67;5175:2;5170:3;5111:67;:::i;:::-;5104:74;;5208:34;5204:1;5199:3;5195:11;5188:55;5274:7;5269:2;5264:3;5260:12;5253:29;5308:2;5303:3;5299:12;5292:19;;5094:223;;;:::o;5323:368::-;;5486:67;5550:2;5545:3;5486:67;:::i;:::-;5479:74;;5583:34;5579:1;5574:3;5570:11;5563:55;5649:6;5644:2;5639:3;5635:12;5628:28;5682:2;5677:3;5673:12;5666:19;;5469:222;;;:::o;5697:369::-;;5860:67;5924:2;5919:3;5860:67;:::i;:::-;5853:74;;5957:34;5953:1;5948:3;5944:11;5937:55;6023:7;6018:2;6013:3;6009:12;6002:29;6057:2;6052:3;6048:12;6041:19;;5843:223;;;:::o;6072:118::-;6159:24;6177:5;6159:24;:::i;:::-;6154:3;6147:37;6137:53;;:::o;6196:112::-;6279:22;6295:5;6279:22;:::i;:::-;6274:3;6267:35;6257:51;;:::o;6314:222::-;;6445:2;6434:9;6430:18;6422:26;;6458:71;6526:1;6515:9;6511:17;6502:6;6458:71;:::i;:::-;6412:124;;;;:::o;6542:254::-;;6689:2;6678:9;6674:18;6666:26;;6702:87;6786:1;6775:9;6771:17;6762:6;6702:87;:::i;:::-;6656:140;;;;:::o;6802:210::-;;6927:2;6916:9;6912:18;6904:26;;6940:65;7002:1;6991:9;6987:17;6978:6;6940:65;:::i;:::-;6894:118;;;;:::o;7018:313::-;;7169:2;7158:9;7154:18;7146:26;;7218:9;7212:4;7208:20;7204:1;7193:9;7189:17;7182:47;7246:78;7319:4;7310:6;7246:78;:::i;:::-;7238:86;;7136:195;;;;:::o;7337:419::-;;7541:2;7530:9;7526:18;7518:26;;7590:9;7584:4;7580:20;7576:1;7565:9;7561:17;7554:47;7618:131;7744:4;7618:131;:::i;:::-;7610:139;;7508:248;;;:::o;7762:419::-;;7966:2;7955:9;7951:18;7943:26;;8015:9;8009:4;8005:20;8001:1;7990:9;7986:17;7979:47;8043:131;8169:4;8043:131;:::i;:::-;8035:139;;7933:248;;;:::o;8187:419::-;;8391:2;8380:9;8376:18;8368:26;;8440:9;8434:4;8430:20;8426:1;8415:9;8411:17;8404:47;8468:131;8594:4;8468:131;:::i;:::-;8460:139;;8358:248;;;:::o;8612:419::-;;8816:2;8805:9;8801:18;8793:26;;8865:9;8859:4;8855:20;8851:1;8840:9;8836:17;8829:47;8893:131;9019:4;8893:131;:::i;:::-;8885:139;;8783:248;;;:::o;9037:419::-;;9241:2;9230:9;9226:18;9218:26;;9290:9;9284:4;9280:20;9276:1;9265:9;9261:17;9254:47;9318:131;9444:4;9318:131;:::i;:::-;9310:139;;9208:248;;;:::o;9462:419::-;;9666:2;9655:9;9651:18;9643:26;;9715:9;9709:4;9705:20;9701:1;9690:9;9686:17;9679:47;9743:131;9869:4;9743:131;:::i;:::-;9735:139;;9633:248;;;:::o;9887:419::-;;10091:2;10080:9;10076:18;10068:26;;10140:9;10134:4;10130:20;10126:1;10115:9;10111:17;10104:47;10168:131;10294:4;10168:131;:::i;:::-;10160:139;;10058:248;;;:::o;10312:419::-;;10516:2;10505:9;10501:18;10493:26;;10565:9;10559:4;10555:20;10551:1;10540:9;10536:17;10529:47;10593:131;10719:4;10593:131;:::i;:::-;10585:139;;10483:248;;;:::o;10737:419::-;;10941:2;10930:9;10926:18;10918:26;;10990:9;10984:4;10980:20;10976:1;10965:9;10961:17;10954:47;11018:131;11144:4;11018:131;:::i;:::-;11010:139;;10908:248;;;:::o;11162:222::-;;11293:2;11282:9;11278:18;11270:26;;11306:71;11374:1;11363:9;11359:17;11350:6;11306:71;:::i;:::-;11260:124;;;;:::o;11390:214::-;;11517:2;11506:9;11502:18;11494:26;;11530:67;11594:1;11583:9;11579:17;11570:6;11530:67;:::i;:::-;11484:120;;;;:::o;11610:99::-;;11696:5;11690:12;11680:22;;11669:40;;;:::o;11715:169::-;;11833:6;11828:3;11821:19;11873:4;11868:3;11864:14;11849:29;;11811:73;;;;:::o;11890:305::-;;11949:20;11967:1;11949:20;:::i;:::-;11944:25;;11983:20;12001:1;11983:20;:::i;:::-;11978:25;;12137:1;12069:66;12065:74;12062:1;12059:81;12056:2;;;12143:18;;:::i;:::-;12056:2;12187:1;12184;12180:9;12173:16;;11934:261;;;;:::o;12201:185::-;;12258:20;12276:1;12258:20;:::i;:::-;12253:25;;12292:20;12310:1;12292:20;:::i;:::-;12287:25;;12331:1;12321:2;;12336:18;;:::i;:::-;12321:2;12378:1;12375;12371:9;12366:14;;12243:143;;;;:::o;12392:348::-;;12455:20;12473:1;12455:20;:::i;:::-;12450:25;;12489:20;12507:1;12489:20;:::i;:::-;12484:25;;12677:1;12609:66;12605:74;12602:1;12599:81;12594:1;12587:9;12580:17;12576:105;12573:2;;;12684:18;;:::i;:::-;12573:2;12732:1;12729;12725:9;12714:20;;12440:300;;;;:::o;12746:191::-;;12806:20;12824:1;12806:20;:::i;:::-;12801:25;;12840:20;12858:1;12840:20;:::i;:::-;12835:25;;12879:1;12876;12873:8;12870:2;;;12884:18;;:::i;:::-;12870:2;12929:1;12926;12922:9;12914:17;;12791:146;;;;:::o;12943:96::-;;13009:24;13027:5;13009:24;:::i;:::-;12998:35;;12988:51;;;:::o;13045:104::-;;13119:24;13137:5;13119:24;:::i;:::-;13108:35;;13098:51;;;:::o;13155:90::-;;13232:5;13225:13;13218:21;13207:32;;13197:48;;;:::o;13251:126::-;;13328:42;13321:5;13317:54;13306:65;;13296:81;;;:::o;13383:77::-;;13449:5;13438:16;;13428:32;;;:::o;13466:86::-;;13541:4;13534:5;13530:16;13519:27;;13509:43;;;:::o;13558:307::-;13626:1;13636:113;13650:6;13647:1;13644:13;13636:113;;;13735:1;13730:3;13726:11;13720:18;13716:1;13711:3;13707:11;13700:39;13672:2;13669:1;13665:10;13660:15;;13636:113;;;13767:6;13764:1;13761:13;13758:2;;;13847:1;13838:6;13833:3;13829:16;13822:27;13758:2;13607:258;;;;:::o;13871:320::-;;13952:1;13946:4;13942:12;13932:22;;13999:1;13993:4;13989:12;14020:18;14010:2;;14076:4;14068:6;14064:17;14054:27;;14010:2;14138;14130:6;14127:14;14107:18;14104:38;14101:2;;;14157:18;;:::i;:::-;14101:2;13922:269;;;;:::o;14197:180::-;14245:77;14242:1;14235:88;14342:4;14339:1;14332:15;14366:4;14363:1;14356:15;14383:180;14431:77;14428:1;14421:88;14528:4;14525:1;14518:15;14552:4;14549:1;14542:15;14569:180;14617:77;14614:1;14607:88;14714:4;14711:1;14704:15;14738:4;14735:1;14728:15;14755:102;;14847:2;14843:7;14838:2;14831:5;14827:14;14823:28;14813:38;;14803:54;;;:::o;14863:122::-;14936:24;14954:5;14936:24;:::i;:::-;14929:5;14926:35;14916:2;;14975:1;14972;14965:12;14916:2;14906:79;:::o;14991:122::-;15064:24;15082:5;15064:24;:::i;:::-;15057:5;15054:35;15044:2;;15103:1;15100;15093:12;15044:2;15034:79;:::o

Swarm Source

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