ERC-20
Overview
Max Total Supply
333,333,333,333 No.333
Holders
42
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
695,505,349.252870205252983852 No.333Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
StandardToken
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-26 */ /* * Telegram:https://t.me/sandwichbot_coin * Website : https://sandwichbot.tech/ * Twitter : https://twitter.com/SandwichBotcoin */ // Dependency file: @openzeppelin/contracts/token/ERC20/IERC20.sol // SPDX-License-Identifier: MIT // pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); } // Dependency file: @openzeppelin/contracts/utils/Context.sol // pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // Dependency file: @openzeppelin/contracts/access/Ownable.sol // pragma solidity ^0.8.0; // import "@openzeppelin/contracts/utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ 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() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual 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 { _setOwner(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"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // Dependency file: @openzeppelin/contracts/utils/math/SafeMath.sol // pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { 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. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // 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. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { 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. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { 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) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return 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) { return a * b; } /** * @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. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { 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) { 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) { unchecked { 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. * * 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) { unchecked { 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) { unchecked { require(b > 0, errorMessage); return a % b; } } } // Dependency file: contracts/BaseToken.sol // pragma solidity =0.8.0; enum TokenType { standard, antiBotStandard, liquidityGenerator, antiBotLiquidityGenerator, baby, antiBotBaby, buybackBaby, antiBotBuybackBaby } abstract contract BaseToken { event TokenCreated( address indexed owner, address indexed token, TokenType tokenType, uint256 version ); } // Root file: contracts/standard/StandardToken.sol pragma solidity =0.8.0; // import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; // import "@openzeppelin/contracts/access/Ownable.sol"; // import "@openzeppelin/contracts/utils/math/SafeMath.sol"; // import "contracts/BaseToken.sol"; contract StandardToken is IERC20, Ownable, BaseToken { using SafeMath for uint256; uint256 public constant VERSION = 1; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; constructor( string memory name_, string memory symbol_, uint8 decimals_, uint256 totalSupply_, address serviceFeeReceiver_, uint256 serviceFee_ ) payable { _name = name_; _symbol = symbol_; _decimals = decimals_; _mint(owner(), totalSupply_); emit TokenCreated(owner(), address(this), TokenType.standard, VERSION); payable(serviceFeeReceiver_).transfer(serviceFee_); } /** * @dev Returns the name of the token. */ function name() public view virtual returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is * called. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual returns (uint8) { return _decimals; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub( amount, "ERC20: transfer amount exceeds balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub( amount, "ERC20: burn amount exceeds balance" ); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Sets {decimals} to a value other than the default one of 18. * * WARNING: This function should only be called from the constructor. Most * applications that interact with token contracts will not expect * {decimals} to ever change, and may work incorrectly if it does. */ function _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"address","name":"serviceFeeReceiver_","type":"address"},{"internalType":"uint256","name":"serviceFee_","type":"uint256"}],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"enum TokenType","name":"tokenType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"version","type":"uint256"}],"name":"TokenCreated","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":[],"name":"VERSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052604051620020d6380380620020d68339818101604052810190620000299190620005af565b620000496200003d6200018560201b60201c565b6200018d60201b60201c565b85600390805190602001906200006192919062000448565b5084600490805190602001906200007a92919062000448565b5083600560006101000a81548160ff021916908360ff160217905550620000b7620000aa6200025160201b60201c565b846200027a60201b60201c565b3073ffffffffffffffffffffffffffffffffffffffff16620000de6200025160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff167f56358b41df5fa59f5639228f0930994cbdde383c8a8fd74e06c04e1deebe35626000600160405162000129929190620006db565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801562000178573d6000803e3d6000fd5b5050505050505062000a1d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002e49062000708565b60405180910390fd5b62000301600083836200042b60201b60201c565b6200031d816006546200043060201b6200097c1790919060201c565b6006819055506200037c81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200043060201b6200097c1790919060201c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200041f91906200072a565b60405180910390a35050565b505050565b60008183620004409190620007bf565b905092915050565b8280546200045690620008c6565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b60006200050f62000509846200077b565b62000747565b9050828152602081018484840111156200052857600080fd5b6200053584828562000890565b509392505050565b6000815190506200054e81620009cf565b92915050565b600082601f8301126200056657600080fd5b815162000578848260208601620004f8565b91505092915050565b6000815190506200059281620009e9565b92915050565b600081519050620005a98162000a03565b92915050565b60008060008060008060c08789031215620005c957600080fd5b600087015167ffffffffffffffff811115620005e457600080fd5b620005f289828a0162000554565b965050602087015167ffffffffffffffff8111156200061057600080fd5b6200061e89828a0162000554565b95505060406200063189828a0162000598565b94505060606200064489828a0162000581565b93505060806200065789828a016200053d565b92505060a06200066a89828a0162000581565b9150509295509295509295565b62000682816200087c565b82525050565b600062000697601f83620007ae565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620006d58162000865565b82525050565b6000604082019050620006f2600083018562000677565b620007016020830184620006ca565b9392505050565b60006020820190508181036000830152620007238162000688565b9050919050565b6000602082019050620007416000830184620006ca565b92915050565b6000604051905081810181811067ffffffffffffffff8211171562000771576200077062000989565b5b8060405250919050565b600067ffffffffffffffff82111562000799576200079862000989565b5b601f19601f8301169050602081019050919050565b600082825260208201905092915050565b6000620007cc8262000865565b9150620007d98362000865565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008115762000810620008fc565b5b828201905092915050565b6000620008298262000845565b9050919050565b60008190506200084082620009b8565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000620008898262000830565b9050919050565b60005b83811015620008b057808201518184015260208101905062000893565b83811115620008c0576000848401525b50505050565b60006002820490506001821680620008df57607f821691505b60208210811415620008f657620008f56200095a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60088110620009cc57620009cb6200092b565b5b50565b620009da816200081c565b8114620009e657600080fd5b50565b620009f48162000865565b811462000a0057600080fd5b50565b62000a0e816200086f565b811462000a1a57600080fd5b50565b6116a98062000a2d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb1461028a578063dd62ed3e146102ba578063f2fde38b146102ea578063ffa1ad7414610306576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c578063a457c2d71461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610324565b60405161010f919061131f565b60405180910390f35b610132600480360381019061012d9190610ffa565b6103b6565b60405161013f9190611304565b60405180910390f35b6101506103d4565b60405161015d9190611401565b60405180910390f35b610180600480360381019061017b9190610fab565b6103de565b60405161018d9190611304565b60405180910390f35b61019e6104b7565b6040516101ab919061141c565b60405180910390f35b6101ce60048036038101906101c99190610ffa565b6104ce565b6040516101db9190611304565b60405180910390f35b6101fe60048036038101906101f99190610f46565b610581565b60405161020b9190611401565b60405180910390f35b61021c6105ca565b005b610226610652565b60405161023391906112e9565b60405180910390f35b61024461067b565b604051610251919061131f565b60405180910390f35b610274600480360381019061026f9190610ffa565b61070d565b6040516102819190611304565b60405180910390f35b6102a4600480360381019061029f9190610ffa565b6107da565b6040516102b19190611304565b60405180910390f35b6102d460048036038101906102cf9190610f6f565b6107f8565b6040516102e19190611401565b60405180910390f35b61030460048036038101906102ff9190610f46565b61087f565b005b61030e610977565b60405161031b9190611401565b60405180910390f35b60606003805461033390611531565b80601f016020809104026020016040519081016040528092919081815260200182805461035f90611531565b80156103ac5780601f10610381576101008083540402835291602001916103ac565b820191906000526020600020905b81548152906001019060200180831161038f57829003601f168201915b5050505050905090565b60006103ca6103c3610992565b848461099a565b6001905092915050565b6000600654905090565b60006103eb848484610b65565b6104ac846103f7610992565b6104a78560405180606001604052806028815260200161162760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061045d610992565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dfe9092919063ffffffff16565b61099a565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006105776104db610992565b8461057285600260006104ec610992565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097c90919063ffffffff16565b61099a565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105d2610992565b73ffffffffffffffffffffffffffffffffffffffff166105f0610652565b73ffffffffffffffffffffffffffffffffffffffff1614610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d906113a1565b60405180910390fd5b6106506000610e53565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461068a90611531565b80601f01602080910402602001604051908101604052809291908181526020018280546106b690611531565b80156107035780601f106106d857610100808354040283529160200191610703565b820191906000526020600020905b8154815290600101906020018083116106e657829003601f168201915b5050505050905090565b60006107d061071a610992565b846107cb8560405180606001604052806025815260200161164f6025913960026000610744610992565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dfe9092919063ffffffff16565b61099a565b6001905092915050565b60006107ee6107e7610992565b8484610b65565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610887610992565b73ffffffffffffffffffffffffffffffffffffffff166108a5610652565b73ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f2906113a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290611361565b60405180910390fd5b61097481610e53565b50565b600181565b6000818361098a9190611453565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a01906113e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7190611381565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b589190611401565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc906113c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90611341565b60405180910390fd5b610c50838383610f17565b610cbc8160405180606001604052806026815260200161160160269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dfe9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610df19190611401565b60405180910390a3505050565b6000838311158290610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d919061131f565b60405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600081359050610f2b816115d2565b92915050565b600081359050610f40816115e9565b92915050565b600060208284031215610f5857600080fd5b6000610f6684828501610f1c565b91505092915050565b60008060408385031215610f8257600080fd5b6000610f9085828601610f1c565b9250506020610fa185828601610f1c565b9150509250929050565b600080600060608486031215610fc057600080fd5b6000610fce86828701610f1c565b9350506020610fdf86828701610f1c565b9250506040610ff086828701610f31565b9150509250925092565b6000806040838503121561100d57600080fd5b600061101b85828601610f1c565b925050602061102c85828601610f31565b9150509250929050565b61103f816114a9565b82525050565b61104e816114bb565b82525050565b600061105f82611437565b6110698185611442565b93506110798185602086016114fe565b611082816115c1565b840191505092915050565b600061109a602383611442565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611100602683611442565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611166602283611442565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006111cc602083611442565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061120c602583611442565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611272602483611442565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6112d4816114e7565b82525050565b6112e3816114f1565b82525050565b60006020820190506112fe6000830184611036565b92915050565b60006020820190506113196000830184611045565b92915050565b600060208201905081810360008301526113398184611054565b905092915050565b6000602082019050818103600083015261135a8161108d565b9050919050565b6000602082019050818103600083015261137a816110f3565b9050919050565b6000602082019050818103600083015261139a81611159565b9050919050565b600060208201905081810360008301526113ba816111bf565b9050919050565b600060208201905081810360008301526113da816111ff565b9050919050565b600060208201905081810360008301526113fa81611265565b9050919050565b600060208201905061141660008301846112cb565b92915050565b600060208201905061143160008301846112da565b92915050565b600081519050919050565b600082825260208201905092915050565b600061145e826114e7565b9150611469836114e7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561149e5761149d611563565b5b828201905092915050565b60006114b4826114c7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561151c578082015181840152602081019050611501565b8381111561152b576000848401525b50505050565b6000600282049050600182168061154957607f821691505b6020821081141561155d5761155c611592565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6115db816114a9565b81146115e657600080fd5b50565b6115f2816114e7565b81146115fd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207239f732ab9c4fbcddbcd86e7e485161cbdd466dda65e75fb6d8cb91a3b8b6a664736f6c6343000800003300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000004350edef012dc12678834000000000000000000000000000069ec94815018c86ee9eea2ac3cd8d27bec1b1f96000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064e6f2e333333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064e6f2e3333330000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb1461028a578063dd62ed3e146102ba578063f2fde38b146102ea578063ffa1ad7414610306576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c578063a457c2d71461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610324565b60405161010f919061131f565b60405180910390f35b610132600480360381019061012d9190610ffa565b6103b6565b60405161013f9190611304565b60405180910390f35b6101506103d4565b60405161015d9190611401565b60405180910390f35b610180600480360381019061017b9190610fab565b6103de565b60405161018d9190611304565b60405180910390f35b61019e6104b7565b6040516101ab919061141c565b60405180910390f35b6101ce60048036038101906101c99190610ffa565b6104ce565b6040516101db9190611304565b60405180910390f35b6101fe60048036038101906101f99190610f46565b610581565b60405161020b9190611401565b60405180910390f35b61021c6105ca565b005b610226610652565b60405161023391906112e9565b60405180910390f35b61024461067b565b604051610251919061131f565b60405180910390f35b610274600480360381019061026f9190610ffa565b61070d565b6040516102819190611304565b60405180910390f35b6102a4600480360381019061029f9190610ffa565b6107da565b6040516102b19190611304565b60405180910390f35b6102d460048036038101906102cf9190610f6f565b6107f8565b6040516102e19190611401565b60405180910390f35b61030460048036038101906102ff9190610f46565b61087f565b005b61030e610977565b60405161031b9190611401565b60405180910390f35b60606003805461033390611531565b80601f016020809104026020016040519081016040528092919081815260200182805461035f90611531565b80156103ac5780601f10610381576101008083540402835291602001916103ac565b820191906000526020600020905b81548152906001019060200180831161038f57829003601f168201915b5050505050905090565b60006103ca6103c3610992565b848461099a565b6001905092915050565b6000600654905090565b60006103eb848484610b65565b6104ac846103f7610992565b6104a78560405180606001604052806028815260200161162760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061045d610992565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dfe9092919063ffffffff16565b61099a565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006105776104db610992565b8461057285600260006104ec610992565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097c90919063ffffffff16565b61099a565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105d2610992565b73ffffffffffffffffffffffffffffffffffffffff166105f0610652565b73ffffffffffffffffffffffffffffffffffffffff1614610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d906113a1565b60405180910390fd5b6106506000610e53565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461068a90611531565b80601f01602080910402602001604051908101604052809291908181526020018280546106b690611531565b80156107035780601f106106d857610100808354040283529160200191610703565b820191906000526020600020905b8154815290600101906020018083116106e657829003601f168201915b5050505050905090565b60006107d061071a610992565b846107cb8560405180606001604052806025815260200161164f6025913960026000610744610992565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dfe9092919063ffffffff16565b61099a565b6001905092915050565b60006107ee6107e7610992565b8484610b65565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610887610992565b73ffffffffffffffffffffffffffffffffffffffff166108a5610652565b73ffffffffffffffffffffffffffffffffffffffff16146108fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f2906113a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290611361565b60405180910390fd5b61097481610e53565b50565b600181565b6000818361098a9190611453565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a01906113e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7190611381565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b589190611401565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc906113c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90611341565b60405180910390fd5b610c50838383610f17565b610cbc8160405180606001604052806026815260200161160160269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dfe9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d5181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461097c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610df19190611401565b60405180910390a3505050565b6000838311158290610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d919061131f565b60405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b600081359050610f2b816115d2565b92915050565b600081359050610f40816115e9565b92915050565b600060208284031215610f5857600080fd5b6000610f6684828501610f1c565b91505092915050565b60008060408385031215610f8257600080fd5b6000610f9085828601610f1c565b9250506020610fa185828601610f1c565b9150509250929050565b600080600060608486031215610fc057600080fd5b6000610fce86828701610f1c565b9350506020610fdf86828701610f1c565b9250506040610ff086828701610f31565b9150509250925092565b6000806040838503121561100d57600080fd5b600061101b85828601610f1c565b925050602061102c85828601610f31565b9150509250929050565b61103f816114a9565b82525050565b61104e816114bb565b82525050565b600061105f82611437565b6110698185611442565b93506110798185602086016114fe565b611082816115c1565b840191505092915050565b600061109a602383611442565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611100602683611442565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611166602283611442565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006111cc602083611442565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061120c602583611442565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611272602483611442565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6112d4816114e7565b82525050565b6112e3816114f1565b82525050565b60006020820190506112fe6000830184611036565b92915050565b60006020820190506113196000830184611045565b92915050565b600060208201905081810360008301526113398184611054565b905092915050565b6000602082019050818103600083015261135a8161108d565b9050919050565b6000602082019050818103600083015261137a816110f3565b9050919050565b6000602082019050818103600083015261139a81611159565b9050919050565b600060208201905081810360008301526113ba816111bf565b9050919050565b600060208201905081810360008301526113da816111ff565b9050919050565b600060208201905081810360008301526113fa81611265565b9050919050565b600060208201905061141660008301846112cb565b92915050565b600060208201905061143160008301846112da565b92915050565b600081519050919050565b600082825260208201905092915050565b600061145e826114e7565b9150611469836114e7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561149e5761149d611563565b5b828201905092915050565b60006114b4826114c7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561151c578082015181840152602081019050611501565b8381111561152b576000848401525b50505050565b6000600282049050600182168061154957607f821691505b6020821081141561155d5761155c611592565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6115db816114a9565b81146115e657600080fd5b50565b6115f2816114e7565b81146115fd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207239f732ab9c4fbcddbcd86e7e485161cbdd466dda65e75fb6d8cb91a3b8b6a664736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000004350edef012dc12678834000000000000000000000000000069ec94815018c86ee9eea2ac3cd8d27bec1b1f96000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064e6f2e333333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064e6f2e3333330000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): No.333
Arg [1] : symbol_ (string): No.333
Arg [2] : decimals_ (uint8): 18
Arg [3] : totalSupply_ (uint256): 333333333333000000000000000000
Arg [4] : serviceFeeReceiver_ (address): 0x69eC94815018c86ee9EeA2aC3cd8D27bEc1B1F96
Arg [5] : serviceFee_ (uint256): 0
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000004350edef012dc126788340000
Arg [4] : 00000000000000000000000069ec94815018c86ee9eea2ac3cd8d27bec1b1f96
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [7] : 4e6f2e3333330000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [9] : 4e6f2e3333330000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
13959:10523:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14910:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17197:210;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16009:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17889:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15853:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18752:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16180:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5601:94;;;:::i;:::-;;4950:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15120:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19555:400;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16570:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16849:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5850:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14054:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14910:91;14955:13;14988:5;14981:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14910:91;:::o;17197:210::-;17316:4;17338:39;17347:12;:10;:12::i;:::-;17361:7;17370:6;17338:8;:39::i;:::-;17395:4;17388:11;;17197:210;;;;:::o;16009:108::-;16070:7;16097:12;;16090:19;;16009:108;:::o;17889:454::-;18029:4;18046:36;18056:6;18064:9;18075:6;18046:9;:36::i;:::-;18093:220;18116:6;18137:12;:10;:12::i;:::-;18164:138;18220:6;18164:138;;;;;;;;;;;;;;;;;:11;:19;18176:6;18164:19;;;;;;;;;;;;;;;:33;18184:12;:10;:12::i;:::-;18164:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;18093:8;:220::i;:::-;18331:4;18324:11;;17889:454;;;;;:::o;15853:91::-;15902:5;15927:9;;;;;;;;;;;15920:16;;15853:91;:::o;18752:300::-;18867:4;18889:133;18912:12;:10;:12::i;:::-;18939:7;18961:50;19000:10;18961:11;:25;18973:12;:10;:12::i;:::-;18961:25;;;;;;;;;;;;;;;:34;18987:7;18961:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18889:8;:133::i;:::-;19040:4;19033:11;;18752:300;;;;:::o;16180:177::-;16299:7;16331:9;:18;16341:7;16331:18;;;;;;;;;;;;;;;;16324:25;;16180:177;;;:::o;5601:94::-;5181:12;:10;:12::i;:::-;5170:23;;:7;:5;:7::i;:::-;:23;;;5162:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5666:21:::1;5684:1;5666:9;:21::i;:::-;5601:94::o:0;4950:87::-;4996:7;5023:6;;;;;;;;;;;5016:13;;4950:87;:::o;15120:95::-;15167:13;15200:7;15193:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15120:95;:::o;19555:400::-;19675:4;19697:228;19720:12;:10;:12::i;:::-;19747:7;19769:145;19826:15;19769:145;;;;;;;;;;;;;;;;;:11;:25;19781:12;:10;:12::i;:::-;19769:25;;;;;;;;;;;;;;;:34;19795:7;19769:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;19697:8;:228::i;:::-;19943:4;19936:11;;19555:400;;;;:::o;16570:216::-;16692:4;16714:42;16724:12;:10;:12::i;:::-;16738:9;16749:6;16714:9;:42::i;:::-;16774:4;16767:11;;16570:216;;;;:::o;16849:201::-;16983:7;17015:11;:18;17027:5;17015:18;;;;;;;;;;;;;;;:27;17034:7;17015:27;;;;;;;;;;;;;;;;17008:34;;16849:201;;;;:::o;5850:192::-;5181:12;:10;:12::i;:::-;5170:23;;:7;:5;:7::i;:::-;:23;;;5162:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5959:1:::1;5939:22;;:8;:22;;;;5931:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6015:19;6025:8;6015:9;:19::i;:::-;5850:192:::0;:::o;14054:35::-;14088:1;14054:35;:::o;9036:98::-;9094:7;9125:1;9121;:5;;;;:::i;:::-;9114:12;;9036:98;;;;:::o;3668:::-;3721:7;3748:10;3741:17;;3668:98;:::o;22941:380::-;23094:1;23077:19;;:5;:19;;;;23069:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23175:1;23156:21;;:7;:21;;;;23148:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23259:6;23229:11;:18;23241:5;23229:18;;;;;;;;;;;;;;;:27;23248:7;23229:27;;;;;;;;;;;;;;;:36;;;;23297:7;23281:32;;23290:5;23281:32;;;23306:6;23281:32;;;;;;:::i;:::-;;;;;;;;22941:380;;;:::o;20445:610::-;20603:1;20585:20;;:6;:20;;;;20577:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20687:1;20666:23;;:9;:23;;;;20658:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20742:47;20763:6;20771:9;20782:6;20742:20;:47::i;:::-;20822:108;20858:6;20822:108;;;;;;;;;;;;;;;;;:9;:17;20832:6;20822:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;20802:9;:17;20812:6;20802:17;;;;;;;;;;;;;;;:128;;;;20964:32;20989:6;20964:9;:20;20974:9;20964:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20941:9;:20;20951:9;20941:20;;;;;;;;;;;;;;;:55;;;;21029:9;21012:35;;21021:6;21012:35;;;21040:6;21012:35;;;;;;:::i;:::-;;;;;;;;20445:610;;;:::o;11315:240::-;11435:7;11493:1;11488;:6;;11496:12;11480:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;11535:1;11531;:5;11524:12;;11315:240;;;;;:::o;6050:173::-;6106:16;6125:6;;;;;;;;;;;6106:25;;6151:8;6142:6;;:17;;;;;;;;;;;;;;;;;;6206:8;6175:40;;6196:8;6175:40;;;;;;;;;;;;6050:173;;:::o;24354:125::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:118::-;2036:24;2054:5;2036:24;:::i;:::-;2031:3;2024:37;2014:53;;:::o;2073:109::-;2154:21;2169:5;2154:21;:::i;:::-;2149:3;2142:34;2132:50;;:::o;2188:364::-;;2304:39;2337:5;2304:39;:::i;:::-;2359:71;2423:6;2418:3;2359:71;:::i;:::-;2352:78;;2439:52;2484:6;2479:3;2472:4;2465:5;2461:16;2439:52;:::i;:::-;2516:29;2538:6;2516:29;:::i;:::-;2511:3;2507:39;2500:46;;2280:272;;;;;:::o;2558:367::-;;2721:67;2785:2;2780:3;2721:67;:::i;:::-;2714:74;;2818:34;2814:1;2809:3;2805:11;2798:55;2884:5;2879:2;2874:3;2870:12;2863:27;2916:2;2911:3;2907:12;2900:19;;2704:221;;;:::o;2931:370::-;;3094:67;3158:2;3153:3;3094:67;:::i;:::-;3087:74;;3191:34;3187:1;3182:3;3178:11;3171:55;3257:8;3252:2;3247:3;3243:12;3236:30;3292:2;3287:3;3283:12;3276:19;;3077:224;;;:::o;3307:366::-;;3470:67;3534:2;3529:3;3470:67;:::i;:::-;3463:74;;3567:34;3563:1;3558:3;3554:11;3547:55;3633:4;3628:2;3623:3;3619:12;3612:26;3664:2;3659:3;3655:12;3648:19;;3453:220;;;:::o;3679:330::-;;3842:67;3906:2;3901:3;3842:67;:::i;:::-;3835:74;;3939:34;3935:1;3930:3;3926:11;3919:55;4000:2;3995:3;3991:12;3984:19;;3825:184;;;:::o;4015:369::-;;4178:67;4242:2;4237:3;4178:67;:::i;:::-;4171:74;;4275:34;4271:1;4266:3;4262:11;4255:55;4341:7;4336:2;4331:3;4327:12;4320:29;4375:2;4370:3;4366:12;4359:19;;4161:223;;;:::o;4390:368::-;;4553:67;4617:2;4612:3;4553:67;:::i;:::-;4546:74;;4650:34;4646:1;4641:3;4637:11;4630:55;4716:6;4711:2;4706:3;4702:12;4695:28;4749:2;4744:3;4740:12;4733:19;;4536:222;;;:::o;4764:118::-;4851:24;4869:5;4851:24;:::i;:::-;4846:3;4839:37;4829:53;;:::o;4888:112::-;4971:22;4987:5;4971:22;:::i;:::-;4966:3;4959:35;4949:51;;:::o;5006:222::-;;5137:2;5126:9;5122:18;5114:26;;5150:71;5218:1;5207:9;5203:17;5194:6;5150:71;:::i;:::-;5104:124;;;;:::o;5234:210::-;;5359:2;5348:9;5344:18;5336:26;;5372:65;5434:1;5423:9;5419:17;5410:6;5372:65;:::i;:::-;5326:118;;;;:::o;5450:313::-;;5601:2;5590:9;5586:18;5578:26;;5650:9;5644:4;5640:20;5636:1;5625:9;5621:17;5614:47;5678:78;5751:4;5742:6;5678:78;:::i;:::-;5670:86;;5568:195;;;;:::o;5769:419::-;;5973:2;5962:9;5958:18;5950:26;;6022:9;6016:4;6012:20;6008:1;5997:9;5993:17;5986:47;6050:131;6176:4;6050:131;:::i;:::-;6042:139;;5940:248;;;:::o;6194:419::-;;6398:2;6387:9;6383:18;6375:26;;6447:9;6441:4;6437:20;6433:1;6422:9;6418:17;6411:47;6475:131;6601:4;6475:131;:::i;:::-;6467:139;;6365:248;;;:::o;6619:419::-;;6823:2;6812:9;6808:18;6800:26;;6872:9;6866:4;6862:20;6858:1;6847:9;6843:17;6836:47;6900:131;7026:4;6900:131;:::i;:::-;6892:139;;6790:248;;;:::o;7044:419::-;;7248:2;7237:9;7233:18;7225:26;;7297:9;7291:4;7287:20;7283:1;7272:9;7268:17;7261:47;7325:131;7451:4;7325:131;:::i;:::-;7317:139;;7215:248;;;:::o;7469:419::-;;7673:2;7662:9;7658:18;7650:26;;7722:9;7716:4;7712:20;7708:1;7697:9;7693:17;7686:47;7750:131;7876:4;7750:131;:::i;:::-;7742:139;;7640:248;;;:::o;7894:419::-;;8098:2;8087:9;8083:18;8075:26;;8147:9;8141:4;8137:20;8133:1;8122:9;8118:17;8111:47;8175:131;8301:4;8175:131;:::i;:::-;8167:139;;8065:248;;;:::o;8319:222::-;;8450:2;8439:9;8435:18;8427:26;;8463:71;8531:1;8520:9;8516:17;8507:6;8463:71;:::i;:::-;8417:124;;;;:::o;8547:214::-;;8674:2;8663:9;8659:18;8651:26;;8687:67;8751:1;8740:9;8736:17;8727:6;8687:67;:::i;:::-;8641:120;;;;:::o;8767:99::-;;8853:5;8847:12;8837:22;;8826:40;;;:::o;8872:169::-;;8990:6;8985:3;8978:19;9030:4;9025:3;9021:14;9006:29;;8968:73;;;;:::o;9047:305::-;;9106:20;9124:1;9106:20;:::i;:::-;9101:25;;9140:20;9158:1;9140:20;:::i;:::-;9135:25;;9294:1;9226:66;9222:74;9219:1;9216:81;9213:2;;;9300:18;;:::i;:::-;9213:2;9344:1;9341;9337:9;9330:16;;9091:261;;;;:::o;9358:96::-;;9424:24;9442:5;9424:24;:::i;:::-;9413:35;;9403:51;;;:::o;9460:90::-;;9537:5;9530:13;9523:21;9512:32;;9502:48;;;:::o;9556:126::-;;9633:42;9626:5;9622:54;9611:65;;9601:81;;;:::o;9688:77::-;;9754:5;9743:16;;9733:32;;;:::o;9771:86::-;;9846:4;9839:5;9835:16;9824:27;;9814:43;;;:::o;9863:307::-;9931:1;9941:113;9955:6;9952:1;9949:13;9941:113;;;10040:1;10035:3;10031:11;10025:18;10021:1;10016:3;10012:11;10005:39;9977:2;9974:1;9970:10;9965:15;;9941:113;;;10072:6;10069:1;10066:13;10063:2;;;10152:1;10143:6;10138:3;10134:16;10127:27;10063:2;9912:258;;;;:::o;10176:320::-;;10257:1;10251:4;10247:12;10237:22;;10304:1;10298:4;10294:12;10325:18;10315:2;;10381:4;10373:6;10369:17;10359:27;;10315:2;10443;10435:6;10432:14;10412:18;10409:38;10406:2;;;10462:18;;:::i;:::-;10406:2;10227:269;;;;:::o;10502:180::-;10550:77;10547:1;10540:88;10647:4;10644:1;10637:15;10671:4;10668:1;10661:15;10688:180;10736:77;10733:1;10726:88;10833:4;10830:1;10823:15;10857:4;10854:1;10847:15;10874:102;;10966:2;10962:7;10957:2;10950:5;10946:14;10942:28;10932:38;;10922:54;;;:::o;10982:122::-;11055:24;11073:5;11055:24;:::i;:::-;11048:5;11045:35;11035:2;;11094:1;11091;11084:12;11035:2;11025:79;:::o;11110:122::-;11183:24;11201:5;11183:24;:::i;:::-;11176:5;11173:35;11163:2;;11222:1;11219;11212:12;11163:2;11153:79;:::o
Swarm Source
ipfs://7239f732ab9c4fbcddbcd86e7e485161cbdd466dda65e75fb6d8cb91a3b8b6a6
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.