ETH Price: $2,284.85 (+2.34%)

Token

Fintex (FTEX)
 

Overview

Max Total Supply

10,000 FTEX

Holders

140

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
dr-ashraf.eth
Balance
70.663536821698737623 FTEX

Value
$0.00
0x75C6Ddf17647EbDd606983D28937Ab67EF1DdC19
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A project based on rewarding cashback for every user's transactions.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Fintex

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-09
*/

/**
 *Submitted for verification at Etherscan.io on 2021-02-07
*/

/**
 *Submitted for verification at Etherscan.io on 2021-02-07
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.7.4;

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, with an overflow flag.
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, 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 (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @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) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @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) {
        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, reverting 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) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting 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) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * 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);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * 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);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * 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) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @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");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.3._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.3._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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


abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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


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

    string private constant NAME = "Fintex";
    string private constant SYMBOL = "FTEX";
    uint8 private constant DECIMALS = 18;

 
    mapping(address => uint256) private actual;
    mapping(address => mapping(address => uint256)) private allowances;

    mapping(address => bool) private excludedFromFees;
    
   

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant ACTUAL_TOTAL = 10000 * 1e18;
   
   
    uint256 private rewardFeeTotal;
    uint256 private lotteryFeeTotal;
  

    uint256 public taxPercentage = 5;
    uint256 public rewardTaxAlloc = 70;
    uint256 public lotteryTaxAlloc = 30;
   
    uint256 public totalTaxAlloc = rewardTaxAlloc.add(lotteryTaxAlloc);

    address public rewardAddress;
    address public lotteryAddress;
    
    constructor(address _rewardAddress, address _lotteryAddress) {
        
        emit Transfer(address(0), _msgSender(), ACTUAL_TOTAL);
        actual[_msgSender()] = actual[_msgSender()].add(ACTUAL_TOTAL);
        rewardAddress = _rewardAddress;
        lotteryAddress = _lotteryAddress;

        excludeFromFees(rewardAddress);
        excludeFromFees(lotteryAddress);
        excludeFromFees(_msgSender());
       
 
    }

    function name() external pure returns (string memory) {
        return NAME;
    }

    function symbol() external pure returns (string memory) {
        return SYMBOL;
    }

    function decimals() external pure returns (uint8) {
        return DECIMALS;
    }

    function totalSupply() external pure override returns (uint256) {
        return ACTUAL_TOTAL;
    }

    function balanceOf(address _account) public view override returns (uint256) {
       
            return actual[_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) {
        require(allowances[_sender][_msgSender()] > _amount, 'Not Allowed' );
        allowances[_sender][_msgSender()] = allowances[_sender][_msgSender()].sub(_amount, "ERC20: decreased allowance below zero");
       
        _transfer(_sender, _recipient, _amount);

       

        return true;
    }




    

    function isExcludedFromFees(address _account) external view returns (bool) {
        return excludedFromFees[_account];
    }

  

 

    function totalRewardFees() external view returns (uint256) {
        return rewardFeeTotal;
    }

    function totalLotteryFees() external view returns (uint256) {
        return lotteryFeeTotal;
    }



    function excludeFromFees(address _account) public onlyOwner() {
        require(!excludedFromFees[_account], "Account is already excluded from fee");
        excludedFromFees[_account] = true;
    }

    function includeInFees(address _account) public onlyOwner() {
        require(excludedFromFees[_account], "Account is already included in fee");
        excludedFromFees[_account] = false;
    }

  

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

 
        uint256 fee = 0;
        if (excludedFromFees[_sender] || excludedFromFees[_recipient]) {
             fee = 0;

        } else {
            fee = _getFee(_amount);
            uint256 rewardFee = _getrewardFee(fee);
            uint256 lotteryFee = _getLotteryFee(fee);
            
            _updateRewardFee(rewardFee);
            _updateLotteryFee(lotteryFee); 
        }

        uint256 actualTransferAmount = _amount.sub(fee) ;  
        actual[_recipient] = actual[_recipient].add(actualTransferAmount);
        actual[_sender] = actual[_sender].sub(_amount);

        emit Transfer(_sender, _recipient, actualTransferAmount);
 

       
    }
  
    function _updateRewardFee(uint256 _rewardFee) private {
        if (rewardAddress == address(0)) {
            return;
        }

        actual[rewardAddress] = actual[rewardAddress].add(_rewardFee);
        
    }

    function _updateLotteryFee(uint256 _lotteryFee) private {
        if (lotteryAddress == address(0)) {
            return;
        }
 
        actual[lotteryAddress] = actual[lotteryAddress].add(_lotteryFee);
        
    }
 
 
    function _getFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(taxPercentage).div(100);
    }
 

    function _getrewardFee(uint256 _tax) private view returns (uint256) {
        return _tax.mul(rewardTaxAlloc).div(totalTaxAlloc);
    }

    function _getLotteryFee(uint256 _tax) private view returns (uint256) {
        return _tax.mul(lotteryTaxAlloc).div(totalTaxAlloc);
    }

   

    function setTaxPercentage(uint256 _taxPercentage) external onlyOwner {
        taxPercentage = _taxPercentage;
    }

 function setlotteryTaxAlloc(uint256 alloc) external onlyOwner {
       
        lotteryTaxAlloc = alloc;
    }

 function setrewardTaxAlloc(uint256 alloc) external onlyOwner {
       
        rewardTaxAlloc = alloc;
    }
 

    function setRewardAddress(address _rewardAddress) external onlyOwner {
        rewardAddress = _rewardAddress;
    }

    function setLotetryAddress(address _lotteryAddress) external onlyOwner {
        lotteryAddress = _lotteryAddress;
    }

    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_rewardAddress","type":"address"},{"internalType":"address","name":"_lotteryAddress","type":"address"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lotteryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lotteryTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lotteryAddress","type":"address"}],"name":"setLotetryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardAddress","type":"address"}],"name":"setRewardAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxPercentage","type":"uint256"}],"name":"setTaxPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"alloc","type":"uint256"}],"name":"setlotteryTaxAlloc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"alloc","type":"uint256"}],"name":"setrewardTaxAlloc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLotteryFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalTaxAlloc","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"}]

608060405260056006556046600755601e600855620000316008546007546200038560201b620019451790919060201c565b6009553480156200004157600080fd5b5060405162002cd638038062002cd6833981810160405260408110156200006757600080fd5b8101908080519060200190929190805190602001909291905050506000620000946200040e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001426200040e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69021e19e0c9bab24000006040518082815260200191505060405180910390a36200022369021e19e0c9bab240000060016000620001d46200040e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200038560201b620019451790919060201c565b60016000620002376200040e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200032a600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200041660201b60201c565b6200035d600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200041660201b60201c565b6200037d620003716200040e60201b60201c565b6200041660201b60201c565b5050620005e7565b60008082840190508381101562000404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b620004266200040e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200058c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018062002cb26024913960400191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6126bb80620005f76000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063699abb3c116100f9578063ae7b6d1611610097578063dd62ed3e11610071578063dd62ed3e1461079e578063dda3924814610816578063e57f14e114610834578063f2fde38b14610878576101c4565b8063ae7b6d1614610734578063b44e9e5c14610752578063b7a9c71714610770576101c4565b80638cf57cb9116100d35780638cf57cb9146105e55780638da5cb5b1461061957806395d89b411461064d578063a9059cbb146106d0576101c4565b8063699abb3c1461055557806370a0823114610583578063715018a6146105db576101c4565b80633beedf6d11610166578063582e641411610140578063582e641414610481578063586ae7a41461049f5780635e00e679146104cd5780635e10686414610511576101c4565b80633beedf6d146103d557806340e7bdf4146104095780634fbee19314610427576101c4565b806318160ddd116101a257806318160ddd146102f457806323b872dd14610312578063313ce56714610396578063335883b6146103b7576101c4565b806306fdde03146101c9578063095ea7b31461024c57806316a2f82a146102b0575b600080fd5b6101d16108bc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102986004803603604081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f9565b60405180821515815260200191505060405180910390f35b6102f2600480360360208110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610917565b005b6102fc610adc565b6040518082815260200191505060405180910390f35b61037e6004803603606081101561032857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aee565b60405180821515815260200191505060405180910390f35b61039e610d35565b604051808260ff16815260200191505060405180910390f35b6103bf610d3e565b6040518082815260200191505060405180910390f35b6103dd610d44565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610411610d6a565b6040518082815260200191505060405180910390f35b6104696004803603602081101561043d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d70565b60405180821515815260200191505060405180910390f35b610489610dc6565b6040518082815260200191505060405180910390f35b6104cb600480360360208110156104b557600080fd5b8101908080359060200190929190505050610dcc565b005b61050f600480360360208110156104e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9e565b005b6105536004803603602081101561052757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610faa565b005b6105816004803603602081101561056b57600080fd5b81019080803590602001909291905050506110b6565b005b6105c56004803603602081101561059957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611188565b6040518082815260200191505060405180910390f35b6105e36111d1565b005b6105ed611357565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062161137d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106556113a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069557808201518184015260208101905061067a565b50505050905090810190601f1680156106c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61071c600480360360408110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113e3565b60405180821515815260200191505060405180910390f35b61073c611401565b6040518082815260200191505060405180910390f35b61075a611407565b6040518082815260200191505060405180910390f35b61079c6004803603602081101561078657600080fd5b8101908080359060200190929190505050611411565b005b610800600480360360408110156107b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e3565b6040518082815260200191505060405180910390f35b61081e61156a565b6040518082815260200191505060405180910390f35b6108766004803603602081101561084a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611574565b005b6108ba6004803603602081101561088e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061173a565b005b60606040518060400160405280600681526020017f46696e7465780000000000000000000000000000000000000000000000000000815250905090565b600061090d6109066119cd565b84846119d5565b6001905092915050565b61091f6119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125406022913960400191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600069021e19e0c9bab2400000905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b3a6119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f7420416c6c6f77656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b610c988260405180606001604052806025815260200161266160259139600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c4e6119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bcc9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ce16119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d2a848484611c86565b600190509392505050565b60006012905090565b60085481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b610dd46119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060088190555050565b610ea66119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610fb26119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110be6119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060068190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111d96119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4654455800000000000000000000000000000000000000000000000000000000815250905090565b60006113f76113f06119cd565b8484611c86565b6001905092915050565b60065481565b6000600454905090565b6114196119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060078190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600554905090565b61157c6119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061263d6024913960400191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117426119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611888576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806125626026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110156119c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806126196024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125886022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000838311158290611c79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c3e578082015181840152602081019050611c23565b50505050905090810190601f168015611c6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806125f46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061251d6023913960400191505060405180910390fd5b60008111611deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806125cb6029913960400191505060405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e8e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e9c5760009050611ed6565b611ea582612083565b90506000611eb2826120b4565b90506000611ebf836120e6565b9050611eca82612118565b611ed381612251565b50505b6000611eeb828461238a90919063ffffffff16565b9050611f3f81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fd483600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238a90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505050565b60006120ad606461209f6006548561240d90919063ffffffff16565b61249390919063ffffffff16565b9050919050565b60006120df6009546120d16007548561240d90919063ffffffff16565b61249390919063ffffffff16565b9050919050565b60006121116009546121036008548561240d90919063ffffffff16565b61249390919063ffffffff16565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121745761224e565b6121e88160016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194590919063ffffffff16565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156122ad57612387565b6123218160016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194590919063ffffffff16565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600082821115612402576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600080831415612420576000905061248d565b600082840290508284828161243157fe5b0414612488576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806125aa6021913960400191505060405180910390fd5b809150505b92915050565b600080821161250a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b81838161251357fe5b0490509291505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734163636f756e7420697320616c726561647920696e636c7564656420696e206665654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734163636f756e7420697320616c7265616479206578636c756465642066726f6d2066656545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207a4524e8ad39b769da93535f8b1b3a61a8b7672ab6509fcb9369e467ab0cdf4f64736f6c634300070400334163636f756e7420697320616c7265616479206578636c756465642066726f6d20666565000000000000000000000000aa99007aa41ff10d76e91d96ff4b0bc773336c27000000000000000000000000ed58bf1d97db2f45495fe530527ba89939a3f1e4

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063699abb3c116100f9578063ae7b6d1611610097578063dd62ed3e11610071578063dd62ed3e1461079e578063dda3924814610816578063e57f14e114610834578063f2fde38b14610878576101c4565b8063ae7b6d1614610734578063b44e9e5c14610752578063b7a9c71714610770576101c4565b80638cf57cb9116100d35780638cf57cb9146105e55780638da5cb5b1461061957806395d89b411461064d578063a9059cbb146106d0576101c4565b8063699abb3c1461055557806370a0823114610583578063715018a6146105db576101c4565b80633beedf6d11610166578063582e641411610140578063582e641414610481578063586ae7a41461049f5780635e00e679146104cd5780635e10686414610511576101c4565b80633beedf6d146103d557806340e7bdf4146104095780634fbee19314610427576101c4565b806318160ddd116101a257806318160ddd146102f457806323b872dd14610312578063313ce56714610396578063335883b6146103b7576101c4565b806306fdde03146101c9578063095ea7b31461024c57806316a2f82a146102b0575b600080fd5b6101d16108bc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102986004803603604081101561026257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f9565b60405180821515815260200191505060405180910390f35b6102f2600480360360208110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610917565b005b6102fc610adc565b6040518082815260200191505060405180910390f35b61037e6004803603606081101561032857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aee565b60405180821515815260200191505060405180910390f35b61039e610d35565b604051808260ff16815260200191505060405180910390f35b6103bf610d3e565b6040518082815260200191505060405180910390f35b6103dd610d44565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610411610d6a565b6040518082815260200191505060405180910390f35b6104696004803603602081101561043d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d70565b60405180821515815260200191505060405180910390f35b610489610dc6565b6040518082815260200191505060405180910390f35b6104cb600480360360208110156104b557600080fd5b8101908080359060200190929190505050610dcc565b005b61050f600480360360208110156104e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e9e565b005b6105536004803603602081101561052757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610faa565b005b6105816004803603602081101561056b57600080fd5b81019080803590602001909291905050506110b6565b005b6105c56004803603602081101561059957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611188565b6040518082815260200191505060405180910390f35b6105e36111d1565b005b6105ed611357565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61062161137d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106556113a6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069557808201518184015260208101905061067a565b50505050905090810190601f1680156106c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61071c600480360360408110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113e3565b60405180821515815260200191505060405180910390f35b61073c611401565b6040518082815260200191505060405180910390f35b61075a611407565b6040518082815260200191505060405180910390f35b61079c6004803603602081101561078657600080fd5b8101908080359060200190929190505050611411565b005b610800600480360360408110156107b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114e3565b6040518082815260200191505060405180910390f35b61081e61156a565b6040518082815260200191505060405180910390f35b6108766004803603602081101561084a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611574565b005b6108ba6004803603602081101561088e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061173a565b005b60606040518060400160405280600681526020017f46696e7465780000000000000000000000000000000000000000000000000000815250905090565b600061090d6109066119cd565b84846119d5565b6001905092915050565b61091f6119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125406022913960400191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600069021e19e0c9bab2400000905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b3a6119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610be8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f7420416c6c6f77656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b610c988260405180606001604052806025815260200161266160259139600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c4e6119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bcc9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ce16119cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d2a848484611c86565b600190509392505050565b60006012905090565b60085481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b610dd46119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060088190555050565b610ea66119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610fb26119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110be6119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060068190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111d96119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4654455800000000000000000000000000000000000000000000000000000000815250905090565b60006113f76113f06119cd565b8484611c86565b6001905092915050565b60065481565b6000600454905090565b6114196119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060078190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600554905090565b61157c6119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061263d6024913960400191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117426119cd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611888576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806125626026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110156119c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806126196024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125886022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000838311158290611c79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c3e578082015181840152602081019050611c23565b50505050905090810190601f168015611c6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806125f46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061251d6023913960400191505060405180910390fd5b60008111611deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806125cb6029913960400191505060405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e8e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e9c5760009050611ed6565b611ea582612083565b90506000611eb2826120b4565b90506000611ebf836120e6565b9050611eca82612118565b611ed381612251565b50505b6000611eeb828461238a90919063ffffffff16565b9050611f3f81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fd483600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238a90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050505050565b60006120ad606461209f6006548561240d90919063ffffffff16565b61249390919063ffffffff16565b9050919050565b60006120df6009546120d16007548561240d90919063ffffffff16565b61249390919063ffffffff16565b9050919050565b60006121116009546121036008548561240d90919063ffffffff16565b61249390919063ffffffff16565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121745761224e565b6121e88160016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194590919063ffffffff16565b60016000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156122ad57612387565b6123218160016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194590919063ffffffff16565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b600082821115612402576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600080831415612420576000905061248d565b600082840290508284828161243157fe5b0414612488576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806125aa6021913960400191505060405180910390fd5b809150505b92915050565b600080821161250a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b81838161251357fe5b0490509291505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734163636f756e7420697320616c726561647920696e636c7564656420696e206665654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734163636f756e7420697320616c7265616479206578636c756465642066726f6d2066656545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207a4524e8ad39b769da93535f8b1b3a61a8b7672ab6509fcb9369e467ab0cdf4f64736f6c63430007040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000aa99007aa41ff10d76e91d96ff4b0bc773336c27000000000000000000000000ed58bf1d97db2f45495fe530527ba89939a3f1e4

-----Decoded View---------------
Arg [0] : _rewardAddress (address): 0xaA99007aa41ff10d76E91d96Ff4b0Bc773336C27
Arg [1] : _lotteryAddress (address): 0xeD58bF1d97dB2f45495fE530527ba89939A3f1e4

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000aa99007aa41ff10d76e91d96ff4b0bc773336c27
Arg [1] : 000000000000000000000000ed58bf1d97db2f45495fe530527ba89939a3f1e4


Deployed Bytecode Sourcemap

19395:6664:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20768:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21638:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22864:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21048:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21811:456;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20956:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20125:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20282:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20172:66;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22289:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20084:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25560:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25800:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25926:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25437:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21158:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18839:148;;;:::i;:::-;;20247:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18197:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20860:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21305:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20045:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22435:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25678:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21484:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22542:101;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22655:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19142:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20768:84;20807:13;20840:4;;;;;;;;;;;;;;;;;20833:11;;20768:84;:::o;21638:165::-;21715:4;21732:41;21741:12;:10;:12::i;:::-;21755:8;21765:7;21732:8;:41::i;:::-;21791:4;21784:11;;21638:165;;;;:::o;22864:197::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22943:16:::1;:26;22960:8;22943:26;;;;;;;;;;;;;;;;;;;;;;;;;22935:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23048:5;23019:16;:26;23036:8;23019:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;22864:197:::0;:::o;21048:102::-;21103:7;19935:12;21123:19;;21048:102;:::o;21811:456::-;21946:4;22007:7;21971:10;:19;21982:7;21971:19;;;;;;;;;;;;;;;:33;21991:12;:10;:12::i;:::-;21971:33;;;;;;;;;;;;;;;;:43;21963:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22078:87;22116:7;22078:87;;;;;;;;;;;;;;;;;:10;:19;22089:7;22078:19;;;;;;;;;;;;;;;:33;22098:12;:10;:12::i;:::-;22078:33;;;;;;;;;;;;;;;;:37;;:87;;;;;:::i;:::-;22042:10;:19;22053:7;22042:19;;;;;;;;;;;;;;;:33;22062:12;:10;:12::i;:::-;22042:33;;;;;;;;;;;;;;;:123;;;;22185:39;22195:7;22204:10;22216:7;22185:9;:39::i;:::-;22255:4;22248:11;;21811:456;;;;;:::o;20956:84::-;20999:5;19639:2;21017:15;;20956:84;:::o;20125:35::-;;;;:::o;20282:29::-;;;;;;;;;;;;;:::o;20172:66::-;;;;:::o;22289:127::-;22358:4;22382:16;:26;22399:8;22382:26;;;;;;;;;;;;;;;;;;;;;;;;;22375:33;;22289:127;;;:::o;20084:34::-;;;;:::o;25560:113::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25660:5:::1;25642:15;:23;;;;25560:113:::0;:::o;25800:118::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25896:14:::1;25880:13;;:30;;;;;;;;;;;;;;;;;;25800:118:::0;:::o;25926:122::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26025:15:::1;26008:14;;:32;;;;;;;;;;;;;;;;;;25926:122:::0;:::o;25437:118::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25533:14:::1;25517:13;:30;;;;25437:118:::0;:::o;21158:139::-;21225:7;21265:6;:16;21272:8;21265:16;;;;;;;;;;;;;;;;21258:23;;21158:139;;;:::o;18839:148::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18946:1:::1;18909:40;;18930:6;::::0;::::1;;;;;;;;18909:40;;;;;;;;;;;;18977:1;18960:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;18839:148::o:0;20247:28::-;;;;;;;;;;;;;:::o;18197:79::-;18235:7;18262:6;;;;;;;;;;;18255:13;;18197:79;:::o;20860:88::-;20901:13;20934:6;;;;;;;;;;;;;;;;;20927:13;;20860:88;:::o;21305:171::-;21385:4;21402:44;21412:12;:10;:12::i;:::-;21426:10;21438:7;21402:9;:44::i;:::-;21464:4;21457:11;;21305:171;;;;:::o;20045:32::-;;;;:::o;22435:99::-;22485:7;22512:14;;22505:21;;22435:99;:::o;25678:111::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25776:5:::1;25759:14;:22;;;;25678:111:::0;:::o;21484:146::-;21567:7;21594:10;:18;21605:6;21594:18;;;;;;;;;;;;;;;:28;21613:8;21594:28;;;;;;;;;;;;;;;;21587:35;;21484:146;;;;:::o;22542:101::-;22593:7;22620:15;;22613:22;;22542:101;:::o;22655:201::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22737:16:::1;:26;22754:8;22737:26;;;;;;;;;;;;;;;;;;;;;;;;;22736:27;22728:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22844:4;22815:16;:26;22832:8;22815:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;22655:201:::0;:::o;19142:244::-;18419:12;:10;:12::i;:::-;18409:22;;:6;;;;;;;;;;:22;;;18401:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:1:::1;19231:22;;:8;:22;;;;19223:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19341:8;19312:38;;19333:6;::::0;::::1;;;;;;;;19312:38;;;;;;;;;;;;19370:8;19361:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;19142:244:::0;:::o;5157:179::-;5215:7;5235:9;5251:1;5247;:5;5235:17;;5276:1;5271;:6;;5263:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5327:1;5320:8;;;5157:179;;;;:::o;236:106::-;289:15;324:10;317:17;;236:106;:::o;23075:389::-;23223:1;23205:20;;:6;:20;;;;23197:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23305:1;23285:22;;:8;:22;;;;23277:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23398:7;23367:10;:18;23378:6;23367:18;;;;;;;;;;;;;;;:28;23386:8;23367:28;;;;;;;;;;;;;;;:38;;;;23438:8;23421:35;;23430:6;23421:35;;;23448:7;23421:35;;;;;;;;;;;;;;;;;;23075:389;;;:::o;7984:166::-;8070:7;8103:1;8098;:6;;8106:12;8090:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8141:1;8137;:5;8130:12;;7984:166;;;;;:::o;23472:1048::-;23625:1;23606:21;;:7;:21;;;;23598:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23710:1;23688:24;;:10;:24;;;;23680:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23781:1;23771:7;:11;23763:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23844:11;23874:16;:25;23891:7;23874:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;23903:16;:28;23920:10;23903:28;;;;;;;;;;;;;;;;;;;;;;;;;23874:57;23870:364;;;23955:1;23949:7;;23870:364;;;23997:16;24005:7;23997;:16::i;:::-;23991:22;;24028:17;24048:18;24062:3;24048:13;:18::i;:::-;24028:38;;24081:18;24102:19;24117:3;24102:14;:19::i;:::-;24081:40;;24150:27;24167:9;24150:16;:27::i;:::-;24192:29;24210:10;24192:17;:29::i;:::-;23870:364;;;24246:28;24277:16;24289:3;24277:7;:11;;:16;;;;:::i;:::-;24246:47;;24328:44;24351:20;24328:6;:18;24335:10;24328:18;;;;;;;;;;;;;;;;:22;;:44;;;;:::i;:::-;24307:6;:18;24314:10;24307:18;;;;;;;;;;;;;;;:65;;;;24401:28;24421:7;24401:6;:15;24408:7;24401:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24383:6;:15;24390:7;24383:15;;;;;;;;;;;;;;;:46;;;;24465:10;24447:51;;24456:7;24447:51;;;24477:20;24447:51;;;;;;;;;;;;;;;;;;23472:1048;;;;;:::o;25001:126::-;25057:7;25084:35;25115:3;25084:26;25096:13;;25084:7;:11;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;25077:42;;25001:126;;;:::o;25138:137::-;25197:7;25224:43;25253:13;;25224:24;25233:14;;25224:4;:8;;:24;;;;:::i;:::-;:28;;:43;;;;:::i;:::-;25217:50;;25138:137;;;:::o;25283:139::-;25343:7;25370:44;25400:13;;25370:25;25379:15;;25370:4;:8;;:25;;;;:::i;:::-;:29;;:44;;;;:::i;:::-;25363:51;;25283:139;;;:::o;24530:222::-;24624:1;24599:27;;:13;;;;;;;;;;;:27;;;24595:66;;;24643:7;;24595:66;24697:37;24723:10;24697:6;:21;24704:13;;;;;;;;;;;24697:21;;;;;;;;;;;;;;;;:25;;:37;;;;:::i;:::-;24673:6;:21;24680:13;;;;;;;;;;;24673:21;;;;;;;;;;;;;;;:61;;;;24530:222;;:::o;24760:229::-;24857:1;24831:28;;:14;;;;;;;;;;;:28;;;24827:67;;;24876:7;;24827:67;24932:39;24959:11;24932:6;:22;24939:14;;;;;;;;;;;24932:22;;;;;;;;;;;;;;;;:26;;:39;;;;:::i;:::-;24907:6;:22;24914:14;;;;;;;;;;;24907:22;;;;;;;;;;;;;;;:64;;;;24760:229;;:::o;5619:158::-;5677:7;5710:1;5705;:6;;5697:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5768:1;5764;:5;5757:12;;5619:158;;;;:::o;6036:220::-;6094:7;6123:1;6118;:6;6114:20;;;6133:1;6126:8;;;;6114:20;6145:9;6161:1;6157;:5;6145:17;;6190:1;6185;6181;:5;;;;;;:10;6173:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6247:1;6240:8;;;6036:220;;;;;:::o;6734:153::-;6792:7;6824:1;6820;:5;6812:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6878:1;6874;:5;;;;;;6867:12;;6734:153;;;;:::o

Swarm Source

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