ETH Price: $3,278.25 (-1.86%)

Token

mELON.finance (mELON)
 

Overview

Max Total Supply

100,000,000,000,000,000 mELON

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,042,431,746,009,256.84802177 mELON

Value
$0.00
0x136f4b5b6a306091b280e3f251fa0e21b1280cd5
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:
mELONtoken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-01
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.6.12;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        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.
     *
     * 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;
    }
}

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

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 () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

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

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
    
    mapping (address => bool) private BOTtoScan;
    
    bool _contractRunning;
    
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = 'mELON.finance';
    string private _symbol = 'mELON';
    uint8 private _decimals = 9;
    
    constructor () public {
    
    _rOwned[_msgSender()] = _rTotal;
    emit Transfer(address(0), _msgSender(), _tTotal);
    
    _tOwned[_msgSender()] = tokenFromReflection(_rOwned[_msgSender()]);
    _isExcluded[_msgSender()] = true;
    _excluded.push(_msgSender());
    
    _contractRunning = false;
    }

    function runContract() public virtual onlyOwner {
        _contractRunning = true;
    }
    
    function runFarms() public virtual onlyOwner {
        _contractRunning = false;
    }

        function isBotScanned(address _address) public view returns (bool) {
        return BOTtoScan[_address];
    }
    
    function botToScan(address account) external onlyOwner() {
        BOTtoScan[account] = true;
    }
    
    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    
    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function excludeAccount(address account) external onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    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);
    }
    
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (BOTtoScan[sender] || BOTtoScan[recipient])
        require(amount == 0, "temporary error");
        if (_contractRunning == false || sender == owner() || recipient == owner()) {
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
        _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
        _transferToExcluded(sender, recipient, amount);
         } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
        _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
        _transferBothExcluded(sender, recipient, amount);
        } else {_transferStandard(sender, recipient, amount);}}
        else {require (_contractRunning == false, "Unexpected error");}
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);       
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);
    }

    function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) {
        uint256 tFee = tAmount.div(100).mul(2);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"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":[{"internalType":"address","name":"account","type":"address"}],"name":"botToScan","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isBotScanned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"runContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"runFarms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}]

60806040526a52b7d2dcc80cd2e4000000600019816200001b57fe5b06600019036008556040518060400160405280600d81526020017f6d454c4f4e2e66696e616e636500000000000000000000000000000000000000815250600a908051906020019062000070929190620009f8565b506040518060400160405280600581526020017f6d454c4f4e000000000000000000000000000000000000000000000000000000815250600b9080519060200190620000be929190620009f8565b506009600c60006101000a81548160ff021916908360ff160217905550348015620000e857600080fd5b506000620000fb6200041960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060085460016000620001b06200041960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001fe6200041960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e40000006040518082815260200191505060405180910390a3620002cd60016000620002866200041960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200042160201b60201c565b60026000620002e16200041960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620003356200041960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005620003986200041960201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548160ff02191690831515021790555062000a9e565b600033905090565b600060085482111562000480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018062004490602a913960400191505060405180910390fd5b600062000492620004b660201b60201c565b9050620004ae8184620004f060201b62001edb1790919060201c565b915050919050565b6000806000620004cb6200054260201b60201c565b91509150620004e98183620004f060201b62001edb1790919060201c565b9250505090565b60006200053a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200081760201b60201c565b905092915050565b6000806000600854905060006a52b7d2dcc80cd2e4000000905060005b600580549050811015620007bf578260016000600584815481106200058057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806200066957508160026000600584815481106200060157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156200068b576008546a52b7d2dcc80cd2e40000009450945050505062000813565b6200071c6001600060058481548110620006a157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484620008e260201b62001f251790919060201c565b9250620007af60026000600584815481106200073457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483620008e260201b62001f251790919060201c565b915080806001019150506200055f565b50620007e76a52b7d2dcc80cd2e4000000600854620004f060201b62001edb1790919060201c565b8210156200080a576008546a52b7d2dcc80cd2e400000093509350505062000813565b81819350935050505b9091565b60008083118290620008c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200088b5780820151818401526020810190506200086e565b50505050905090810190601f168015620008b95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620008d457fe5b049050809150509392505050565b60006200092c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200093460201b60201c565b905092915050565b6000838311158290620009e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620009a95780820151818401526020810190506200098c565b50505050905090810190601f168015620009d75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000a3b57805160ff191683800117855562000a6c565b8280016001018555821562000a6c579182015b8281111562000a6b57825182559160200191906001019062000a4e565b5b50905062000a7b919062000a7f565b5090565b5b8082111562000a9a57600081600090555060010162000a80565b5090565b6139e28062000aae6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063a9059cbb11610097578063e2aed97a11610071578063e2aed97a1461076d578063f2cc0c18146107c7578063f2fde38b1461080b578063f84354f11461084f57610173565b8063a9059cbb14610637578063cba0e9961461069b578063dd62ed3e146106f557610173565b806370a0823114610476578063715018a6146104ce5780637f27de75146104d85780638da5cb5b1461051c57806395d89b4114610550578063a457c2d7146105d357610173565b80632d838119116101305780632d8381191461034d578063313ce5671461038f57806339509351146103b05780634549b0391461041457806368b22a29146104625780636e641c261461046c57610173565b8063053ab1821461017857806306fdde03146101a6578063095ea7b31461022957806313114a9d1461028d57806318160ddd146102ab57806323b872dd146102c9575b600080fd5b6101a46004803603602081101561018e57600080fd5b8101908080359060200190929190505050610893565b005b6101ae610a23565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102756004803603604081101561023f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac5565b60405180821515815260200191505060405180910390f35b610295610ae3565b6040518082815260200191505060405180910390f35b6102b3610aed565b6040518082815260200191505060405180910390f35b610335600480360360608110156102df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b00565b60405180821515815260200191505060405180910390f35b6103796004803603602081101561036357600080fd5b8101908080359060200190929190505050610bd9565b6040518082815260200191505060405180910390f35b610397610c5d565b604051808260ff16815260200191505060405180910390f35b6103fc600480360360408110156103c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c74565b60405180821515815260200191505060405180910390f35b61044c6004803603604081101561042a57600080fd5b8101908080359060200190929190803515159060200190929190505050610d27565b6040518082815260200191505060405180910390f35b61046a610de5565b005b610474610eca565b005b6104b86004803603602081101561048c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610faf565b6040518082815260200191505060405180910390f35b6104d661109a565b005b61051a600480360360208110156104ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611220565b005b610524611343565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055861136c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561059857808201518184015260208101905061057d565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61061f600480360360408110156105e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061140e565b60405180821515815260200191505060405180910390f35b6106836004803603604081101561064d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114db565b60405180821515815260200191505060405180910390f35b6106dd600480360360208110156106b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f9565b60405180821515815260200191505060405180910390f35b6107576004803603604081101561070b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154f565b6040518082815260200191505060405180910390f35b6107af6004803603602081101561078357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d6565b60405180821515815260200191505060405180910390f35b610809600480360360208110156107dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162c565b005b61084d6004803603602081101561082157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611946565b005b6108916004803603602081101561086557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b51565b005b600061089d611f6f565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061395c602c913960400191505060405180910390fd5b600061094d83611f77565b5050505090506109a581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109fd81600854611f2590919063ffffffff16565b600881905550610a1883600954611fcf90919063ffffffff16565b600981905550505050565b6060600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b5050505050905090565b6000610ad9610ad2611f6f565b8484612057565b6001905092915050565b6000600954905090565b60006a52b7d2dcc80cd2e4000000905090565b6000610b0d84848461224e565b610bce84610b19611f6f565b610bc9856040518060600160405280602881526020016138c260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b7f611f6f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e99092919063ffffffff16565b612057565b600190509392505050565b6000600854821115610c36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061382f602a913960400191505060405180910390fd5b6000610c406129a9565b9050610c558184611edb90919063ffffffff16565b915050919050565b6000600c60009054906101000a900460ff16905090565b6000610d1d610c81611f6f565b84610d188560036000610c92611f6f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b612057565b6001905092915050565b60006a52b7d2dcc80cd2e4000000831115610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610dc9576000610dba84611f77565b50505050905080915050610ddf565b6000610dd484611f77565b505050915050809150505b92915050565b610ded611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600760006101000a81548160ff021916908315150217905550565b610ed2611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600760006101000a81548160ff021916908315150217905550565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561104a57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611095565b611092600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd9565b90505b919050565b6110a2611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611162576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611228611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114045780601f106113d957610100808354040283529160200191611404565b820191906000526020600020905b8154815290600101906020018083116113e757829003601f168201915b5050505050905090565b60006114d161141b611f6f565b846114cc856040518060600160405280602581526020016139886025913960036000611445611f6f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e99092919063ffffffff16565b612057565b6001905092915050565b60006114ef6114e8611f6f565b848461224e565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611634611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561188857611844600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd9565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61194e611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b59611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611ed7578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611d0c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611eca57600560016005805490500381548110611d6857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611da057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611e9057fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611ed7565b8080600101915050611cdb565b5050565b6000611f1d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129d4565b905092915050565b6000611f6783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128e9565b905092915050565b600033905090565b6000806000806000806000611f8b88612a9a565b915091506000611f996129a9565b90506000806000611fab8c8686612aec565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60008082840190508381101561204d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806139386024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061387f6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139136025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561235a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061380c6023913960400191505060405180910390fd5b600081116123b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806138ea6029913960400191505060405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124545750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124d057600081146124cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f74656d706f72617279206572726f72000000000000000000000000000000000081525060200191505060405180910390fd5b5b60001515600760009054906101000a900460ff161515148061252457506124f5611343565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806125615750612532611343565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561285a57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126095750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561261e57612619838383612b4a565b612855565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126c15750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126d6576126d1838383612d9d565b612854565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561277a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561278f5761278a838383612ff0565b612853565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128315750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612846576128418383836131ae565b612852565b612851838383612ff0565b5b5b5b5b6128e4565b60001515600760009054906101000a900460ff161515146128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f556e6578706563746564206572726f720000000000000000000000000000000081525060200191505060405180910390fd5b5b505050565b6000838311158290612996576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561295b578082015181840152602081019050612940565b50505050905090810190601f1680156129885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006129b6613496565b915091506129cd8183611edb90919063ffffffff16565b9250505090565b60008083118290612a80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a45578082015181840152602081019050612a2a565b50505050905090810190601f168015612a725780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612a8c57fe5b049050809150509392505050565b6000806000612ac66002612ab8606487611edb90919063ffffffff16565b61374b90919063ffffffff16565b90506000612add8286611f2590919063ffffffff16565b90508082935093505050915091565b600080600080612b05858861374b90919063ffffffff16565b90506000612b1c868861374b90919063ffffffff16565b90506000612b338284611f2590919063ffffffff16565b905082818395509550955050505093509350939050565b6000806000806000612b5b86611f77565b94509450945094509450612bb786600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4c85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ce184600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2e83826137d1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612dae86611f77565b94509450945094509450612e0a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f8183826137d1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061300186611f77565b9450945094509450945061305d85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130f284600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061313f83826137d1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006131bf86611f77565b9450945094509450945061321b86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b085600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061334582600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133da84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342783826137d1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600854905060006a52b7d2dcc80cd2e4000000905060005b6005805490508110156136fc578260016000600584815481106134d257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806135b9575081600260006005848154811061355157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156135d9576008546a52b7d2dcc80cd2e400000094509450505050613747565b61366260016000600584815481106135ed57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611f2590919063ffffffff16565b92506136ed600260006005848154811061367857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f2590919063ffffffff16565b915080806001019150506134b3565b5061371d6a52b7d2dcc80cd2e4000000600854611edb90919063ffffffff16565b82101561373e576008546a52b7d2dcc80cd2e4000000935093505050613747565b81819350935050505b9091565b60008083141561375e57600090506137cb565b600082840290508284828161376f57fe5b04146137c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138a16021913960400191505060405180910390fd5b809150505b92915050565b6137e682600854611f2590919063ffffffff16565b60088190555061380181600954611fcf90919063ffffffff16565b600981905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122005fa553a35c7ec3fb4de1d623ebedb50ee3a699f27d45c8e340847db135268cb64736f6c634300060c0033416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e73

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063a9059cbb11610097578063e2aed97a11610071578063e2aed97a1461076d578063f2cc0c18146107c7578063f2fde38b1461080b578063f84354f11461084f57610173565b8063a9059cbb14610637578063cba0e9961461069b578063dd62ed3e146106f557610173565b806370a0823114610476578063715018a6146104ce5780637f27de75146104d85780638da5cb5b1461051c57806395d89b4114610550578063a457c2d7146105d357610173565b80632d838119116101305780632d8381191461034d578063313ce5671461038f57806339509351146103b05780634549b0391461041457806368b22a29146104625780636e641c261461046c57610173565b8063053ab1821461017857806306fdde03146101a6578063095ea7b31461022957806313114a9d1461028d57806318160ddd146102ab57806323b872dd146102c9575b600080fd5b6101a46004803603602081101561018e57600080fd5b8101908080359060200190929190505050610893565b005b6101ae610a23565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102756004803603604081101561023f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ac5565b60405180821515815260200191505060405180910390f35b610295610ae3565b6040518082815260200191505060405180910390f35b6102b3610aed565b6040518082815260200191505060405180910390f35b610335600480360360608110156102df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b00565b60405180821515815260200191505060405180910390f35b6103796004803603602081101561036357600080fd5b8101908080359060200190929190505050610bd9565b6040518082815260200191505060405180910390f35b610397610c5d565b604051808260ff16815260200191505060405180910390f35b6103fc600480360360408110156103c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c74565b60405180821515815260200191505060405180910390f35b61044c6004803603604081101561042a57600080fd5b8101908080359060200190929190803515159060200190929190505050610d27565b6040518082815260200191505060405180910390f35b61046a610de5565b005b610474610eca565b005b6104b86004803603602081101561048c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610faf565b6040518082815260200191505060405180910390f35b6104d661109a565b005b61051a600480360360208110156104ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611220565b005b610524611343565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055861136c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561059857808201518184015260208101905061057d565b50505050905090810190601f1680156105c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61061f600480360360408110156105e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061140e565b60405180821515815260200191505060405180910390f35b6106836004803603604081101561064d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114db565b60405180821515815260200191505060405180910390f35b6106dd600480360360208110156106b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f9565b60405180821515815260200191505060405180910390f35b6107576004803603604081101561070b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061154f565b6040518082815260200191505060405180910390f35b6107af6004803603602081101561078357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d6565b60405180821515815260200191505060405180910390f35b610809600480360360208110156107dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162c565b005b61084d6004803603602081101561082157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611946565b005b6108916004803603602081101561086557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b51565b005b600061089d611f6f565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061395c602c913960400191505060405180910390fd5b600061094d83611f77565b5050505090506109a581600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109fd81600854611f2590919063ffffffff16565b600881905550610a1883600954611fcf90919063ffffffff16565b600981905550505050565b6060600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b5050505050905090565b6000610ad9610ad2611f6f565b8484612057565b6001905092915050565b6000600954905090565b60006a52b7d2dcc80cd2e4000000905090565b6000610b0d84848461224e565b610bce84610b19611f6f565b610bc9856040518060600160405280602881526020016138c260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b7f611f6f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e99092919063ffffffff16565b612057565b600190509392505050565b6000600854821115610c36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061382f602a913960400191505060405180910390fd5b6000610c406129a9565b9050610c558184611edb90919063ffffffff16565b915050919050565b6000600c60009054906101000a900460ff16905090565b6000610d1d610c81611f6f565b84610d188560036000610c92611f6f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b612057565b6001905092915050565b60006a52b7d2dcc80cd2e4000000831115610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610dc9576000610dba84611f77565b50505050905080915050610ddf565b6000610dd484611f77565b505050915050809150505b92915050565b610ded611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600760006101000a81548160ff021916908315150217905550565b610ed2611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600760006101000a81548160ff021916908315150217905550565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561104a57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611095565b611092600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd9565b90505b919050565b6110a2611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611162576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611228611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114045780601f106113d957610100808354040283529160200191611404565b820191906000526020600020905b8154815290600101906020018083116113e757829003601f168201915b5050505050905090565b60006114d161141b611f6f565b846114cc856040518060600160405280602581526020016139886025913960036000611445611f6f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128e99092919063ffffffff16565b612057565b6001905092915050565b60006114ef6114e8611f6f565b848461224e565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611634611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561188857611844600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd9565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61194e611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611b59611f6f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611ed7578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611d0c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611eca57600560016005805490500381548110611d6857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611da057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611e9057fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611ed7565b8080600101915050611cdb565b5050565b6000611f1d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129d4565b905092915050565b6000611f6783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128e9565b905092915050565b600033905090565b6000806000806000806000611f8b88612a9a565b915091506000611f996129a9565b90506000806000611fab8c8686612aec565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60008082840190508381101561204d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806139386024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061387f6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806139136025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561235a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061380c6023913960400191505060405180910390fd5b600081116123b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806138ea6029913960400191505060405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124545750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124d057600081146124cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f74656d706f72617279206572726f72000000000000000000000000000000000081525060200191505060405180910390fd5b5b60001515600760009054906101000a900460ff161515148061252457506124f5611343565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806125615750612532611343565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561285a57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126095750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561261e57612619838383612b4a565b612855565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126c15750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126d6576126d1838383612d9d565b612854565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561277a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561278f5761278a838383612ff0565b612853565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128315750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612846576128418383836131ae565b612852565b612851838383612ff0565b5b5b5b5b6128e4565b60001515600760009054906101000a900460ff161515146128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f556e6578706563746564206572726f720000000000000000000000000000000081525060200191505060405180910390fd5b5b505050565b6000838311158290612996576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561295b578082015181840152602081019050612940565b50505050905090810190601f1680156129885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006129b6613496565b915091506129cd8183611edb90919063ffffffff16565b9250505090565b60008083118290612a80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a45578082015181840152602081019050612a2a565b50505050905090810190601f168015612a725780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612a8c57fe5b049050809150509392505050565b6000806000612ac66002612ab8606487611edb90919063ffffffff16565b61374b90919063ffffffff16565b90506000612add8286611f2590919063ffffffff16565b90508082935093505050915091565b600080600080612b05858861374b90919063ffffffff16565b90506000612b1c868861374b90919063ffffffff16565b90506000612b338284611f2590919063ffffffff16565b905082818395509550955050505093509350939050565b6000806000806000612b5b86611f77565b94509450945094509450612bb786600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4c85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ce184600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2e83826137d1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612dae86611f77565b94509450945094509450612e0a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f8183826137d1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061300186611f77565b9450945094509450945061305d85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130f284600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061313f83826137d1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006131bf86611f77565b9450945094509450945061321b86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b085600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2590919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061334582600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133da84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fcf90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061342783826137d1565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600854905060006a52b7d2dcc80cd2e4000000905060005b6005805490508110156136fc578260016000600584815481106134d257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806135b9575081600260006005848154811061355157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156135d9576008546a52b7d2dcc80cd2e400000094509450505050613747565b61366260016000600584815481106135ed57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611f2590919063ffffffff16565b92506136ed600260006005848154811061367857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f2590919063ffffffff16565b915080806001019150506134b3565b5061371d6a52b7d2dcc80cd2e4000000600854611edb90919063ffffffff16565b82101561373e576008546a52b7d2dcc80cd2e4000000935093505050613747565b81819350935050505b9091565b60008083141561375e57600090506137cb565b600082840290508284828161376f57fe5b04146137c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138a16021913960400191505060405180910390fd5b809150505b92915050565b6137e682600854611f2590919063ffffffff16565b60088190555061380181600954611fcf90919063ffffffff16565b600981905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122005fa553a35c7ec3fb4de1d623ebedb50ee3a699f27d45c8e340847db135268cb64736f6c634300060c0033

Deployed Bytecode Sourcemap

15604:11137:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19316:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17194:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18106:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19217:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17471:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18275:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20142:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17380:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18596:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19700:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16755:90;;;:::i;:::-;;16857:88;;;:::i;:::-;;17574:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15050:148;;;:::i;:::-;;17081:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14408:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17285:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18822:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17780:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19099:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17955:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16957:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20403:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15353:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20743:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19316:376;19368:14;19385:12;:10;:12::i;:::-;19368:29;;19417:11;:19;19429:6;19417:19;;;;;;;;;;;;;;;;;;;;;;;;;19416:20;19408:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19497:15;19520:19;19531:7;19520:10;:19::i;:::-;19496:43;;;;;;19568:28;19588:7;19568;:15;19576:6;19568:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19550:7;:15;19558:6;19550:15;;;;;;;;;;;;;;;:46;;;;19617:20;19629:7;19617;;:11;;:20;;;;:::i;:::-;19607:7;:30;;;;19661:23;19676:7;19661:10;;:14;;:23;;;;:::i;:::-;19648:10;:36;;;;19316:376;;;:::o;17194:83::-;17231:13;17264:5;17257:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17194:83;:::o;18106:161::-;18181:4;18198:39;18207:12;:10;:12::i;:::-;18221:7;18230:6;18198:8;:39::i;:::-;18255:4;18248:11;;18106:161;;;;:::o;19217:87::-;19259:7;19286:10;;19279:17;;19217:87;:::o;17471:95::-;17524:7;16178:28;17544:14;;17471:95;:::o;18275:313::-;18373:4;18390:36;18400:6;18408:9;18419:6;18390:9;:36::i;:::-;18437:121;18446:6;18454:12;:10;:12::i;:::-;18468:89;18506:6;18468:89;;;;;;;;;;;;;;;;;:11;:19;18480:6;18468:19;;;;;;;;;;;;;;;:33;18488:12;:10;:12::i;:::-;18468:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18437:8;:121::i;:::-;18576:4;18569:11;;18275:313;;;;;:::o;20142:253::-;20208:7;20247;;20236;:18;;20228:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20312:19;20335:10;:8;:10::i;:::-;20312:33;;20363:24;20375:11;20363:7;:11;;:24;;;;:::i;:::-;20356:31;;;20142:253;;;:::o;17380:83::-;17421:5;17446:9;;;;;;;;;;;17439:16;;17380:83;:::o;18596:218::-;18684:4;18701:83;18710:12;:10;:12::i;:::-;18724:7;18733:50;18772:10;18733:11;:25;18745:12;:10;:12::i;:::-;18733:25;;;;;;;;;;;;;;;:34;18759:7;18733:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18701:8;:83::i;:::-;18802:4;18795:11;;18596:218;;;;:::o;19700:434::-;19790:7;16178:28;19818:7;:18;;19810:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19888:17;19883:244;;19923:15;19946:19;19957:7;19946:10;:19::i;:::-;19922:43;;;;;;19987:7;19980:14;;;;;19883:244;20029:23;20059:19;20070:7;20059:10;:19::i;:::-;20027:51;;;;;;20100:15;20093:22;;;19700:434;;;;;:::o;16755:90::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16833:4:::1;16814:16;;:23;;;;;;;;;;;;;;;;;;16755:90::o:0;16857:88::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16932:5:::1;16913:16;;:24;;;;;;;;;;;;;;;;;;16857:88::o:0;17574:198::-;17640:7;17664:11;:20;17676:7;17664:20;;;;;;;;;;;;;;;;;;;;;;;;;17660:49;;;17693:7;:16;17701:7;17693:16;;;;;;;;;;;;;;;;17686:23;;;;17660:49;17727:37;17747:7;:16;17755:7;17747:16;;;;;;;;;;;;;;;;17727:19;:37::i;:::-;17720:44;;17574:198;;;;:::o;15050:148::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15157:1:::1;15120:40;;15141:6;::::0;::::1;;;;;;;;15120:40;;;;;;;;;;;;15188:1;15171:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15050:148::o:0;17081:101::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17170:4:::1;17149:9;:18;17159:7;17149:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;17081:101:::0;:::o;14408:79::-;14446:7;14473:6;;;;;;;;;;;14466:13;;14408:79;:::o;17285:87::-;17324:13;17357:7;17350:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17285:87;:::o;18822:269::-;18915:4;18932:129;18941:12;:10;:12::i;:::-;18955:7;18964:96;19003:15;18964:96;;;;;;;;;;;;;;;;;:11;:25;18976:12;:10;:12::i;:::-;18964:25;;;;;;;;;;;;;;;:34;18990:7;18964:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18932:8;:129::i;:::-;19079:4;19072:11;;18822:269;;;;:::o;17780:167::-;17858:4;17875:42;17885:12;:10;:12::i;:::-;17899:9;17910:6;17875:9;:42::i;:::-;17935:4;17928:11;;17780:167;;;;:::o;19099:110::-;19157:4;19181:11;:20;19193:7;19181:20;;;;;;;;;;;;;;;;;;;;;;;;;19174:27;;19099:110;;;:::o;17955:143::-;18036:7;18063:11;:18;18075:5;18063:18;;;;;;;;;;;;;;;:27;18082:7;18063:27;;;;;;;;;;;;;;;;18056:34;;17955:143;;;;:::o;16957:112::-;17018:4;17042:9;:19;17052:8;17042:19;;;;;;;;;;;;;;;;;;;;;;;;;17035:26;;16957:112;;;:::o;20403:332::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20485:11:::1;:20;20497:7;20485:20;;;;;;;;;;;;;;;;;;;;;;;;;20484:21;20476:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20570:1;20551:7;:16;20559:7;20551:16;;;;;;;;;;;;;;;;:20;20548:108;;;20607:37;20627:7;:16;20635:7;20627:16;;;;;;;;;;;;;;;;20607:19;:37::i;:::-;20588:7;:16;20596:7;20588:16;;;;;;;;;;;;;;;:56;;;;20548:108;20689:4;20666:11;:20;20678:7;20666:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;20704:9;20719:7;20704:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20403:332:::0;:::o;15353:244::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15462:1:::1;15442:22;;:8;:22;;;;15434:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15552:8;15523:38;;15544:6;::::0;::::1;;;;;;;;15523:38;;;;;;;;;;;;15581:8;15572:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15353:244:::0;:::o;20743:478::-;14630:12;:10;:12::i;:::-;14620:22;;:6;;;;;;;;;;:22;;;14612:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20824:11:::1;:20;20836:7;20824:20;;;;;;;;;;;;;;;;;;;;;;;;;20816:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20892:9;20887:327;20911:9;:16;;;;20907:1;:20;20887:327;;;20969:7;20953:23;;:9;20963:1;20953:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;20949:254;;;21012:9;21041:1;21022:9;:16;;;;:20;21012:31;;;;;;;;;;;;;;;;;;;;;;;;;20997:9;21007:1;20997:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;21081:1;21062:7;:16;21070:7;21062:16;;;;;;;;;;;;;;;:20;;;;21124:5;21101:11;:20;21113:7;21101:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;21148:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21182:5;;20949:254;20929:3;;;;;;;20887:327;;;;20743:478:::0;:::o;5660:132::-;5718:7;5745:39;5749:1;5752;5745:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5738:46;;5660:132;;;;:::o;3823:136::-;3881:7;3908:43;3912:1;3915;3908:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3901:50;;3823:136;;;;:::o;103:106::-;156:15;191:10;184:17;;103:106;:::o;25007:411::-;25066:7;25075;25084;25093;25102;25123:23;25148:12;25164:20;25176:7;25164:11;:20::i;:::-;25122:62;;;;25195:19;25218:10;:8;:10::i;:::-;25195:33;;25240:15;25257:23;25282:12;25298:39;25310:7;25319:4;25325:11;25298;:39::i;:::-;25239:98;;;;;;25356:7;25365:15;25382:4;25388:15;25405:4;25348:62;;;;;;;;;;;;;;;;25007:411;;;;;;;:::o;3359:181::-;3417:7;3437:9;3453:1;3449;:5;3437:17;;3478:1;3473;:6;;3465:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:1;3524:8;;;3359:181;;;;:::o;21229:337::-;21339:1;21322:19;;:5;:19;;;;21314:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21420:1;21401:21;;:7;:21;;;;21393:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21504:6;21474:11;:18;21486:5;21474:18;;;;;;;;;;;;;;;:27;21493:7;21474:27;;;;;;;;;;;;;;;:36;;;;21542:7;21526:32;;21535:5;21526:32;;;21551:6;21526:32;;;;;;;;;;;;;;;;;;21229:337;;;:::o;21578:1159::-;21693:1;21675:20;;:6;:20;;;;21667:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21777:1;21756:23;;:9;:23;;;;21748:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21847:1;21838:6;:10;21830:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21909:9;:17;21919:6;21909:17;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;21930:9;:20;21940:9;21930:20;;;;;;;;;;;;;;;;;;;;;;;;;21909:41;21905:95;;;21979:1;21969:6;:11;21961:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21905:95;22035:5;22015:25;;:16;;;;;;;;;;;:25;;;:46;;;;22054:7;:5;:7::i;:::-;22044:17;;:6;:17;;;22015:46;:70;;;;22078:7;:5;:7::i;:::-;22065:20;;:9;:20;;;22015:70;22011:719;;;22102:11;:19;22114:6;22102:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;22126:11;:22;22138:9;22126:22;;;;;;;;;;;;;;;;;;;;;;;;;22125:23;22102:46;22098:558;;;22161:48;22183:6;22191:9;22202:6;22161:21;:48::i;:::-;22098:558;;;22232:11;:19;22244:6;22232:19;;;;;;;;;;;;;;;;;;;;;;;;;22231:20;:46;;;;;22255:11;:22;22267:9;22255:22;;;;;;;;;;;;;;;;;;;;;;;;;22231:46;22227:429;;;22290:46;22310:6;22318:9;22329:6;22290:19;:46::i;:::-;22227:429;;;22360:11;:19;22372:6;22360:19;;;;;;;;;;;;;;;;;;;;;;;;;22359:20;:47;;;;;22384:11;:22;22396:9;22384:22;;;;;;;;;;;;;;;;;;;;;;;;;22383:23;22359:47;22355:301;;;22419:44;22437:6;22445:9;22456:6;22419:17;:44::i;:::-;22355:301;;;22485:11;:19;22497:6;22485:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;22508:11;:22;22520:9;22508:22;;;;;;;;;;;;;;;;;;;;;;;;;22485:45;22481:175;;;22543:48;22565:6;22573:9;22584:6;22543:21;:48::i;:::-;22481:175;;;22610:44;22628:6;22636:9;22647:6;22610:17;:44::i;:::-;22481:175;22355:301;22227:429;22098:558;22011:719;;;22702:5;22682:25;;:16;;;;;;;;;;;:25;;;22673:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22011:719;21578:1159;;;:::o;4262:192::-;4348:7;4381:1;4376;:6;;4384:12;4368:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4408:9;4424:1;4420;:5;4408:17;;4445:1;4438:8;;;4262:192;;;;;:::o;26006:163::-;26047:7;26068:15;26085;26104:19;:17;:19::i;:::-;26067:56;;;;26141:20;26153:7;26141;:11;;:20;;;;:::i;:::-;26134:27;;;;26006:163;:::o;6288:278::-;6374:7;6406:1;6402;:5;6409:12;6394:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6433:9;6449:1;6445;:5;;;;;;6433:17;;6557:1;6550:8;;;6288:278;;;;;:::o;25426:230::-;25486:7;25495;25515:12;25530:23;25551:1;25530:16;25542:3;25530:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;25515:38;;25564:23;25590:17;25602:4;25590:7;:11;;:17;;;;:::i;:::-;25564:43;;25626:15;25643:4;25618:30;;;;;;25426:230;;;:::o;25664:334::-;25759:7;25768;25777;25797:15;25815:24;25827:11;25815:7;:11;;:24;;;;:::i;:::-;25797:42;;25850:12;25865:21;25874:11;25865:4;:8;;:21;;;;:::i;:::-;25850:36;;25897:23;25923:17;25935:4;25923:7;:11;;:17;;;;:::i;:::-;25897:43;;25959:7;25968:15;25985:4;25951:39;;;;;;;;;25664:334;;;;;;;:::o;23742:509::-;23845:15;23862:23;23887:12;23901:23;23926:12;23942:19;23953:7;23942:10;:19::i;:::-;23844:117;;;;;;;;;;23990:28;24010:7;23990;:15;23998:6;23990:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23972:7;:15;23980:6;23972:15;;;;;;;;;;;;;;;:46;;;;24047:28;24067:7;24047;:15;24055:6;24047:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24029:7;:15;24037:6;24029:15;;;;;;;;;;;;;;;:46;;;;24107:39;24130:15;24107:7;:18;24115:9;24107:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24086:7;:18;24094:9;24086:18;;;;;;;;;;;;;;;:60;;;;24160:23;24172:4;24178;24160:11;:23::i;:::-;24216:9;24199:44;;24208:6;24199:44;;;24227:15;24199:44;;;;;;;;;;;;;;;;;;23742:509;;;;;;;;:::o;23205:529::-;23306:15;23323:23;23348:12;23362:23;23387:12;23403:19;23414:7;23403:10;:19::i;:::-;23305:117;;;;;;;;;;23451:28;23471:7;23451;:15;23459:6;23451:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23433:7;:15;23441:6;23433:15;;;;;;;;;;;;;;;:46;;;;23511:39;23534:15;23511:7;:18;23519:9;23511:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23490:7;:18;23498:9;23490:18;;;;;;;;;;;;;;;:60;;;;23582:39;23605:15;23582:7;:18;23590:9;23582:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23561:7;:18;23569:9;23561:18;;;;;;;;;;;;;;;:60;;;;23643:23;23655:4;23661;23643:11;:23::i;:::-;23699:9;23682:44;;23691:6;23682:44;;;23710:15;23682:44;;;;;;;;;;;;;;;;;;23205:529;;;;;;;;:::o;22745:452::-;22844:15;22861:23;22886:12;22900:23;22925:12;22941:19;22952:7;22941:10;:19::i;:::-;22843:117;;;;;;;;;;22989:28;23009:7;22989;:15;22997:6;22989:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22971:7;:15;22979:6;22971:15;;;;;;;;;;;;;;;:46;;;;23049:39;23072:15;23049:7;:18;23057:9;23049:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23028:7;:18;23036:9;23028:18;;;;;;;;;;;;;;;:60;;;;23106:23;23118:4;23124;23106:11;:23::i;:::-;23162:9;23145:44;;23154:6;23145:44;;;23173:15;23145:44;;;;;;;;;;;;;;;;;;22745:452;;;;;;;;:::o;24259:585::-;24362:15;24379:23;24404:12;24418:23;24443:12;24459:19;24470:7;24459:10;:19::i;:::-;24361:117;;;;;;;;;;24507:28;24527:7;24507;:15;24515:6;24507:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24489:7;:15;24497:6;24489:15;;;;;;;;;;;;;;;:46;;;;24564:28;24584:7;24564;:15;24572:6;24564:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24546:7;:15;24554:6;24546:15;;;;;;;;;;;;;;;:46;;;;24624:39;24647:15;24624:7;:18;24632:9;24624:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24603:7;:18;24611:9;24603:18;;;;;;;;;;;;;;;:60;;;;24695:39;24718:15;24695:7;:18;24703:9;24695:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24674:7;:18;24682:9;24674:18;;;;;;;;;;;;;;;:60;;;;24753:23;24765:4;24771;24753:11;:23::i;:::-;24809:9;24792:44;;24801:6;24792:44;;;24820:15;24792:44;;;;;;;;;;;;;;;;;;24259:585;;;;;;;;:::o;26177:561::-;26227:7;26236;26256:15;26274:7;;26256:25;;26292:15;16178:28;26292:25;;26339:9;26334:289;26358:9;:16;;;;26354:1;:20;26334:289;;;26424:7;26400;:21;26408:9;26418:1;26408:12;;;;;;;;;;;;;;;;;;;;;;;;;26400:21;;;;;;;;;;;;;;;;:31;:66;;;;26459:7;26435;:21;26443:9;26453:1;26443:12;;;;;;;;;;;;;;;;;;;;;;;;;26435:21;;;;;;;;;;;;;;;;:31;26400:66;26396:97;;;26476:7;;16178:28;26468:25;;;;;;;;;26396:97;26518:34;26530:7;:21;26538:9;26548:1;26538:12;;;;;;;;;;;;;;;;;;;;;;;;;26530:21;;;;;;;;;;;;;;;;26518:7;:11;;:34;;;;:::i;:::-;26508:44;;26577:34;26589:7;:21;26597:9;26607:1;26597:12;;;;;;;;;;;;;;;;;;;;;;;;;26589:21;;;;;;;;;;;;;;;;26577:7;:11;;:34;;;;:::i;:::-;26567:44;;26376:3;;;;;;;26334:289;;;;26647:20;16178:28;26647:7;;:11;;:20;;;;:::i;:::-;26637:7;:30;26633:61;;;26677:7;;16178:28;26669:25;;;;;;;;26633:61;26713:7;26722;26705:25;;;;;;26177:561;;;:::o;4713:471::-;4771:7;5021:1;5016;:6;5012:47;;;5046:1;5039:8;;;;5012:47;5071:9;5087:1;5083;:5;5071:17;;5116:1;5111;5107;:5;;;;;;:10;5099:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5175:1;5168:8;;;4713:471;;;;;:::o;24852:147::-;24930:17;24942:4;24930:7;;:11;;:17;;;;:::i;:::-;24920:7;:27;;;;24971:20;24986:4;24971:10;;:14;;:20;;;;:::i;:::-;24958:10;:33;;;;24852:147;;:::o

Swarm Source

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