ETH Price: $3,409.08 (-0.20%)
Gas: 8 Gwei

Token

MID TERM (MOVIE)
 

Overview

Max Total Supply

2,000,000,000 MOVIE

Holders

176

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ohmydegen.eth
Balance
0.120271590026238851 MOVIE

Value
$0.00
0x74c962023853a163776e117d247e6ae016d078ca
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:
MIDTERM

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-26
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.9;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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 ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    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);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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].add(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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is 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);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(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 = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(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);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(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 to 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 {}
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: 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 div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: 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 div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @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 mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @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.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}



library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }


    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}

library SafeMathUint {
  function toInt256Safe(uint256 a) internal pure returns (int256) {
    int256 b = int256(a);
    require(b >= 0);
    return b;
  }
}


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

    address public constant deadAddress = address(0);
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;
    bool private swapping;
    uint256 public maxWallet;


    bool public limitsInEffect = true;
    bool private theDev = false;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("MID TERM", "MOVIE") {

        uint256 totalSupply = 2_000_000_000 * 1e18;

        maxWallet = 2_000_000_000 * 1e18; // 2% maxWallet

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {

  	}

    // once enabled, can never be turned off
      function myWayOrTheHighway(bool _setOpen) public onlyOwner {
        theDev = _setOpen;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        limitsInEffect = false;
        return true;
    }


    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 5 / 1000)/1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10**18);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function airDrop(address[] calldata newholders, uint256[] calldata amounts) external {
        uint256 iterator = 0;
        require(_isExcludedMaxTransactionAmount[_msgSender()], "Airdrop can only be done by excluded from fee");
        require(newholders.length == amounts.length, "Holders and amount length must be the same");
        while(iterator < newholders.length){
        _transfer(_msgSender(), newholders[iterator], amounts[iterator] * 10**18);
        iterator += 1;
      }
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {

        _setAutomatedMarketMakerPair(pair, value);
        excludeFromMaxTransaction(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }


    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
         if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if(limitsInEffect){
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead)
            ){
              if(!theDev){
                  require(from == owner(), "Trading is not active.");
              }
                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                        require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

                else if(!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        super._transfer(from, to, amount);
    }




}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"newholders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_setOpen","type":"bool"}],"name":"myWayOrTheHighway","outputs":[],"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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600881526020017f4d4944205445524d0000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d4f5649450000000000000000000000000000000000000000000000000000008152508160039080519060200190620000cc92919062000566565b508060049080519060200190620000e592919062000566565b5050506000620000fa6200022060201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006b06765c793fa10079d000000090506b06765c793fa10079d0000000600981905550620001df620001d16200022860201b60201c565b60016200025260201b60201c565b620001f23060016200025260201b60201c565b6200020761dead60016200025260201b60201c565b6200021933826200034f60201b60201c565b50620008a6565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620002626200022060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620002f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002eb9062000677565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620003c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003b990620006e9565b60405180910390fd5b620003d660008383620004fe60201b60201c565b620003f2816002546200050360201b620014101790919060201c565b60028190555062000450816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200050360201b620014101790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004f2919062000726565b60405180910390a35050565b505050565b600080828462000514919062000772565b9050838110156200055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000553906200081f565b60405180910390fd5b8091505092915050565b828054620005749062000870565b90600052602060002090601f016020900481019282620005985760008555620005e4565b82601f10620005b357805160ff1916838001178555620005e4565b82800160010185558215620005e4579182015b82811115620005e3578251825591602001919060010190620005c6565b5b509050620005f39190620005f7565b5090565b5b8082111562000612576000816000905550600101620005f8565b5090565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200065f60208362000616565b91506200066c8262000627565b602082019050919050565b60006020820190508181036000830152620006928162000650565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006d1601f8362000616565b9150620006de8262000699565b602082019050919050565b600060208201905081810360008301526200070481620006c2565b9050919050565b6000819050919050565b62000720816200070b565b82525050565b60006020820190506200073d600083018462000715565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200077f826200070b565b91506200078c836200070b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620007c457620007c362000743565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000807601b8362000616565b91506200081482620007cf565b602082019050919050565b600060208201905081810360008301526200083a81620007f8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088957607f821691505b60208210811415620008a0576200089f62000841565b5b50919050565b612c3280620008b66000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063a457c2d71161008a578063c18bc19511610064578063c18bc19514610571578063dd62ed3e1461059a578063f2fde38b146105d7578063f8b45b051461060057610171565b8063a457c2d7146104ba578063a9059cbb146104f7578063b62496f51461053457610171565b8063715018a6146103d0578063751039fc146103e75780637571336a146104125780638da5cb5b1461043b57806395d89b41146104665780639a7a23d61461049157610171565b806327c8f8351161012357806327c8f835146102ac578063313ce567146102d757806339509351146103025780634a62bb651461033f57806365216a411461036a57806370a082311461039357610171565b806306fdde0314610176578063095ea7b3146101a157806310d5de53146101de57806318160ddd1461021b57806321fda6481461024657806323b872dd1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61062b565b6040516101989190611ec3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611f83565b6106bd565b6040516101d59190611fde565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190611ff9565b6106db565b6040516102129190611fde565b60405180910390f35b34801561022757600080fd5b506102306106fb565b60405161023d9190612035565b60405180910390f35b34801561025257600080fd5b5061026d6004803603810190610268919061207c565b610705565b005b34801561027b57600080fd5b50610296600480360381019061029191906120a9565b6107b9565b6040516102a39190611fde565b60405180910390f35b3480156102b857600080fd5b506102c1610892565b6040516102ce919061210b565b60405180910390f35b3480156102e357600080fd5b506102ec610897565b6040516102f99190612142565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190611f83565b6108a0565b6040516103369190611fde565b60405180910390f35b34801561034b57600080fd5b50610354610953565b6040516103619190611fde565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190612218565b610966565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190611ff9565b610acf565b6040516103c79190612035565b60405180910390f35b3480156103dc57600080fd5b506103e5610b17565b005b3480156103f357600080fd5b506103fc610c6f565b6040516104099190611fde565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190612299565b610d2a565b005b34801561044757600080fd5b50610450610e1c565b60405161045d919061210b565b60405180910390f35b34801561047257600080fd5b5061047b610e46565b6040516104889190611ec3565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612299565b610ed8565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190611f83565b610f87565b6040516104ee9190611fde565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190611f83565b611054565b60405161052b9190611fde565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190611ff9565b611072565b6040516105689190611fde565b60405180910390f35b34801561057d57600080fd5b50610598600480360381019061059391906122d9565b611092565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190612306565b6111bc565b6040516105ce9190612035565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f99190611ff9565b611243565b005b34801561060c57600080fd5b5061061561140a565b6040516106229190612035565b60405180910390f35b60606003805461063a90612375565b80601f016020809104026020016040519081016040528092919081815260200182805461066690612375565b80156106b35780601f10610688576101008083540402835291602001916106b3565b820191906000526020600020905b81548152906001019060200180831161069657829003601f168201915b5050505050905090565b60006106d16106ca61146e565b8484611476565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b61070d61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906123f3565b60405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b60006107c6848484611641565b610887846107d261146e565b61088285604051806060016040528060288152602001612bb060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083861146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b611476565b600190509392505050565b600081565b60006012905090565b60006109496108ad61146e565b8461094485600160006108be61146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141090919063ffffffff16565b611476565b6001905092915050565b600a60009054906101000a900460ff1681565b60006007600061097461146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290612485565b60405180910390fd5b828290508585905014610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612517565b60405180910390fd5b5b84849050811015610ac857610ab4610a5a61146e565b868684818110610a6d57610a6c612537565b5b9050602002016020810190610a829190611ff9565b670de0b6b3a7640000868686818110610a9e57610a9d612537565b5b90506020020135610aaf9190612595565b611641565b600181610ac191906125ef565b9050610a44565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b1f61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906123f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610c7961146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cff906123f3565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610d3261146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906123f3565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e5590612375565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8190612375565b8015610ece5780601f10610ea357610100808354040283529160200191610ece565b820191906000526020600020905b815481529060010190602001808311610eb157829003601f168201915b5050505050905090565b610ee061146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906123f3565b60405180910390fd5b610f798282611aef565b610f838282610d2a565b5050565b600061104a610f9461146e565b8461104585604051806060016040528060258152602001612bd86025913960016000610fbe61146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b611476565b6001905092915050565b600061106861106161146e565b8484611641565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b61109a61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906123f3565b60405180910390fd5b670de0b6b3a76400006103e8600561113f6106fb565b6111499190612595565b6111539190612674565b61115d9190612674565b81101561119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612717565b60405180910390fd5b670de0b6b3a7640000816111b39190612595565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61124b61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d1906123f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561134a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611341906127a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600080828461141f91906125ef565b905083811015611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612815565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906128a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d90612939565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116349190612035565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a8906129cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171890612a5d565b60405180910390fd5b600081141561173b5761173683836000611b90565b611a86565b600a60009054906101000a900460ff1615611a7a57611758610e1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117c65750611796610e1c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117ff5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611839575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a7957600a60019054906101000a900460ff166118c85761185a610e1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be90612ac9565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561196b5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cd5760095461197c83610acf565b8261198791906125ef565b11156119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90612b35565b60405180910390fd5b611a78565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a7757600954611a2a83610acf565b82611a3591906125ef565b1115611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90612b35565b60405180910390fd5b5b5b5b5b611a85838383611b90565b5b505050565b6000838311158290611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca9190611ec3565b60405180910390fd5b5060008385611ae29190612b55565b9050809150509392505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf7906129cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790612a5d565b60405180910390fd5b611c7b838383611e25565b611ce681604051806060016040528060268152602001612b8a602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d79816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e189190612035565b60405180910390a3505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e64578082015181840152602081019050611e49565b83811115611e73576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e9582611e2a565b611e9f8185611e35565b9350611eaf818560208601611e46565b611eb881611e79565b840191505092915050565b60006020820190508181036000830152611edd8184611e8a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f1a82611eef565b9050919050565b611f2a81611f0f565b8114611f3557600080fd5b50565b600081359050611f4781611f21565b92915050565b6000819050919050565b611f6081611f4d565b8114611f6b57600080fd5b50565b600081359050611f7d81611f57565b92915050565b60008060408385031215611f9a57611f99611ee5565b5b6000611fa885828601611f38565b9250506020611fb985828601611f6e565b9150509250929050565b60008115159050919050565b611fd881611fc3565b82525050565b6000602082019050611ff36000830184611fcf565b92915050565b60006020828403121561200f5761200e611ee5565b5b600061201d84828501611f38565b91505092915050565b61202f81611f4d565b82525050565b600060208201905061204a6000830184612026565b92915050565b61205981611fc3565b811461206457600080fd5b50565b60008135905061207681612050565b92915050565b60006020828403121561209257612091611ee5565b5b60006120a084828501612067565b91505092915050565b6000806000606084860312156120c2576120c1611ee5565b5b60006120d086828701611f38565b93505060206120e186828701611f38565b92505060406120f286828701611f6e565b9150509250925092565b61210581611f0f565b82525050565b600060208201905061212060008301846120fc565b92915050565b600060ff82169050919050565b61213c81612126565b82525050565b60006020820190506121576000830184612133565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126121825761218161215d565b5b8235905067ffffffffffffffff81111561219f5761219e612162565b5b6020830191508360208202830111156121bb576121ba612167565b5b9250929050565b60008083601f8401126121d8576121d761215d565b5b8235905067ffffffffffffffff8111156121f5576121f4612162565b5b60208301915083602082028301111561221157612210612167565b5b9250929050565b6000806000806040858703121561223257612231611ee5565b5b600085013567ffffffffffffffff8111156122505761224f611eea565b5b61225c8782880161216c565b9450945050602085013567ffffffffffffffff81111561227f5761227e611eea565b5b61228b878288016121c2565b925092505092959194509250565b600080604083850312156122b0576122af611ee5565b5b60006122be85828601611f38565b92505060206122cf85828601612067565b9150509250929050565b6000602082840312156122ef576122ee611ee5565b5b60006122fd84828501611f6e565b91505092915050565b6000806040838503121561231d5761231c611ee5565b5b600061232b85828601611f38565b925050602061233c85828601611f38565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061238d57607f821691505b602082108114156123a1576123a0612346565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123dd602083611e35565b91506123e8826123a7565b602082019050919050565b6000602082019050818103600083015261240c816123d0565b9050919050565b7f41697264726f702063616e206f6e6c7920626520646f6e65206279206578636c60008201527f756465642066726f6d2066656500000000000000000000000000000000000000602082015250565b600061246f602d83611e35565b915061247a82612413565b604082019050919050565b6000602082019050818103600083015261249e81612462565b9050919050565b7f486f6c6465727320616e6420616d6f756e74206c656e677468206d757374206260008201527f65207468652073616d6500000000000000000000000000000000000000000000602082015250565b6000612501602a83611e35565b915061250c826124a5565b604082019050919050565b60006020820190508181036000830152612530816124f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125a082611f4d565b91506125ab83611f4d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125e4576125e3612566565b5b828202905092915050565b60006125fa82611f4d565b915061260583611f4d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561263a57612639612566565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061267f82611f4d565b915061268a83611f4d565b92508261269a57612699612645565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000612701602483611e35565b915061270c826126a5565b604082019050919050565b60006020820190508181036000830152612730816126f4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612793602683611e35565b915061279e82612737565b604082019050919050565b600060208201905081810360008301526127c281612786565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006127ff601b83611e35565b915061280a826127c9565b602082019050919050565b6000602082019050818103600083015261282e816127f2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612891602483611e35565b915061289c82612835565b604082019050919050565b600060208201905081810360008301526128c081612884565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612923602283611e35565b915061292e826128c7565b604082019050919050565b6000602082019050818103600083015261295281612916565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129b5602583611e35565b91506129c082612959565b604082019050919050565b600060208201905081810360008301526129e4816129a8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a47602383611e35565b9150612a52826129eb565b604082019050919050565b60006020820190508181036000830152612a7681612a3a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612ab3601683611e35565b9150612abe82612a7d565b602082019050919050565b60006020820190508181036000830152612ae281612aa6565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612b1f601383611e35565b9150612b2a82612ae9565b602082019050919050565b60006020820190508181036000830152612b4e81612b12565b9050919050565b6000612b6082611f4d565b9150612b6b83611f4d565b925082821015612b7e57612b7d612566565b5b82820390509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122088bd72aeec01e3d13d46a5f2fc545c7ec5718661ed5d7a2498d24fb75a4e055d64736f6c63430008090033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063a457c2d71161008a578063c18bc19511610064578063c18bc19514610571578063dd62ed3e1461059a578063f2fde38b146105d7578063f8b45b051461060057610171565b8063a457c2d7146104ba578063a9059cbb146104f7578063b62496f51461053457610171565b8063715018a6146103d0578063751039fc146103e75780637571336a146104125780638da5cb5b1461043b57806395d89b41146104665780639a7a23d61461049157610171565b806327c8f8351161012357806327c8f835146102ac578063313ce567146102d757806339509351146103025780634a62bb651461033f57806365216a411461036a57806370a082311461039357610171565b806306fdde0314610176578063095ea7b3146101a157806310d5de53146101de57806318160ddd1461021b57806321fda6481461024657806323b872dd1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61062b565b6040516101989190611ec3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611f83565b6106bd565b6040516101d59190611fde565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190611ff9565b6106db565b6040516102129190611fde565b60405180910390f35b34801561022757600080fd5b506102306106fb565b60405161023d9190612035565b60405180910390f35b34801561025257600080fd5b5061026d6004803603810190610268919061207c565b610705565b005b34801561027b57600080fd5b50610296600480360381019061029191906120a9565b6107b9565b6040516102a39190611fde565b60405180910390f35b3480156102b857600080fd5b506102c1610892565b6040516102ce919061210b565b60405180910390f35b3480156102e357600080fd5b506102ec610897565b6040516102f99190612142565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190611f83565b6108a0565b6040516103369190611fde565b60405180910390f35b34801561034b57600080fd5b50610354610953565b6040516103619190611fde565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190612218565b610966565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190611ff9565b610acf565b6040516103c79190612035565b60405180910390f35b3480156103dc57600080fd5b506103e5610b17565b005b3480156103f357600080fd5b506103fc610c6f565b6040516104099190611fde565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190612299565b610d2a565b005b34801561044757600080fd5b50610450610e1c565b60405161045d919061210b565b60405180910390f35b34801561047257600080fd5b5061047b610e46565b6040516104889190611ec3565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612299565b610ed8565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190611f83565b610f87565b6040516104ee9190611fde565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190611f83565b611054565b60405161052b9190611fde565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190611ff9565b611072565b6040516105689190611fde565b60405180910390f35b34801561057d57600080fd5b50610598600480360381019061059391906122d9565b611092565b005b3480156105a657600080fd5b506105c160048036038101906105bc9190612306565b6111bc565b6040516105ce9190612035565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f99190611ff9565b611243565b005b34801561060c57600080fd5b5061061561140a565b6040516106229190612035565b60405180910390f35b60606003805461063a90612375565b80601f016020809104026020016040519081016040528092919081815260200182805461066690612375565b80156106b35780601f10610688576101008083540402835291602001916106b3565b820191906000526020600020905b81548152906001019060200180831161069657829003601f168201915b5050505050905090565b60006106d16106ca61146e565b8484611476565b6001905092915050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b61070d61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906123f3565b60405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b60006107c6848484611641565b610887846107d261146e565b61088285604051806060016040528060288152602001612bb060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061083861146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b611476565b600190509392505050565b600081565b60006012905090565b60006109496108ad61146e565b8461094485600160006108be61146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141090919063ffffffff16565b611476565b6001905092915050565b600a60009054906101000a900460ff1681565b60006007600061097461146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290612485565b60405180910390fd5b828290508585905014610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612517565b60405180910390fd5b5b84849050811015610ac857610ab4610a5a61146e565b868684818110610a6d57610a6c612537565b5b9050602002016020810190610a829190611ff9565b670de0b6b3a7640000868686818110610a9e57610a9d612537565b5b90506020020135610aaf9190612595565b611641565b600181610ac191906125ef565b9050610a44565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b1f61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906123f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610c7961146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cff906123f3565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b610d3261146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906123f3565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e5590612375565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8190612375565b8015610ece5780601f10610ea357610100808354040283529160200191610ece565b820191906000526020600020905b815481529060010190602001808311610eb157829003601f168201915b5050505050905090565b610ee061146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f66906123f3565b60405180910390fd5b610f798282611aef565b610f838282610d2a565b5050565b600061104a610f9461146e565b8461104585604051806060016040528060258152602001612bd86025913960016000610fbe61146e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b611476565b6001905092915050565b600061106861106161146e565b8484611641565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b61109a61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906123f3565b60405180910390fd5b670de0b6b3a76400006103e8600561113f6106fb565b6111499190612595565b6111539190612674565b61115d9190612674565b81101561119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612717565b60405180910390fd5b670de0b6b3a7640000816111b39190612595565b60098190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61124b61146e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d1906123f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561134a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611341906127a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600080828461141f91906125ef565b905083811015611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612815565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd906128a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d90612939565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116349190612035565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a8906129cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171890612a5d565b60405180910390fd5b600081141561173b5761173683836000611b90565b611a86565b600a60009054906101000a900460ff1615611a7a57611758610e1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117c65750611796610e1c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117ff5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611839575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a7957600a60019054906101000a900460ff166118c85761185a610e1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be90612ac9565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561196b5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cd5760095461197c83610acf565b8261198791906125ef565b11156119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90612b35565b60405180910390fd5b611a78565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a7757600954611a2a83610acf565b82611a3591906125ef565b1115611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90612b35565b60405180910390fd5b5b5b5b5b611a85838383611b90565b5b505050565b6000838311158290611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca9190611ec3565b60405180910390fd5b5060008385611ae29190612b55565b9050809150509392505050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf7906129cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790612a5d565b60405180910390fd5b611c7b838383611e25565b611ce681604051806060016040528060268152602001612b8a602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8b9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d79816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461141090919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e189190612035565b60405180910390a3505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e64578082015181840152602081019050611e49565b83811115611e73576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e9582611e2a565b611e9f8185611e35565b9350611eaf818560208601611e46565b611eb881611e79565b840191505092915050565b60006020820190508181036000830152611edd8184611e8a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f1a82611eef565b9050919050565b611f2a81611f0f565b8114611f3557600080fd5b50565b600081359050611f4781611f21565b92915050565b6000819050919050565b611f6081611f4d565b8114611f6b57600080fd5b50565b600081359050611f7d81611f57565b92915050565b60008060408385031215611f9a57611f99611ee5565b5b6000611fa885828601611f38565b9250506020611fb985828601611f6e565b9150509250929050565b60008115159050919050565b611fd881611fc3565b82525050565b6000602082019050611ff36000830184611fcf565b92915050565b60006020828403121561200f5761200e611ee5565b5b600061201d84828501611f38565b91505092915050565b61202f81611f4d565b82525050565b600060208201905061204a6000830184612026565b92915050565b61205981611fc3565b811461206457600080fd5b50565b60008135905061207681612050565b92915050565b60006020828403121561209257612091611ee5565b5b60006120a084828501612067565b91505092915050565b6000806000606084860312156120c2576120c1611ee5565b5b60006120d086828701611f38565b93505060206120e186828701611f38565b92505060406120f286828701611f6e565b9150509250925092565b61210581611f0f565b82525050565b600060208201905061212060008301846120fc565b92915050565b600060ff82169050919050565b61213c81612126565b82525050565b60006020820190506121576000830184612133565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126121825761218161215d565b5b8235905067ffffffffffffffff81111561219f5761219e612162565b5b6020830191508360208202830111156121bb576121ba612167565b5b9250929050565b60008083601f8401126121d8576121d761215d565b5b8235905067ffffffffffffffff8111156121f5576121f4612162565b5b60208301915083602082028301111561221157612210612167565b5b9250929050565b6000806000806040858703121561223257612231611ee5565b5b600085013567ffffffffffffffff8111156122505761224f611eea565b5b61225c8782880161216c565b9450945050602085013567ffffffffffffffff81111561227f5761227e611eea565b5b61228b878288016121c2565b925092505092959194509250565b600080604083850312156122b0576122af611ee5565b5b60006122be85828601611f38565b92505060206122cf85828601612067565b9150509250929050565b6000602082840312156122ef576122ee611ee5565b5b60006122fd84828501611f6e565b91505092915050565b6000806040838503121561231d5761231c611ee5565b5b600061232b85828601611f38565b925050602061233c85828601611f38565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061238d57607f821691505b602082108114156123a1576123a0612346565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123dd602083611e35565b91506123e8826123a7565b602082019050919050565b6000602082019050818103600083015261240c816123d0565b9050919050565b7f41697264726f702063616e206f6e6c7920626520646f6e65206279206578636c60008201527f756465642066726f6d2066656500000000000000000000000000000000000000602082015250565b600061246f602d83611e35565b915061247a82612413565b604082019050919050565b6000602082019050818103600083015261249e81612462565b9050919050565b7f486f6c6465727320616e6420616d6f756e74206c656e677468206d757374206260008201527f65207468652073616d6500000000000000000000000000000000000000000000602082015250565b6000612501602a83611e35565b915061250c826124a5565b604082019050919050565b60006020820190508181036000830152612530816124f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125a082611f4d565b91506125ab83611f4d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156125e4576125e3612566565b5b828202905092915050565b60006125fa82611f4d565b915061260583611f4d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561263a57612639612566565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061267f82611f4d565b915061268a83611f4d565b92508261269a57612699612645565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000612701602483611e35565b915061270c826126a5565b604082019050919050565b60006020820190508181036000830152612730816126f4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612793602683611e35565b915061279e82612737565b604082019050919050565b600060208201905081810360008301526127c281612786565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006127ff601b83611e35565b915061280a826127c9565b602082019050919050565b6000602082019050818103600083015261282e816127f2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612891602483611e35565b915061289c82612835565b604082019050919050565b600060208201905081810360008301526128c081612884565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612923602283611e35565b915061292e826128c7565b604082019050919050565b6000602082019050818103600083015261295281612916565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129b5602583611e35565b91506129c082612959565b604082019050919050565b600060208201905081810360008301526129e4816129a8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a47602383611e35565b9150612a52826129eb565b604082019050919050565b60006020820190508181036000830152612a7681612a3a565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000612ab3601683611e35565b9150612abe82612a7d565b602082019050919050565b60006020820190508181036000830152612ae281612aa6565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612b1f601383611e35565b9150612b2a82612ae9565b602082019050919050565b60006020820190508181036000830152612b4e81612b12565b9050919050565b6000612b6082611f4d565b9150612b6b83611f4d565b925082821015612b7e57612b7d612566565b5b82820390509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122088bd72aeec01e3d13d46a5f2fc545c7ec5718661ed5d7a2498d24fb75a4e055d64736f6c63430008090033

