Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Decentralized Web
Overview
Max Total Supply
125,000,000 DEXIO
Holders
2,145 (0.00%)
Market
Price
$0.01 @ 0.000003 ETH (+19.37%)
Onchain Market Cap
$1,085,849.60
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,270,959.924511534869111044 DEXIOValue
$19,727.37 ( ~5.8469 Eth) [1.8168%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Dexioprotocol
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-09 */ // SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (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; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.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. * * 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() { _transferOwnership(_msgSender()); } /** * @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 { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @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 { require(newOwner != address(0), "Ownable: new owner is the zero address"); _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); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ 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); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * 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. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; 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_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override 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 override returns (uint8) { return 18; } /** * @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: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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}. * * NOTE: If `amount` 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 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, 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}. * * 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 `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); 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) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + 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) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `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. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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: * * - `account` 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 += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(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); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(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 Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @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 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 {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } // File: contracts/DEXIO.sol /** ██████╗░███████╗██╗░░██╗██╗░█████╗░ ██╔══██╗██╔════╝╚██╗██╔╝██║██╔══██╗ ██║░░██║█████╗░░░╚███╔╝░██║██║░░██║ ██║░░██║██╔══╝░░░██╔██╗░██║██║░░██║ ██████╔╝███████╗██╔╝╚██╗██║╚█████╔╝ ╚═════╝░╚══════╝╚═╝░░╚═╝╚═╝░╚════╝░ Gamified Web3 for the people, www.Dexioprotocol.com Twitter.com/Dexioprotocol */ pragma solidity ^0.8.0; contract Dexioprotocol is ERC20, Ownable { mapping(address => bool) private _isBlacklisted; constructor() ERC20("Dexioprotocol", "DEXIO") { _mint(msg.sender, 125_000_000 * 10 ** decimals()); } function blacklistAddress(address account) external onlyOwner { _isBlacklisted[account] = true; emit Blacklisted(account); } function unblacklistAddress(address account) external onlyOwner { _isBlacklisted[account] = false; emit Unblacklisted(account); } function isBlacklisted(address account) external view returns (bool) { return _isBlacklisted[account]; } function retrieveERC20(address tokenAddress, uint256 amount) external onlyOwner { require(tokenAddress != address(this), "Cannot retrieve this token"); require(IERC20(tokenAddress).transfer(owner(), amount), "Transfer failed"); } function retrieveETH(uint256 amount) external onlyOwner { payable(owner()).transfer(amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal override { require(!_isBlacklisted[from], "Sender is blacklisted"); require(!_isBlacklisted[to], "Receiver is blacklisted"); super._beforeTokenTransfer(from, to, amount); } event Blacklisted(address indexed account); event Unblacklisted(address indexed account); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Blacklisted","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"Unblacklisted","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retrieveERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retrieveETH","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":"amount","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":"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"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unblacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600d81526020017f446578696f70726f746f636f6c000000000000000000000000000000000000008152506040518060400160405280600581526020017f444558494f000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620004a4565b508060049080519060200190620000af929190620004a4565b505050620000d2620000c66200011860201b60201c565b6200012060201b60201c565b6200011233620000e7620001e660201b60201c565b600a620000f5919062000777565b6307735940620001069190620008b4565b620001ef60201b60201c565b620009cd565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000259906200066f565b60405180910390fd5b62000276600083836200035d60201b60201c565b80600260008282546200028a9190620006bf565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200033d919062000691565b60405180910390a362000359600083836200049a60201b60201c565b5050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620003ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003e4906200064d565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200047d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000474906200062b565b60405180910390fd5b620004958383836200049f60201b62000b061760201c565b505050565b505050565b505050565b828054620004b2906200092c565b90600052602060002090601f016020900481019282620004d6576000855562000522565b82601f10620004f157805160ff191683800117855562000522565b8280016001018555821562000522579182015b828111156200052157825182559160200191906001019062000504565b5b50905062000531919062000535565b5090565b5b808211156200055057600081600090555060010162000536565b5090565b600062000563601783620006ae565b91507f526563656976657220697320626c61636b6c69737465640000000000000000006000830152602082019050919050565b6000620005a5601583620006ae565b91507f53656e64657220697320626c61636b6c697374656400000000000000000000006000830152602082019050919050565b6000620005e7601f83620006ae565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620006258162000915565b82525050565b60006020820190508181036000830152620006468162000554565b9050919050565b60006020820190508181036000830152620006688162000596565b9050919050565b600060208201905081810360008301526200068a81620005d8565b9050919050565b6000602082019050620006a860008301846200061a565b92915050565b600082825260208201905092915050565b6000620006cc8262000915565b9150620006d98362000915565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000711576200071062000962565b5b828201905092915050565b6000808291508390505b60018511156200076e5780860481111562000746576200074562000962565b5b6001851615620007565780820291505b80810290506200076685620009c0565b945062000726565b94509492505050565b6000620007848262000915565b915062000791836200091f565b9250620007c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007c8565b905092915050565b600082620007da5760019050620008ad565b81620007ea5760009050620008ad565b81600181146200080357600281146200080e5762000844565b6001915050620008ad565b60ff84111562000823576200082262000962565b5b8360020a9150848211156200083d576200083c62000962565b5b50620008ad565b5060208310610133831016604e8410600b84101617156200087e5782820a90508381111562000878576200087762000962565b5b620008ad565b6200088d84848460016200071c565b92509050818404811115620008a757620008a662000962565b5b81810290505b9392505050565b6000620008c18262000915565b9150620008ce8362000915565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200090a576200090962000962565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200094557607f821691505b602082108114156200095c576200095b62000991565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b611d0280620009dd6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063abc3964311610071578063abc396431461031e578063dd62ed3e1461033a578063f2fde38b1461036a578063f3290d7514610386578063fe575a87146103a257610121565b8063715018a6146102785780638da5cb5b1461028257806395d89b41146102a0578063a457c2d7146102be578063a9059cbb146102ee57610121565b806323b872dd116100f457806323b872dd146101ae578063313ce567146101de57806339509351146101fc57806345e349491461022c57806370a082311461024857610121565b806306fdde0314610126578063095ea7b31461014457806317fd1e2f1461017457806318160ddd14610190575b600080fd5b61012e6103d2565b60405161013b91906118f4565b60405180910390f35b61015e60048036038101906101599190611348565b610464565b60405161016b91906118d9565b60405180910390f35b61018e60048036038101906101899190611348565b610487565b005b6101986105d5565b6040516101a59190611ab6565b60405180910390f35b6101c860048036038101906101c391906112f9565b6105df565b6040516101d591906118d9565b60405180910390f35b6101e661060e565b6040516101f39190611ad1565b60405180910390f35b61021660048036038101906102119190611348565b610617565b60405161022391906118d9565b60405180910390f35b61024660048036038101906102419190611294565b61064e565b005b610262600480360381019061025d9190611294565b6106f4565b60405161026f9190611ab6565b60405180910390f35b61028061073c565b005b61028a610750565b6040516102979190611895565b60405180910390f35b6102a861077a565b6040516102b591906118f4565b60405180910390f35b6102d860048036038101906102d39190611348565b61080c565b6040516102e591906118d9565b60405180910390f35b61030860048036038101906103039190611348565b610883565b60405161031591906118d9565b60405180910390f35b610338600480360381019061033391906113ad565b6108a6565b005b610354600480360381019061034f91906112bd565b6108ff565b6040516103619190611ab6565b60405180910390f35b610384600480360381019061037f9190611294565b610986565b005b6103a0600480360381019061039b9190611294565b610a0a565b005b6103bc60048036038101906103b79190611294565b610ab0565b6040516103c991906118d9565b60405180910390f35b6060600380546103e190611be6565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611be6565b801561045a5780601f1061042f5761010080835404028352916020019161045a565b820191906000526020600020905b81548152906001019060200180831161043d57829003601f168201915b5050505050905090565b60008061046f610b0b565b905061047c818585610b13565b600191505092915050565b61048f610cde565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156104fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f5906119d6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610522610750565b836040518363ffffffff1660e01b81526004016105409291906118b0565b602060405180830381600087803b15801561055a57600080fd5b505af115801561056e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105929190611384565b6105d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c890611976565b60405180910390fd5b5050565b6000600254905090565b6000806105ea610b0b565b90506105f7858285610d5c565b610602858585610de8565b60019150509392505050565b60006012905090565b600080610622610b0b565b905061064381858561063485896108ff565b61063e9190611b08565b610b13565b600191505092915050565b610656610cde565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b60405160405180910390a250565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610744610cde565b61074e6000611060565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461078990611be6565b80601f01602080910402602001604051908101604052809291908181526020018280546107b590611be6565b80156108025780601f106107d757610100808354040283529160200191610802565b820191906000526020600020905b8154815290600101906020018083116107e557829003601f168201915b5050505050905090565b600080610817610b0b565b9050600061082582866108ff565b90508381101561086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086190611a96565b60405180910390fd5b6108778286868403610b13565b60019250505092915050565b60008061088e610b0b565b905061089b818585610de8565b600191505092915050565b6108ae610cde565b6108b6610750565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108fb573d6000803e3d6000fd5b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61098e610cde565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f590611936565b60405180910390fd5b610a0781611060565b50565b610a12610cde565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85560405160405180910390a250565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90611a76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea90611956565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cd19190611ab6565b60405180910390a3505050565b610ce6610b0b565b73ffffffffffffffffffffffffffffffffffffffff16610d04610750565b73ffffffffffffffffffffffffffffffffffffffff1614610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5190611a36565b60405180910390fd5b565b6000610d6884846108ff565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610de25781811015610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90611996565b60405180910390fd5b610de18484848403610b13565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4f90611a56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90611916565b60405180910390fd5b610ed3838383611126565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f50906119b6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110479190611ab6565b60405180910390a361105a848484611250565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90611a16565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611240576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611237906119f6565b60405180910390fd5b61124b838383610b06565b505050565b505050565b60008135905061126481611c87565b92915050565b60008151905061127981611c9e565b92915050565b60008135905061128e81611cb5565b92915050565b6000602082840312156112a657600080fd5b60006112b484828501611255565b91505092915050565b600080604083850312156112d057600080fd5b60006112de85828601611255565b92505060206112ef85828601611255565b9150509250929050565b60008060006060848603121561130e57600080fd5b600061131c86828701611255565b935050602061132d86828701611255565b925050604061133e8682870161127f565b9150509250925092565b6000806040838503121561135b57600080fd5b600061136985828601611255565b925050602061137a8582860161127f565b9150509250929050565b60006020828403121561139657600080fd5b60006113a48482850161126a565b91505092915050565b6000602082840312156113bf57600080fd5b60006113cd8482850161127f565b91505092915050565b6113df81611b5e565b82525050565b6113ee81611b70565b82525050565b60006113ff82611aec565b6114098185611af7565b9350611419818560208601611bb3565b61142281611c76565b840191505092915050565b600061143a602383611af7565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114a0602683611af7565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611506602283611af7565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061156c600f83611af7565b91507f5472616e73666572206661696c656400000000000000000000000000000000006000830152602082019050919050565b60006115ac601d83611af7565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b60006115ec602683611af7565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611652601a83611af7565b91507f43616e6e6f74207265747269657665207468697320746f6b656e0000000000006000830152602082019050919050565b6000611692601783611af7565b91507f526563656976657220697320626c61636b6c69737465640000000000000000006000830152602082019050919050565b60006116d2601583611af7565b91507f53656e64657220697320626c61636b6c697374656400000000000000000000006000830152602082019050919050565b6000611712602083611af7565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611752602583611af7565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117b8602483611af7565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061181e602583611af7565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61188081611b9c565b82525050565b61188f81611ba6565b82525050565b60006020820190506118aa60008301846113d6565b92915050565b60006040820190506118c560008301856113d6565b6118d26020830184611877565b9392505050565b60006020820190506118ee60008301846113e5565b92915050565b6000602082019050818103600083015261190e81846113f4565b905092915050565b6000602082019050818103600083015261192f8161142d565b9050919050565b6000602082019050818103600083015261194f81611493565b9050919050565b6000602082019050818103600083015261196f816114f9565b9050919050565b6000602082019050818103600083015261198f8161155f565b9050919050565b600060208201905081810360008301526119af8161159f565b9050919050565b600060208201905081810360008301526119cf816115df565b9050919050565b600060208201905081810360008301526119ef81611645565b9050919050565b60006020820190508181036000830152611a0f81611685565b9050919050565b60006020820190508181036000830152611a2f816116c5565b9050919050565b60006020820190508181036000830152611a4f81611705565b9050919050565b60006020820190508181036000830152611a6f81611745565b9050919050565b60006020820190508181036000830152611a8f816117ab565b9050919050565b60006020820190508181036000830152611aaf81611811565b9050919050565b6000602082019050611acb6000830184611877565b92915050565b6000602082019050611ae66000830184611886565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b1382611b9c565b9150611b1e83611b9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b5357611b52611c18565b5b828201905092915050565b6000611b6982611b7c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bd1578082015181840152602081019050611bb6565b83811115611be0576000848401525b50505050565b60006002820490506001821680611bfe57607f821691505b60208210811415611c1257611c11611c47565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611c9081611b5e565b8114611c9b57600080fd5b50565b611ca781611b70565b8114611cb257600080fd5b50565b611cbe81611b9c565b8114611cc957600080fd5b5056fea26469706673582212201040e8fcf92062c3e49df76e6503f82252b052cd790126a5a846b05c84c5adbb64736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063abc3964311610071578063abc396431461031e578063dd62ed3e1461033a578063f2fde38b1461036a578063f3290d7514610386578063fe575a87146103a257610121565b8063715018a6146102785780638da5cb5b1461028257806395d89b41146102a0578063a457c2d7146102be578063a9059cbb146102ee57610121565b806323b872dd116100f457806323b872dd146101ae578063313ce567146101de57806339509351146101fc57806345e349491461022c57806370a082311461024857610121565b806306fdde0314610126578063095ea7b31461014457806317fd1e2f1461017457806318160ddd14610190575b600080fd5b61012e6103d2565b60405161013b91906118f4565b60405180910390f35b61015e60048036038101906101599190611348565b610464565b60405161016b91906118d9565b60405180910390f35b61018e60048036038101906101899190611348565b610487565b005b6101986105d5565b6040516101a59190611ab6565b60405180910390f35b6101c860048036038101906101c391906112f9565b6105df565b6040516101d591906118d9565b60405180910390f35b6101e661060e565b6040516101f39190611ad1565b60405180910390f35b61021660048036038101906102119190611348565b610617565b60405161022391906118d9565b60405180910390f35b61024660048036038101906102419190611294565b61064e565b005b610262600480360381019061025d9190611294565b6106f4565b60405161026f9190611ab6565b60405180910390f35b61028061073c565b005b61028a610750565b6040516102979190611895565b60405180910390f35b6102a861077a565b6040516102b591906118f4565b60405180910390f35b6102d860048036038101906102d39190611348565b61080c565b6040516102e591906118d9565b60405180910390f35b61030860048036038101906103039190611348565b610883565b60405161031591906118d9565b60405180910390f35b610338600480360381019061033391906113ad565b6108a6565b005b610354600480360381019061034f91906112bd565b6108ff565b6040516103619190611ab6565b60405180910390f35b610384600480360381019061037f9190611294565b610986565b005b6103a0600480360381019061039b9190611294565b610a0a565b005b6103bc60048036038101906103b79190611294565b610ab0565b6040516103c991906118d9565b60405180910390f35b6060600380546103e190611be6565b80601f016020809104026020016040519081016040528092919081815260200182805461040d90611be6565b801561045a5780601f1061042f5761010080835404028352916020019161045a565b820191906000526020600020905b81548152906001019060200180831161043d57829003601f168201915b5050505050905090565b60008061046f610b0b565b905061047c818585610b13565b600191505092915050565b61048f610cde565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156104fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f5906119d6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610522610750565b836040518363ffffffff1660e01b81526004016105409291906118b0565b602060405180830381600087803b15801561055a57600080fd5b505af115801561056e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105929190611384565b6105d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c890611976565b60405180910390fd5b5050565b6000600254905090565b6000806105ea610b0b565b90506105f7858285610d5c565b610602858585610de8565b60019150509392505050565b60006012905090565b600080610622610b0b565b905061064381858561063485896108ff565b61063e9190611b08565b610b13565b600191505092915050565b610656610cde565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b60405160405180910390a250565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610744610cde565b61074e6000611060565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461078990611be6565b80601f01602080910402602001604051908101604052809291908181526020018280546107b590611be6565b80156108025780601f106107d757610100808354040283529160200191610802565b820191906000526020600020905b8154815290600101906020018083116107e557829003601f168201915b5050505050905090565b600080610817610b0b565b9050600061082582866108ff565b90508381101561086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086190611a96565b60405180910390fd5b6108778286868403610b13565b60019250505092915050565b60008061088e610b0b565b905061089b818585610de8565b600191505092915050565b6108ae610cde565b6108b6610750565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108fb573d6000803e3d6000fd5b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61098e610cde565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f590611936565b60405180910390fd5b610a0781611060565b50565b610a12610cde565b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85560405160405180910390a250565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90611a76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea90611956565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cd19190611ab6565b60405180910390a3505050565b610ce6610b0b565b73ffffffffffffffffffffffffffffffffffffffff16610d04610750565b73ffffffffffffffffffffffffffffffffffffffff1614610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5190611a36565b60405180910390fd5b565b6000610d6884846108ff565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610de25781811015610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90611996565b60405180910390fd5b610de18484848403610b13565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4f90611a56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90611916565b60405180910390fd5b610ed3838383611126565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f50906119b6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110479190611ab6565b60405180910390a361105a848484611250565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90611a16565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611240576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611237906119f6565b60405180910390fd5b61124b838383610b06565b505050565b505050565b60008135905061126481611c87565b92915050565b60008151905061127981611c9e565b92915050565b60008135905061128e81611cb5565b92915050565b6000602082840312156112a657600080fd5b60006112b484828501611255565b91505092915050565b600080604083850312156112d057600080fd5b60006112de85828601611255565b92505060206112ef85828601611255565b9150509250929050565b60008060006060848603121561130e57600080fd5b600061131c86828701611255565b935050602061132d86828701611255565b925050604061133e8682870161127f565b9150509250925092565b6000806040838503121561135b57600080fd5b600061136985828601611255565b925050602061137a8582860161127f565b9150509250929050565b60006020828403121561139657600080fd5b60006113a48482850161126a565b91505092915050565b6000602082840312156113bf57600080fd5b60006113cd8482850161127f565b91505092915050565b6113df81611b5e565b82525050565b6113ee81611b70565b82525050565b60006113ff82611aec565b6114098185611af7565b9350611419818560208601611bb3565b61142281611c76565b840191505092915050565b600061143a602383611af7565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114a0602683611af7565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611506602283611af7565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061156c600f83611af7565b91507f5472616e73666572206661696c656400000000000000000000000000000000006000830152602082019050919050565b60006115ac601d83611af7565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b60006115ec602683611af7565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611652601a83611af7565b91507f43616e6e6f74207265747269657665207468697320746f6b656e0000000000006000830152602082019050919050565b6000611692601783611af7565b91507f526563656976657220697320626c61636b6c69737465640000000000000000006000830152602082019050919050565b60006116d2601583611af7565b91507f53656e64657220697320626c61636b6c697374656400000000000000000000006000830152602082019050919050565b6000611712602083611af7565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611752602583611af7565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117b8602483611af7565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061181e602583611af7565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61188081611b9c565b82525050565b61188f81611ba6565b82525050565b60006020820190506118aa60008301846113d6565b92915050565b60006040820190506118c560008301856113d6565b6118d26020830184611877565b9392505050565b60006020820190506118ee60008301846113e5565b92915050565b6000602082019050818103600083015261190e81846113f4565b905092915050565b6000602082019050818103600083015261192f8161142d565b9050919050565b6000602082019050818103600083015261194f81611493565b9050919050565b6000602082019050818103600083015261196f816114f9565b9050919050565b6000602082019050818103600083015261198f8161155f565b9050919050565b600060208201905081810360008301526119af8161159f565b9050919050565b600060208201905081810360008301526119cf816115df565b9050919050565b600060208201905081810360008301526119ef81611645565b9050919050565b60006020820190508181036000830152611a0f81611685565b9050919050565b60006020820190508181036000830152611a2f816116c5565b9050919050565b60006020820190508181036000830152611a4f81611705565b9050919050565b60006020820190508181036000830152611a6f81611745565b9050919050565b60006020820190508181036000830152611a8f816117ab565b9050919050565b60006020820190508181036000830152611aaf81611811565b9050919050565b6000602082019050611acb6000830184611877565b92915050565b6000602082019050611ae66000830184611886565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b1382611b9c565b9150611b1e83611b9c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b5357611b52611c18565b5b828201905092915050565b6000611b6982611b7c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bd1578082015181840152602081019050611bb6565b83811115611be0576000848401525b50505050565b60006002820490506001821680611bfe57607f821691505b60208210811415611c1257611c11611c47565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611c9081611b5e565b8114611c9b57600080fd5b50565b611ca781611b70565b8114611cb257600080fd5b50565b611cbe81611b9c565b8114611cc957600080fd5b5056fea26469706673582212201040e8fcf92062c3e49df76e6503f82252b052cd790126a5a846b05c84c5adbb64736f6c63430008000033
Deployed Bytecode Sourcemap
21135:1435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9346:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11706:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21804:252;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10475:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12487:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10317:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13157:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21516:152;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10646:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2801:103;;;:::i;:::-;;2160:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9565:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13898:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10979:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22064:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11235:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3059:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21361:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21676:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9346:100;9400:13;9433:5;9426:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9346:100;:::o;11706:201::-;11789:4;11806:13;11822:12;:10;:12::i;:::-;11806:28;;11845:32;11854:5;11861:7;11870:6;11845:8;:32::i;:::-;11895:4;11888:11;;;11706:201;;;;:::o;21804:252::-;2046:13;:11;:13::i;:::-;21927:4:::1;21903:29;;:12;:29;;;;21895:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21989:12;21982:29;;;22012:7;:5;:7::i;:::-;22021:6;21982:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21974:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;21804:252:::0;;:::o;10475:108::-;10536:7;10563:12;;10556:19;;10475:108;:::o;12487:261::-;12584:4;12601:15;12619:12;:10;:12::i;:::-;12601:30;;12642:38;12658:4;12664:7;12673:6;12642:15;:38::i;:::-;12691:27;12701:4;12707:2;12711:6;12691:9;:27::i;:::-;12736:4;12729:11;;;12487:261;;;;;:::o;10317:93::-;10375:5;10400:2;10393:9;;10317:93;:::o;13157:238::-;13245:4;13262:13;13278:12;:10;:12::i;:::-;13262:28;;13301:64;13310:5;13317:7;13354:10;13326:25;13336:5;13343:7;13326:9;:25::i;:::-;:38;;;;:::i;:::-;13301:8;:64::i;:::-;13383:4;13376:11;;;13157:238;;;;:::o;21516:152::-;2046:13;:11;:13::i;:::-;21617:5:::1;21591:14;:23;21606:7;21591:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;21652:7;21638:22;;;;;;;;;;;;21516:152:::0;:::o;10646:127::-;10720:7;10747:9;:18;10757:7;10747:18;;;;;;;;;;;;;;;;10740:25;;10646:127;;;:::o;2801:103::-;2046:13;:11;:13::i;:::-;2866:30:::1;2893:1;2866:18;:30::i;:::-;2801:103::o:0;2160:87::-;2206:7;2233:6;;;;;;;;;;;2226:13;;2160:87;:::o;9565:104::-;9621:13;9654:7;9647:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9565:104;:::o;13898:436::-;13991:4;14008:13;14024:12;:10;:12::i;:::-;14008:28;;14047:24;14074:25;14084:5;14091:7;14074:9;:25::i;:::-;14047:52;;14138:15;14118:16;:35;;14110:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14231:60;14240:5;14247:7;14275:15;14256:16;:34;14231:8;:60::i;:::-;14322:4;14315:11;;;;13898:436;;;;:::o;10979:193::-;11058:4;11075:13;11091:12;:10;:12::i;:::-;11075:28;;11114;11124:5;11131:2;11135:6;11114:9;:28::i;:::-;11160:4;11153:11;;;10979:193;;;;:::o;22064:108::-;2046:13;:11;:13::i;:::-;22139:7:::1;:5;:7::i;:::-;22131:25;;:33;22157:6;22131:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22064:108:::0;:::o;11235:151::-;11324:7;11351:11;:18;11363:5;11351:18;;;;;;;;;;;;;;;:27;11370:7;11351:27;;;;;;;;;;;;;;;;11344:34;;11235:151;;;;:::o;3059:201::-;2046:13;:11;:13::i;:::-;3168:1:::1;3148:22;;:8;:22;;;;3140:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3224:28;3243:8;3224:18;:28::i;:::-;3059:201:::0;:::o;21361:147::-;2046:13;:11;:13::i;:::-;21460:4:::1;21434:14;:23;21449:7;21434:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;21492:7;21480:20;;;;;;;;;;;;21361:147:::0;:::o;21676:118::-;21739:4;21763:14;:23;21778:7;21763:23;;;;;;;;;;;;;;;;;;;;;;;;;21756:30;;21676:118;;;:::o;19547:91::-;;;;:::o;711:98::-;764:7;791:10;784:17;;711:98;:::o;17891:346::-;18010:1;17993:19;;:5;:19;;;;17985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18091:1;18072:21;;:7;:21;;;;18064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18175:6;18145:11;:18;18157:5;18145:18;;;;;;;;;;;;;;;:27;18164:7;18145:27;;;;;;;;;;;;;;;:36;;;;18213:7;18197:32;;18206:5;18197:32;;;18222:6;18197:32;;;;;;:::i;:::-;;;;;;;;17891:346;;;:::o;2325:132::-;2400:12;:10;:12::i;:::-;2389:23;;:7;:5;:7::i;:::-;:23;;;2381:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2325:132::o;18528:419::-;18629:24;18656:25;18666:5;18673:7;18656:9;:25::i;:::-;18629:52;;18716:17;18696:16;:37;18692:248;;18778:6;18758:16;:26;;18750:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18862:51;18871:5;18878:7;18906:6;18887:16;:25;18862:8;:51::i;:::-;18692:248;18528:419;;;;:::o;14804:806::-;14917:1;14901:18;;:4;:18;;;;14893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14994:1;14980:16;;:2;:16;;;;14972:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15049:38;15070:4;15076:2;15080:6;15049:20;:38::i;:::-;15100:19;15122:9;:15;15132:4;15122:15;;;;;;;;;;;;;;;;15100:37;;15171:6;15156:11;:21;;15148:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15288:6;15274:11;:20;15256:9;:15;15266:4;15256:15;;;;;;;;;;;;;;;:38;;;;15491:6;15474:9;:13;15484:2;15474:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15541:2;15526:26;;15535:4;15526:26;;;15545:6;15526:26;;;;;;:::i;:::-;;;;;;;;15565:37;15585:4;15591:2;15595:6;15565:19;:37::i;:::-;14804:806;;;;:::o;3420:191::-;3494:16;3513:6;;;;;;;;;;;3494:25;;3539:8;3530:6;;:17;;;;;;;;;;;;;;;;;;3594:8;3563:40;;3584:8;3563:40;;;;;;;;;;;;3420:191;;:::o;22180:285::-;22290:14;:20;22305:4;22290:20;;;;;;;;;;;;;;;;;;;;;;;;;22289:21;22281:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;22356:14;:18;22371:2;22356:18;;;;;;;;;;;;;;;;;;;;;;;;;22355:19;22347:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;22413:44;22440:4;22446:2;22450:6;22413:26;:44::i;:::-;22180:285;;;:::o;20242:90::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:137::-;;237:6;231:13;222:22;;253:30;277:5;253:30;:::i;:::-;212:77;;;;:::o;295:139::-;;379:6;366:20;357:29;;395:33;422:5;395:33;:::i;:::-;347:87;;;;:::o;440:262::-;;548:2;536:9;527:7;523:23;519:32;516:2;;;564:1;561;554:12;516:2;607:1;632:53;677:7;668:6;657:9;653:22;632:53;:::i;:::-;622:63;;578:117;506:196;;;;:::o;708:407::-;;;833:2;821:9;812:7;808:23;804:32;801:2;;;849:1;846;839:12;801:2;892:1;917:53;962:7;953:6;942:9;938:22;917:53;:::i;:::-;907:63;;863:117;1019:2;1045:53;1090:7;1081:6;1070:9;1066:22;1045:53;:::i;:::-;1035:63;;990:118;791:324;;;;;:::o;1121:552::-;;;;1263:2;1251:9;1242:7;1238:23;1234:32;1231:2;;;1279:1;1276;1269:12;1231:2;1322:1;1347:53;1392:7;1383:6;1372:9;1368:22;1347:53;:::i;:::-;1337:63;;1293:117;1449:2;1475:53;1520:7;1511:6;1500:9;1496:22;1475:53;:::i;:::-;1465:63;;1420:118;1577:2;1603:53;1648:7;1639:6;1628:9;1624:22;1603:53;:::i;:::-;1593:63;;1548:118;1221:452;;;;;:::o;1679:407::-;;;1804:2;1792:9;1783:7;1779:23;1775:32;1772:2;;;1820:1;1817;1810:12;1772:2;1863:1;1888:53;1933:7;1924:6;1913:9;1909:22;1888:53;:::i;:::-;1878:63;;1834:117;1990:2;2016:53;2061:7;2052:6;2041:9;2037:22;2016:53;:::i;:::-;2006:63;;1961:118;1762:324;;;;;:::o;2092:278::-;;2208:2;2196:9;2187:7;2183:23;2179:32;2176:2;;;2224:1;2221;2214:12;2176:2;2267:1;2292:61;2345:7;2336:6;2325:9;2321:22;2292:61;:::i;:::-;2282:71;;2238:125;2166:204;;;;:::o;2376:262::-;;2484:2;2472:9;2463:7;2459:23;2455:32;2452:2;;;2500:1;2497;2490:12;2452:2;2543:1;2568:53;2613:7;2604:6;2593:9;2589:22;2568:53;:::i;:::-;2558:63;;2514:117;2442:196;;;;:::o;2644:118::-;2731:24;2749:5;2731:24;:::i;:::-;2726:3;2719:37;2709:53;;:::o;2768:109::-;2849:21;2864:5;2849:21;:::i;:::-;2844:3;2837:34;2827:50;;:::o;2883:364::-;;2999:39;3032:5;2999:39;:::i;:::-;3054:71;3118:6;3113:3;3054:71;:::i;:::-;3047:78;;3134:52;3179:6;3174:3;3167:4;3160:5;3156:16;3134:52;:::i;:::-;3211:29;3233:6;3211:29;:::i;:::-;3206:3;3202:39;3195:46;;2975:272;;;;;:::o;3253:367::-;;3416:67;3480:2;3475:3;3416:67;:::i;:::-;3409:74;;3513:34;3509:1;3504:3;3500:11;3493:55;3579:5;3574:2;3569:3;3565:12;3558:27;3611:2;3606:3;3602:12;3595:19;;3399:221;;;:::o;3626:370::-;;3789:67;3853:2;3848:3;3789:67;:::i;:::-;3782:74;;3886:34;3882:1;3877:3;3873:11;3866:55;3952:8;3947:2;3942:3;3938:12;3931:30;3987:2;3982:3;3978:12;3971:19;;3772:224;;;:::o;4002:366::-;;4165:67;4229:2;4224:3;4165:67;:::i;:::-;4158:74;;4262:34;4258:1;4253:3;4249:11;4242:55;4328:4;4323:2;4318:3;4314:12;4307:26;4359:2;4354:3;4350:12;4343:19;;4148:220;;;:::o;4374:313::-;;4537:67;4601:2;4596:3;4537:67;:::i;:::-;4530:74;;4634:17;4630:1;4625:3;4621:11;4614:38;4678:2;4673:3;4669:12;4662:19;;4520:167;;;:::o;4693:327::-;;4856:67;4920:2;4915:3;4856:67;:::i;:::-;4849:74;;4953:31;4949:1;4944:3;4940:11;4933:52;5011:2;5006:3;5002:12;4995:19;;4839:181;;;:::o;5026:370::-;;5189:67;5253:2;5248:3;5189:67;:::i;:::-;5182:74;;5286:34;5282:1;5277:3;5273:11;5266:55;5352:8;5347:2;5342:3;5338:12;5331:30;5387:2;5382:3;5378:12;5371:19;;5172:224;;;:::o;5402:324::-;;5565:67;5629:2;5624:3;5565:67;:::i;:::-;5558:74;;5662:28;5658:1;5653:3;5649:11;5642:49;5717:2;5712:3;5708:12;5701:19;;5548:178;;;:::o;5732:321::-;;5895:67;5959:2;5954:3;5895:67;:::i;:::-;5888:74;;5992:25;5988:1;5983:3;5979:11;5972:46;6044:2;6039:3;6035:12;6028:19;;5878:175;;;:::o;6059:319::-;;6222:67;6286:2;6281:3;6222:67;:::i;:::-;6215:74;;6319:23;6315:1;6310:3;6306:11;6299:44;6369:2;6364:3;6360:12;6353:19;;6205:173;;;:::o;6384:330::-;;6547:67;6611:2;6606:3;6547:67;:::i;:::-;6540:74;;6644:34;6640:1;6635:3;6631:11;6624:55;6705:2;6700:3;6696:12;6689:19;;6530:184;;;:::o;6720:369::-;;6883:67;6947:2;6942:3;6883:67;:::i;:::-;6876:74;;6980:34;6976:1;6971:3;6967:11;6960:55;7046:7;7041:2;7036:3;7032:12;7025:29;7080:2;7075:3;7071:12;7064:19;;6866:223;;;:::o;7095:368::-;;7258:67;7322:2;7317:3;7258:67;:::i;:::-;7251:74;;7355:34;7351:1;7346:3;7342:11;7335:55;7421:6;7416:2;7411:3;7407:12;7400:28;7454:2;7449:3;7445:12;7438:19;;7241:222;;;:::o;7469:369::-;;7632:67;7696:2;7691:3;7632:67;:::i;:::-;7625:74;;7729:34;7725:1;7720:3;7716:11;7709:55;7795:7;7790:2;7785:3;7781:12;7774:29;7829:2;7824:3;7820:12;7813:19;;7615:223;;;:::o;7844:118::-;7931:24;7949:5;7931:24;:::i;:::-;7926:3;7919:37;7909:53;;:::o;7968:112::-;8051:22;8067:5;8051:22;:::i;:::-;8046:3;8039:35;8029:51;;:::o;8086:222::-;;8217:2;8206:9;8202:18;8194:26;;8230:71;8298:1;8287:9;8283:17;8274:6;8230:71;:::i;:::-;8184:124;;;;:::o;8314:332::-;;8473:2;8462:9;8458:18;8450:26;;8486:71;8554:1;8543:9;8539:17;8530:6;8486:71;:::i;:::-;8567:72;8635:2;8624:9;8620:18;8611:6;8567:72;:::i;:::-;8440:206;;;;;:::o;8652:210::-;;8777:2;8766:9;8762:18;8754:26;;8790:65;8852:1;8841:9;8837:17;8828:6;8790:65;:::i;:::-;8744:118;;;;:::o;8868:313::-;;9019:2;9008:9;9004:18;8996:26;;9068:9;9062:4;9058:20;9054:1;9043:9;9039:17;9032:47;9096:78;9169:4;9160:6;9096:78;:::i;:::-;9088:86;;8986:195;;;;:::o;9187:419::-;;9391:2;9380:9;9376:18;9368:26;;9440:9;9434:4;9430:20;9426:1;9415:9;9411:17;9404:47;9468:131;9594:4;9468:131;:::i;:::-;9460:139;;9358:248;;;:::o;9612:419::-;;9816:2;9805:9;9801:18;9793:26;;9865:9;9859:4;9855:20;9851:1;9840:9;9836:17;9829:47;9893:131;10019:4;9893:131;:::i;:::-;9885:139;;9783:248;;;:::o;10037:419::-;;10241:2;10230:9;10226:18;10218:26;;10290:9;10284:4;10280:20;10276:1;10265:9;10261:17;10254:47;10318:131;10444:4;10318:131;:::i;:::-;10310:139;;10208:248;;;:::o;10462:419::-;;10666:2;10655:9;10651:18;10643:26;;10715:9;10709:4;10705:20;10701:1;10690:9;10686:17;10679:47;10743:131;10869:4;10743:131;:::i;:::-;10735:139;;10633:248;;;:::o;10887:419::-;;11091:2;11080:9;11076:18;11068:26;;11140:9;11134:4;11130:20;11126:1;11115:9;11111:17;11104:47;11168:131;11294:4;11168:131;:::i;:::-;11160:139;;11058:248;;;:::o;11312:419::-;;11516:2;11505:9;11501:18;11493:26;;11565:9;11559:4;11555:20;11551:1;11540:9;11536:17;11529:47;11593:131;11719:4;11593:131;:::i;:::-;11585:139;;11483:248;;;:::o;11737:419::-;;11941:2;11930:9;11926:18;11918:26;;11990:9;11984:4;11980:20;11976:1;11965:9;11961:17;11954:47;12018:131;12144:4;12018:131;:::i;:::-;12010:139;;11908:248;;;:::o;12162:419::-;;12366:2;12355:9;12351:18;12343:26;;12415:9;12409:4;12405:20;12401:1;12390:9;12386:17;12379:47;12443:131;12569:4;12443:131;:::i;:::-;12435:139;;12333:248;;;:::o;12587:419::-;;12791:2;12780:9;12776:18;12768:26;;12840:9;12834:4;12830:20;12826:1;12815:9;12811:17;12804:47;12868:131;12994:4;12868:131;:::i;:::-;12860:139;;12758:248;;;:::o;13012:419::-;;13216:2;13205:9;13201:18;13193:26;;13265:9;13259:4;13255:20;13251:1;13240:9;13236:17;13229:47;13293:131;13419:4;13293:131;:::i;:::-;13285:139;;13183:248;;;:::o;13437:419::-;;13641:2;13630:9;13626:18;13618:26;;13690:9;13684:4;13680:20;13676:1;13665:9;13661:17;13654:47;13718:131;13844:4;13718:131;:::i;:::-;13710:139;;13608:248;;;:::o;13862:419::-;;14066:2;14055:9;14051:18;14043:26;;14115:9;14109:4;14105:20;14101:1;14090:9;14086:17;14079:47;14143:131;14269:4;14143:131;:::i;:::-;14135:139;;14033:248;;;:::o;14287:419::-;;14491:2;14480:9;14476:18;14468:26;;14540:9;14534:4;14530:20;14526:1;14515:9;14511:17;14504:47;14568:131;14694:4;14568:131;:::i;:::-;14560:139;;14458:248;;;:::o;14712:222::-;;14843:2;14832:9;14828:18;14820:26;;14856:71;14924:1;14913:9;14909:17;14900:6;14856:71;:::i;:::-;14810:124;;;;:::o;14940:214::-;;15067:2;15056:9;15052:18;15044:26;;15080:67;15144:1;15133:9;15129:17;15120:6;15080:67;:::i;:::-;15034:120;;;;:::o;15160:99::-;;15246:5;15240:12;15230:22;;15219:40;;;:::o;15265:169::-;;15383:6;15378:3;15371:19;15423:4;15418:3;15414:14;15399:29;;15361:73;;;;:::o;15440:305::-;;15499:20;15517:1;15499:20;:::i;:::-;15494:25;;15533:20;15551:1;15533:20;:::i;:::-;15528:25;;15687:1;15619:66;15615:74;15612:1;15609:81;15606:2;;;15693:18;;:::i;:::-;15606:2;15737:1;15734;15730:9;15723:16;;15484:261;;;;:::o;15751:96::-;;15817:24;15835:5;15817:24;:::i;:::-;15806:35;;15796:51;;;:::o;15853:90::-;;15930:5;15923:13;15916:21;15905:32;;15895:48;;;:::o;15949:126::-;;16026:42;16019:5;16015:54;16004:65;;15994:81;;;:::o;16081:77::-;;16147:5;16136:16;;16126:32;;;:::o;16164:86::-;;16239:4;16232:5;16228:16;16217:27;;16207:43;;;:::o;16256:307::-;16324:1;16334:113;16348:6;16345:1;16342:13;16334:113;;;16433:1;16428:3;16424:11;16418:18;16414:1;16409:3;16405:11;16398:39;16370:2;16367:1;16363:10;16358:15;;16334:113;;;16465:6;16462:1;16459:13;16456:2;;;16545:1;16536:6;16531:3;16527:16;16520:27;16456:2;16305:258;;;;:::o;16569:320::-;;16650:1;16644:4;16640:12;16630:22;;16697:1;16691:4;16687:12;16718:18;16708:2;;16774:4;16766:6;16762:17;16752:27;;16708:2;16836;16828:6;16825:14;16805:18;16802:38;16799:2;;;16855:18;;:::i;:::-;16799:2;16620:269;;;;:::o;16895:180::-;16943:77;16940:1;16933:88;17040:4;17037:1;17030:15;17064:4;17061:1;17054:15;17081:180;17129:77;17126:1;17119:88;17226:4;17223:1;17216:15;17250:4;17247:1;17240:15;17267:102;;17359:2;17355:7;17350:2;17343:5;17339:14;17335:28;17325:38;;17315:54;;;:::o;17375:122::-;17448:24;17466:5;17448:24;:::i;:::-;17441:5;17438:35;17428:2;;17487:1;17484;17477:12;17428:2;17418:79;:::o;17503:116::-;17573:21;17588:5;17573:21;:::i;:::-;17566:5;17563:32;17553:2;;17609:1;17606;17599:12;17553:2;17543:76;:::o;17625:122::-;17698:24;17716:5;17698:24;:::i;:::-;17691:5;17688:35;17678:2;;17737:1;17734;17727:12;17678:2;17668:79;:::o
Swarm Source
ipfs://1040e8fcf92062c3e49df76e6503f82252b052cd790126a5a846b05c84c5adbb
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.