ERC-20
Overview
Max Total Supply
2,000,000,000 MTU
Holders
1,909
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
METAUStoken
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; import './Ownable.sol'; import './ERC20.sol'; import './Pausable.sol'; contract METAUStoken is ERC20, Ownable, Pausable { constructor() ERC20("METAUS","MTU"){ _mint(_msgSender(), 2000000000 * (10 ** uint256(decimals()))); } function mint(uint256 _amount) public onlyOwner { _mint(_msgSender(), _amount * (10 ** uint256(decimals()))); } function burn(uint256 _amount) public onlyOwner { _burn(_msgSender(), _amount * (10 ** uint256(decimals()))); } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal whenNotPaused override { super._beforeTokenTransfer(from, to, amount); } }
// SPDX-License-Identifier: MIT // 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; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; import "./IERC20.sol"; import "./IERC20Metadata.sol"; import "./Context.sol"; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * 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; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} }
// SPDX-License-Identifier: MIT // 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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; import "./IERC20.sol"; /** * @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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "./Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _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); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) pragma solidity ^0.8.0; import "./Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600681526020017f4d455441555300000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d545500000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200042d565b508060049080519060200190620000af9291906200042d565b505050620000d2620000c66200014560201b60201c565b6200014d60201b60201c565b6000600560146101000a81548160ff0219169083151502179055506200013f620001016200014560201b60201c565b620001116200021360201b60201c565b60ff16600a6200012291906200069c565b6377359400620001339190620007d9565b6200021c60201b60201c565b620008e5565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200028f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002869062000594565b60405180910390fd5b620002a3600083836200038a60201b60201c565b8060026000828254620002b79190620005e4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200036a9190620005b6565b60405180910390a36200038660008383620003b760201b60201c565b5050565b6200039a620003bc60201b60201c565b620003b28383836200041160201b6200083c1760201c565b505050565b505050565b620003cc6200041660201b60201c565b156200040f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004069062000572565b60405180910390fd5b565b505050565b6000600560149054906101000a900460ff16905090565b8280546200043b9062000844565b90600052602060002090601f0160209004810192826200045f5760008555620004ab565b82601f106200047a57805160ff1916838001178555620004ab565b82800160010185558215620004ab579182015b82811115620004aa5782518255916020019190600101906200048d565b5b509050620004ba9190620004be565b5090565b5b80821115620004d9576000816000905550600101620004bf565b5090565b6000620004ec601083620005d3565b91507f5061757361626c653a20706175736564000000000000000000000000000000006000830152602082019050919050565b60006200052e601f83620005d3565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200056c816200083a565b82525050565b600060208201905081810360008301526200058d81620004dd565b9050919050565b60006020820190508181036000830152620005af816200051f565b9050919050565b6000602082019050620005cd600083018462000561565b92915050565b600082825260208201905092915050565b6000620005f1826200083a565b9150620005fe836200083a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200063657620006356200087a565b5b828201905092915050565b6000808291508390505b600185111562000693578086048111156200066b576200066a6200087a565b5b60018516156200067b5780820291505b80810290506200068b85620008d8565b94506200064b565b94509492505050565b6000620006a9826200083a565b9150620006b6836200083a565b9250620006e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006ed565b905092915050565b600082620006ff5760019050620007d2565b816200070f5760009050620007d2565b8160018114620007285760028114620007335762000769565b6001915050620007d2565b60ff8411156200074857620007476200087a565b5b8360020a9150848211156200076257620007616200087a565b5b50620007d2565b5060208310610133831016604e8410600b8410161715620007a35782820a9050838111156200079d576200079c6200087a565b5b620007d2565b620007b2848484600162000641565b92509050818404811115620007cc57620007cb6200087a565b5b81810290505b9392505050565b6000620007e6826200083a565b9150620007f3836200083a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200082f576200082e6200087a565b5b828202905092915050565b6000819050919050565b600060028204905060018216806200085d57607f821691505b60208210811415620008745762000873620008a9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b611faa80620008f56000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a0712d6811610071578063a0712d68146102d4578063a457c2d7146102f0578063a9059cbb14610320578063dd62ed3e14610350578063f2fde38b1461038057610121565b806370a0823114610254578063715018a6146102845780638456cb591461028e5780638da5cb5b1461029857806395d89b41146102b657610121565b8063313ce567116100f4578063313ce567146101c257806339509351146101e05780633f4ba83a1461021057806342966c681461021a5780635c975abb1461023657610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461017457806323b872dd14610192575b600080fd5b61012e61039c565b60405161013b91906119bb565b60405180910390f35b61015e600480360381019061015991906113d5565b61042e565b60405161016b91906119a0565b60405180910390f35b61017c610451565b6040516101899190611b9d565b60405180910390f35b6101ac60048036038101906101a79190611386565b61045b565b6040516101b991906119a0565b60405180910390f35b6101ca61048a565b6040516101d79190611bb8565b60405180910390f35b6101fa60048036038101906101f591906113d5565b610493565b60405161020791906119a0565b60405180910390f35b6102186104ca565b005b610234600480360381019061022f9190611411565b6104dc565b005b61023e610519565b60405161024b91906119a0565b60405180910390f35b61026e60048036038101906102699190611321565b610530565b60405161027b9190611b9d565b60405180910390f35b61028c610578565b005b61029661058c565b005b6102a061059e565b6040516102ad9190611985565b60405180910390f35b6102be6105c8565b6040516102cb91906119bb565b60405180910390f35b6102ee60048036038101906102e99190611411565b61065a565b005b61030a600480360381019061030591906113d5565b610697565b60405161031791906119a0565b60405180910390f35b61033a600480360381019061033591906113d5565b61070e565b60405161034791906119a0565b60405180910390f35b61036a6004803603810190610365919061134a565b610731565b6040516103779190611b9d565b60405180910390f35b61039a60048036038101906103959190611321565b6107b8565b005b6060600380546103ab90611e98565b80601f01602080910402602001604051908101604052809291908181526020018280546103d790611e98565b80156104245780601f106103f957610100808354040283529160200191610424565b820191906000526020600020905b81548152906001019060200180831161040757829003601f168201915b5050505050905090565b600080610439610841565b9050610446818585610849565b600191505092915050565b6000600254905090565b600080610466610841565b9050610473858285610a14565b61047e858585610aa0565b60019150509392505050565b60006012905090565b60008061049e610841565b90506104bf8185856104b08589610731565b6104ba9190611bef565b610849565b600191505092915050565b6104d2610d18565b6104da610d96565b565b6104e4610d18565b6105166104ef610841565b6104f761048a565b60ff16600a6105069190611c98565b836105119190611db6565b610df9565b50565b6000600560149054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610580610d18565b61058a6000610fc7565b565b610594610d18565b61059c61108d565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105d790611e98565b80601f016020809104026020016040519081016040528092919081815260200182805461060390611e98565b80156106505780601f1061062557610100808354040283529160200191610650565b820191906000526020600020905b81548152906001019060200180831161063357829003601f168201915b5050505050905090565b610662610d18565b61069461066d610841565b61067561048a565b60ff16600a6106849190611c98565b8361068f9190611db6565b6110f0565b50565b6000806106a2610841565b905060006106b08286610731565b9050838110156106f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ec90611b5d565b60405180910390fd5b6107028286868403610849565b60019250505092915050565b600080610719610841565b9050610726818585610aa0565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6107c0610d18565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082790611a3d565b60405180910390fd5b61083981610fc7565b50565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090611b3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090611a5d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a079190611b9d565b60405180910390a3505050565b6000610a208484610731565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a9a5781811015610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8390611a7d565b60405180910390fd5b610a998484848403610849565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0790611b1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b77906119dd565b60405180910390fd5b610b8b838383611247565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890611a9d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cff9190611b9d565b60405180910390a3610d1284848461125f565b50505050565b610d20610841565b73ffffffffffffffffffffffffffffffffffffffff16610d3e61059e565b73ffffffffffffffffffffffffffffffffffffffff1614610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90611add565b60405180910390fd5b565b610d9e611264565b6000600560146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610de2610841565b604051610def9190611985565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090611afd565b60405180910390fd5b610e7582600083611247565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290611a1d565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fae9190611b9d565b60405180910390a3610fc28360008461125f565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6110956112ad565b6001600560146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110d9610841565b6040516110e69190611985565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790611b7d565b60405180910390fd5b61116c60008383611247565b806002600082825461117e9190611bef565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161122f9190611b9d565b60405180910390a36112436000838361125f565b5050565b61124f6112ad565b61125a83838361083c565b505050565b505050565b61126c610519565b6112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906119fd565b60405180910390fd5b565b6112b5610519565b156112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90611abd565b60405180910390fd5b565b60008135905061130681611f46565b92915050565b60008135905061131b81611f5d565b92915050565b60006020828403121561133357600080fd5b6000611341848285016112f7565b91505092915050565b6000806040838503121561135d57600080fd5b600061136b858286016112f7565b925050602061137c858286016112f7565b9150509250929050565b60008060006060848603121561139b57600080fd5b60006113a9868287016112f7565b93505060206113ba868287016112f7565b92505060406113cb8682870161130c565b9150509250925092565b600080604083850312156113e857600080fd5b60006113f6858286016112f7565b92505060206114078582860161130c565b9150509250929050565b60006020828403121561142357600080fd5b60006114318482850161130c565b91505092915050565b61144381611e10565b82525050565b61145281611e22565b82525050565b600061146382611bd3565b61146d8185611bde565b935061147d818560208601611e65565b61148681611f28565b840191505092915050565b600061149e602383611bde565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611504601483611bde565b91507f5061757361626c653a206e6f74207061757365640000000000000000000000006000830152602082019050919050565b6000611544602283611bde565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115aa602683611bde565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611610602283611bde565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611676601d83611bde565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b60006116b6602683611bde565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061171c601083611bde565b91507f5061757361626c653a20706175736564000000000000000000000000000000006000830152602082019050919050565b600061175c602083611bde565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061179c602183611bde565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611802602583611bde565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611868602483611bde565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118ce602583611bde565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611934601f83611bde565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b61197081611e4e565b82525050565b61197f81611e58565b82525050565b600060208201905061199a600083018461143a565b92915050565b60006020820190506119b56000830184611449565b92915050565b600060208201905081810360008301526119d58184611458565b905092915050565b600060208201905081810360008301526119f681611491565b9050919050565b60006020820190508181036000830152611a16816114f7565b9050919050565b60006020820190508181036000830152611a3681611537565b9050919050565b60006020820190508181036000830152611a568161159d565b9050919050565b60006020820190508181036000830152611a7681611603565b9050919050565b60006020820190508181036000830152611a9681611669565b9050919050565b60006020820190508181036000830152611ab6816116a9565b9050919050565b60006020820190508181036000830152611ad68161170f565b9050919050565b60006020820190508181036000830152611af68161174f565b9050919050565b60006020820190508181036000830152611b168161178f565b9050919050565b60006020820190508181036000830152611b36816117f5565b9050919050565b60006020820190508181036000830152611b568161185b565b9050919050565b60006020820190508181036000830152611b76816118c1565b9050919050565b60006020820190508181036000830152611b9681611927565b9050919050565b6000602082019050611bb26000830184611967565b92915050565b6000602082019050611bcd6000830184611976565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611bfa82611e4e565b9150611c0583611e4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c3a57611c39611eca565b5b828201905092915050565b6000808291508390505b6001851115611c8f57808604811115611c6b57611c6a611eca565b5b6001851615611c7a5780820291505b8081029050611c8885611f39565b9450611c4f565b94509492505050565b6000611ca382611e4e565b9150611cae83611e4e565b9250611cdb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611ce3565b905092915050565b600082611cf35760019050611daf565b81611d015760009050611daf565b8160018114611d175760028114611d2157611d50565b6001915050611daf565b60ff841115611d3357611d32611eca565b5b8360020a915084821115611d4a57611d49611eca565b5b50611daf565b5060208310610133831016604e8410600b8410161715611d855782820a905083811115611d8057611d7f611eca565b5b611daf565b611d928484846001611c45565b92509050818404811115611da957611da8611eca565b5b81810290505b9392505050565b6000611dc182611e4e565b9150611dcc83611e4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e0557611e04611eca565b5b828202905092915050565b6000611e1b82611e2e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611e83578082015181840152602081019050611e68565b83811115611e92576000848401525b50505050565b60006002820490506001821680611eb057607f821691505b60208210811415611ec457611ec3611ef9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b611f4f81611e10565b8114611f5a57600080fd5b50565b611f6681611e4e565b8114611f7157600080fd5b5056fea26469706673582212203190458543e514315f3095cbf65585e8c206acc2ad3f5d4927f57c228f31ede964736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a0712d6811610071578063a0712d68146102d4578063a457c2d7146102f0578063a9059cbb14610320578063dd62ed3e14610350578063f2fde38b1461038057610121565b806370a0823114610254578063715018a6146102845780638456cb591461028e5780638da5cb5b1461029857806395d89b41146102b657610121565b8063313ce567116100f4578063313ce567146101c257806339509351146101e05780633f4ba83a1461021057806342966c681461021a5780635c975abb1461023657610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461017457806323b872dd14610192575b600080fd5b61012e61039c565b60405161013b91906119bb565b60405180910390f35b61015e600480360381019061015991906113d5565b61042e565b60405161016b91906119a0565b60405180910390f35b61017c610451565b6040516101899190611b9d565b60405180910390f35b6101ac60048036038101906101a79190611386565b61045b565b6040516101b991906119a0565b60405180910390f35b6101ca61048a565b6040516101d79190611bb8565b60405180910390f35b6101fa60048036038101906101f591906113d5565b610493565b60405161020791906119a0565b60405180910390f35b6102186104ca565b005b610234600480360381019061022f9190611411565b6104dc565b005b61023e610519565b60405161024b91906119a0565b60405180910390f35b61026e60048036038101906102699190611321565b610530565b60405161027b9190611b9d565b60405180910390f35b61028c610578565b005b61029661058c565b005b6102a061059e565b6040516102ad9190611985565b60405180910390f35b6102be6105c8565b6040516102cb91906119bb565b60405180910390f35b6102ee60048036038101906102e99190611411565b61065a565b005b61030a600480360381019061030591906113d5565b610697565b60405161031791906119a0565b60405180910390f35b61033a600480360381019061033591906113d5565b61070e565b60405161034791906119a0565b60405180910390f35b61036a6004803603810190610365919061134a565b610731565b6040516103779190611b9d565b60405180910390f35b61039a60048036038101906103959190611321565b6107b8565b005b6060600380546103ab90611e98565b80601f01602080910402602001604051908101604052809291908181526020018280546103d790611e98565b80156104245780601f106103f957610100808354040283529160200191610424565b820191906000526020600020905b81548152906001019060200180831161040757829003601f168201915b5050505050905090565b600080610439610841565b9050610446818585610849565b600191505092915050565b6000600254905090565b600080610466610841565b9050610473858285610a14565b61047e858585610aa0565b60019150509392505050565b60006012905090565b60008061049e610841565b90506104bf8185856104b08589610731565b6104ba9190611bef565b610849565b600191505092915050565b6104d2610d18565b6104da610d96565b565b6104e4610d18565b6105166104ef610841565b6104f761048a565b60ff16600a6105069190611c98565b836105119190611db6565b610df9565b50565b6000600560149054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610580610d18565b61058a6000610fc7565b565b610594610d18565b61059c61108d565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546105d790611e98565b80601f016020809104026020016040519081016040528092919081815260200182805461060390611e98565b80156106505780601f1061062557610100808354040283529160200191610650565b820191906000526020600020905b81548152906001019060200180831161063357829003601f168201915b5050505050905090565b610662610d18565b61069461066d610841565b61067561048a565b60ff16600a6106849190611c98565b8361068f9190611db6565b6110f0565b50565b6000806106a2610841565b905060006106b08286610731565b9050838110156106f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ec90611b5d565b60405180910390fd5b6107028286868403610849565b60019250505092915050565b600080610719610841565b9050610726818585610aa0565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6107c0610d18565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082790611a3d565b60405180910390fd5b61083981610fc7565b50565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b090611b3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090611a5d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a079190611b9d565b60405180910390a3505050565b6000610a208484610731565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a9a5781811015610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8390611a7d565b60405180910390fd5b610a998484848403610849565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0790611b1d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b77906119dd565b60405180910390fd5b610b8b838383611247565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890611a9d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cff9190611b9d565b60405180910390a3610d1284848461125f565b50505050565b610d20610841565b73ffffffffffffffffffffffffffffffffffffffff16610d3e61059e565b73ffffffffffffffffffffffffffffffffffffffff1614610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90611add565b60405180910390fd5b565b610d9e611264565b6000600560146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610de2610841565b604051610def9190611985565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6090611afd565b60405180910390fd5b610e7582600083611247565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290611a1d565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fae9190611b9d565b60405180910390a3610fc28360008461125f565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6110956112ad565b6001600560146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110d9610841565b6040516110e69190611985565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790611b7d565b60405180910390fd5b61116c60008383611247565b806002600082825461117e9190611bef565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161122f9190611b9d565b60405180910390a36112436000838361125f565b5050565b61124f6112ad565b61125a83838361083c565b505050565b505050565b61126c610519565b6112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906119fd565b60405180910390fd5b565b6112b5610519565b156112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90611abd565b60405180910390fd5b565b60008135905061130681611f46565b92915050565b60008135905061131b81611f5d565b92915050565b60006020828403121561133357600080fd5b6000611341848285016112f7565b91505092915050565b6000806040838503121561135d57600080fd5b600061136b858286016112f7565b925050602061137c858286016112f7565b9150509250929050565b60008060006060848603121561139b57600080fd5b60006113a9868287016112f7565b93505060206113ba868287016112f7565b92505060406113cb8682870161130c565b9150509250925092565b600080604083850312156113e857600080fd5b60006113f6858286016112f7565b92505060206114078582860161130c565b9150509250929050565b60006020828403121561142357600080fd5b60006114318482850161130c565b91505092915050565b61144381611e10565b82525050565b61145281611e22565b82525050565b600061146382611bd3565b61146d8185611bde565b935061147d818560208601611e65565b61148681611f28565b840191505092915050565b600061149e602383611bde565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611504601483611bde565b91507f5061757361626c653a206e6f74207061757365640000000000000000000000006000830152602082019050919050565b6000611544602283611bde565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115aa602683611bde565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611610602283611bde565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611676601d83611bde565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b60006116b6602683611bde565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061171c601083611bde565b91507f5061757361626c653a20706175736564000000000000000000000000000000006000830152602082019050919050565b600061175c602083611bde565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061179c602183611bde565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611802602583611bde565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611868602483611bde565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118ce602583611bde565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611934601f83611bde565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b61197081611e4e565b82525050565b61197f81611e58565b82525050565b600060208201905061199a600083018461143a565b92915050565b60006020820190506119b56000830184611449565b92915050565b600060208201905081810360008301526119d58184611458565b905092915050565b600060208201905081810360008301526119f681611491565b9050919050565b60006020820190508181036000830152611a16816114f7565b9050919050565b60006020820190508181036000830152611a3681611537565b9050919050565b60006020820190508181036000830152611a568161159d565b9050919050565b60006020820190508181036000830152611a7681611603565b9050919050565b60006020820190508181036000830152611a9681611669565b9050919050565b60006020820190508181036000830152611ab6816116a9565b9050919050565b60006020820190508181036000830152611ad68161170f565b9050919050565b60006020820190508181036000830152611af68161174f565b9050919050565b60006020820190508181036000830152611b168161178f565b9050919050565b60006020820190508181036000830152611b36816117f5565b9050919050565b60006020820190508181036000830152611b568161185b565b9050919050565b60006020820190508181036000830152611b76816118c1565b9050919050565b60006020820190508181036000830152611b9681611927565b9050919050565b6000602082019050611bb26000830184611967565b92915050565b6000602082019050611bcd6000830184611976565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611bfa82611e4e565b9150611c0583611e4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c3a57611c39611eca565b5b828201905092915050565b6000808291508390505b6001851115611c8f57808604811115611c6b57611c6a611eca565b5b6001851615611c7a5780820291505b8081029050611c8885611f39565b9450611c4f565b94509492505050565b6000611ca382611e4e565b9150611cae83611e4e565b9250611cdb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611ce3565b905092915050565b600082611cf35760019050611daf565b81611d015760009050611daf565b8160018114611d175760028114611d2157611d50565b6001915050611daf565b60ff841115611d3357611d32611eca565b5b8360020a915084821115611d4a57611d49611eca565b5b50611daf565b5060208310610133831016604e8410600b8410161715611d855782820a905083811115611d8057611d7f611eca565b5b611daf565b611d928484846001611c45565b92509050818404811115611da957611da8611eca565b5b81810290505b9392505050565b6000611dc182611e4e565b9150611dcc83611e4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e0557611e04611eca565b5b828202905092915050565b6000611e1b82611e2e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611e83578082015181840152602081019050611e68565b83811115611e92576000848401525b50505050565b60006002820490506001821680611eb057607f821691505b60208210811415611ec457611ec3611ef9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b611f4f81611e10565b8114611f5a57600080fd5b50565b611f6681611e4e565b8114611f7157600080fd5b5056fea26469706673582212203190458543e514315f3095cbf65585e8c206acc2ad3f5d4927f57c228f31ede964736f6c63430008000033
Deployed Bytecode Sourcemap
202:762:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2133:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4410:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3221:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5169:256;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3070:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;700:63:4;;;:::i;:::-;;506:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1608:84:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3385:125:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:5;;;:::i;:::-;;635:59:4;;;:::i;:::-;;1194:85:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2344:102:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;377:123:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6541:427:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3706:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3953:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:198:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2133:98:1;2187:13;2219:5;2212:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2133:98;:::o;4410:197::-;4493:4;4509:13;4525:12;:10;:12::i;:::-;4509:28;;4547:32;4556:5;4563:7;4572:6;4547:8;:32::i;:::-;4596:4;4589:11;;;4410:197;;;;:::o;3221:106::-;3282:7;3308:12;;3301:19;;3221:106;:::o;5169:256::-;5266:4;5282:15;5300:12;:10;:12::i;:::-;5282:30;;5322:38;5338:4;5344:7;5353:6;5322:15;:38::i;:::-;5370:27;5380:4;5386:2;5390:6;5370:9;:27::i;:::-;5414:4;5407:11;;;5169:256;;;;;:::o;3070:91::-;3128:5;3152:2;3145:9;;3070:91;:::o;5820:234::-;5908:4;5924:13;5940:12;:10;:12::i;:::-;5924:28;;5962:64;5971:5;5978:7;6015:10;5987:25;5997:5;6004:7;5987:9;:25::i;:::-;:38;;;;:::i;:::-;5962:8;:64::i;:::-;6043:4;6036:11;;;5820:234;;;;:::o;700:63:4:-;1087:13:5;:11;:13::i;:::-;746:10:4::1;:8;:10::i;:::-;700:63::o:0;506:123::-;1087:13:5;:11;:13::i;:::-;564:58:4::1;570:12;:10;:12::i;:::-;609:10;:8;:10::i;:::-;601:19;;595:2;:25;;;;:::i;:::-;584:7;:37;;;;:::i;:::-;564:5;:58::i;:::-;506:123:::0;:::o;1608:84:6:-;1655:4;1678:7;;;;;;;;;;;1671:14;;1608:84;:::o;3385:125:1:-;3459:7;3485:9;:18;3495:7;3485:18;;;;;;;;;;;;;;;;3478:25;;3385:125;;;:::o;1824:101:5:-;1087:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;635:59:4:-;1087:13:5;:11;:13::i;:::-;679:8:4::1;:6;:8::i;:::-;635:59::o:0;1194:85:5:-;1240:7;1266:6;;;;;;;;;;;1259:13;;1194:85;:::o;2344:102:1:-;2400:13;2432:7;2425:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2344:102;:::o;377:123:4:-;1087:13:5;:11;:13::i;:::-;435:58:4::1;441:12;:10;:12::i;:::-;480:10;:8;:10::i;:::-;472:19;;466:2;:25;;;;:::i;:::-;455:7;:37;;;;:::i;:::-;435:5;:58::i;:::-;377:123:::0;:::o;6541:427:1:-;6634:4;6650:13;6666:12;:10;:12::i;:::-;6650:28;;6688:24;6715:25;6725:5;6732:7;6715:9;:25::i;:::-;6688:52;;6778:15;6758:16;:35;;6750:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6869:60;6878:5;6885:7;6913:15;6894:16;:34;6869:8;:60::i;:::-;6957:4;6950:11;;;;6541:427;;;;:::o;3706:189::-;3785:4;3801:13;3817:12;:10;:12::i;:::-;3801:28;;3839;3849:5;3856:2;3860:6;3839:9;:28::i;:::-;3884:4;3877:11;;;3706:189;;;;:::o;3953:149::-;4042:7;4068:11;:18;4080:5;4068:18;;;;;;;;;;;;;;;:27;4087:7;4068:27;;;;;;;;;;;;;;;;4061:34;;3953:149;;;;:::o;2074:198:5:-;1087:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;;;2154:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;12039:91:1:-;;;;:::o;640:96:0:-;693:7;719:10;712:17;;640:96;:::o;10423:340:1:-;10541:1;10524:19;;:5;:19;;;;10516:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10621:1;10602:21;;:7;:21;;;;10594:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10703:6;10673:11;:18;10685:5;10673:18;;;;;;;;;;;;;;;:27;10692:7;10673:27;;;;;;;;;;;;;;;:36;;;;10740:7;10724:32;;10733:5;10724:32;;;10749:6;10724:32;;;;;;:::i;:::-;;;;;;;;10423:340;;;:::o;11044:411::-;11144:24;11171:25;11181:5;11188:7;11171:9;:25::i;:::-;11144:52;;11230:17;11210:16;:37;11206:243;;11291:6;11271:16;:26;;11263:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11373:51;11382:5;11389:7;11417:6;11398:16;:25;11373:8;:51::i;:::-;11206:243;11044:411;;;;:::o;7422:788::-;7534:1;7518:18;;:4;:18;;;;7510:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7610:1;7596:16;;:2;:16;;;;7588:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7663:38;7684:4;7690:2;7694:6;7663:20;:38::i;:::-;7712:19;7734:9;:15;7744:4;7734:15;;;;;;;;;;;;;;;;7712:37;;7782:6;7767:11;:21;;7759:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7897:6;7883:11;:20;7865:9;:15;7875:4;7865:15;;;;;;;;;;;;;;;:38;;;;8097:6;8080:9;:13;8090:2;8080:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8144:2;8129:26;;8138:4;8129:26;;;8148:6;8129:26;;;;;;:::i;:::-;;;;;;;;8166:37;8186:4;8192:2;8196:6;8166:19;:37::i;:::-;7422:788;;;;:::o;1352:130:5:-;1426:12;:10;:12::i;:::-;1415:23;;:7;:5;:7::i;:::-;:23;;;1407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:130::o;2426:117:6:-;1479:16;:14;:16::i;:::-;2494:5:::1;2484:7;;:15;;;;;;;;;;;;;;;;;;2514:22;2523:12;:10;:12::i;:::-;2514:22;;;;;;:::i;:::-;;;;;;;;2426:117::o:0;9341:659:1:-;9443:1;9424:21;;:7;:21;;;;9416:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9494:49;9515:7;9532:1;9536:6;9494:20;:49::i;:::-;9554:22;9579:9;:18;9589:7;9579:18;;;;;;;;;;;;;;;;9554:43;;9633:6;9615:14;:24;;9607:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9750:6;9733:14;:23;9712:9;:18;9722:7;9712:18;;;;;;;;;;;;;;;:44;;;;9865:6;9849:12;;:22;;;;;;;;;;;9923:1;9897:37;;9906:7;9897:37;;;9927:6;9897:37;;;;;;:::i;:::-;;;;;;;;9945:48;9965:7;9982:1;9986:6;9945:19;:48::i;:::-;9341:659;;;:::o;2426:187:5:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2426:187;;:::o;2179:115:6:-;1232:19;:17;:19::i;:::-;2248:4:::1;2238:7;;:14;;;;;;;;;;;;;;;;;;2267:20;2274:12;:10;:12::i;:::-;2267:20;;;;;;:::i;:::-;;;;;;;;2179:115::o:0;8486:535:1:-;8588:1;8569:21;;:7;:21;;;;8561:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8637:49;8666:1;8670:7;8679:6;8637:20;:49::i;:::-;8713:6;8697:12;;:22;;;;;;;:::i;:::-;;;;;;;;8887:6;8865:9;:18;8875:7;8865:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;8939:7;8918:37;;8935:1;8918:37;;;8948:6;8918:37;;;;;;:::i;:::-;;;;;;;;8966:48;8994:1;8998:7;9007:6;8966:19;:48::i;:::-;8486:535;;:::o;769:193:4:-;1232:19:6;:17;:19::i;:::-;911:44:4::1;938:4;944:2;948:6;911:26;:44::i;:::-;769:193:::0;;;:::o;12718:90:1:-;;;;:::o;1938:106:6:-;2004:8;:6;:8::i;:::-;1996:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;1938:106::o;1760:::-;1830:8;:6;:8::i;:::-;1829:9;1821:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1760:106::o;7:139:7:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;;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::-;;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:367::-;;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3086:34;3082:1;3077:3;3073:11;3066:55;3152:5;3147:2;3142:3;3138:12;3131:27;3184:2;3179:3;3175:12;3168:19;;2972:221;;;:::o;3199:318::-;;3362:67;3426:2;3421:3;3362:67;:::i;:::-;3355:74;;3459:22;3455:1;3450:3;3446:11;3439:43;3508:2;3503:3;3499:12;3492:19;;3345:172;;;:::o;3523:366::-;;3686:67;3750:2;3745:3;3686:67;:::i;:::-;3679:74;;3783:34;3779:1;3774:3;3770:11;3763:55;3849:4;3844:2;3839:3;3835:12;3828:26;3880:2;3875:3;3871:12;3864:19;;3669:220;;;:::o;3895:370::-;;4058:67;4122:2;4117:3;4058:67;:::i;:::-;4051:74;;4155:34;4151:1;4146:3;4142:11;4135:55;4221:8;4216:2;4211:3;4207:12;4200:30;4256:2;4251:3;4247:12;4240:19;;4041:224;;;:::o;4271:366::-;;4434:67;4498:2;4493:3;4434:67;:::i;:::-;4427:74;;4531:34;4527:1;4522:3;4518:11;4511:55;4597:4;4592:2;4587:3;4583:12;4576:26;4628:2;4623:3;4619:12;4612:19;;4417:220;;;:::o;4643:327::-;;4806:67;4870:2;4865:3;4806:67;:::i;:::-;4799:74;;4903:31;4899:1;4894:3;4890:11;4883:52;4961:2;4956:3;4952:12;4945:19;;4789:181;;;:::o;4976:370::-;;5139:67;5203:2;5198:3;5139:67;:::i;:::-;5132:74;;5236:34;5232:1;5227:3;5223:11;5216:55;5302:8;5297:2;5292:3;5288:12;5281:30;5337:2;5332:3;5328:12;5321:19;;5122:224;;;:::o;5352:314::-;;5515:67;5579:2;5574:3;5515:67;:::i;:::-;5508:74;;5612:18;5608:1;5603:3;5599:11;5592:39;5657:2;5652:3;5648:12;5641:19;;5498:168;;;:::o;5672:330::-;;5835:67;5899:2;5894:3;5835:67;:::i;:::-;5828:74;;5932:34;5928:1;5923:3;5919:11;5912:55;5993:2;5988:3;5984:12;5977:19;;5818:184;;;:::o;6008:365::-;;6171:67;6235:2;6230:3;6171:67;:::i;:::-;6164:74;;6268:34;6264:1;6259:3;6255:11;6248:55;6334:3;6329:2;6324:3;6320:12;6313:25;6364:2;6359:3;6355:12;6348:19;;6154:219;;;:::o;6379:369::-;;6542:67;6606:2;6601:3;6542:67;:::i;:::-;6535:74;;6639:34;6635:1;6630:3;6626:11;6619:55;6705:7;6700:2;6695:3;6691:12;6684:29;6739:2;6734:3;6730:12;6723:19;;6525:223;;;:::o;6754:368::-;;6917:67;6981:2;6976:3;6917:67;:::i;:::-;6910:74;;7014:34;7010:1;7005:3;7001:11;6994:55;7080:6;7075:2;7070:3;7066:12;7059:28;7113:2;7108:3;7104:12;7097:19;;6900:222;;;:::o;7128:369::-;;7291:67;7355:2;7350:3;7291:67;:::i;:::-;7284:74;;7388:34;7384:1;7379:3;7375:11;7368:55;7454:7;7449:2;7444:3;7440:12;7433:29;7488:2;7483:3;7479:12;7472:19;;7274:223;;;:::o;7503:329::-;;7666:67;7730:2;7725:3;7666:67;:::i;:::-;7659:74;;7763:33;7759:1;7754:3;7750:11;7743:54;7823:2;7818:3;7814:12;7807:19;;7649:183;;;:::o;7838:118::-;7925:24;7943:5;7925:24;:::i;:::-;7920:3;7913:37;7903:53;;:::o;7962:112::-;8045:22;8061:5;8045:22;:::i;:::-;8040:3;8033:35;8023:51;;:::o;8080:222::-;;8211:2;8200:9;8196:18;8188:26;;8224:71;8292:1;8281:9;8277:17;8268:6;8224:71;:::i;:::-;8178:124;;;;:::o;8308:210::-;;8433:2;8422:9;8418:18;8410:26;;8446:65;8508:1;8497:9;8493:17;8484:6;8446:65;:::i;:::-;8400:118;;;;:::o;8524:313::-;;8675:2;8664:9;8660:18;8652:26;;8724:9;8718:4;8714:20;8710:1;8699:9;8695:17;8688:47;8752:78;8825:4;8816:6;8752:78;:::i;:::-;8744:86;;8642:195;;;;:::o;8843:419::-;;9047:2;9036:9;9032:18;9024:26;;9096:9;9090:4;9086:20;9082:1;9071:9;9067:17;9060:47;9124:131;9250:4;9124:131;:::i;:::-;9116:139;;9014:248;;;:::o;9268:419::-;;9472:2;9461:9;9457:18;9449:26;;9521:9;9515:4;9511:20;9507:1;9496:9;9492:17;9485:47;9549:131;9675:4;9549:131;:::i;:::-;9541:139;;9439:248;;;:::o;9693:419::-;;9897:2;9886:9;9882:18;9874:26;;9946:9;9940:4;9936:20;9932:1;9921:9;9917:17;9910:47;9974:131;10100:4;9974:131;:::i;:::-;9966:139;;9864:248;;;:::o;10118:419::-;;10322:2;10311:9;10307:18;10299:26;;10371:9;10365:4;10361:20;10357:1;10346:9;10342:17;10335:47;10399:131;10525:4;10399:131;:::i;:::-;10391:139;;10289:248;;;:::o;10543:419::-;;10747:2;10736:9;10732:18;10724:26;;10796:9;10790:4;10786:20;10782:1;10771:9;10767:17;10760:47;10824:131;10950:4;10824:131;:::i;:::-;10816:139;;10714:248;;;:::o;10968:419::-;;11172:2;11161:9;11157:18;11149:26;;11221:9;11215:4;11211:20;11207:1;11196:9;11192:17;11185:47;11249:131;11375:4;11249:131;:::i;:::-;11241:139;;11139:248;;;:::o;11393:419::-;;11597:2;11586:9;11582:18;11574:26;;11646:9;11640:4;11636:20;11632:1;11621:9;11617:17;11610:47;11674:131;11800:4;11674:131;:::i;:::-;11666:139;;11564:248;;;:::o;11818:419::-;;12022:2;12011:9;12007:18;11999:26;;12071:9;12065:4;12061:20;12057:1;12046:9;12042:17;12035:47;12099:131;12225:4;12099:131;:::i;:::-;12091:139;;11989:248;;;:::o;12243:419::-;;12447:2;12436:9;12432:18;12424:26;;12496:9;12490:4;12486:20;12482:1;12471:9;12467:17;12460:47;12524:131;12650:4;12524:131;:::i;:::-;12516:139;;12414:248;;;:::o;12668:419::-;;12872:2;12861:9;12857:18;12849:26;;12921:9;12915:4;12911:20;12907:1;12896:9;12892:17;12885:47;12949:131;13075:4;12949:131;:::i;:::-;12941:139;;12839:248;;;:::o;13093:419::-;;13297:2;13286:9;13282:18;13274:26;;13346:9;13340:4;13336:20;13332:1;13321:9;13317:17;13310:47;13374:131;13500:4;13374:131;:::i;:::-;13366:139;;13264:248;;;:::o;13518:419::-;;13722:2;13711:9;13707:18;13699:26;;13771:9;13765:4;13761:20;13757:1;13746:9;13742:17;13735:47;13799:131;13925:4;13799:131;:::i;:::-;13791:139;;13689:248;;;:::o;13943:419::-;;14147:2;14136:9;14132:18;14124:26;;14196:9;14190:4;14186:20;14182:1;14171:9;14167:17;14160:47;14224:131;14350:4;14224:131;:::i;:::-;14216:139;;14114:248;;;:::o;14368:419::-;;14572:2;14561:9;14557:18;14549:26;;14621:9;14615:4;14611:20;14607:1;14596:9;14592:17;14585:47;14649:131;14775:4;14649:131;:::i;:::-;14641:139;;14539:248;;;:::o;14793:222::-;;14924:2;14913:9;14909:18;14901:26;;14937:71;15005:1;14994:9;14990:17;14981:6;14937:71;:::i;:::-;14891:124;;;;:::o;15021:214::-;;15148:2;15137:9;15133:18;15125:26;;15161:67;15225:1;15214:9;15210:17;15201:6;15161:67;:::i;:::-;15115:120;;;;:::o;15241:99::-;;15327:5;15321:12;15311:22;;15300:40;;;:::o;15346:169::-;;15464:6;15459:3;15452:19;15504:4;15499:3;15495:14;15480:29;;15442:73;;;;:::o;15521:305::-;;15580:20;15598:1;15580:20;:::i;:::-;15575:25;;15614:20;15632:1;15614:20;:::i;:::-;15609:25;;15768:1;15700:66;15696:74;15693:1;15690:81;15687:2;;;15774:18;;:::i;:::-;15687:2;15818:1;15815;15811:9;15804:16;;15565:261;;;;:::o;15832:848::-;;;15924:6;15915:15;;15948:5;15939:14;;15962:712;15983:1;15973:8;15970:15;15962:712;;;16078:4;16073:3;16069:14;16063:4;16060:24;16057:2;;;16087:18;;:::i;:::-;16057:2;16137:1;16127:8;16123:16;16120:2;;;16552:4;16545:5;16541:16;16532:25;;16120:2;16602:4;16596;16592:15;16584:23;;16632:32;16655:8;16632:32;:::i;:::-;16620:44;;15962:712;;;15905:775;;;;;;;:::o;16686:285::-;;16770:23;16788:4;16770:23;:::i;:::-;16762:31;;16814:27;16832:8;16814:27;:::i;:::-;16802:39;;16860:104;16897:66;16887:8;16881:4;16860:104;:::i;:::-;16851:113;;16752:219;;;;:::o;16977:1073::-;;17222:8;17212:2;;17243:1;17234:10;;17245:5;;17212:2;17271:4;17261:2;;17288:1;17279:10;;17290:5;;17261:2;17357:4;17405:1;17400:27;;;;17441:1;17436:191;;;;17350:277;;17400:27;17418:1;17409:10;;17420:5;;;17436:191;17481:3;17471:8;17468:17;17465:2;;;17488:18;;:::i;:::-;17465:2;17537:8;17534:1;17530:16;17521:25;;17572:3;17565:5;17562:14;17559:2;;;17579:18;;:::i;:::-;17559:2;17612:5;;;17350:277;;17736:2;17726:8;17723:16;17717:3;17711:4;17708:13;17704:36;17686:2;17676:8;17673:16;17668:2;17662:4;17659:12;17655:35;17639:111;17636:2;;;17792:8;17786:4;17782:19;17773:28;;17827:3;17820:5;17817:14;17814:2;;;17834:18;;:::i;:::-;17814:2;17867:5;;17636:2;17907:42;17945:3;17935:8;17929:4;17926:1;17907:42;:::i;:::-;17892:57;;;;17981:4;17976:3;17972:14;17965:5;17962:25;17959:2;;;17990:18;;:::i;:::-;17959:2;18039:4;18032:5;18028:16;18019:25;;17037:1013;;;;;;:::o;18056:348::-;;18119:20;18137:1;18119:20;:::i;:::-;18114:25;;18153:20;18171:1;18153:20;:::i;:::-;18148:25;;18341:1;18273:66;18269:74;18266:1;18263:81;18258:1;18251:9;18244:17;18240:105;18237:2;;;18348:18;;:::i;:::-;18237:2;18396:1;18393;18389:9;18378:20;;18104:300;;;;:::o;18410:96::-;;18476:24;18494:5;18476:24;:::i;:::-;18465:35;;18455:51;;;:::o;18512:90::-;;18589:5;18582:13;18575:21;18564:32;;18554:48;;;:::o;18608:126::-;;18685:42;18678:5;18674:54;18663:65;;18653:81;;;:::o;18740:77::-;;18806:5;18795:16;;18785:32;;;:::o;18823:86::-;;18898:4;18891:5;18887:16;18876:27;;18866:43;;;:::o;18915:307::-;18983:1;18993:113;19007:6;19004:1;19001:13;18993:113;;;19092:1;19087:3;19083:11;19077:18;19073:1;19068:3;19064:11;19057:39;19029:2;19026:1;19022:10;19017:15;;18993:113;;;19124:6;19121:1;19118:13;19115:2;;;19204:1;19195:6;19190:3;19186:16;19179:27;19115:2;18964:258;;;;:::o;19228:320::-;;19309:1;19303:4;19299:12;19289:22;;19356:1;19350:4;19346:12;19377:18;19367:2;;19433:4;19425:6;19421:17;19411:27;;19367:2;19495;19487:6;19484:14;19464:18;19461:38;19458:2;;;19514:18;;:::i;:::-;19458:2;19279:269;;;;:::o;19554:180::-;19602:77;19599:1;19592:88;19699:4;19696:1;19689:15;19723:4;19720:1;19713:15;19740:180;19788:77;19785:1;19778:88;19885:4;19882:1;19875:15;19909:4;19906:1;19899:15;19926:102;;20018:2;20014:7;20009:2;20002:5;19998:14;19994:28;19984:38;;19974:54;;;:::o;20034:102::-;;20123:5;20120:1;20116:13;20095:34;;20085:51;;;:::o;20142:122::-;20215:24;20233:5;20215:24;:::i;:::-;20208:5;20205:35;20195:2;;20254:1;20251;20244:12;20195:2;20185:79;:::o;20270:122::-;20343:24;20361:5;20343:24;:::i;:::-;20336:5;20333:35;20323:2;;20382:1;20379;20372:12;20323:2;20313:79;:::o
Swarm Source
ipfs://3190458543e514315f3095cbf65585e8c206acc2ad3f5d4927f57c228f31ede9
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.