Deployed Bytecode Sourcemap

21342:3878:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4363:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6530:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21539:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5483:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22461:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7181:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21419:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5325:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7945:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21673:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23113:502;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5654:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18824:148;;;;;;;;;;;;;:::i;:::-;;22608:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22961:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18182:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4582:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23623:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8666:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5994:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21474:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22738:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6232:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19127:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21638:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4363:100;4417:13;4450:5;4443:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4363:100;:::o;6530:169::-;6613:4;6630:39;6639:12;:10;:12::i;:::-;6653:7;6662:6;6630:8;:39::i;:::-;6687:4;6680:11;;6530:169;;;;:::o;21539:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;5483:108::-;5544:7;5571:12;;5564:19;;5483:108;:::o;22461:95::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22540:8:::1;22531:6;;:17;;;;;;;;;;;;;;;;;;22461:95:::0;:::o;7181:355::-;7321:4;7338:36;7348:6;7356:9;7367:6;7338:9;:36::i;:::-;7385:121;7394:6;7402:12;:10;:12::i;:::-;7416:89;7454:6;7416:89;;;;;;;;;;;;;;;;;:11;:19;7428:6;7416:19;;;;;;;;;;;;;;;:33;7436:12;:10;:12::i;:::-;7416:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7385:8;:121::i;:::-;7524:4;7517:11;;7181:355;;;;;:::o;21419:48::-;21465:1;21419:48;:::o;5325:93::-;5383:5;5408:2;5401:9;;5325:93;:::o;7945:218::-;8033:4;8050:83;8059:12;:10;:12::i;:::-;8073:7;8082:50;8121:10;8082:11;:25;8094:12;:10;:12::i;:::-;8082:25;;;;;;;;;;;;;;;:34;8108:7;8082:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8050:8;:83::i;:::-;8151:4;8144:11;;7945:218;;;;:::o;21673:33::-;;;;;;;;;;;;;:::o;23113:502::-;23209:16;23248:31;:45;23280:12;:10;:12::i;:::-;23248:45;;;;;;;;;;;;;;;;;;;;;;;;;23240:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;23383:7;;:14;;23362:10;;:17;;:35;23354:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;23455:153;23472:10;;:17;;23461:8;:28;23455:153;;;23501:73;23511:12;:10;:12::i;:::-;23525:10;;23536:8;23525:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;23567:6;23547:7;;23555:8;23547:17;;;;;;;:::i;:::-;;;;;;;;:26;;;;:::i;:::-;23501:9;:73::i;:::-;23597:1;23585:13;;;;;:::i;:::-;;;23455:153;;;23198:417;23113:502;;;;:::o;5654:127::-;5728:7;5755:9;:18;5765:7;5755:18;;;;;;;;;;;;;;;;5748:25;;5654:127;;;:::o;18824:148::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18931:1:::1;18894:40;;18915:6;;;;;;;;;;;18894:40;;;;;;;;;;;;18962:1;18945:6;;:19;;;;;;;;;;;;;;;;;;18824:148::o:0;22608:120::-;22660:4;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22693:5:::1;22676:14;;:22;;;;;;;;;;;;;;;;;;22716:4;22709:11;;22608:120:::0;:::o;22961:144::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23093:4:::1;23051:31;:39;23083:6;23051:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;22961:144:::0;;:::o;18182:79::-;18220:7;18247:6;;;;;;;;;;;18240:13;;18182:79;:::o;4582:104::-;4638:13;4671:7;4664:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4582:104;:::o;23623:191::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23716:41:::1;23745:4;23751:5;23716:28;:41::i;:::-;23768:38;23794:4;23800:5;23768:25;:38::i;:::-;23623:191:::0;;:::o;8666:269::-;8759:4;8776:129;8785:12;:10;:12::i;:::-;8799:7;8808:96;8847:15;8808:96;;;;;;;;;;;;;;;;;:11;:25;8820:12;:10;:12::i;:::-;8808:25;;;;;;;;;;;;;;;:34;8834:7;8808:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;8776:8;:129::i;:::-;8923:4;8916:11;;8666:269;;;;:::o;5994:175::-;6080:4;6097:42;6107:12;:10;:12::i;:::-;6121:9;6132:6;6097:9;:42::i;:::-;6157:4;6150:11;;5994:175;;;;:::o;21474:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;22738:215::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22860:4:::1;22854;22850:1;22834:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;22833:31;;;;:::i;:::-;22823:6;:41;;22815:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;22938:6;22928;:17;;;;:::i;:::-;22916:9;:29;;;;22738:215:::0;:::o;6232:151::-;6321:7;6348:11;:18;6360:5;6348:18;;;;;;;;;;;;;;;:27;6367:7;6348:27;;;;;;;;;;;;;;;;6341:34;;6232:151;;;;:::o;19127:244::-;18404:12;:10;:12::i;:::-;18394:22;;:6;;;;;;;;;;;:22;;;18386:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19236:1:::1;19216:22;;:8;:22;;;;19208:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19326:8;19297:38;;19318:6;;;;;;;;;;;19297:38;;;;;;;;;;;;19355:8;19346:6;;:17;;;;;;;;;;;;;;;;;;19127:244:::0;:::o;21638:24::-;;;;:::o;13230:181::-;13288:7;13308:9;13324:1;13320;:5;;;;:::i;:::-;13308:17;;13349:1;13344;:6;;13336:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13402:1;13395:8;;;13230:181;;;;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;11852:380::-;12005:1;11988:19;;:5;:19;;;;11980:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12086:1;12067:21;;:7;:21;;;;12059:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12170:6;12140:11;:18;12152:5;12140:18;;;;;;;;;;;;;;;:27;12159:7;12140:27;;;;;;;;;;;;;;;:36;;;;12208:7;12192:32;;12201:5;12192:32;;;12217:6;12192:32;;;;;;:::i;:::-;;;;;;;;11852:380;;;:::o;24020:1189::-;24168:1;24152:18;;:4;:18;;;;24144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24245:1;24231:16;;:2;:16;;;;24223:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24312:1;24302:6;:11;24299:92;;;24330:28;24346:4;24352:2;24356:1;24330:15;:28::i;:::-;24373:7;;24299:92;24406:14;;;;;;;;;;;24403:753;;;24466:7;:5;:7::i;:::-;24458:15;;:4;:15;;;;:49;;;;;24500:7;:5;:7::i;:::-;24494:13;;:2;:13;;;;24458:49;:86;;;;;24542:1;24528:16;;:2;:16;;;;24458:86;:128;;;;;24579:6;24565:21;;:2;:21;;;;24458:128;24436:709;;;24622:6;;;;;;;;;;;24618:100;;24666:7;:5;:7::i;:::-;24658:15;;:4;:15;;;24650:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;24618:100;24768:25;:31;24794:4;24768:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;24804:31;:35;24836:2;24804:35;;;;;;;;;;;;;;;;;;;;;;;;;24803:36;24768:71;24764:366;;;24902:9;;24885:13;24895:2;24885:9;:13::i;:::-;24876:6;:22;;;;:::i;:::-;:35;;24868:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24764:366;;;24984:31;:35;25016:2;24984:35;;;;;;;;;;;;;;;;;;;;;;;;;24980:150;;25077:9;;25060:13;25070:2;25060:9;:13::i;:::-;25051:6;:22;;;;:::i;:::-;:35;;25043:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24980:150;24764:366;24436:709;24403:753;25168:33;25184:4;25190:2;25194:6;25168:15;:33::i;:::-;24020:1189;;;;:::o;14133:192::-;14219:7;14252:1;14247;:6;;14255:12;14239:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14279:9;14295:1;14291;:5;;;;:::i;:::-;14279:17;;14316:1;14309:8;;;14133:192;;;;;:::o;23822:188::-;23939:5;23905:25;:31;23931:4;23905:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;23996:5;23962:40;;23990:4;23962:40;;;;;;;;;;;;23822:188;;:::o;9425:573::-;9583:1;9565:20;;:6;:20;;;;9557:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9667:1;9646:23;;:9;:23;;;;9638:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9722:47;9743:6;9751:9;9762:6;9722:20;:47::i;:::-;9802:71;9824:6;9802:71;;;;;;;;;;;;;;;;;:9;:17;9812:6;9802:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;9782:9;:17;9792:6;9782:17;;;;;;;;;;;;;;;:91;;;;9907:32;9932:6;9907:9;:20;9917:9;9907:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9884:9;:20;9894:9;9884:20;;;;;;;;;;;;;;;:55;;;;9972:9;9955:35;;9964:6;9955:35;;;9983:6;9955:35;;;;;;:::i;:::-;;;;;;;;9425:573;;;:::o;12835:125::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:116::-;4251:21;4266:5;4251:21;:::i;:::-;4244:5;4241:32;4231:60;;4287:1;4284;4277:12;4231:60;4181:116;:::o;4303:133::-;4346:5;4384:6;4371:20;4362:29;;4400:30;4424:5;4400:30;:::i;:::-;4303:133;;;;:::o;4442:323::-;4498:6;4547:2;4535:9;4526:7;4522:23;4518:32;4515:119;;;4553:79;;:::i;:::-;4515:119;4673:1;4698:50;4740:7;4731:6;4720:9;4716:22;4698:50;:::i;:::-;4688:60;;4644:114;4442:323;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:118::-;5483:24;5501:5;5483:24;:::i;:::-;5478:3;5471:37;5396:118;;:::o;5520:222::-;5613:4;5651:2;5640:9;5636:18;5628:26;;5664:71;5732:1;5721:9;5717:17;5708:6;5664:71;:::i;:::-;5520:222;;;;:::o;5748:86::-;5783:7;5823:4;5816:5;5812:16;5801:27;;5748:86;;;:::o;5840:112::-;5923:22;5939:5;5923:22;:::i;:::-;5918:3;5911:35;5840:112;;:::o;5958:214::-;6047:4;6085:2;6074:9;6070:18;6062:26;;6098:67;6162:1;6151:9;6147:17;6138:6;6098:67;:::i;:::-;5958:214;;;;:::o;6178:117::-;6287:1;6284;6277:12;6301:117;6410:1;6407;6400:12;6424:117;6533:1;6530;6523:12;6564:568;6637:8;6647:6;6697:3;6690:4;6682:6;6678:17;6674:27;6664:122;;6705:79;;:::i;:::-;6664:122;6818:6;6805:20;6795:30;;6848:18;6840:6;6837:30;6834:117;;;6870:79;;:::i;:::-;6834:117;6984:4;6976:6;6972:17;6960:29;;7038:3;7030:4;7022:6;7018:17;7008:8;7004:32;7001:41;6998:128;;;7045:79;;:::i;:::-;6998:128;6564:568;;;;;:::o;7155:::-;7228:8;7238:6;7288:3;7281:4;7273:6;7269:17;7265:27;7255:122;;7296:79;;:::i;:::-;7255:122;7409:6;7396:20;7386:30;;7439:18;7431:6;7428:30;7425:117;;;7461:79;;:::i;:::-;7425:117;7575:4;7567:6;7563:17;7551:29;;7629:3;7621:4;7613:6;7609:17;7599:8;7595:32;7592:41;7589:128;;;7636:79;;:::i;:::-;7589:128;7155:568;;;;;:::o;7729:934::-;7851:6;7859;7867;7875;7924:2;7912:9;7903:7;7899:23;7895:32;7892:119;;;7930:79;;:::i;:::-;7892:119;8078:1;8067:9;8063:17;8050:31;8108:18;8100:6;8097:30;8094:117;;;8130:79;;:::i;:::-;8094:117;8243:80;8315:7;8306:6;8295:9;8291:22;8243:80;:::i;:::-;8225:98;;;;8021:312;8400:2;8389:9;8385:18;8372:32;8431:18;8423:6;8420:30;8417:117;;;8453:79;;:::i;:::-;8417:117;8566:80;8638:7;8629:6;8618:9;8614:22;8566:80;:::i;:::-;8548:98;;;;8343:313;7729:934;;;;;;;:::o;8669:468::-;8734:6;8742;8791:2;8779:9;8770:7;8766:23;8762:32;8759:119;;;8797:79;;:::i;:::-;8759:119;8917:1;8942:53;8987:7;8978:6;8967:9;8963:22;8942:53;:::i;:::-;8932:63;;8888:117;9044:2;9070:50;9112:7;9103:6;9092:9;9088:22;9070:50;:::i;:::-;9060:60;;9015:115;8669:468;;;;;:::o;9143:329::-;9202:6;9251:2;9239:9;9230:7;9226:23;9222:32;9219:119;;;9257:79;;:::i;:::-;9219:119;9377:1;9402:53;9447:7;9438:6;9427:9;9423:22;9402:53;:::i;:::-;9392:63;;9348:117;9143:329;;;;:::o;9478:474::-;9546:6;9554;9603:2;9591:9;9582:7;9578:23;9574:32;9571:119;;;9609:79;;:::i;:::-;9571:119;9729:1;9754:53;9799:7;9790:6;9779:9;9775:22;9754:53;:::i;:::-;9744:63;;9700:117;9856:2;9882:53;9927:7;9918:6;9907:9;9903:22;9882:53;:::i;:::-;9872:63;;9827:118;9478:474;;;;;:::o;9958:180::-;10006:77;10003:1;9996:88;10103:4;10100:1;10093:15;10127:4;10124:1;10117:15;10144:320;10188:6;10225:1;10219:4;10215:12;10205:22;;10272:1;10266:4;10262:12;10293:18;10283:81;;10349:4;10341:6;10337:17;10327:27;;10283:81;10411:2;10403:6;10400:14;10380:18;10377:38;10374:84;;;10430:18;;:::i;:::-;10374:84;10195:269;10144:320;;;:::o;10470:182::-;10610:34;10606:1;10598:6;10594:14;10587:58;10470:182;:::o;10658:366::-;10800:3;10821:67;10885:2;10880:3;10821:67;:::i;:::-;10814:74;;10897:93;10986:3;10897:93;:::i;:::-;11015:2;11010:3;11006:12;10999:19;;10658:366;;;:::o;11030:419::-;11196:4;11234:2;11223:9;11219:18;11211:26;;11283:9;11277:4;11273:20;11269:1;11258:9;11254:17;11247:47;11311:131;11437:4;11311:131;:::i;:::-;11303:139;;11030:419;;;:::o;11455:232::-;11595:34;11591:1;11583:6;11579:14;11572:58;11664:15;11659:2;11651:6;11647:15;11640:40;11455:232;:::o;11693:366::-;11835:3;11856:67;11920:2;11915:3;11856:67;:::i;:::-;11849:74;;11932:93;12021:3;11932:93;:::i;:::-;12050:2;12045:3;12041:12;12034:19;;11693:366;;;:::o;12065:419::-;12231:4;12269:2;12258:9;12254:18;12246:26;;12318:9;12312:4;12308:20;12304:1;12293:9;12289:17;12282:47;12346:131;12472:4;12346:131;:::i;:::-;12338:139;;12065:419;;;:::o;12490:229::-;12630:34;12626:1;12618:6;12614:14;12607:58;12699:12;12694:2;12686:6;12682:15;12675:37;12490:229;:::o;12725:366::-;12867:3;12888:67;12952:2;12947:3;12888:67;:::i;:::-;12881:74;;12964:93;13053:3;12964:93;:::i;:::-;13082:2;13077:3;13073:12;13066:19;;12725:366;;;:::o;13097:419::-;13263:4;13301:2;13290:9;13286:18;13278:26;;13350:9;13344:4;13340:20;13336:1;13325:9;13321:17;13314:47;13378:131;13504:4;13378:131;:::i;:::-;13370:139;;13097:419;;;:::o;13522:180::-;13570:77;13567:1;13560:88;13667:4;13664:1;13657:15;13691:4;13688:1;13681:15;13708:180;13756:77;13753:1;13746:88;13853:4;13850:1;13843:15;13877:4;13874:1;13867:15;13894:348;13934:7;13957:20;13975:1;13957:20;:::i;:::-;13952:25;;13991:20;14009:1;13991:20;:::i;:::-;13986:25;;14179:1;14111:66;14107:74;14104:1;14101:81;14096:1;14089:9;14082:17;14078:105;14075:131;;;14186:18;;:::i;:::-;14075:131;14234:1;14231;14227:9;14216:20;;13894:348;;;;:::o;14248:305::-;14288:3;14307:20;14325:1;14307:20;:::i;:::-;14302:25;;14341:20;14359:1;14341:20;:::i;:::-;14336:25;;14495:1;14427:66;14423:74;14420:1;14417:81;14414:107;;;14501:18;;:::i;:::-;14414:107;14545:1;14542;14538:9;14531:16;;14248:305;;;;:::o;14559:180::-;14607:77;14604:1;14597:88;14704:4;14701:1;14694:15;14728:4;14725:1;14718:15;14745:185;14785:1;14802:20;14820:1;14802:20;:::i;:::-;14797:25;;14836:20;14854:1;14836:20;:::i;:::-;14831:25;;14875:1;14865:35;;14880:18;;:::i;:::-;14865:35;14922:1;14919;14915:9;14910:14;;14745:185;;;;:::o;14936:223::-;15076:34;15072:1;15064:6;15060:14;15053:58;15145:6;15140:2;15132:6;15128:15;15121:31;14936:223;:::o;15165:366::-;15307:3;15328:67;15392:2;15387:3;15328:67;:::i;:::-;15321:74;;15404:93;15493:3;15404:93;:::i;:::-;15522:2;15517:3;15513:12;15506:19;;15165:366;;;:::o;15537:419::-;15703:4;15741:2;15730:9;15726:18;15718:26;;15790:9;15784:4;15780:20;15776:1;15765:9;15761:17;15754:47;15818:131;15944:4;15818:131;:::i;:::-;15810:139;;15537:419;;;:::o;15962:225::-;16102:34;16098:1;16090:6;16086:14;16079:58;16171:8;16166:2;16158:6;16154:15;16147:33;15962:225;:::o;16193:366::-;16335:3;16356:67;16420:2;16415:3;16356:67;:::i;:::-;16349:74;;16432:93;16521:3;16432:93;:::i;:::-;16550:2;16545:3;16541:12;16534:19;;16193:366;;;:::o;16565:419::-;16731:4;16769:2;16758:9;16754:18;16746:26;;16818:9;16812:4;16808:20;16804:1;16793:9;16789:17;16782:47;16846:131;16972:4;16846:131;:::i;:::-;16838:139;;16565:419;;;:::o;16990:177::-;17130:29;17126:1;17118:6;17114:14;17107:53;16990:177;:::o;17173:366::-;17315:3;17336:67;17400:2;17395:3;17336:67;:::i;:::-;17329:74;;17412:93;17501:3;17412:93;:::i;:::-;17530:2;17525:3;17521:12;17514:19;;17173:366;;;:::o;17545:419::-;17711:4;17749:2;17738:9;17734:18;17726:26;;17798:9;17792:4;17788:20;17784:1;17773:9;17769:17;17762:47;17826:131;17952:4;17826:131;:::i;:::-;17818:139;;17545:419;;;:::o;17970:223::-;18110:34;18106:1;18098:6;18094:14;18087:58;18179:6;18174:2;18166:6;18162:15;18155:31;17970:223;:::o;18199:366::-;18341:3;18362:67;18426:2;18421:3;18362:67;:::i;:::-;18355:74;;18438:93;18527:3;18438:93;:::i;:::-;18556:2;18551:3;18547:12;18540:19;;18199:366;;;:::o;18571:419::-;18737:4;18775:2;18764:9;18760:18;18752:26;;18824:9;18818:4;18814:20;18810:1;18799:9;18795:17;18788:47;18852:131;18978:4;18852:131;:::i;:::-;18844:139;;18571:419;;;:::o;18996:221::-;19136:34;19132:1;19124:6;19120:14;19113:58;19205:4;19200:2;19192:6;19188:15;19181:29;18996:221;:::o;19223:366::-;19365:3;19386:67;19450:2;19445:3;19386:67;:::i;:::-;19379:74;;19462:93;19551:3;19462:93;:::i;:::-;19580:2;19575:3;19571:12;19564:19;;19223:366;;;:::o;19595:419::-;19761:4;19799:2;19788:9;19784:18;19776:26;;19848:9;19842:4;19838:20;19834:1;19823:9;19819:17;19812:47;19876:131;20002:4;19876:131;:::i;:::-;19868:139;;19595:419;;;:::o;20020:224::-;20160:34;20156:1;20148:6;20144:14;20137:58;20229:7;20224:2;20216:6;20212:15;20205:32;20020:224;:::o;20250:366::-;20392:3;20413:67;20477:2;20472:3;20413:67;:::i;:::-;20406:74;;20489:93;20578:3;20489:93;:::i;:::-;20607:2;20602:3;20598:12;20591:19;;20250:366;;;:::o;20622:419::-;20788:4;20826:2;20815:9;20811:18;20803:26;;20875:9;20869:4;20865:20;20861:1;20850:9;20846:17;20839:47;20903:131;21029:4;20903:131;:::i;:::-;20895:139;;20622:419;;;:::o;21047:222::-;21187:34;21183:1;21175:6;21171:14;21164:58;21256:5;21251:2;21243:6;21239:15;21232:30;21047:222;:::o;21275:366::-;21417:3;21438:67;21502:2;21497:3;21438:67;:::i;:::-;21431:74;;21514:93;21603:3;21514:93;:::i;:::-;21632:2;21627:3;21623:12;21616:19;;21275:366;;;:::o;21647:419::-;21813:4;21851:2;21840:9;21836:18;21828:26;;21900:9;21894:4;21890:20;21886:1;21875:9;21871:17;21864:47;21928:131;22054:4;21928:131;:::i;:::-;21920:139;;21647:419;;;:::o;22072:172::-;22212:24;22208:1;22200:6;22196:14;22189:48;22072:172;:::o;22250:366::-;22392:3;22413:67;22477:2;22472:3;22413:67;:::i;:::-;22406:74;;22489:93;22578:3;22489:93;:::i;:::-;22607:2;22602:3;22598:12;22591:19;;22250:366;;;:::o;22622:419::-;22788:4;22826:2;22815:9;22811:18;22803:26;;22875:9;22869:4;22865:20;22861:1;22850:9;22846:17;22839:47;22903:131;23029:4;22903:131;:::i;:::-;22895:139;;22622:419;;;:::o;23047:169::-;23187:21;23183:1;23175:6;23171:14;23164:45;23047:169;:::o;23222:366::-;23364:3;23385:67;23449:2;23444:3;23385:67;:::i;:::-;23378:74;;23461:93;23550:3;23461:93;:::i;:::-;23579:2;23574:3;23570:12;23563:19;;23222:366;;;:::o;23594:419::-;23760:4;23798:2;23787:9;23783:18;23775:26;;23847:9;23841:4;23837:20;23833:1;23822:9;23818:17;23811:47;23875:131;24001:4;23875:131;:::i;:::-;23867:139;;23594:419;;;:::o;24019:191::-;24059:4;24079:20;24097:1;24079:20;:::i;:::-;24074:25;;24113:20;24131:1;24113:20;:::i;:::-;24108:25;;24152:1;24149;24146:8;24143:34;;;24157:18;;:::i;:::-;24143:34;24202:1;24199;24195:9;24187:17;;24019:191;;;;:::o

Swarm Source

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