ERC-20
Overview
Max Total Supply
495,142,857.999999999999 PUMLx
Holders
2,231 ( -0.134%)
Market
Price
$0.01 @ 0.000002 ETH (-3.03%)
Onchain Market Cap
$2,663,613.79
Circulating Supply Market Cap
$695,299.43
Other Info
Token Contract (WITH 18 Decimals)
Balance
15,000 PUMLxValue
$80.69 ( ~0.0260452953936546 Eth) [0.0030%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PUMLx
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-31 */ // 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.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: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.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.7.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.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: * * - `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; } _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; _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 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: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity ^0.8.0; /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } // File: PUMLx.sol pragma solidity ^0.8.4; contract PUMLx is ERC20, ERC20Burnable, Ownable { constructor() ERC20("PUMLx", "PUMLx") { _mint(msg.sender, 500000000 * 10 ** decimals()); } }
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":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600581526020017f50554d4c780000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f50554d4c7800000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000372565b508060049080519060200190620000af92919062000372565b505050620000d2620000c66200011860201b60201c565b6200012060201b60201c565b6200011233620000e7620001e660201b60201c565b600a620000f5919062000562565b631dcd65006200010691906200069f565b620001ef60201b60201c565b620007e1565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000259906200045a565b60405180910390fd5b62000276600083836200036860201b60201c565b80600260008282546200028a9190620004aa565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002e19190620004aa565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200034891906200047c565b60405180910390a362000364600083836200036d60201b60201c565b5050565b505050565b505050565b828054620003809062000717565b90600052602060002090601f016020900481019282620003a45760008555620003f0565b82601f10620003bf57805160ff1916838001178555620003f0565b82800160010185558215620003f0579182015b82811115620003ef578251825591602001919060010190620003d2565b5b509050620003ff919062000403565b5090565b5b808211156200041e57600081600090555060010162000404565b5090565b600062000431601f8362000499565b91506200043e82620007b8565b602082019050919050565b620004548162000700565b82525050565b60006020820190508181036000830152620004758162000422565b9050919050565b600060208201905062000493600083018462000449565b92915050565b600082825260208201905092915050565b6000620004b78262000700565b9150620004c48362000700565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004fc57620004fb6200074d565b5b828201905092915050565b6000808291508390505b600185111562000559578086048111156200053157620005306200074d565b5b6001851615620005415780820291505b80810290506200055185620007ab565b945062000511565b94509492505050565b60006200056f8262000700565b91506200057c836200070a565b9250620005ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005b3565b905092915050565b600082620005c5576001905062000698565b81620005d5576000905062000698565b8160018114620005ee5760028114620005f9576200062f565b600191505062000698565b60ff8411156200060e576200060d6200074d565b5b8360020a9150848211156200062857620006276200074d565b5b5062000698565b5060208310610133831016604e8410600b8410161715620006695782820a9050838111156200066357620006626200074d565b5b62000698565b62000678848484600162000507565b925090508184048111156200069257620006916200074d565b5b81810290505b9392505050565b6000620006ac8262000700565b9150620006b98362000700565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006f557620006f46200074d565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200073057607f821691505b602082108114156200074757620007466200077c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6119e080620007f16000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d71461029d578063a9059cbb146102cd578063dd62ed3e146102fd578063f2fde38b1461032d57610100565b8063715018a61461023b57806379cc6790146102455780638da5cb5b1461026157806395d89b411461027f57610100565b8063313ce567116100d3578063313ce567146101a157806339509351146101bf57806342966c68146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d610349565b60405161011a91906112dc565b60405180910390f35b61013d6004803603810190610138919061104b565b6103db565b60405161014a91906112c1565b60405180910390f35b61015b6103fe565b604051610168919061145e565b60405180910390f35b61018b60048036038101906101869190610ffc565b610408565b60405161019891906112c1565b60405180910390f35b6101a9610437565b6040516101b69190611479565b60405180910390f35b6101d960048036038101906101d4919061104b565b610440565b6040516101e691906112c1565b60405180910390f35b61020960048036038101906102049190611087565b610477565b005b61022560048036038101906102209190610f97565b61048b565b604051610232919061145e565b60405180910390f35b6102436104d3565b005b61025f600480360381019061025a919061104b565b6104e7565b005b610269610507565b60405161027691906112a6565b60405180910390f35b610287610531565b60405161029491906112dc565b60405180910390f35b6102b760048036038101906102b2919061104b565b6105c3565b6040516102c491906112c1565b60405180910390f35b6102e760048036038101906102e2919061104b565b61063a565b6040516102f491906112c1565b60405180910390f35b61031760048036038101906103129190610fc0565b61065d565b604051610324919061145e565b60405180910390f35b61034760048036038101906103429190610f97565b6106e4565b005b606060038054610358906115c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610384906115c2565b80156103d15780601f106103a6576101008083540402835291602001916103d1565b820191906000526020600020905b8154815290600101906020018083116103b457829003601f168201915b5050505050905090565b6000806103e6610768565b90506103f3818585610770565b600191505092915050565b6000600254905090565b600080610413610768565b905061042085828561093b565b61042b8585856109c7565b60019150509392505050565b60006012905090565b60008061044b610768565b905061046c81858561045d858961065d565b61046791906114b0565b610770565b600191505092915050565b610488610482610768565b82610c48565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104db610e1f565b6104e56000610e9d565b565b6104f9826104f3610768565b8361093b565b6105038282610c48565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610540906115c2565b80601f016020809104026020016040519081016040528092919081815260200182805461056c906115c2565b80156105b95780601f1061058e576101008083540402835291602001916105b9565b820191906000526020600020905b81548152906001019060200180831161059c57829003601f168201915b5050505050905090565b6000806105ce610768565b905060006105dc828661065d565b905083811015610621576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106189061143e565b60405180910390fd5b61062e8286868403610770565b60019250505092915050565b600080610645610768565b90506106528185856109c7565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6106ec610e1f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561075c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107539061133e565b60405180910390fd5b61076581610e9d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d79061141e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610850576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108479061135e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161092e919061145e565b60405180910390a3505050565b6000610947848461065d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109c157818110156109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa9061137e565b60405180910390fd5b6109c08484848403610770565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e906113fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e906112fe565b60405180910390fd5b610ab2838383610f63565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f9061139e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bcb91906114b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c2f919061145e565b60405180910390a3610c42848484610f68565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf906113de565b60405180910390fd5b610cc482600083610f63565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d419061131e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610da19190611506565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e06919061145e565b60405180910390a3610e1a83600084610f68565b505050565b610e27610768565b73ffffffffffffffffffffffffffffffffffffffff16610e45610507565b73ffffffffffffffffffffffffffffffffffffffff1614610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e92906113be565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081359050610f7c8161197c565b92915050565b600081359050610f9181611993565b92915050565b600060208284031215610fa957600080fd5b6000610fb784828501610f6d565b91505092915050565b60008060408385031215610fd357600080fd5b6000610fe185828601610f6d565b9250506020610ff285828601610f6d565b9150509250929050565b60008060006060848603121561101157600080fd5b600061101f86828701610f6d565b935050602061103086828701610f6d565b925050604061104186828701610f82565b9150509250925092565b6000806040838503121561105e57600080fd5b600061106c85828601610f6d565b925050602061107d85828601610f82565b9150509250929050565b60006020828403121561109957600080fd5b60006110a784828501610f82565b91505092915050565b6110b98161153a565b82525050565b6110c88161154c565b82525050565b60006110d982611494565b6110e3818561149f565b93506110f381856020860161158f565b6110fc81611652565b840191505092915050565b600061111460238361149f565b915061111f82611663565b604082019050919050565b600061113760228361149f565b9150611142826116b2565b604082019050919050565b600061115a60268361149f565b915061116582611701565b604082019050919050565b600061117d60228361149f565b915061118882611750565b604082019050919050565b60006111a0601d8361149f565b91506111ab8261179f565b602082019050919050565b60006111c360268361149f565b91506111ce826117c8565b604082019050919050565b60006111e660208361149f565b91506111f182611817565b602082019050919050565b600061120960218361149f565b915061121482611840565b604082019050919050565b600061122c60258361149f565b91506112378261188f565b604082019050919050565b600061124f60248361149f565b915061125a826118de565b604082019050919050565b600061127260258361149f565b915061127d8261192d565b604082019050919050565b61129181611578565b82525050565b6112a081611582565b82525050565b60006020820190506112bb60008301846110b0565b92915050565b60006020820190506112d660008301846110bf565b92915050565b600060208201905081810360008301526112f681846110ce565b905092915050565b6000602082019050818103600083015261131781611107565b9050919050565b600060208201905081810360008301526113378161112a565b9050919050565b600060208201905081810360008301526113578161114d565b9050919050565b6000602082019050818103600083015261137781611170565b9050919050565b6000602082019050818103600083015261139781611193565b9050919050565b600060208201905081810360008301526113b7816111b6565b9050919050565b600060208201905081810360008301526113d7816111d9565b9050919050565b600060208201905081810360008301526113f7816111fc565b9050919050565b600060208201905081810360008301526114178161121f565b9050919050565b6000602082019050818103600083015261143781611242565b9050919050565b6000602082019050818103600083015261145781611265565b9050919050565b60006020820190506114736000830184611288565b92915050565b600060208201905061148e6000830184611297565b92915050565b600081519050919050565b600082825260208201905092915050565b60006114bb82611578565b91506114c683611578565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114fb576114fa6115f4565b5b828201905092915050565b600061151182611578565b915061151c83611578565b92508282101561152f5761152e6115f4565b5b828203905092915050565b600061154582611558565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156115ad578082015181840152602081019050611592565b838111156115bc576000848401525b50505050565b600060028204905060018216806115da57607f821691505b602082108114156115ee576115ed611623565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6119858161153a565b811461199057600080fd5b50565b61199c81611578565b81146119a757600080fd5b5056fea264697066735822122081f3d52e9442e0714702533d88904223abbbbfb0ce82c68efa1d01bdf93e18fa64736f6c63430008040033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d71461029d578063a9059cbb146102cd578063dd62ed3e146102fd578063f2fde38b1461032d57610100565b8063715018a61461023b57806379cc6790146102455780638da5cb5b1461026157806395d89b411461027f57610100565b8063313ce567116100d3578063313ce567146101a157806339509351146101bf57806342966c68146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d610349565b60405161011a91906112dc565b60405180910390f35b61013d6004803603810190610138919061104b565b6103db565b60405161014a91906112c1565b60405180910390f35b61015b6103fe565b604051610168919061145e565b60405180910390f35b61018b60048036038101906101869190610ffc565b610408565b60405161019891906112c1565b60405180910390f35b6101a9610437565b6040516101b69190611479565b60405180910390f35b6101d960048036038101906101d4919061104b565b610440565b6040516101e691906112c1565b60405180910390f35b61020960048036038101906102049190611087565b610477565b005b61022560048036038101906102209190610f97565b61048b565b604051610232919061145e565b60405180910390f35b6102436104d3565b005b61025f600480360381019061025a919061104b565b6104e7565b005b610269610507565b60405161027691906112a6565b60405180910390f35b610287610531565b60405161029491906112dc565b60405180910390f35b6102b760048036038101906102b2919061104b565b6105c3565b6040516102c491906112c1565b60405180910390f35b6102e760048036038101906102e2919061104b565b61063a565b6040516102f491906112c1565b60405180910390f35b61031760048036038101906103129190610fc0565b61065d565b604051610324919061145e565b60405180910390f35b61034760048036038101906103429190610f97565b6106e4565b005b606060038054610358906115c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610384906115c2565b80156103d15780601f106103a6576101008083540402835291602001916103d1565b820191906000526020600020905b8154815290600101906020018083116103b457829003601f168201915b5050505050905090565b6000806103e6610768565b90506103f3818585610770565b600191505092915050565b6000600254905090565b600080610413610768565b905061042085828561093b565b61042b8585856109c7565b60019150509392505050565b60006012905090565b60008061044b610768565b905061046c81858561045d858961065d565b61046791906114b0565b610770565b600191505092915050565b610488610482610768565b82610c48565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104db610e1f565b6104e56000610e9d565b565b6104f9826104f3610768565b8361093b565b6105038282610c48565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610540906115c2565b80601f016020809104026020016040519081016040528092919081815260200182805461056c906115c2565b80156105b95780601f1061058e576101008083540402835291602001916105b9565b820191906000526020600020905b81548152906001019060200180831161059c57829003601f168201915b5050505050905090565b6000806105ce610768565b905060006105dc828661065d565b905083811015610621576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106189061143e565b60405180910390fd5b61062e8286868403610770565b60019250505092915050565b600080610645610768565b90506106528185856109c7565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6106ec610e1f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561075c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107539061133e565b60405180910390fd5b61076581610e9d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d79061141e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610850576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108479061135e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161092e919061145e565b60405180910390a3505050565b6000610947848461065d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109c157818110156109b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109aa9061137e565b60405180910390fd5b6109c08484848403610770565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e906113fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e906112fe565b60405180910390fd5b610ab2838383610f63565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2f9061139e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bcb91906114b0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c2f919061145e565b60405180910390a3610c42848484610f68565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf906113de565b60405180910390fd5b610cc482600083610f63565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d419061131e565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254610da19190611506565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e06919061145e565b60405180910390a3610e1a83600084610f68565b505050565b610e27610768565b73ffffffffffffffffffffffffffffffffffffffff16610e45610507565b73ffffffffffffffffffffffffffffffffffffffff1614610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e92906113be565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081359050610f7c8161197c565b92915050565b600081359050610f9181611993565b92915050565b600060208284031215610fa957600080fd5b6000610fb784828501610f6d565b91505092915050565b60008060408385031215610fd357600080fd5b6000610fe185828601610f6d565b9250506020610ff285828601610f6d565b9150509250929050565b60008060006060848603121561101157600080fd5b600061101f86828701610f6d565b935050602061103086828701610f6d565b925050604061104186828701610f82565b9150509250925092565b6000806040838503121561105e57600080fd5b600061106c85828601610f6d565b925050602061107d85828601610f82565b9150509250929050565b60006020828403121561109957600080fd5b60006110a784828501610f82565b91505092915050565b6110b98161153a565b82525050565b6110c88161154c565b82525050565b60006110d982611494565b6110e3818561149f565b93506110f381856020860161158f565b6110fc81611652565b840191505092915050565b600061111460238361149f565b915061111f82611663565b604082019050919050565b600061113760228361149f565b9150611142826116b2565b604082019050919050565b600061115a60268361149f565b915061116582611701565b604082019050919050565b600061117d60228361149f565b915061118882611750565b604082019050919050565b60006111a0601d8361149f565b91506111ab8261179f565b602082019050919050565b60006111c360268361149f565b91506111ce826117c8565b604082019050919050565b60006111e660208361149f565b91506111f182611817565b602082019050919050565b600061120960218361149f565b915061121482611840565b604082019050919050565b600061122c60258361149f565b91506112378261188f565b604082019050919050565b600061124f60248361149f565b915061125a826118de565b604082019050919050565b600061127260258361149f565b915061127d8261192d565b604082019050919050565b61129181611578565b82525050565b6112a081611582565b82525050565b60006020820190506112bb60008301846110b0565b92915050565b60006020820190506112d660008301846110bf565b92915050565b600060208201905081810360008301526112f681846110ce565b905092915050565b6000602082019050818103600083015261131781611107565b9050919050565b600060208201905081810360008301526113378161112a565b9050919050565b600060208201905081810360008301526113578161114d565b9050919050565b6000602082019050818103600083015261137781611170565b9050919050565b6000602082019050818103600083015261139781611193565b9050919050565b600060208201905081810360008301526113b7816111b6565b9050919050565b600060208201905081810360008301526113d7816111d9565b9050919050565b600060208201905081810360008301526113f7816111fc565b9050919050565b600060208201905081810360008301526114178161121f565b9050919050565b6000602082019050818103600083015261143781611242565b9050919050565b6000602082019050818103600083015261145781611265565b9050919050565b60006020820190506114736000830184611288565b92915050565b600060208201905061148e6000830184611297565b92915050565b600081519050919050565b600082825260208201905092915050565b60006114bb82611578565b91506114c683611578565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114fb576114fa6115f4565b5b828201905092915050565b600061151182611578565b915061151c83611578565b92508282101561152f5761152e6115f4565b5b828203905092915050565b600061154582611558565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156115ad578082015181840152602081019050611592565b838111156115bc576000848401525b50505050565b600060028204905060018216806115da57607f821691505b602082108114156115ee576115ed611623565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6119858161153a565b811461199057600080fd5b50565b61199c81611578565b81146119a757600080fd5b5056fea264697066735822122081f3d52e9442e0714702533d88904223abbbbfb0ce82c68efa1d01bdf93e18fa64736f6c63430008040033
Deployed Bytecode Sourcemap
21360:162:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9353:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11704:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10473:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12485:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10315:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13189:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20722:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10644:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2776:103;;;:::i;:::-;;21132:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2128:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9572:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13930:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10977:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11233:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3034:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9353:100;9407:13;9440:5;9433:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9353:100;:::o;11704:201::-;11787:4;11804:13;11820:12;:10;:12::i;:::-;11804:28;;11843:32;11852:5;11859:7;11868:6;11843:8;:32::i;:::-;11893:4;11886:11;;;11704:201;;;;:::o;10473:108::-;10534:7;10561:12;;10554:19;;10473:108;:::o;12485:295::-;12616:4;12633:15;12651:12;:10;:12::i;:::-;12633:30;;12674:38;12690:4;12696:7;12705:6;12674:15;:38::i;:::-;12723:27;12733:4;12739:2;12743:6;12723:9;:27::i;:::-;12768:4;12761:11;;;12485:295;;;;;:::o;10315:93::-;10373:5;10398:2;10391:9;;10315:93;:::o;13189:238::-;13277:4;13294:13;13310:12;:10;:12::i;:::-;13294:28;;13333:64;13342:5;13349:7;13386:10;13358:25;13368:5;13375:7;13358:9;:25::i;:::-;:38;;;;:::i;:::-;13333:8;:64::i;:::-;13415:4;13408:11;;;13189:238;;;;:::o;20722:91::-;20778:27;20784:12;:10;:12::i;:::-;20798:6;20778:5;:27::i;:::-;20722:91;:::o;10644:127::-;10718:7;10745:9;:18;10755:7;10745:18;;;;;;;;;;;;;;;;10738:25;;10644:127;;;:::o;2776:103::-;2014:13;:11;:13::i;:::-;2841:30:::1;2868:1;2841:18;:30::i;:::-;2776:103::o:0;21132:164::-;21209:46;21225:7;21234:12;:10;:12::i;:::-;21248:6;21209:15;:46::i;:::-;21266:22;21272:7;21281:6;21266:5;:22::i;:::-;21132:164;;:::o;2128:87::-;2174:7;2201:6;;;;;;;;;;;2194:13;;2128:87;:::o;9572:104::-;9628:13;9661:7;9654:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9572:104;:::o;13930:436::-;14023:4;14040:13;14056:12;:10;:12::i;:::-;14040:28;;14079:24;14106:25;14116:5;14123:7;14106:9;:25::i;:::-;14079:52;;14170:15;14150:16;:35;;14142:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14263:60;14272:5;14279:7;14307:15;14288:16;:34;14263:8;:60::i;:::-;14354:4;14347:11;;;;13930:436;;;;:::o;10977:193::-;11056:4;11073:13;11089:12;:10;:12::i;:::-;11073:28;;11112;11122:5;11129:2;11133:6;11112:9;:28::i;:::-;11158:4;11151:11;;;10977:193;;;;:::o;11233:151::-;11322:7;11349:11;:18;11361:5;11349:18;;;;;;;;;;;;;;;:27;11368:7;11349:27;;;;;;;;;;;;;;;;11342:34;;11233:151;;;;:::o;3034:201::-;2014:13;:11;:13::i;:::-;3143:1:::1;3123:22;;:8;:22;;;;3115:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3199:28;3218:8;3199:18;:28::i;:::-;3034:201:::0;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;17555:380::-;17708:1;17691:19;;:5;:19;;;;17683:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17789:1;17770:21;;:7;:21;;;;17762:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17873:6;17843:11;:18;17855:5;17843:18;;;;;;;;;;;;;;;:27;17862:7;17843:27;;;;;;;;;;;;;;;:36;;;;17911:7;17895:32;;17904:5;17895:32;;;17920:6;17895:32;;;;;;:::i;:::-;;;;;;;;17555:380;;;:::o;18226:453::-;18361:24;18388:25;18398:5;18405:7;18388:9;:25::i;:::-;18361:52;;18448:17;18428:16;:37;18424:248;;18510:6;18490:16;:26;;18482:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18594:51;18603:5;18610:7;18638:6;18619:16;:25;18594:8;:51::i;:::-;18424:248;18226:453;;;;:::o;14836:671::-;14983:1;14967:18;;:4;:18;;;;14959:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15060:1;15046:16;;:2;:16;;;;15038:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15115:38;15136:4;15142:2;15146:6;15115:20;:38::i;:::-;15166:19;15188:9;:15;15198:4;15188:15;;;;;;;;;;;;;;;;15166:37;;15237:6;15222:11;:21;;15214:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15354:6;15340:11;:20;15322:9;:15;15332:4;15322:15;;;;;;;;;;;;;;;:38;;;;15399:6;15382:9;:13;15392:2;15382:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;15438:2;15423:26;;15432:4;15423:26;;;15442:6;15423:26;;;;;;:::i;:::-;;;;;;;;15462:37;15482:4;15488:2;15492:6;15462:19;:37::i;:::-;14836:671;;;;:::o;16526:591::-;16629:1;16610:21;;:7;:21;;;;16602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16682:49;16703:7;16720:1;16724:6;16682:20;:49::i;:::-;16744:22;16769:9;:18;16779:7;16769:18;;;;;;;;;;;;;;;;16744:43;;16824:6;16806:14;:24;;16798:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16943:6;16926:14;:23;16905:9;:18;16915:7;16905:18;;;;;;;;;;;;;;;:44;;;;16987:6;16971:12;;:22;;;;;;;:::i;:::-;;;;;;;;17037:1;17011:37;;17020:7;17011:37;;;17041:6;17011:37;;;;;;:::i;:::-;;;;;;;;17061:48;17081:7;17098:1;17102:6;17061:19;:48::i;:::-;16526:591;;;:::o;2293:132::-;2368:12;:10;:12::i;:::-;2357:23;;:7;:5;:7::i;:::-;:23;;;2349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2293:132::o;3395:191::-;3469:16;3488:6;;;;;;;;;;;3469:25;;3514:8;3505:6;;:17;;;;;;;;;;;;;;;;;;3569:8;3538:40;;3559:8;3538:40;;;;;;;;;;;;3395:191;;:::o;19279:125::-;;;;:::o;20008:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;356:6;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;633:6;641;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;1055:6;1063;1071;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;1604:6;1612;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;2008:6;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2282:53;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2400:50;;:::o;2456:364::-;2544:3;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;;;;;:::o;2826:366::-;2968:3;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3065:93;3154:3;3065:93;:::i;:::-;3183:2;3178:3;3174:12;3167:19;;2972:220;;;:::o;3198:366::-;3340:3;3361:67;3425:2;3420:3;3361:67;:::i;:::-;3354:74;;3437:93;3526:3;3437:93;:::i;:::-;3555:2;3550:3;3546:12;3539:19;;3344:220;;;:::o;3570:366::-;3712:3;3733:67;3797:2;3792:3;3733:67;:::i;:::-;3726:74;;3809:93;3898:3;3809:93;:::i;:::-;3927:2;3922:3;3918:12;3911:19;;3716:220;;;:::o;3942:366::-;4084:3;4105:67;4169:2;4164:3;4105:67;:::i;:::-;4098:74;;4181:93;4270:3;4181:93;:::i;:::-;4299:2;4294:3;4290:12;4283:19;;4088:220;;;:::o;4314:366::-;4456:3;4477:67;4541:2;4536:3;4477:67;:::i;:::-;4470:74;;4553:93;4642:3;4553:93;:::i;:::-;4671:2;4666:3;4662:12;4655:19;;4460:220;;;:::o;4686:366::-;4828:3;4849:67;4913:2;4908:3;4849:67;:::i;:::-;4842:74;;4925:93;5014:3;4925:93;:::i;:::-;5043:2;5038:3;5034:12;5027:19;;4832:220;;;:::o;5058:366::-;5200:3;5221:67;5285:2;5280:3;5221:67;:::i;:::-;5214:74;;5297:93;5386:3;5297:93;:::i;:::-;5415:2;5410:3;5406:12;5399:19;;5204:220;;;:::o;5430:366::-;5572:3;5593:67;5657:2;5652:3;5593:67;:::i;:::-;5586:74;;5669:93;5758:3;5669:93;:::i;:::-;5787:2;5782:3;5778:12;5771:19;;5576:220;;;:::o;5802:366::-;5944:3;5965:67;6029:2;6024:3;5965:67;:::i;:::-;5958:74;;6041:93;6130:3;6041:93;:::i;:::-;6159:2;6154:3;6150:12;6143:19;;5948:220;;;:::o;6174:366::-;6316:3;6337:67;6401:2;6396:3;6337:67;:::i;:::-;6330:74;;6413:93;6502:3;6413:93;:::i;:::-;6531:2;6526:3;6522:12;6515:19;;6320:220;;;:::o;6546:366::-;6688:3;6709:67;6773:2;6768:3;6709:67;:::i;:::-;6702:74;;6785:93;6874:3;6785:93;:::i;:::-;6903:2;6898:3;6894:12;6887:19;;6692:220;;;:::o;6918:118::-;7005:24;7023:5;7005:24;:::i;:::-;7000:3;6993:37;6983:53;;:::o;7042:112::-;7125:22;7141:5;7125:22;:::i;:::-;7120:3;7113:35;7103:51;;:::o;7160:222::-;7253:4;7291:2;7280:9;7276:18;7268:26;;7304:71;7372:1;7361:9;7357:17;7348:6;7304:71;:::i;:::-;7258:124;;;;:::o;7388:210::-;7475:4;7513:2;7502:9;7498:18;7490:26;;7526:65;7588:1;7577:9;7573:17;7564:6;7526:65;:::i;:::-;7480:118;;;;:::o;7604:313::-;7717:4;7755:2;7744:9;7740:18;7732:26;;7804:9;7798:4;7794:20;7790:1;7779:9;7775:17;7768:47;7832:78;7905:4;7896:6;7832:78;:::i;:::-;7824:86;;7722:195;;;;:::o;7923:419::-;8089:4;8127:2;8116:9;8112:18;8104:26;;8176:9;8170:4;8166:20;8162:1;8151:9;8147:17;8140:47;8204:131;8330:4;8204:131;:::i;:::-;8196:139;;8094:248;;;:::o;8348:419::-;8514:4;8552:2;8541:9;8537:18;8529:26;;8601:9;8595:4;8591:20;8587:1;8576:9;8572:17;8565:47;8629:131;8755:4;8629:131;:::i;:::-;8621:139;;8519:248;;;:::o;8773:419::-;8939:4;8977:2;8966:9;8962:18;8954:26;;9026:9;9020:4;9016:20;9012:1;9001:9;8997:17;8990:47;9054:131;9180:4;9054:131;:::i;:::-;9046:139;;8944:248;;;:::o;9198:419::-;9364:4;9402:2;9391:9;9387:18;9379:26;;9451:9;9445:4;9441:20;9437:1;9426:9;9422:17;9415:47;9479:131;9605:4;9479:131;:::i;:::-;9471:139;;9369:248;;;:::o;9623:419::-;9789:4;9827:2;9816:9;9812:18;9804:26;;9876:9;9870:4;9866:20;9862:1;9851:9;9847:17;9840:47;9904:131;10030:4;9904:131;:::i;:::-;9896:139;;9794:248;;;:::o;10048:419::-;10214:4;10252:2;10241:9;10237:18;10229:26;;10301:9;10295:4;10291:20;10287:1;10276:9;10272:17;10265:47;10329:131;10455:4;10329:131;:::i;:::-;10321:139;;10219:248;;;:::o;10473:419::-;10639:4;10677:2;10666:9;10662:18;10654:26;;10726:9;10720:4;10716:20;10712:1;10701:9;10697:17;10690:47;10754:131;10880:4;10754:131;:::i;:::-;10746:139;;10644:248;;;:::o;10898:419::-;11064:4;11102:2;11091:9;11087:18;11079:26;;11151:9;11145:4;11141:20;11137:1;11126:9;11122:17;11115:47;11179:131;11305:4;11179:131;:::i;:::-;11171:139;;11069:248;;;:::o;11323:419::-;11489:4;11527:2;11516:9;11512:18;11504:26;;11576:9;11570:4;11566:20;11562:1;11551:9;11547:17;11540:47;11604:131;11730:4;11604:131;:::i;:::-;11596:139;;11494:248;;;:::o;11748:419::-;11914:4;11952:2;11941:9;11937:18;11929:26;;12001:9;11995:4;11991:20;11987:1;11976:9;11972:17;11965:47;12029:131;12155:4;12029:131;:::i;:::-;12021:139;;11919:248;;;:::o;12173:419::-;12339:4;12377:2;12366:9;12362:18;12354:26;;12426:9;12420:4;12416:20;12412:1;12401:9;12397:17;12390:47;12454:131;12580:4;12454:131;:::i;:::-;12446:139;;12344:248;;;:::o;12598:222::-;12691:4;12729:2;12718:9;12714:18;12706:26;;12742:71;12810:1;12799:9;12795:17;12786:6;12742:71;:::i;:::-;12696:124;;;;:::o;12826:214::-;12915:4;12953:2;12942:9;12938:18;12930:26;;12966:67;13030:1;13019:9;13015:17;13006:6;12966:67;:::i;:::-;12920:120;;;;:::o;13046:99::-;13098:6;13132:5;13126:12;13116:22;;13105:40;;;:::o;13151:169::-;13235:11;13269:6;13264:3;13257:19;13309:4;13304:3;13300:14;13285:29;;13247:73;;;;:::o;13326:305::-;13366:3;13385:20;13403:1;13385:20;:::i;:::-;13380:25;;13419:20;13437:1;13419:20;:::i;:::-;13414:25;;13573:1;13505:66;13501:74;13498:1;13495:81;13492:2;;;13579:18;;:::i;:::-;13492:2;13623:1;13620;13616:9;13609:16;;13370:261;;;;:::o;13637:191::-;13677:4;13697:20;13715:1;13697:20;:::i;:::-;13692:25;;13731:20;13749:1;13731:20;:::i;:::-;13726:25;;13770:1;13767;13764:8;13761:2;;;13775:18;;:::i;:::-;13761:2;13820:1;13817;13813:9;13805:17;;13682:146;;;;:::o;13834:96::-;13871:7;13900:24;13918:5;13900:24;:::i;:::-;13889:35;;13879:51;;;:::o;13936:90::-;13970:7;14013:5;14006:13;13999:21;13988:32;;13978:48;;;:::o;14032:126::-;14069:7;14109:42;14102:5;14098:54;14087:65;;14077:81;;;:::o;14164:77::-;14201:7;14230:5;14219:16;;14209:32;;;:::o;14247:86::-;14282:7;14322:4;14315:5;14311:16;14300:27;;14290:43;;;:::o;14339:307::-;14407:1;14417:113;14431:6;14428:1;14425:13;14417:113;;;14516:1;14511:3;14507:11;14501:18;14497:1;14492:3;14488:11;14481:39;14453:2;14450:1;14446:10;14441:15;;14417:113;;;14548:6;14545:1;14542:13;14539:2;;;14628:1;14619:6;14614:3;14610:16;14603:27;14539:2;14388:258;;;;:::o;14652:320::-;14696:6;14733:1;14727:4;14723:12;14713:22;;14780:1;14774:4;14770:12;14801:18;14791:2;;14857:4;14849:6;14845:17;14835:27;;14791:2;14919;14911:6;14908:14;14888:18;14885:38;14882:2;;;14938:18;;:::i;:::-;14882:2;14703:269;;;;:::o;14978:180::-;15026:77;15023:1;15016:88;15123:4;15120:1;15113:15;15147:4;15144:1;15137:15;15164:180;15212:77;15209:1;15202:88;15309:4;15306:1;15299:15;15333:4;15330:1;15323:15;15350:102;15391:6;15442:2;15438:7;15433:2;15426:5;15422:14;15418:28;15408:38;;15398:54;;;:::o;15458:222::-;15598:34;15594:1;15586:6;15582:14;15575:58;15667:5;15662:2;15654:6;15650:15;15643:30;15564:116;:::o;15686:221::-;15826:34;15822:1;15814:6;15810:14;15803:58;15895:4;15890:2;15882:6;15878:15;15871:29;15792:115;:::o;15913:225::-;16053:34;16049:1;16041:6;16037:14;16030:58;16122:8;16117:2;16109:6;16105:15;16098:33;16019:119;:::o;16144:221::-;16284:34;16280:1;16272:6;16268:14;16261:58;16353:4;16348:2;16340:6;16336:15;16329:29;16250:115;:::o;16371:179::-;16511:31;16507:1;16499:6;16495:14;16488:55;16477:73;:::o;16556:225::-;16696:34;16692:1;16684:6;16680:14;16673:58;16765:8;16760:2;16752:6;16748:15;16741:33;16662:119;:::o;16787:182::-;16927:34;16923:1;16915:6;16911:14;16904:58;16893:76;:::o;16975:220::-;17115:34;17111:1;17103:6;17099:14;17092:58;17184:3;17179:2;17171:6;17167:15;17160:28;17081:114;:::o;17201:224::-;17341:34;17337:1;17329:6;17325:14;17318:58;17410:7;17405:2;17397:6;17393:15;17386:32;17307:118;:::o;17431:223::-;17571:34;17567:1;17559:6;17555:14;17548:58;17640:6;17635:2;17627:6;17623:15;17616:31;17537:117;:::o;17660:224::-;17800:34;17796:1;17788:6;17784:14;17777:58;17869:7;17864:2;17856:6;17852:15;17845:32;17766:118;:::o;17890:122::-;17963:24;17981:5;17963:24;:::i;:::-;17956:5;17953:35;17943:2;;18002:1;17999;17992:12;17943:2;17933:79;:::o;18018:122::-;18091:24;18109:5;18091:24;:::i;:::-;18084:5;18081:35;18071:2;;18130:1;18127;18120:12;18071:2;18061:79;:::o
Swarm Source
ipfs://81f3d52e9442e0714702533d88904223abbbbfb0ce82c68efa1d01bdf93e18fa
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.