ERC-20
Overview
Max Total Supply
420,690,000,000,000 GEN
Holders
616
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
105,172,500,000 GENValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GenerationalWealthToken
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-13 */ // SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // 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/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/token/ERC20/ERC20.sol // OpenZeppelin Contracts v4.4.1 (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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * 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}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * 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 value {ERC20} uses, unless this function is * 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: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - 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) { _approve(_msgSender(), spender, _allowances[_msgSender()][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) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * 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: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `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; _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; } _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 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: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.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 anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _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: contracts/GenerationalWealthToken.sol pragma solidity ^0.8.0; contract GenerationalWealthToken is Ownable, ERC20 { address public uniswapV2Pair; address public presale; constructor() ERC20("Generational Wealth", "GEN") { _mint(msg.sender, 420_690_000_000_000_000_000_000_000_000_000); } function setRule(address _uniswapV2Pair) external onlyOwner { uniswapV2Pair = _uniswapV2Pair; } function setPresale(address _presale) external onlyOwner { presale = _presale; } function _beforeTokenTransfer( address from, address to, uint256 /* amount */ ) override internal virtual { if (from == presale || to == presale) { return; } if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "trading has not started"); return; } } function burn(uint256 value) external { _burn(msg.sender, value); } }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","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":[],"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":"presale","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_presale","type":"address"}],"name":"setPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280601381526020017f47656e65726174696f6e616c205765616c7468000000000000000000000000008152506040518060400160405280600381526020017f47454e00000000000000000000000000000000000000000000000000000000008152506200009e62000092620000ea60201b60201c565b620000f260201b60201c565b8160049081620000af9190620007af565b508060059081620000c19190620007af565b505050620000e4336d14bddab3e51a57cff87a50000000620001b660201b60201c565b62000a23565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021f90620008f7565b60405180910390fd5b6200023c600083836200032f60201b60201c565b806003600082825462000250919062000948565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002a8919062000948565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200030f919062000994565b60405180910390a36200032b600083836200050760201b60201c565b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620003d95750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200050257600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200050157620004456200050c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620004b957506200048a6200050c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b620004fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004f29062000a01565b60405180910390fd5b62000502565b5b505050565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005b757607f821691505b602082108103620005cd57620005cc6200056f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005f8565b620006438683620005f8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006906200068a62000684846200065b565b62000665565b6200065b565b9050919050565b6000819050919050565b620006ac836200066f565b620006c4620006bb8262000697565b84845462000605565b825550505050565b600090565b620006db620006cc565b620006e8818484620006a1565b505050565b5b81811015620007105762000704600082620006d1565b600181019050620006ee565b5050565b601f8211156200075f576200072981620005d3565b6200073484620005e8565b8101602085101562000744578190505b6200075c6200075385620005e8565b830182620006ed565b50505b505050565b600082821c905092915050565b6000620007846000198460080262000764565b1980831691505092915050565b60006200079f838362000771565b9150826002028217905092915050565b620007ba8262000535565b67ffffffffffffffff811115620007d657620007d562000540565b5b620007e282546200059e565b620007ef82828562000714565b600060209050601f83116001811462000827576000841562000812578287015190505b6200081e858262000791565b8655506200088e565b601f1984166200083786620005d3565b60005b8281101562000861578489015182556001820191506020850194506020810190506200083a565b868310156200088157848901516200087d601f89168262000771565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620008df601f8362000896565b9150620008ec82620008a7565b602082019050919050565b600060208201905081810360008301526200091281620008d0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000955826200065b565b915062000962836200065b565b92508282019050808211156200097d576200097c62000919565b5b92915050565b6200098e816200065b565b82525050565b6000602082019050620009ab600083018462000983565b92915050565b7f74726164696e6720686173206e6f742073746172746564000000000000000000600082015250565b6000620009e960178362000896565b9150620009f682620009b1565b602082019050919050565b6000602082019050818103600083015262000a1c81620009da565b9050919050565b611e698062000a336000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063d5fcc7b611610071578063d5fcc7b614610320578063db5d77931461033c578063dd62ed3e14610358578063f2fde38b14610388578063fdea8e0b146103a457610121565b8063715018a61461027a5780638da5cb5b1461028457806395d89b41146102a2578063a457c2d7146102c0578063a9059cbb146102f057610121565b8063313ce567116100f4578063313ce567146101c257806339509351146101e057806342966c681461021057806349bd5a5e1461022c57806370a082311461024a57610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461017457806323b872dd14610192575b600080fd5b61012e6103c2565b60405161013b9190611407565b60405180910390f35b61015e600480360381019061015991906114c2565b610454565b60405161016b919061151d565b60405180910390f35b61017c610472565b6040516101899190611547565b60405180910390f35b6101ac60048036038101906101a79190611562565b61047c565b6040516101b9919061151d565b60405180910390f35b6101ca610574565b6040516101d791906115d1565b60405180910390f35b6101fa60048036038101906101f591906114c2565b61057d565b604051610207919061151d565b60405180910390f35b61022a600480360381019061022591906115ec565b610629565b005b610234610636565b6040516102419190611628565b60405180910390f35b610264600480360381019061025f9190611643565b61065c565b6040516102719190611547565b60405180910390f35b6102826106a5565b005b61028c6106b9565b6040516102999190611628565b60405180910390f35b6102aa6106e2565b6040516102b79190611407565b60405180910390f35b6102da60048036038101906102d591906114c2565b610774565b6040516102e7919061151d565b60405180910390f35b61030a600480360381019061030591906114c2565b61085f565b604051610317919061151d565b60405180910390f35b61033a60048036038101906103359190611643565b61087d565b005b61035660048036038101906103519190611643565b6108c9565b005b610372600480360381019061036d9190611670565b610915565b60405161037f9190611547565b60405180910390f35b6103a2600480360381019061039d9190611643565b61099c565b005b6103ac610a1f565b6040516103b99190611628565b60405180910390f35b6060600480546103d1906116df565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd906116df565b801561044a5780601f1061041f5761010080835404028352916020019161044a565b820191906000526020600020905b81548152906001019060200180831161042d57829003601f168201915b5050505050905090565b6000610468610461610a45565b8484610a4d565b6001905092915050565b6000600354905090565b6000610489848484610c16565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d4610a45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054b90611782565b60405180910390fd5b61056885610560610a45565b858403610a4d565b60019150509392505050565b60006012905090565b600061061f61058a610a45565b848460026000610598610a45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461061a91906117d1565b610a4d565b6001905092915050565b6106333382610e98565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106ad611070565b6106b760006110ee565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546106f1906116df565b80601f016020809104026020016040519081016040528092919081815260200182805461071d906116df565b801561076a5780601f1061073f5761010080835404028352916020019161076a565b820191906000526020600020905b81548152906001019060200180831161074d57829003601f168201915b5050505050905090565b60008060026000610783610a45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083790611877565b60405180910390fd5b61085461084b610a45565b85858403610a4d565b600191505092915050565b600061087361086c610a45565b8484610c16565b6001905092915050565b610885611070565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6108d1611070565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109a4611070565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0a90611909565b60405180910390fd5b610a1c816110ee565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab39061199b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2290611a2d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c099190611547565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90611abf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90611b51565b60405180910390fd5b610cff8383836111b2565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d90611be3565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e1b91906117d1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e7f9190611547565b60405180910390a3610e92848484611372565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90611c75565b60405180910390fd5b610f13826000836111b2565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9190611d07565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254610ff29190611d27565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110579190611547565b60405180910390a361106b83600084611372565b505050565b611078610a45565b73ffffffffffffffffffffffffffffffffffffffff166110966106b9565b73ffffffffffffffffffffffffffffffffffffffff16146110ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e390611da7565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061125b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61136d57600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361136c576112bd6106b9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061132857506112f96106b9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e90611e13565b60405180910390fd5b61136d565b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113b1578082015181840152602081019050611396565b60008484015250505050565b6000601f19601f8301169050919050565b60006113d982611377565b6113e38185611382565b93506113f3818560208601611393565b6113fc816113bd565b840191505092915050565b6000602082019050818103600083015261142181846113ce565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006114598261142e565b9050919050565b6114698161144e565b811461147457600080fd5b50565b60008135905061148681611460565b92915050565b6000819050919050565b61149f8161148c565b81146114aa57600080fd5b50565b6000813590506114bc81611496565b92915050565b600080604083850312156114d9576114d8611429565b5b60006114e785828601611477565b92505060206114f8858286016114ad565b9150509250929050565b60008115159050919050565b61151781611502565b82525050565b6000602082019050611532600083018461150e565b92915050565b6115418161148c565b82525050565b600060208201905061155c6000830184611538565b92915050565b60008060006060848603121561157b5761157a611429565b5b600061158986828701611477565b935050602061159a86828701611477565b92505060406115ab868287016114ad565b9150509250925092565b600060ff82169050919050565b6115cb816115b5565b82525050565b60006020820190506115e660008301846115c2565b92915050565b60006020828403121561160257611601611429565b5b6000611610848285016114ad565b91505092915050565b6116228161144e565b82525050565b600060208201905061163d6000830184611619565b92915050565b60006020828403121561165957611658611429565b5b600061166784828501611477565b91505092915050565b6000806040838503121561168757611686611429565b5b600061169585828601611477565b92505060206116a685828601611477565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116f757607f821691505b60208210810361170a576117096116b0565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061176c602883611382565b915061177782611710565b604082019050919050565b6000602082019050818103600083015261179b8161175f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117dc8261148c565b91506117e78361148c565b92508282019050808211156117ff576117fe6117a2565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611861602583611382565b915061186c82611805565b604082019050919050565b6000602082019050818103600083015261189081611854565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118f3602683611382565b91506118fe82611897565b604082019050919050565b60006020820190508181036000830152611922816118e6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611985602483611382565b915061199082611929565b604082019050919050565b600060208201905081810360008301526119b481611978565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a17602283611382565b9150611a22826119bb565b604082019050919050565b60006020820190508181036000830152611a4681611a0a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611aa9602583611382565b9150611ab482611a4d565b604082019050919050565b60006020820190508181036000830152611ad881611a9c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b3b602383611382565b9150611b4682611adf565b604082019050919050565b60006020820190508181036000830152611b6a81611b2e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611bcd602683611382565b9150611bd882611b71565b604082019050919050565b60006020820190508181036000830152611bfc81611bc0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c5f602183611382565b9150611c6a82611c03565b604082019050919050565b60006020820190508181036000830152611c8e81611c52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cf1602283611382565b9150611cfc82611c95565b604082019050919050565b60006020820190508181036000830152611d2081611ce4565b9050919050565b6000611d328261148c565b9150611d3d8361148c565b9250828203905081811115611d5557611d546117a2565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611d91602083611382565b9150611d9c82611d5b565b602082019050919050565b60006020820190508181036000830152611dc081611d84565b9050919050565b7f74726164696e6720686173206e6f742073746172746564000000000000000000600082015250565b6000611dfd601783611382565b9150611e0882611dc7565b602082019050919050565b60006020820190508181036000830152611e2c81611df0565b905091905056fea2646970667358221220cc7407211bef349c26eee87f73da7dd575928c3e992fd65fb164e3958048d11364736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063d5fcc7b611610071578063d5fcc7b614610320578063db5d77931461033c578063dd62ed3e14610358578063f2fde38b14610388578063fdea8e0b146103a457610121565b8063715018a61461027a5780638da5cb5b1461028457806395d89b41146102a2578063a457c2d7146102c0578063a9059cbb146102f057610121565b8063313ce567116100f4578063313ce567146101c257806339509351146101e057806342966c681461021057806349bd5a5e1461022c57806370a082311461024a57610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461017457806323b872dd14610192575b600080fd5b61012e6103c2565b60405161013b9190611407565b60405180910390f35b61015e600480360381019061015991906114c2565b610454565b60405161016b919061151d565b60405180910390f35b61017c610472565b6040516101899190611547565b60405180910390f35b6101ac60048036038101906101a79190611562565b61047c565b6040516101b9919061151d565b60405180910390f35b6101ca610574565b6040516101d791906115d1565b60405180910390f35b6101fa60048036038101906101f591906114c2565b61057d565b604051610207919061151d565b60405180910390f35b61022a600480360381019061022591906115ec565b610629565b005b610234610636565b6040516102419190611628565b60405180910390f35b610264600480360381019061025f9190611643565b61065c565b6040516102719190611547565b60405180910390f35b6102826106a5565b005b61028c6106b9565b6040516102999190611628565b60405180910390f35b6102aa6106e2565b6040516102b79190611407565b60405180910390f35b6102da60048036038101906102d591906114c2565b610774565b6040516102e7919061151d565b60405180910390f35b61030a600480360381019061030591906114c2565b61085f565b604051610317919061151d565b60405180910390f35b61033a60048036038101906103359190611643565b61087d565b005b61035660048036038101906103519190611643565b6108c9565b005b610372600480360381019061036d9190611670565b610915565b60405161037f9190611547565b60405180910390f35b6103a2600480360381019061039d9190611643565b61099c565b005b6103ac610a1f565b6040516103b99190611628565b60405180910390f35b6060600480546103d1906116df565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd906116df565b801561044a5780601f1061041f5761010080835404028352916020019161044a565b820191906000526020600020905b81548152906001019060200180831161042d57829003601f168201915b5050505050905090565b6000610468610461610a45565b8484610a4d565b6001905092915050565b6000600354905090565b6000610489848484610c16565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d4610a45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054b90611782565b60405180910390fd5b61056885610560610a45565b858403610a4d565b60019150509392505050565b60006012905090565b600061061f61058a610a45565b848460026000610598610a45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461061a91906117d1565b610a4d565b6001905092915050565b6106333382610e98565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6106ad611070565b6106b760006110ee565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546106f1906116df565b80601f016020809104026020016040519081016040528092919081815260200182805461071d906116df565b801561076a5780601f1061073f5761010080835404028352916020019161076a565b820191906000526020600020905b81548152906001019060200180831161074d57829003601f168201915b5050505050905090565b60008060026000610783610a45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083790611877565b60405180910390fd5b61085461084b610a45565b85858403610a4d565b600191505092915050565b600061087361086c610a45565b8484610c16565b6001905092915050565b610885611070565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6108d1611070565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109a4611070565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0a90611909565b60405180910390fd5b610a1c816110ee565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab39061199b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2290611a2d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c099190611547565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90611abf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90611b51565b60405180910390fd5b610cff8383836111b2565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d90611be3565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e1b91906117d1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e7f9190611547565b60405180910390a3610e92848484611372565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe90611c75565b60405180910390fd5b610f13826000836111b2565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9190611d07565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254610ff29190611d27565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110579190611547565b60405180910390a361106b83600084611372565b505050565b611078610a45565b73ffffffffffffffffffffffffffffffffffffffff166110966106b9565b73ffffffffffffffffffffffffffffffffffffffff16146110ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e390611da7565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061125b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61136d57600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361136c576112bd6106b9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061132857506112f96106b9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135e90611e13565b60405180910390fd5b61136d565b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113b1578082015181840152602081019050611396565b60008484015250505050565b6000601f19601f8301169050919050565b60006113d982611377565b6113e38185611382565b93506113f3818560208601611393565b6113fc816113bd565b840191505092915050565b6000602082019050818103600083015261142181846113ce565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006114598261142e565b9050919050565b6114698161144e565b811461147457600080fd5b50565b60008135905061148681611460565b92915050565b6000819050919050565b61149f8161148c565b81146114aa57600080fd5b50565b6000813590506114bc81611496565b92915050565b600080604083850312156114d9576114d8611429565b5b60006114e785828601611477565b92505060206114f8858286016114ad565b9150509250929050565b60008115159050919050565b61151781611502565b82525050565b6000602082019050611532600083018461150e565b92915050565b6115418161148c565b82525050565b600060208201905061155c6000830184611538565b92915050565b60008060006060848603121561157b5761157a611429565b5b600061158986828701611477565b935050602061159a86828701611477565b92505060406115ab868287016114ad565b9150509250925092565b600060ff82169050919050565b6115cb816115b5565b82525050565b60006020820190506115e660008301846115c2565b92915050565b60006020828403121561160257611601611429565b5b6000611610848285016114ad565b91505092915050565b6116228161144e565b82525050565b600060208201905061163d6000830184611619565b92915050565b60006020828403121561165957611658611429565b5b600061166784828501611477565b91505092915050565b6000806040838503121561168757611686611429565b5b600061169585828601611477565b92505060206116a685828601611477565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116f757607f821691505b60208210810361170a576117096116b0565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061176c602883611382565b915061177782611710565b604082019050919050565b6000602082019050818103600083015261179b8161175f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117dc8261148c565b91506117e78361148c565b92508282019050808211156117ff576117fe6117a2565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611861602583611382565b915061186c82611805565b604082019050919050565b6000602082019050818103600083015261189081611854565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118f3602683611382565b91506118fe82611897565b604082019050919050565b60006020820190508181036000830152611922816118e6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611985602483611382565b915061199082611929565b604082019050919050565b600060208201905081810360008301526119b481611978565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a17602283611382565b9150611a22826119bb565b604082019050919050565b60006020820190508181036000830152611a4681611a0a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611aa9602583611382565b9150611ab482611a4d565b604082019050919050565b60006020820190508181036000830152611ad881611a9c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b3b602383611382565b9150611b4682611adf565b604082019050919050565b60006020820190508181036000830152611b6a81611b2e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611bcd602683611382565b9150611bd882611b71565b604082019050919050565b60006020820190508181036000830152611bfc81611bc0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c5f602183611382565b9150611c6a82611c03565b604082019050919050565b60006020820190508181036000830152611c8e81611c52565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cf1602283611382565b9150611cfc82611c95565b604082019050919050565b60006020820190508181036000830152611d2081611ce4565b9050919050565b6000611d328261148c565b9150611d3d8361148c565b9250828203905081811115611d5557611d546117a2565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611d91602083611382565b9150611d9c82611d5b565b602082019050919050565b60006020820190508181036000830152611dc081611d84565b9050919050565b7f74726164696e6720686173206e6f742073746172746564000000000000000000600082015250565b6000611dfd601783611382565b9150611e0882611dc7565b602082019050919050565b60006020820190508181036000830152611e2c81611df0565b905091905056fea2646970667358221220cc7407211bef349c26eee87f73da7dd575928c3e992fd65fb164e3958048d11364736f6c63430008120033
Deployed Bytecode Sourcemap
19434:948:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6690:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8857:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7810:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9508:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7652:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10409:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20298:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19492:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7981:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18534:103;;;:::i;:::-;;17886:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6909:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11127:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8321:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19814:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19697:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8559:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18792:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19527:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6690:100;6744:13;6777:5;6770:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6690:100;:::o;8857:169::-;8940:4;8957:39;8966:12;:10;:12::i;:::-;8980:7;8989:6;8957:8;:39::i;:::-;9014:4;9007:11;;8857:169;;;;:::o;7810:108::-;7871:7;7898:12;;7891:19;;7810:108;:::o;9508:492::-;9648:4;9665:36;9675:6;9683:9;9694:6;9665:9;:36::i;:::-;9714:24;9741:11;:19;9753:6;9741:19;;;;;;;;;;;;;;;:33;9761:12;:10;:12::i;:::-;9741:33;;;;;;;;;;;;;;;;9714:60;;9813:6;9793:16;:26;;9785:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9900:57;9909:6;9917:12;:10;:12::i;:::-;9950:6;9931:16;:25;9900:8;:57::i;:::-;9988:4;9981:11;;;9508:492;;;;;:::o;7652:93::-;7710:5;7735:2;7728:9;;7652:93;:::o;10409:215::-;10497:4;10514:80;10523:12;:10;:12::i;:::-;10537:7;10583:10;10546:11;:25;10558:12;:10;:12::i;:::-;10546:25;;;;;;;;;;;;;;;:34;10572:7;10546:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10514:8;:80::i;:::-;10612:4;10605:11;;10409:215;;;;:::o;20298:81::-;20347:24;20353:10;20365:5;20347;:24::i;:::-;20298:81;:::o;19492:28::-;;;;;;;;;;;;;:::o;7981:127::-;8055:7;8082:9;:18;8092:7;8082:18;;;;;;;;;;;;;;;;8075:25;;7981:127;;;:::o;18534:103::-;17772:13;:11;:13::i;:::-;18599:30:::1;18626:1;18599:18;:30::i;:::-;18534:103::o:0;17886:87::-;17932:7;17959:6;;;;;;;;;;;17952:13;;17886:87;:::o;6909:104::-;6965:13;6998:7;6991:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6909:104;:::o;11127:413::-;11220:4;11237:24;11264:11;:25;11276:12;:10;:12::i;:::-;11264:25;;;;;;;;;;;;;;;:34;11290:7;11264:34;;;;;;;;;;;;;;;;11237:61;;11337:15;11317:16;:35;;11309:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11430:67;11439:12;:10;:12::i;:::-;11453:7;11481:15;11462:16;:34;11430:8;:67::i;:::-;11528:4;11521:11;;;11127:413;;;;:::o;8321:175::-;8407:4;8424:42;8434:12;:10;:12::i;:::-;8448:9;8459:6;8424:9;:42::i;:::-;8484:4;8477:11;;8321:175;;;;:::o;19814:94::-;17772:13;:11;:13::i;:::-;19892:8:::1;19882:7;;:18;;;;;;;;;;;;;;;;;;19814:94:::0;:::o;19697:109::-;17772:13;:11;:13::i;:::-;19784:14:::1;19768:13;;:30;;;;;;;;;;;;;;;;;;19697:109:::0;:::o;8559:151::-;8648:7;8675:11;:18;8687:5;8675:18;;;;;;;;;;;;;;;:27;8694:7;8675:27;;;;;;;;;;;;;;;;8668:34;;8559:151;;;;:::o;18792:201::-;17772:13;:11;:13::i;:::-;18901:1:::1;18881:22;;:8;:22;;::::0;18873:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18957:28;18976:8;18957:18;:28::i;:::-;18792:201:::0;:::o;19527:22::-;;;;;;;;;;;;;:::o;4345:98::-;4398:7;4425:10;4418:17;;4345:98;:::o;14811:380::-;14964:1;14947:19;;:5;:19;;;14939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15045:1;15026:21;;:7;:21;;;15018:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15129:6;15099:11;:18;15111:5;15099:18;;;;;;;;;;;;;;;:27;15118:7;15099:27;;;;;;;;;;;;;;;:36;;;;15167:7;15151:32;;15160:5;15151:32;;;15176:6;15151:32;;;;;;:::i;:::-;;;;;;;;14811:380;;;:::o;12030:733::-;12188:1;12170:20;;:6;:20;;;12162:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12272:1;12251:23;;:9;:23;;;12243:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12327:47;12348:6;12356:9;12367:6;12327:20;:47::i;:::-;12387:21;12411:9;:17;12421:6;12411:17;;;;;;;;;;;;;;;;12387:41;;12464:6;12447:13;:23;;12439:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12585:6;12569:13;:22;12549:9;:17;12559:6;12549:17;;;;;;;;;;;;;;;:42;;;;12637:6;12613:9;:20;12623:9;12613:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12678:9;12661:35;;12670:6;12661:35;;;12689:6;12661:35;;;;;;:::i;:::-;;;;;;;;12709:46;12729:6;12737:9;12748:6;12709:19;:46::i;:::-;12151:612;12030:733;;;:::o;13782:591::-;13885:1;13866:21;;:7;:21;;;13858:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13938:49;13959:7;13976:1;13980:6;13938:20;:49::i;:::-;14000:22;14025:9;:18;14035:7;14025:18;;;;;;;;;;;;;;;;14000:43;;14080:6;14062:14;:24;;14054:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14199:6;14182:14;:23;14161:9;:18;14171:7;14161:18;;;;;;;;;;;;;;;:44;;;;14243:6;14227:12;;:22;;;;;;;:::i;:::-;;;;;;;;14293:1;14267:37;;14276:7;14267:37;;;14297:6;14267:37;;;;;;:::i;:::-;;;;;;;;14317:48;14337:7;14354:1;14358:6;14317:19;:48::i;:::-;13847:526;13782:591;;:::o;18051:132::-;18126:12;:10;:12::i;:::-;18115:23;;:7;:5;:7::i;:::-;:23;;;18107:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18051:132::o;19153:191::-;19227:16;19246:6;;;;;;;;;;;19227:25;;19272:8;19263:6;;:17;;;;;;;;;;;;;;;;;;19327:8;19296:40;;19317:8;19296:40;;;;;;;;;;;;19216:128;19153:191;:::o;19916:374::-;20065:7;;;;;;;;;;;20057:15;;:4;:15;;;:32;;;;20082:7;;;;;;;;;;;20076:13;;:2;:13;;;20057:32;20106:7;20053:71;20163:1;20138:27;;:13;;;;;;;;;;;:27;;;20134:149;;20198:7;:5;:7::i;:::-;20190:15;;:4;:15;;;:32;;;;20215:7;:5;:7::i;:::-;20209:13;;:2;:13;;;20190:32;20182:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20265:7;;20134:149;19916:374;;;;:::o;16520:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:320;6585:6;6622:1;6616:4;6612:12;6602:22;;6669:1;6663:4;6659:12;6690:18;6680:81;;6746:4;6738:6;6734:17;6724:27;;6680:81;6808:2;6800:6;6797:14;6777:18;6774:38;6771:84;;6827:18;;:::i;:::-;6771:84;6592:269;6541:320;;;:::o;6867:227::-;7007:34;7003:1;6995:6;6991:14;6984:58;7076:10;7071:2;7063:6;7059:15;7052:35;6867:227;:::o;7100:366::-;7242:3;7263:67;7327:2;7322:3;7263:67;:::i;:::-;7256:74;;7339:93;7428:3;7339:93;:::i;:::-;7457:2;7452:3;7448:12;7441:19;;7100:366;;;:::o;7472:419::-;7638:4;7676:2;7665:9;7661:18;7653:26;;7725:9;7719:4;7715:20;7711:1;7700:9;7696:17;7689:47;7753:131;7879:4;7753:131;:::i;:::-;7745:139;;7472:419;;;:::o;7897:180::-;7945:77;7942:1;7935:88;8042:4;8039:1;8032:15;8066:4;8063:1;8056:15;8083:191;8123:3;8142:20;8160:1;8142:20;:::i;:::-;8137:25;;8176:20;8194:1;8176:20;:::i;:::-;8171:25;;8219:1;8216;8212:9;8205:16;;8240:3;8237:1;8234:10;8231:36;;;8247:18;;:::i;:::-;8231:36;8083:191;;;;:::o;8280:224::-;8420:34;8416:1;8408:6;8404:14;8397:58;8489:7;8484:2;8476:6;8472:15;8465:32;8280:224;:::o;8510:366::-;8652:3;8673:67;8737:2;8732:3;8673:67;:::i;:::-;8666:74;;8749:93;8838:3;8749:93;:::i;:::-;8867:2;8862:3;8858:12;8851:19;;8510:366;;;:::o;8882:419::-;9048:4;9086:2;9075:9;9071:18;9063:26;;9135:9;9129:4;9125:20;9121:1;9110:9;9106:17;9099:47;9163:131;9289:4;9163:131;:::i;:::-;9155:139;;8882:419;;;:::o;9307:225::-;9447:34;9443:1;9435:6;9431:14;9424:58;9516:8;9511:2;9503:6;9499:15;9492:33;9307:225;:::o;9538:366::-;9680:3;9701:67;9765:2;9760:3;9701:67;:::i;:::-;9694:74;;9777:93;9866:3;9777:93;:::i;:::-;9895:2;9890:3;9886:12;9879:19;;9538:366;;;:::o;9910:419::-;10076:4;10114:2;10103:9;10099:18;10091:26;;10163:9;10157:4;10153:20;10149:1;10138:9;10134:17;10127:47;10191:131;10317:4;10191:131;:::i;:::-;10183:139;;9910:419;;;:::o;10335:223::-;10475:34;10471:1;10463:6;10459:14;10452:58;10544:6;10539:2;10531:6;10527:15;10520:31;10335:223;:::o;10564:366::-;10706:3;10727:67;10791:2;10786:3;10727:67;:::i;:::-;10720:74;;10803:93;10892:3;10803:93;:::i;:::-;10921:2;10916:3;10912:12;10905:19;;10564:366;;;:::o;10936:419::-;11102:4;11140:2;11129:9;11125:18;11117:26;;11189:9;11183:4;11179:20;11175:1;11164:9;11160:17;11153:47;11217:131;11343:4;11217:131;:::i;:::-;11209:139;;10936:419;;;:::o;11361:221::-;11501:34;11497:1;11489:6;11485:14;11478:58;11570:4;11565:2;11557:6;11553:15;11546:29;11361:221;:::o;11588:366::-;11730:3;11751:67;11815:2;11810:3;11751:67;:::i;:::-;11744:74;;11827:93;11916:3;11827:93;:::i;:::-;11945:2;11940:3;11936:12;11929:19;;11588:366;;;:::o;11960:419::-;12126:4;12164:2;12153:9;12149:18;12141:26;;12213:9;12207:4;12203:20;12199:1;12188:9;12184:17;12177:47;12241:131;12367:4;12241:131;:::i;:::-;12233:139;;11960:419;;;:::o;12385:224::-;12525:34;12521:1;12513:6;12509:14;12502:58;12594:7;12589:2;12581:6;12577:15;12570:32;12385:224;:::o;12615:366::-;12757:3;12778:67;12842:2;12837:3;12778:67;:::i;:::-;12771:74;;12854:93;12943:3;12854:93;:::i;:::-;12972:2;12967:3;12963:12;12956:19;;12615:366;;;:::o;12987:419::-;13153:4;13191:2;13180:9;13176:18;13168:26;;13240:9;13234:4;13230:20;13226:1;13215:9;13211:17;13204:47;13268:131;13394:4;13268:131;:::i;:::-;13260:139;;12987:419;;;:::o;13412:222::-;13552:34;13548:1;13540:6;13536:14;13529:58;13621:5;13616:2;13608:6;13604:15;13597:30;13412:222;:::o;13640:366::-;13782:3;13803:67;13867:2;13862:3;13803:67;:::i;:::-;13796:74;;13879:93;13968:3;13879:93;:::i;:::-;13997:2;13992:3;13988:12;13981:19;;13640:366;;;:::o;14012:419::-;14178:4;14216:2;14205:9;14201:18;14193:26;;14265:9;14259:4;14255:20;14251:1;14240:9;14236:17;14229:47;14293:131;14419:4;14293:131;:::i;:::-;14285:139;;14012:419;;;:::o;14437:225::-;14577:34;14573:1;14565:6;14561:14;14554:58;14646:8;14641:2;14633:6;14629:15;14622:33;14437:225;:::o;14668:366::-;14810:3;14831:67;14895:2;14890:3;14831:67;:::i;:::-;14824:74;;14907:93;14996:3;14907:93;:::i;:::-;15025:2;15020:3;15016:12;15009:19;;14668:366;;;:::o;15040:419::-;15206:4;15244:2;15233:9;15229:18;15221:26;;15293:9;15287:4;15283:20;15279:1;15268:9;15264:17;15257:47;15321:131;15447:4;15321:131;:::i;:::-;15313:139;;15040:419;;;:::o;15465:220::-;15605:34;15601:1;15593:6;15589:14;15582:58;15674:3;15669:2;15661:6;15657:15;15650:28;15465:220;:::o;15691:366::-;15833:3;15854:67;15918:2;15913:3;15854:67;:::i;:::-;15847:74;;15930:93;16019:3;15930:93;:::i;:::-;16048:2;16043:3;16039:12;16032:19;;15691:366;;;:::o;16063:419::-;16229:4;16267:2;16256:9;16252:18;16244:26;;16316:9;16310:4;16306:20;16302:1;16291:9;16287:17;16280:47;16344:131;16470:4;16344:131;:::i;:::-;16336:139;;16063:419;;;:::o;16488:221::-;16628:34;16624:1;16616:6;16612:14;16605:58;16697:4;16692:2;16684:6;16680:15;16673:29;16488:221;:::o;16715:366::-;16857:3;16878:67;16942:2;16937:3;16878:67;:::i;:::-;16871:74;;16954:93;17043:3;16954:93;:::i;:::-;17072:2;17067:3;17063:12;17056:19;;16715:366;;;:::o;17087:419::-;17253:4;17291:2;17280:9;17276:18;17268:26;;17340:9;17334:4;17330:20;17326:1;17315:9;17311:17;17304:47;17368:131;17494:4;17368:131;:::i;:::-;17360:139;;17087:419;;;:::o;17512:194::-;17552:4;17572:20;17590:1;17572:20;:::i;:::-;17567:25;;17606:20;17624:1;17606:20;:::i;:::-;17601:25;;17650:1;17647;17643:9;17635:17;;17674:1;17668:4;17665:11;17662:37;;;17679:18;;:::i;:::-;17662:37;17512:194;;;;:::o;17712:182::-;17852:34;17848:1;17840:6;17836:14;17829:58;17712:182;:::o;17900:366::-;18042:3;18063:67;18127:2;18122:3;18063:67;:::i;:::-;18056:74;;18139:93;18228:3;18139:93;:::i;:::-;18257:2;18252:3;18248:12;18241:19;;17900:366;;;:::o;18272:419::-;18438:4;18476:2;18465:9;18461:18;18453:26;;18525:9;18519:4;18515:20;18511:1;18500:9;18496:17;18489:47;18553:131;18679:4;18553:131;:::i;:::-;18545:139;;18272:419;;;:::o;18697:173::-;18837:25;18833:1;18825:6;18821:14;18814:49;18697:173;:::o;18876:366::-;19018:3;19039:67;19103:2;19098:3;19039:67;:::i;:::-;19032:74;;19115:93;19204:3;19115:93;:::i;:::-;19233:2;19228:3;19224:12;19217:19;;18876:366;;;:::o;19248:419::-;19414:4;19452:2;19441:9;19437:18;19429:26;;19501:9;19495:4;19491:20;19487:1;19476:9;19472:17;19465:47;19529:131;19655:4;19529:131;:::i;:::-;19521:139;;19248:419;;;:::o
Swarm Source
ipfs://cc7407211bef349c26eee87f73da7dd575928c3e992fd65fb164e3958048d113
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.