ERC-20
Overview
Max Total Supply
36,900,000 ETHP
Holders
126
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:
CONTRACT
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-11 */ /* .$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$. $$$$$$$ $$$' '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$' '$$$ $$$$$$$ $$$$$$$ $$$s__s$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$s__s$$$ $$ $$ $$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$ $$ $$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$' `$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$$p' 'q$' $' `$$$$$$$$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$p' `q$p $ .s $$$$$$$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$ $ $ $' . `$$$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$ $ $ $ . `$$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$ $ $ $. . $$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$ $ $ `$. . $$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$ $ ! `$$ s. $$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$b._.d$b._ _.d$b._ _.d$b._ _.d' $$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$$ " "" "" $$$$$$$$$$ $$$$$$$ $$$$$$$ $$$$$$$$$$$$$ .$$$$$$$$$$ $$$$$$$ $$$$$$$ '$$$$$$$$$$$$ https://twitter.com/EthPepes .$$$$$$$$$$' $$$$$$$ $$$$$$$s._____________ https://ethpepes.com/ ____________.s$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$. https://t.me/ethpepes .$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$. $$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$' _____ __ ________ `$$$$$$$ $$$$$$$$$$$$$$$$$ .s$$$$$. $$$s. $$$$$$$$$s. $$$$$$$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $$$$$$$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $$$ $$$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $$$ $$$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $. .$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $$. .$$ $$$$$$$$$$$$$$$$$ $$$$$$$$ $$$$$$ $$$$$$$$$$$ $$$.$$$ `$$$$$$$$$$$$$$$$ $$$$$$$$ 4% BUY TAX $$$$$$ $$$$$$$$$$$ $$$$$$$ `$$$$$$$$$$$' $$$$$$$$ 4% SELL TAX $$$$$$ $$$$$$$$$$$ $$$$$$' */ // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; // SPDX-License-Identifier: BUSL-1.1 /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** * @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } interface DexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface DexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; } pragma solidity ^0.8.17; contract CONTRACT is ERC20, Ownable { address public pool; uint256 _startTime; uint256 constant _startTotalSupply = 369_000_00 * 1e18; uint256 constant _startMaxWallet = _startTotalSupply / 1000; uint256 constant _addMaxWalletPerSec = (_startTotalSupply - _startMaxWallet) / 69000; mapping(address => bool) public excludedFromMaxWallet; mapping(address => bool) public excludedFromFees; address public taxWallet = 0xE4094D817C54F92aD8404571a2a9705638aFEbdf; address public immutable pair; DexRouter public immutable router; uint256 public constant buyTax = 4; uint256 public constant sellTax = 4; bool public swapping; modifier inSwap() { swapping = true; _; swapping = false; } constructor() ERC20("ETH PEPES", "ETHP") { router = DexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = DexFactory(router.factory()).createPair(address(this), router.WETH()); _mint(msg.sender, _startTotalSupply); _approve(address(this), address(router), ~uint256(0)); excludedFromFees[owner()] = true; excludedFromFees[address(this)] = true; excludedFromFees[taxWallet] = true; excludedFromMaxWallet[owner()] = true; excludedFromMaxWallet[address(this)] = true; excludedFromMaxWallet[taxWallet] = true; } receive() external payable {} function decimals() public view virtual override returns (uint8) { return 18; } function start(address poolAddress) external onlyOwner { pool = poolAddress; _startTime = block.timestamp; } function maxWallet(address acc) public view returns (uint256) { if (pool == address(0) || acc == pool || acc == owner()) { return _startTotalSupply; } return _startMaxWallet + (block.timestamp - _startTime) * _addMaxWalletPerSec; } function addMaxWalletPerSec() external pure returns (uint256) { return _addMaxWalletPerSec; } function _transfer(address from, address to, uint256 amount) internal virtual override { if (to != pair) { if (!excludedFromMaxWallet[to] && !excludedFromMaxWallet[from]) { require(balanceOf(to) + amount <= maxWallet(to), "max wallet limit"); } } if (!excludedFromFees[from] && !excludedFromFees[to]) { require(pool != address(0), "not started"); if (from == pair) { uint256 taxAmount = (amount * buyTax) / 100; super._transfer(address(from), address(this), taxAmount); amount = amount - taxAmount; } else if (to == pair) { uint256 taxAmount = (amount * sellTax) / 100; super._transfer(address(from), address(this), taxAmount); amount = amount - taxAmount; if (!swapping) { _InternalSwap(); } } } super._transfer(from, to, amount); } function _InternalSwap() internal inSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = address(router.WETH()); router.swapExactTokensForETHSupportingFeeOnTransferTokens( balanceOf(address(this)), 0, path, address(taxWallet), block.timestamp ); } function setExcludeFromMaxWallet(address wallet, bool isExcluded) public onlyOwner { excludedFromMaxWallet[wallet] = isExcluded; } function setExcludeFromFees(address wallet, bool isExcluded) public onlyOwner { excludedFromFees[wallet] = isExcluded; } function withdrawETH() public onlyOwner { (bool success,) = owner().call{value: address(this).balance}(""); } function withdrawTokens(address token) public onlyOwner { IERC20(token).transfer(owner(), IERC20(token).balanceOf(address(this))); } }
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":[],"name":"addMaxWalletPerSec","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"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":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromMaxWallet","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":"acc","type":"address"}],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setExcludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"poolAddress","type":"address"}],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405273e4094d817c54f92ad8404571a2a9705638afebdf600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b506040518060400160405280600981526020017f45544820504550455300000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f45544850000000000000000000000000000000000000000000000000000000008152508160039081620000e4919062000c63565b508060049081620000f6919062000c63565b505050620001196200010d620005a960201b60201c565b620005b160201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d5919062000db4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060a05173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000265919062000db4565b6040518363ffffffff1660e01b81526004016200028492919062000df7565b6020604051808303816000875af1158015620002a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ca919062000db4565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200031a336a1e85e1021bbd0d4e8000006200067760201b60201c565b620003313060a051600019620007e460201b60201c565b60016009600062000347620009b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600062000480620009b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200106f565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006e09062000e85565b60405180910390fd5b620006fd60008383620009df60201b60201c565b806002600082825462000711919062000ed6565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007c4919062000f22565b60405180910390a3620007e060008383620009e460201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000856576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084d9062000fb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008bf906200104d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009a8919062000f22565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a6b57607f821691505b60208210810362000a815762000a8062000a23565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000aeb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000aac565b62000af7868362000aac565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b4462000b3e62000b388462000b0f565b62000b19565b62000b0f565b9050919050565b6000819050919050565b62000b608362000b23565b62000b7862000b6f8262000b4b565b84845462000ab9565b825550505050565b600090565b62000b8f62000b80565b62000b9c81848462000b55565b505050565b5b8181101562000bc45762000bb860008262000b85565b60018101905062000ba2565b5050565b601f82111562000c135762000bdd8162000a87565b62000be88462000a9c565b8101602085101562000bf8578190505b62000c1062000c078562000a9c565b83018262000ba1565b50505b505050565b600082821c905092915050565b600062000c386000198460080262000c18565b1980831691505092915050565b600062000c53838362000c25565b9150826002028217905092915050565b62000c6e82620009e9565b67ffffffffffffffff81111562000c8a5762000c89620009f4565b5b62000c96825462000a52565b62000ca382828562000bc8565b600060209050601f83116001811462000cdb576000841562000cc6578287015190505b62000cd2858262000c45565b86555062000d42565b601f19841662000ceb8662000a87565b60005b8281101562000d155784890151825560018201915060208501945060208101905062000cee565b8683101562000d35578489015162000d31601f89168262000c25565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d7c8262000d4f565b9050919050565b62000d8e8162000d6f565b811462000d9a57600080fd5b50565b60008151905062000dae8162000d83565b92915050565b60006020828403121562000dcd5762000dcc62000d4a565b5b600062000ddd8482850162000d9d565b91505092915050565b62000df18162000d6f565b82525050565b600060408201905062000e0e600083018562000de6565b62000e1d602083018462000de6565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e6d601f8362000e24565b915062000e7a8262000e35565b602082019050919050565b6000602082019050818103600083015262000ea08162000e5e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ee38262000b0f565b915062000ef08362000b0f565b925082820190508082111562000f0b5762000f0a62000ea7565b5b92915050565b62000f1c8162000b0f565b82525050565b600060208201905062000f39600083018462000f11565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000f9d60248362000e24565b915062000faa8262000f3f565b604082019050919050565b6000602082019050818103600083015262000fd08162000f8e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200103560228362000e24565b9150620010428262000fd7565b604082019050919050565b60006020820190508181036000830152620010688162001026565b9050919050565b60805160a051612b6f620010b86000396000818161108701528181611b590152611c36015260008181610c5d015281816113080152818161159e015261162d0152612b6f6000f3fe6080604052600436106101d15760003560e01c80638da5cb5b116100f7578063d63cad2211610095578063e086e5ec11610064578063e086e5ec146106c1578063e73793ec146106d8578063f2fde38b14610715578063f887ea401461073e576101d8565b8063d63cad22146105f5578063dbe66ca01461061e578063dd0b281e1461065b578063dd62ed3e14610684576101d8565b8063a457c2d7116100d1578063a457c2d714610525578063a8aa1b3114610562578063a9059cbb1461058d578063cc1776d3146105ca576101d8565b80638da5cb5b146104a6578063929f1360146104d157806395d89b41146104fa576101d8565b8063313ce5671161016f57806370a082311161013e57806370a08231146103ea578063715018a6146104275780637d99f9a41461043e5780638d855f151461047b576101d8565b8063313ce5671461032e578063395093511461035957806349df728c146103965780634f7041a5146103bf576101d8565b80631732cded116101ab5780631732cded1461027057806318160ddd1461029b57806323b872dd146102c65780632dc0562d14610303576101d8565b806306fdde03146101dd578063095ea7b31461020857806316f0115b14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610769565b6040516101ff9190611daa565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190611e65565b6107fb565b60405161023c9190611ec0565b60405180910390f35b34801561025157600080fd5b5061025a61081e565b6040516102679190611eea565b60405180910390f35b34801561027c57600080fd5b50610285610844565b6040516102929190611ec0565b60405180910390f35b3480156102a757600080fd5b506102b0610857565b6040516102bd9190611f14565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190611f2f565b610861565b6040516102fa9190611ec0565b60405180910390f35b34801561030f57600080fd5b50610318610890565b6040516103259190611eea565b60405180910390f35b34801561033a57600080fd5b506103436108b6565b6040516103509190611f9e565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190611e65565b6108bf565b60405161038d9190611ec0565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190611fb9565b6108f6565b005b3480156103cb57600080fd5b506103d4610a00565b6040516103e19190611f14565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c9190611fb9565b610a05565b60405161041e9190611f14565b60405180910390f35b34801561043357600080fd5b5061043c610a4d565b005b34801561044a57600080fd5b5061046560048036038101906104609190611fb9565b610a61565b6040516104729190611ec0565b60405180910390f35b34801561048757600080fd5b50610490610a81565b60405161049d9190611f14565b60405180910390f35b3480156104b257600080fd5b506104bb610ac5565b6040516104c89190611eea565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f39190612012565b610aef565b005b34801561050657600080fd5b5061050f610b52565b60405161051c9190611daa565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190611e65565b610be4565b6040516105599190611ec0565b60405180910390f35b34801561056e57600080fd5b50610577610c5b565b6040516105849190611eea565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190611e65565b610c7f565b6040516105c19190611ec0565b60405180910390f35b3480156105d657600080fd5b506105df610ca2565b6040516105ec9190611f14565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612012565b610ca7565b005b34801561062a57600080fd5b5061064560048036038101906106409190611fb9565b610d0a565b6040516106529190611ec0565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190611fb9565b610d2a565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612052565b610d7d565b6040516106b89190611f14565b60405180910390f35b3480156106cd57600080fd5b506106d6610e04565b005b3480156106e457600080fd5b506106ff60048036038101906106fa9190611fb9565b610e82565b60405161070c9190611f14565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190611fb9565b611002565b005b34801561074a57600080fd5b50610753611085565b60405161076091906120f1565b60405180910390f35b6060600380546107789061213b565b80601f01602080910402602001604051908101604052809291908181526020018280546107a49061213b565b80156107f15780601f106107c6576101008083540402835291602001916107f1565b820191906000526020600020905b8154815290600101906020018083116107d457829003601f168201915b5050505050905090565b6000806108066110a9565b90506108138185856110b1565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60149054906101000a900460ff1681565b6000600254905090565b60008061086c6110a9565b905061087985828561127a565b610884858585611306565b60019150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b6000806108ca6110a9565b90506108eb8185856108dc8589610d7d565b6108e6919061219b565b6110b1565b600191505092915050565b6108fe6116e5565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610922610ac5565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161095b9190611eea565b602060405180830381865afa158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c91906121e4565b6040518363ffffffff1660e01b81526004016109b9929190612211565b6020604051808303816000875af11580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc919061224f565b5050565b600481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a556116e5565b610a5f6000611763565b565b60086020528060005260406000206000915054906101000a900460ff1681565b600062010d886103e86a1e85e1021bbd0d4e800000610aa091906122ab565b6a1e85e1021bbd0d4e800000610ab691906122dc565b610ac091906122ab565b905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610af76116e5565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060048054610b619061213b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d9061213b565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b5050505050905090565b600080610bef6110a9565b90506000610bfd8286610d7d565b905083811015610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990612382565b60405180910390fd5b610c4f82868684036110b1565b60019250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610c8a6110a9565b9050610c97818585611306565b600191505092915050565b600481565b610caf6116e5565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b610d326116e5565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260078190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e0c6116e5565b6000610e16610ac5565b73ffffffffffffffffffffffffffffffffffffffff1647604051610e39906123d3565b60006040518083038185875af1925050503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b5050905050565b60008073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610f2d5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610f6a5750610f3b610ac5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f82576a1e85e1021bbd0d4e8000009050610ffd565b62010d886103e86a1e85e1021bbd0d4e800000610f9f91906122ab565b6a1e85e1021bbd0d4e800000610fb591906122dc565b610fbf91906122ab565b60075442610fcd91906122dc565b610fd791906123e8565b6103e86a1e85e1021bbd0d4e800000610ff091906122ab565b610ffa919061219b565b90505b919050565b61100a6116e5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061249c565b60405180910390fd5b61108281611763565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611120576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111179061252e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361118f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611186906125c0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126d9190611f14565b60405180910390a3505050565b60006112868484610d7d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461130057818110156112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e99061262c565b60405180910390fd5b6112ff84848484036110b1565b5b50505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461146257600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113fd5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114615761140b82610e82565b8161141584610a05565b61141f919061219b565b1115611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145790612698565b60405180910390fd5b5b5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115065750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116d557600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390612704565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162b576000606460048361160091906123e8565b61160a91906122ab565b9050611617843083611829565b808261162391906122dc565b9150506116d4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d3576000606460048361168f91906123e8565b61169991906122ab565b90506116a6843083611829565b80826116b291906122dc565b9150600a60149054906101000a900460ff166116d1576116d0611a9f565b5b505b5b5b6116e0838383611829565b505050565b6116ed6110a9565b73ffffffffffffffffffffffffffffffffffffffff1661170b610ac5565b73ffffffffffffffffffffffffffffffffffffffff1614611761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175890612770565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f90612802565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90612894565b60405180910390fd5b611912838383611d10565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f90612926565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a869190611f14565b60405180910390a3611a99848484611d15565b50505050565b6001600a60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ad757611ad6612946565b5b604051908082528060200260200182016040528015611b055781602001602082028036833780820191505090505b5090503081600081518110611b1d57611b1c612975565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be691906129b9565b81600181518110611bfa57611bf9612975565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947611c7930610a05565b600084600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611cc0959493929190612adf565b600060405180830381600087803b158015611cda57600080fd5b505af1158015611cee573d6000803e3d6000fd5b50505050506000600a60146101000a81548160ff021916908315150217905550565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d54578082015181840152602081019050611d39565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d7c82611d1a565b611d868185611d25565b9350611d96818560208601611d36565b611d9f81611d60565b840191505092915050565b60006020820190508181036000830152611dc48184611d71565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dfc82611dd1565b9050919050565b611e0c81611df1565b8114611e1757600080fd5b50565b600081359050611e2981611e03565b92915050565b6000819050919050565b611e4281611e2f565b8114611e4d57600080fd5b50565b600081359050611e5f81611e39565b92915050565b60008060408385031215611e7c57611e7b611dcc565b5b6000611e8a85828601611e1a565b9250506020611e9b85828601611e50565b9150509250929050565b60008115159050919050565b611eba81611ea5565b82525050565b6000602082019050611ed56000830184611eb1565b92915050565b611ee481611df1565b82525050565b6000602082019050611eff6000830184611edb565b92915050565b611f0e81611e2f565b82525050565b6000602082019050611f296000830184611f05565b92915050565b600080600060608486031215611f4857611f47611dcc565b5b6000611f5686828701611e1a565b9350506020611f6786828701611e1a565b9250506040611f7886828701611e50565b9150509250925092565b600060ff82169050919050565b611f9881611f82565b82525050565b6000602082019050611fb36000830184611f8f565b92915050565b600060208284031215611fcf57611fce611dcc565b5b6000611fdd84828501611e1a565b91505092915050565b611fef81611ea5565b8114611ffa57600080fd5b50565b60008135905061200c81611fe6565b92915050565b6000806040838503121561202957612028611dcc565b5b600061203785828601611e1a565b925050602061204885828601611ffd565b9150509250929050565b6000806040838503121561206957612068611dcc565b5b600061207785828601611e1a565b925050602061208885828601611e1a565b9150509250929050565b6000819050919050565b60006120b76120b26120ad84611dd1565b612092565b611dd1565b9050919050565b60006120c98261209c565b9050919050565b60006120db826120be565b9050919050565b6120eb816120d0565b82525050565b600060208201905061210660008301846120e2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061215357607f821691505b6020821081036121665761216561210c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121a682611e2f565b91506121b183611e2f565b92508282019050808211156121c9576121c861216c565b5b92915050565b6000815190506121de81611e39565b92915050565b6000602082840312156121fa576121f9611dcc565b5b6000612208848285016121cf565b91505092915050565b60006040820190506122266000830185611edb565b6122336020830184611f05565b9392505050565b60008151905061224981611fe6565b92915050565b60006020828403121561226557612264611dcc565b5b60006122738482850161223a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006122b682611e2f565b91506122c183611e2f565b9250826122d1576122d061227c565b5b828204905092915050565b60006122e782611e2f565b91506122f283611e2f565b925082820390508181111561230a5761230961216c565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061236c602583611d25565b915061237782612310565b604082019050919050565b6000602082019050818103600083015261239b8161235f565b9050919050565b600081905092915050565b50565b60006123bd6000836123a2565b91506123c8826123ad565b600082019050919050565b60006123de826123b0565b9150819050919050565b60006123f382611e2f565b91506123fe83611e2f565b925082820261240c81611e2f565b915082820484148315176124235761242261216c565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612486602683611d25565b91506124918261242a565b604082019050919050565b600060208201905081810360008301526124b581612479565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612518602483611d25565b9150612523826124bc565b604082019050919050565b600060208201905081810360008301526125478161250b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006125aa602283611d25565b91506125b58261254e565b604082019050919050565b600060208201905081810360008301526125d98161259d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612616601d83611d25565b9150612621826125e0565b602082019050919050565b6000602082019050818103600083015261264581612609565b9050919050565b7f6d61782077616c6c6574206c696d697400000000000000000000000000000000600082015250565b6000612682601083611d25565b915061268d8261264c565b602082019050919050565b600060208201905081810360008301526126b181612675565b9050919050565b7f6e6f742073746172746564000000000000000000000000000000000000000000600082015250565b60006126ee600b83611d25565b91506126f9826126b8565b602082019050919050565b6000602082019050818103600083015261271d816126e1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061275a602083611d25565b915061276582612724565b602082019050919050565b600060208201905081810360008301526127898161274d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127ec602583611d25565b91506127f782612790565b604082019050919050565b6000602082019050818103600083015261281b816127df565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061287e602383611d25565b915061288982612822565b604082019050919050565b600060208201905081810360008301526128ad81612871565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612910602683611d25565b915061291b826128b4565b604082019050919050565b6000602082019050818103600083015261293f81612903565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129b381611e03565b92915050565b6000602082840312156129cf576129ce611dcc565b5b60006129dd848285016129a4565b91505092915050565b6000819050919050565b6000612a0b612a06612a01846129e6565b612092565b611e2f565b9050919050565b612a1b816129f0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a5681611df1565b82525050565b6000612a688383612a4d565b60208301905092915050565b6000602082019050919050565b6000612a8c82612a21565b612a968185612a2c565b9350612aa183612a3d565b8060005b83811015612ad2578151612ab98882612a5c565b9750612ac483612a74565b925050600181019050612aa5565b5085935050505092915050565b600060a082019050612af46000830188611f05565b612b016020830187612a12565b8181036040830152612b138186612a81565b9050612b226060830185611edb565b612b2f6080830184611f05565b969550505050505056fea264697066735822122079feed264bfb421565c3e14a0d14b60a6c126f4082db57047fecc88b651fbf6964736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c80638da5cb5b116100f7578063d63cad2211610095578063e086e5ec11610064578063e086e5ec146106c1578063e73793ec146106d8578063f2fde38b14610715578063f887ea401461073e576101d8565b8063d63cad22146105f5578063dbe66ca01461061e578063dd0b281e1461065b578063dd62ed3e14610684576101d8565b8063a457c2d7116100d1578063a457c2d714610525578063a8aa1b3114610562578063a9059cbb1461058d578063cc1776d3146105ca576101d8565b80638da5cb5b146104a6578063929f1360146104d157806395d89b41146104fa576101d8565b8063313ce5671161016f57806370a082311161013e57806370a08231146103ea578063715018a6146104275780637d99f9a41461043e5780638d855f151461047b576101d8565b8063313ce5671461032e578063395093511461035957806349df728c146103965780634f7041a5146103bf576101d8565b80631732cded116101ab5780631732cded1461027057806318160ddd1461029b57806323b872dd146102c65780632dc0562d14610303576101d8565b806306fdde03146101dd578063095ea7b31461020857806316f0115b14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610769565b6040516101ff9190611daa565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190611e65565b6107fb565b60405161023c9190611ec0565b60405180910390f35b34801561025157600080fd5b5061025a61081e565b6040516102679190611eea565b60405180910390f35b34801561027c57600080fd5b50610285610844565b6040516102929190611ec0565b60405180910390f35b3480156102a757600080fd5b506102b0610857565b6040516102bd9190611f14565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190611f2f565b610861565b6040516102fa9190611ec0565b60405180910390f35b34801561030f57600080fd5b50610318610890565b6040516103259190611eea565b60405180910390f35b34801561033a57600080fd5b506103436108b6565b6040516103509190611f9e565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190611e65565b6108bf565b60405161038d9190611ec0565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190611fb9565b6108f6565b005b3480156103cb57600080fd5b506103d4610a00565b6040516103e19190611f14565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c9190611fb9565b610a05565b60405161041e9190611f14565b60405180910390f35b34801561043357600080fd5b5061043c610a4d565b005b34801561044a57600080fd5b5061046560048036038101906104609190611fb9565b610a61565b6040516104729190611ec0565b60405180910390f35b34801561048757600080fd5b50610490610a81565b60405161049d9190611f14565b60405180910390f35b3480156104b257600080fd5b506104bb610ac5565b6040516104c89190611eea565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f39190612012565b610aef565b005b34801561050657600080fd5b5061050f610b52565b60405161051c9190611daa565b60405180910390f35b34801561053157600080fd5b5061054c60048036038101906105479190611e65565b610be4565b6040516105599190611ec0565b60405180910390f35b34801561056e57600080fd5b50610577610c5b565b6040516105849190611eea565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af9190611e65565b610c7f565b6040516105c19190611ec0565b60405180910390f35b3480156105d657600080fd5b506105df610ca2565b6040516105ec9190611f14565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612012565b610ca7565b005b34801561062a57600080fd5b5061064560048036038101906106409190611fb9565b610d0a565b6040516106529190611ec0565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190611fb9565b610d2a565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612052565b610d7d565b6040516106b89190611f14565b60405180910390f35b3480156106cd57600080fd5b506106d6610e04565b005b3480156106e457600080fd5b506106ff60048036038101906106fa9190611fb9565b610e82565b60405161070c9190611f14565b60405180910390f35b34801561072157600080fd5b5061073c60048036038101906107379190611fb9565b611002565b005b34801561074a57600080fd5b50610753611085565b60405161076091906120f1565b60405180910390f35b6060600380546107789061213b565b80601f01602080910402602001604051908101604052809291908181526020018280546107a49061213b565b80156107f15780601f106107c6576101008083540402835291602001916107f1565b820191906000526020600020905b8154815290600101906020018083116107d457829003601f168201915b5050505050905090565b6000806108066110a9565b90506108138185856110b1565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60149054906101000a900460ff1681565b6000600254905090565b60008061086c6110a9565b905061087985828561127a565b610884858585611306565b60019150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b6000806108ca6110a9565b90506108eb8185856108dc8589610d7d565b6108e6919061219b565b6110b1565b600191505092915050565b6108fe6116e5565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610922610ac5565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161095b9190611eea565b602060405180830381865afa158015610978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099c91906121e4565b6040518363ffffffff1660e01b81526004016109b9929190612211565b6020604051808303816000875af11580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc919061224f565b5050565b600481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a556116e5565b610a5f6000611763565b565b60086020528060005260406000206000915054906101000a900460ff1681565b600062010d886103e86a1e85e1021bbd0d4e800000610aa091906122ab565b6a1e85e1021bbd0d4e800000610ab691906122dc565b610ac091906122ab565b905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610af76116e5565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060048054610b619061213b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d9061213b565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b5050505050905090565b600080610bef6110a9565b90506000610bfd8286610d7d565b905083811015610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990612382565b60405180910390fd5b610c4f82868684036110b1565b60019250505092915050565b7f0000000000000000000000000fe5e686023c8b6beb27480b3785cb7d8c98381f81565b600080610c8a6110a9565b9050610c97818585611306565b600191505092915050565b600481565b610caf6116e5565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60096020528060005260406000206000915054906101000a900460ff1681565b610d326116e5565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260078190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e0c6116e5565b6000610e16610ac5565b73ffffffffffffffffffffffffffffffffffffffff1647604051610e39906123d3565b60006040518083038185875af1925050503d8060008114610e76576040519150601f19603f3d011682016040523d82523d6000602084013e610e7b565b606091505b5050905050565b60008073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610f2d5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610f6a5750610f3b610ac5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f82576a1e85e1021bbd0d4e8000009050610ffd565b62010d886103e86a1e85e1021bbd0d4e800000610f9f91906122ab565b6a1e85e1021bbd0d4e800000610fb591906122dc565b610fbf91906122ab565b60075442610fcd91906122dc565b610fd791906123e8565b6103e86a1e85e1021bbd0d4e800000610ff091906122ab565b610ffa919061219b565b90505b919050565b61100a6116e5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110709061249c565b60405180910390fd5b61108281611763565b50565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611120576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111179061252e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361118f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611186906125c0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126d9190611f14565b60405180910390a3505050565b60006112868484610d7d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461130057818110156112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e99061262c565b60405180910390fd5b6112ff84848484036110b1565b5b50505050565b7f0000000000000000000000000fe5e686023c8b6beb27480b3785cb7d8c98381f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461146257600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113fd5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114615761140b82610e82565b8161141584610a05565b61141f919061219b565b1115611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145790612698565b60405180910390fd5b5b5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115065750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116d557600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390612704565b60405180910390fd5b7f0000000000000000000000000fe5e686023c8b6beb27480b3785cb7d8c98381f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162b576000606460048361160091906123e8565b61160a91906122ab565b9050611617843083611829565b808261162391906122dc565b9150506116d4565b7f0000000000000000000000000fe5e686023c8b6beb27480b3785cb7d8c98381f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d3576000606460048361168f91906123e8565b61169991906122ab565b90506116a6843083611829565b80826116b291906122dc565b9150600a60149054906101000a900460ff166116d1576116d0611a9f565b5b505b5b5b6116e0838383611829565b505050565b6116ed6110a9565b73ffffffffffffffffffffffffffffffffffffffff1661170b610ac5565b73ffffffffffffffffffffffffffffffffffffffff1614611761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175890612770565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f90612802565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90612894565b60405180910390fd5b611912838383611d10565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f90612926565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a869190611f14565b60405180910390a3611a99848484611d15565b50505050565b6001600a60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ad757611ad6612946565b5b604051908082528060200260200182016040528015611b055781602001602082028036833780820191505090505b5090503081600081518110611b1d57611b1c612975565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be691906129b9565b81600181518110611bfa57611bf9612975565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947611c7930610a05565b600084600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611cc0959493929190612adf565b600060405180830381600087803b158015611cda57600080fd5b505af1158015611cee573d6000803e3d6000fd5b50505050506000600a60146101000a81548160ff021916908315150217905550565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d54578082015181840152602081019050611d39565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d7c82611d1a565b611d868185611d25565b9350611d96818560208601611d36565b611d9f81611d60565b840191505092915050565b60006020820190508181036000830152611dc48184611d71565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dfc82611dd1565b9050919050565b611e0c81611df1565b8114611e1757600080fd5b50565b600081359050611e2981611e03565b92915050565b6000819050919050565b611e4281611e2f565b8114611e4d57600080fd5b50565b600081359050611e5f81611e39565b92915050565b60008060408385031215611e7c57611e7b611dcc565b5b6000611e8a85828601611e1a565b9250506020611e9b85828601611e50565b9150509250929050565b60008115159050919050565b611eba81611ea5565b82525050565b6000602082019050611ed56000830184611eb1565b92915050565b611ee481611df1565b82525050565b6000602082019050611eff6000830184611edb565b92915050565b611f0e81611e2f565b82525050565b6000602082019050611f296000830184611f05565b92915050565b600080600060608486031215611f4857611f47611dcc565b5b6000611f5686828701611e1a565b9350506020611f6786828701611e1a565b9250506040611f7886828701611e50565b9150509250925092565b600060ff82169050919050565b611f9881611f82565b82525050565b6000602082019050611fb36000830184611f8f565b92915050565b600060208284031215611fcf57611fce611dcc565b5b6000611fdd84828501611e1a565b91505092915050565b611fef81611ea5565b8114611ffa57600080fd5b50565b60008135905061200c81611fe6565b92915050565b6000806040838503121561202957612028611dcc565b5b600061203785828601611e1a565b925050602061204885828601611ffd565b9150509250929050565b6000806040838503121561206957612068611dcc565b5b600061207785828601611e1a565b925050602061208885828601611e1a565b9150509250929050565b6000819050919050565b60006120b76120b26120ad84611dd1565b612092565b611dd1565b9050919050565b60006120c98261209c565b9050919050565b60006120db826120be565b9050919050565b6120eb816120d0565b82525050565b600060208201905061210660008301846120e2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061215357607f821691505b6020821081036121665761216561210c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121a682611e2f565b91506121b183611e2f565b92508282019050808211156121c9576121c861216c565b5b92915050565b6000815190506121de81611e39565b92915050565b6000602082840312156121fa576121f9611dcc565b5b6000612208848285016121cf565b91505092915050565b60006040820190506122266000830185611edb565b6122336020830184611f05565b9392505050565b60008151905061224981611fe6565b92915050565b60006020828403121561226557612264611dcc565b5b60006122738482850161223a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006122b682611e2f565b91506122c183611e2f565b9250826122d1576122d061227c565b5b828204905092915050565b60006122e782611e2f565b91506122f283611e2f565b925082820390508181111561230a5761230961216c565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061236c602583611d25565b915061237782612310565b604082019050919050565b6000602082019050818103600083015261239b8161235f565b9050919050565b600081905092915050565b50565b60006123bd6000836123a2565b91506123c8826123ad565b600082019050919050565b60006123de826123b0565b9150819050919050565b60006123f382611e2f565b91506123fe83611e2f565b925082820261240c81611e2f565b915082820484148315176124235761242261216c565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612486602683611d25565b91506124918261242a565b604082019050919050565b600060208201905081810360008301526124b581612479565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612518602483611d25565b9150612523826124bc565b604082019050919050565b600060208201905081810360008301526125478161250b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006125aa602283611d25565b91506125b58261254e565b604082019050919050565b600060208201905081810360008301526125d98161259d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612616601d83611d25565b9150612621826125e0565b602082019050919050565b6000602082019050818103600083015261264581612609565b9050919050565b7f6d61782077616c6c6574206c696d697400000000000000000000000000000000600082015250565b6000612682601083611d25565b915061268d8261264c565b602082019050919050565b600060208201905081810360008301526126b181612675565b9050919050565b7f6e6f742073746172746564000000000000000000000000000000000000000000600082015250565b60006126ee600b83611d25565b91506126f9826126b8565b602082019050919050565b6000602082019050818103600083015261271d816126e1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061275a602083611d25565b915061276582612724565b602082019050919050565b600060208201905081810360008301526127898161274d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006127ec602583611d25565b91506127f782612790565b604082019050919050565b6000602082019050818103600083015261281b816127df565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061287e602383611d25565b915061288982612822565b604082019050919050565b600060208201905081810360008301526128ad81612871565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612910602683611d25565b915061291b826128b4565b604082019050919050565b6000602082019050818103600083015261293f81612903565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129b381611e03565b92915050565b6000602082840312156129cf576129ce611dcc565b5b60006129dd848285016129a4565b91505092915050565b6000819050919050565b6000612a0b612a06612a01846129e6565b612092565b611e2f565b9050919050565b612a1b816129f0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a5681611df1565b82525050565b6000612a688383612a4d565b60208301905092915050565b6000602082019050919050565b6000612a8c82612a21565b612a968185612a2c565b9350612aa183612a3d565b8060005b83811015612ad2578151612ab98882612a5c565b9750612ac483612a74565b925050600181019050612aa5565b5085935050505092915050565b600060a082019050612af46000830188611f05565b612b016020830187612a12565b8181036040830152612b138186612a81565b9050612b226060830185611edb565b612b2f6080830184611f05565b969550505050505056fea264697066735822122079feed264bfb421565c3e14a0d14b60a6c126f4082db57047fecc88b651fbf6964736f6c63430008110033
Deployed Bytecode Sourcemap
25127:4067:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12319:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14679:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25170:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25797:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13448:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15460:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25558:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26583:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16130:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29045:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25712:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13619:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5788:103;;;;;;;;;;;;;:::i;:::-;;25441:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27107:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5147:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28620:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12538:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16871:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25634:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13952:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25753:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28772:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25501:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26684:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14208:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28914:123;;;;;;;;;;;;;:::i;:::-;;26823:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6046:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25670:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12319:100;12373:13;12406:5;12399:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12319:100;:::o;14679:201::-;14762:4;14779:13;14795:12;:10;:12::i;:::-;14779:28;;14818:32;14827:5;14834:7;14843:6;14818:8;:32::i;:::-;14868:4;14861:11;;;14679:201;;;;:::o;25170:19::-;;;;;;;;;;;;;:::o;25797:20::-;;;;;;;;;;;;;:::o;13448:108::-;13509:7;13536:12;;13529:19;;13448:108;:::o;15460:261::-;15557:4;15574:15;15592:12;:10;:12::i;:::-;15574:30;;15615:38;15631:4;15637:7;15646:6;15615:15;:38::i;:::-;15664:27;15674:4;15680:2;15684:6;15664:9;:27::i;:::-;15709:4;15702:11;;;15460:261;;;;;:::o;25558:69::-;;;;;;;;;;;;;:::o;26583:93::-;26641:5;26666:2;26659:9;;26583:93;:::o;16130:238::-;16218:4;16235:13;16251:12;:10;:12::i;:::-;16235:28;;16274:64;16283:5;16290:7;16327:10;16299:25;16309:5;16316:7;16299:9;:25::i;:::-;:38;;;;:::i;:::-;16274:8;:64::i;:::-;16356:4;16349:11;;;16130:238;;;;:::o;29045:146::-;5033:13;:11;:13::i;:::-;29119:5:::1;29112:22;;;29135:7;:5;:7::i;:::-;29151:5;29144:23;;;29176:4;29144:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29112:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;29045:146:::0;:::o;25712:34::-;25745:1;25712:34;:::o;13619:127::-;13693:7;13720:9;:18;13730:7;13720:18;;;;;;;;;;;;;;;;13713:25;;13619:127;;;:::o;5788:103::-;5033:13;:11;:13::i;:::-;5853:30:::1;5880:1;5853:18;:30::i;:::-;5788:103::o:0;25441:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;27107:107::-;27160:7;25427:5;25337:4;25258:17;25317:24;;;;:::i;:::-;25258:17;25388:35;;;;:::i;:::-;25387:45;;;;:::i;:::-;27180:26;;27107:107;:::o;5147:87::-;5193:7;5220:6;;;;;;;;;;;5213:13;;5147:87;:::o;28620:144::-;5033:13;:11;:13::i;:::-;28746:10:::1;28714:21;:29;28736:6;28714:29;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;28620:144:::0;;:::o;12538:104::-;12594:13;12627:7;12620:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12538:104;:::o;16871:436::-;16964:4;16981:13;16997:12;:10;:12::i;:::-;16981:28;;17020:24;17047:25;17057:5;17064:7;17047:9;:25::i;:::-;17020:52;;17111:15;17091:16;:35;;17083:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17204:60;17213:5;17220:7;17248:15;17229:16;:34;17204:8;:60::i;:::-;17295:4;17288:11;;;;16871:436;;;;:::o;25634:29::-;;;:::o;13952:193::-;14031:4;14048:13;14064:12;:10;:12::i;:::-;14048:28;;14087;14097:5;14104:2;14108:6;14087:9;:28::i;:::-;14133:4;14126:11;;;13952:193;;;;:::o;25753:35::-;25787:1;25753:35;:::o;28772:134::-;5033:13;:11;:13::i;:::-;28888:10:::1;28861:16;:24;28878:6;28861:24;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;28772:134:::0;;:::o;25501:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;26684:131::-;5033:13;:11;:13::i;:::-;26757:11:::1;26750:4;;:18;;;;;;;;;;;;;;;;;;26792:15;26779:10;:28;;;;26684:131:::0;:::o;14208:151::-;14297:7;14324:11;:18;14336:5;14324:18;;;;;;;;;;;;;;;:27;14343:7;14324:27;;;;;;;;;;;;;;;;14317:34;;14208:151;;;;:::o;28914:123::-;5033:13;:11;:13::i;:::-;28966:12:::1;28983:7;:5;:7::i;:::-;:12;;29003:21;28983:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28965:64;;;28954:83;28914:123::o:0;26823:276::-;26876:7;26916:1;26900:18;;:4;;;;;;;;;;;:18;;;:33;;;;26929:4;;;;;;;;;;;26922:11;;:3;:11;;;26900:33;:51;;;;26944:7;:5;:7::i;:::-;26937:14;;:3;:14;;;26900:51;26896:108;;;25258:17;26968:24;;;;26896:108;25427:5;25337:4;25258:17;25317:24;;;;:::i;:::-;25258:17;25388:35;;;;:::i;:::-;25387:45;;;;:::i;:::-;27058:10;;27040:15;:28;;;;:::i;:::-;27039:52;;;;:::i;:::-;25337:4;25258:17;25317:24;;;;:::i;:::-;27021:70;;;;:::i;:::-;27014:77;;26823:276;;;;:::o;6046:201::-;5033:13;:11;:13::i;:::-;6155:1:::1;6135:22;;:8;:22;;::::0;6127:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6211:28;6230:8;6211:18;:28::i;:::-;6046:201:::0;:::o;25670:33::-;;;:::o;3664:98::-;3717:7;3744:10;3737:17;;3664:98;:::o;20872:346::-;20991:1;20974:19;;:5;:19;;;20966:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21072:1;21053:21;;:7;:21;;;21045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21156:6;21126:11;:18;21138:5;21126:18;;;;;;;;;;;;;;;:27;21145:7;21126:27;;;;;;;;;;;;;;;:36;;;;21194:7;21178:32;;21187:5;21178:32;;;21203:6;21178:32;;;;;;:::i;:::-;;;;;;;;20872:346;;;:::o;21509:419::-;21610:24;21637:25;21647:5;21654:7;21637:9;:25::i;:::-;21610:52;;21697:17;21677:16;:37;21673:248;;21759:6;21739:16;:26;;21731:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21843:51;21852:5;21859:7;21887:6;21868:16;:25;21843:8;:51::i;:::-;21673:248;21599:329;21509:419;;;:::o;27222:1037::-;27330:4;27324:10;;:2;:10;;;27320:209;;27356:21;:25;27378:2;27356:25;;;;;;;;;;;;;;;;;;;;;;;;;27355:26;:58;;;;;27386:21;:27;27408:4;27386:27;;;;;;;;;;;;;;;;;;;;;;;;;27385:28;27355:58;27351:167;;;27468:13;27478:2;27468:9;:13::i;:::-;27458:6;27442:13;27452:2;27442:9;:13::i;:::-;:22;;;;:::i;:::-;:39;;27434:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27351:167;27320:209;27544:16;:22;27561:4;27544:22;;;;;;;;;;;;;;;;;;;;;;;;;27543:23;:48;;;;;27571:16;:20;27588:2;27571:20;;;;;;;;;;;;;;;;;;;;;;;;;27570:21;27543:48;27539:667;;;27632:1;27616:18;;:4;;;;;;;;;;;:18;;;27608:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;27677:4;27669:12;;:4;:12;;;27665:530;;27702:17;27742:3;25745:1;27723:6;:15;;;;:::i;:::-;27722:23;;;;:::i;:::-;27702:43;;27764:56;27788:4;27803;27810:9;27764:15;:56::i;:::-;27857:9;27848:6;:18;;;;:::i;:::-;27839:27;;27683:199;27665:530;;;27898:4;27892:10;;:2;:10;;;27888:307;;27923:17;27964:3;25787:1;27944:6;:16;;;;:::i;:::-;27943:24;;;;:::i;:::-;27923:44;;27986:56;28010:4;28025;28032:9;27986:15;:56::i;:::-;28079:9;28070:6;:18;;;;:::i;:::-;28061:27;;28112:8;;;;;;;;;;;28107:73;;28145:15;:13;:15::i;:::-;28107:73;27904:291;27888:307;27665:530;27539:667;28218:33;28234:4;28240:2;28244:6;28218:15;:33::i;:::-;27222:1037;;;:::o;5312:132::-;5387:12;:10;:12::i;:::-;5376:23;;:7;:5;:7::i;:::-;:23;;;5368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5312:132::o;6407:191::-;6481:16;6500:6;;;;;;;;;;;6481:25;;6526:8;6517:6;;:17;;;;;;;;;;;;;;;;;;6581:8;6550:40;;6571:8;6550:40;;;;;;;;;;;;6470:128;6407:191;:::o;17777:806::-;17890:1;17874:18;;:4;:18;;;17866:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17967:1;17953:16;;:2;:16;;;17945:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18022:38;18043:4;18049:2;18053:6;18022:20;:38::i;:::-;18073:19;18095:9;:15;18105:4;18095:15;;;;;;;;;;;;;;;;18073:37;;18144:6;18129:11;:21;;18121:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18261:6;18247:11;:20;18229:9;:15;18239:4;18229:15;;;;;;;;;;;;;;;:38;;;;18464:6;18447:9;:13;18457:2;18447:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;18514:2;18499:26;;18508:4;18499:26;;;18518:6;18499:26;;;;;;:::i;:::-;;;;;;;;18538:37;18558:4;18564:2;18568:6;18538:19;:37::i;:::-;17855:728;17777:806;;;:::o;28267:345::-;25866:4;25855:8;;:15;;;;;;;;;;;;;;;;;;28319:21:::1;28357:1;28343:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28319:40;;28390:4;28372;28377:1;28372:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;28424:6;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28406:4;28411:1;28406:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;28451:6;:57;;;28523:24;28541:4;28523:9;:24::i;:::-;28549:1;28552:4;28566:9;;;;;;;;;;;28578:15;28451:153;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;28308:304;25904:5:::0;25893:8;;:16;;;;;;;;;;;;;;;;;;28267:345::o;22528:91::-;;;;:::o;23223:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:116::-;5610:21;5625:5;5610:21;:::i;:::-;5603:5;5600:32;5590:60;;5646:1;5643;5636:12;5590:60;5540:116;:::o;5662:133::-;5705:5;5743:6;5730:20;5721:29;;5759:30;5783:5;5759:30;:::i;:::-;5662:133;;;;:::o;5801:468::-;5866:6;5874;5923:2;5911:9;5902:7;5898:23;5894:32;5891:119;;;5929:79;;:::i;:::-;5891:119;6049:1;6074:53;6119:7;6110:6;6099:9;6095:22;6074:53;:::i;:::-;6064:63;;6020:117;6176:2;6202:50;6244:7;6235:6;6224:9;6220:22;6202:50;:::i;:::-;6192:60;;6147:115;5801:468;;;;;:::o;6275:474::-;6343:6;6351;6400:2;6388:9;6379:7;6375:23;6371:32;6368:119;;;6406:79;;:::i;:::-;6368:119;6526:1;6551:53;6596:7;6587:6;6576:9;6572:22;6551:53;:::i;:::-;6541:63;;6497:117;6653:2;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6624:118;6275:474;;;;;:::o;6755:60::-;6783:3;6804:5;6797:12;;6755:60;;;:::o;6821:142::-;6871:9;6904:53;6922:34;6931:24;6949:5;6931:24;:::i;:::-;6922:34;:::i;:::-;6904:53;:::i;:::-;6891:66;;6821:142;;;:::o;6969:126::-;7019:9;7052:37;7083:5;7052:37;:::i;:::-;7039:50;;6969:126;;;:::o;7101:143::-;7168:9;7201:37;7232:5;7201:37;:::i;:::-;7188:50;;7101:143;;;:::o;7250:165::-;7354:54;7402:5;7354:54;:::i;:::-;7349:3;7342:67;7250:165;;:::o;7421:256::-;7531:4;7569:2;7558:9;7554:18;7546:26;;7582:88;7667:1;7656:9;7652:17;7643:6;7582:88;:::i;:::-;7421:256;;;;:::o;7683:180::-;7731:77;7728:1;7721:88;7828:4;7825:1;7818:15;7852:4;7849:1;7842:15;7869:320;7913:6;7950:1;7944:4;7940:12;7930:22;;7997:1;7991:4;7987:12;8018:18;8008:81;;8074:4;8066:6;8062:17;8052:27;;8008:81;8136:2;8128:6;8125:14;8105:18;8102:38;8099:84;;8155:18;;:::i;:::-;8099:84;7920:269;7869:320;;;:::o;8195:180::-;8243:77;8240:1;8233:88;8340:4;8337:1;8330:15;8364:4;8361:1;8354:15;8381:191;8421:3;8440:20;8458:1;8440:20;:::i;:::-;8435:25;;8474:20;8492:1;8474:20;:::i;:::-;8469:25;;8517:1;8514;8510:9;8503:16;;8538:3;8535:1;8532:10;8529:36;;;8545:18;;:::i;:::-;8529:36;8381:191;;;;:::o;8578:143::-;8635:5;8666:6;8660:13;8651:22;;8682:33;8709:5;8682:33;:::i;:::-;8578:143;;;;:::o;8727:351::-;8797:6;8846:2;8834:9;8825:7;8821:23;8817:32;8814:119;;;8852:79;;:::i;:::-;8814:119;8972:1;8997:64;9053:7;9044:6;9033:9;9029:22;8997:64;:::i;:::-;8987:74;;8943:128;8727:351;;;;:::o;9084:332::-;9205:4;9243:2;9232:9;9228:18;9220:26;;9256:71;9324:1;9313:9;9309:17;9300:6;9256:71;:::i;:::-;9337:72;9405:2;9394:9;9390:18;9381:6;9337:72;:::i;:::-;9084:332;;;;;:::o;9422:137::-;9476:5;9507:6;9501:13;9492:22;;9523:30;9547:5;9523:30;:::i;:::-;9422:137;;;;:::o;9565:345::-;9632:6;9681:2;9669:9;9660:7;9656:23;9652:32;9649:119;;;9687:79;;:::i;:::-;9649:119;9807:1;9832:61;9885:7;9876:6;9865:9;9861:22;9832:61;:::i;:::-;9822:71;;9778:125;9565:345;;;;:::o;9916:180::-;9964:77;9961:1;9954:88;10061:4;10058:1;10051:15;10085:4;10082:1;10075:15;10102:185;10142:1;10159:20;10177:1;10159:20;:::i;:::-;10154:25;;10193:20;10211:1;10193:20;:::i;:::-;10188:25;;10232:1;10222:35;;10237:18;;:::i;:::-;10222:35;10279:1;10276;10272:9;10267:14;;10102:185;;;;:::o;10293:194::-;10333:4;10353:20;10371:1;10353:20;:::i;:::-;10348:25;;10387:20;10405:1;10387:20;:::i;:::-;10382:25;;10431:1;10428;10424:9;10416:17;;10455:1;10449:4;10446:11;10443:37;;;10460:18;;:::i;:::-;10443:37;10293:194;;;;:::o;10493:224::-;10633:34;10629:1;10621:6;10617:14;10610:58;10702:7;10697:2;10689:6;10685:15;10678:32;10493:224;:::o;10723:366::-;10865:3;10886:67;10950:2;10945:3;10886:67;:::i;:::-;10879:74;;10962:93;11051:3;10962:93;:::i;:::-;11080:2;11075:3;11071:12;11064:19;;10723:366;;;:::o;11095:419::-;11261:4;11299:2;11288:9;11284:18;11276:26;;11348:9;11342:4;11338:20;11334:1;11323:9;11319:17;11312:47;11376:131;11502:4;11376:131;:::i;:::-;11368:139;;11095:419;;;:::o;11520:147::-;11621:11;11658:3;11643:18;;11520:147;;;;:::o;11673:114::-;;:::o;11793:398::-;11952:3;11973:83;12054:1;12049:3;11973:83;:::i;:::-;11966:90;;12065:93;12154:3;12065:93;:::i;:::-;12183:1;12178:3;12174:11;12167:18;;11793:398;;;:::o;12197:379::-;12381:3;12403:147;12546:3;12403:147;:::i;:::-;12396:154;;12567:3;12560:10;;12197:379;;;:::o;12582:410::-;12622:7;12645:20;12663:1;12645:20;:::i;:::-;12640:25;;12679:20;12697:1;12679:20;:::i;:::-;12674:25;;12734:1;12731;12727:9;12756:30;12774:11;12756:30;:::i;:::-;12745:41;;12935:1;12926:7;12922:15;12919:1;12916:22;12896:1;12889:9;12869:83;12846:139;;12965:18;;:::i;:::-;12846:139;12630:362;12582:410;;;;:::o;12998:225::-;13138:34;13134:1;13126:6;13122:14;13115:58;13207:8;13202:2;13194:6;13190:15;13183:33;12998:225;:::o;13229:366::-;13371:3;13392:67;13456:2;13451:3;13392:67;:::i;:::-;13385:74;;13468:93;13557:3;13468:93;:::i;:::-;13586:2;13581:3;13577:12;13570:19;;13229:366;;;:::o;13601:419::-;13767:4;13805:2;13794:9;13790:18;13782:26;;13854:9;13848:4;13844:20;13840:1;13829:9;13825:17;13818:47;13882:131;14008:4;13882:131;:::i;:::-;13874:139;;13601:419;;;:::o;14026:223::-;14166:34;14162:1;14154:6;14150:14;14143:58;14235:6;14230:2;14222:6;14218:15;14211:31;14026:223;:::o;14255:366::-;14397:3;14418:67;14482:2;14477:3;14418:67;:::i;:::-;14411:74;;14494:93;14583:3;14494:93;:::i;:::-;14612:2;14607:3;14603:12;14596:19;;14255:366;;;:::o;14627:419::-;14793:4;14831:2;14820:9;14816:18;14808:26;;14880:9;14874:4;14870:20;14866:1;14855:9;14851:17;14844:47;14908:131;15034:4;14908:131;:::i;:::-;14900:139;;14627:419;;;:::o;15052:221::-;15192:34;15188:1;15180:6;15176:14;15169:58;15261:4;15256:2;15248:6;15244:15;15237:29;15052:221;:::o;15279:366::-;15421:3;15442:67;15506:2;15501:3;15442:67;:::i;:::-;15435:74;;15518:93;15607:3;15518:93;:::i;:::-;15636:2;15631:3;15627:12;15620:19;;15279:366;;;:::o;15651:419::-;15817:4;15855:2;15844:9;15840:18;15832:26;;15904:9;15898:4;15894:20;15890:1;15879:9;15875:17;15868:47;15932:131;16058:4;15932:131;:::i;:::-;15924:139;;15651:419;;;:::o;16076:179::-;16216:31;16212:1;16204:6;16200:14;16193:55;16076:179;:::o;16261:366::-;16403:3;16424:67;16488:2;16483:3;16424:67;:::i;:::-;16417:74;;16500:93;16589:3;16500:93;:::i;:::-;16618:2;16613:3;16609:12;16602:19;;16261:366;;;:::o;16633:419::-;16799:4;16837:2;16826:9;16822:18;16814:26;;16886:9;16880:4;16876:20;16872:1;16861:9;16857:17;16850:47;16914:131;17040:4;16914:131;:::i;:::-;16906:139;;16633:419;;;:::o;17058:166::-;17198:18;17194:1;17186:6;17182:14;17175:42;17058:166;:::o;17230:366::-;17372:3;17393:67;17457:2;17452:3;17393:67;:::i;:::-;17386:74;;17469:93;17558:3;17469:93;:::i;:::-;17587:2;17582:3;17578:12;17571:19;;17230:366;;;:::o;17602:419::-;17768:4;17806:2;17795:9;17791:18;17783:26;;17855:9;17849:4;17845:20;17841:1;17830:9;17826:17;17819:47;17883:131;18009:4;17883:131;:::i;:::-;17875:139;;17602:419;;;:::o;18027:161::-;18167:13;18163:1;18155:6;18151:14;18144:37;18027:161;:::o;18194:366::-;18336:3;18357:67;18421:2;18416:3;18357:67;:::i;:::-;18350:74;;18433:93;18522:3;18433:93;:::i;:::-;18551:2;18546:3;18542:12;18535:19;;18194:366;;;:::o;18566:419::-;18732:4;18770:2;18759:9;18755:18;18747:26;;18819:9;18813:4;18809:20;18805:1;18794:9;18790:17;18783:47;18847:131;18973:4;18847:131;:::i;:::-;18839:139;;18566:419;;;:::o;18991:182::-;19131:34;19127:1;19119:6;19115:14;19108:58;18991:182;:::o;19179:366::-;19321:3;19342:67;19406:2;19401:3;19342:67;:::i;:::-;19335:74;;19418:93;19507:3;19418:93;:::i;:::-;19536:2;19531:3;19527:12;19520:19;;19179:366;;;:::o;19551:419::-;19717:4;19755:2;19744:9;19740:18;19732:26;;19804:9;19798:4;19794:20;19790:1;19779:9;19775:17;19768:47;19832:131;19958:4;19832:131;:::i;:::-;19824:139;;19551:419;;;:::o;19976:224::-;20116:34;20112:1;20104:6;20100:14;20093:58;20185:7;20180:2;20172:6;20168:15;20161:32;19976:224;:::o;20206:366::-;20348:3;20369:67;20433:2;20428:3;20369:67;:::i;:::-;20362:74;;20445:93;20534:3;20445:93;:::i;:::-;20563:2;20558:3;20554:12;20547:19;;20206:366;;;:::o;20578:419::-;20744:4;20782:2;20771:9;20767:18;20759:26;;20831:9;20825:4;20821:20;20817:1;20806:9;20802:17;20795:47;20859:131;20985:4;20859:131;:::i;:::-;20851:139;;20578:419;;;:::o;21003:222::-;21143:34;21139:1;21131:6;21127:14;21120:58;21212:5;21207:2;21199:6;21195:15;21188:30;21003:222;:::o;21231:366::-;21373:3;21394:67;21458:2;21453:3;21394:67;:::i;:::-;21387:74;;21470:93;21559:3;21470:93;:::i;:::-;21588:2;21583:3;21579:12;21572:19;;21231:366;;;:::o;21603:419::-;21769:4;21807:2;21796:9;21792:18;21784:26;;21856:9;21850:4;21846:20;21842:1;21831:9;21827:17;21820:47;21884:131;22010:4;21884:131;:::i;:::-;21876:139;;21603:419;;;:::o;22028:225::-;22168:34;22164:1;22156:6;22152:14;22145:58;22237:8;22232:2;22224:6;22220:15;22213:33;22028:225;:::o;22259:366::-;22401:3;22422:67;22486:2;22481:3;22422:67;:::i;:::-;22415:74;;22498:93;22587:3;22498:93;:::i;:::-;22616:2;22611:3;22607:12;22600:19;;22259:366;;;:::o;22631:419::-;22797:4;22835:2;22824:9;22820:18;22812:26;;22884:9;22878:4;22874:20;22870:1;22859:9;22855:17;22848:47;22912:131;23038:4;22912:131;:::i;:::-;22904:139;;22631:419;;;:::o;23056:180::-;23104:77;23101:1;23094:88;23201:4;23198:1;23191:15;23225:4;23222:1;23215:15;23242:180;23290:77;23287:1;23280:88;23387:4;23384:1;23377:15;23411:4;23408:1;23401:15;23428:143;23485:5;23516:6;23510:13;23501:22;;23532:33;23559:5;23532:33;:::i;:::-;23428:143;;;;:::o;23577:351::-;23647:6;23696:2;23684:9;23675:7;23671:23;23667:32;23664:119;;;23702:79;;:::i;:::-;23664:119;23822:1;23847:64;23903:7;23894:6;23883:9;23879:22;23847:64;:::i;:::-;23837:74;;23793:128;23577:351;;;;:::o;23934:85::-;23979:7;24008:5;23997:16;;23934:85;;;:::o;24025:158::-;24083:9;24116:61;24134:42;24143:32;24169:5;24143:32;:::i;:::-;24134:42;:::i;:::-;24116:61;:::i;:::-;24103:74;;24025:158;;;:::o;24189:147::-;24284:45;24323:5;24284:45;:::i;:::-;24279:3;24272:58;24189:147;;:::o;24342:114::-;24409:6;24443:5;24437:12;24427:22;;24342:114;;;:::o;24462:184::-;24561:11;24595:6;24590:3;24583:19;24635:4;24630:3;24626:14;24611:29;;24462:184;;;;:::o;24652:132::-;24719:4;24742:3;24734:11;;24772:4;24767:3;24763:14;24755:22;;24652:132;;;:::o;24790:108::-;24867:24;24885:5;24867:24;:::i;:::-;24862:3;24855:37;24790:108;;:::o;24904:179::-;24973:10;24994:46;25036:3;25028:6;24994:46;:::i;:::-;25072:4;25067:3;25063:14;25049:28;;24904:179;;;;:::o;25089:113::-;25159:4;25191;25186:3;25182:14;25174:22;;25089:113;;;:::o;25238:732::-;25357:3;25386:54;25434:5;25386:54;:::i;:::-;25456:86;25535:6;25530:3;25456:86;:::i;:::-;25449:93;;25566:56;25616:5;25566:56;:::i;:::-;25645:7;25676:1;25661:284;25686:6;25683:1;25680:13;25661:284;;;25762:6;25756:13;25789:63;25848:3;25833:13;25789:63;:::i;:::-;25782:70;;25875:60;25928:6;25875:60;:::i;:::-;25865:70;;25721:224;25708:1;25705;25701:9;25696:14;;25661:284;;;25665:14;25961:3;25954:10;;25362:608;;;25238:732;;;;:::o;25976:831::-;26239:4;26277:3;26266:9;26262:19;26254:27;;26291:71;26359:1;26348:9;26344:17;26335:6;26291:71;:::i;:::-;26372:80;26448:2;26437:9;26433:18;26424:6;26372:80;:::i;:::-;26499:9;26493:4;26489:20;26484:2;26473:9;26469:18;26462:48;26527:108;26630:4;26621:6;26527:108;:::i;:::-;26519:116;;26645:72;26713:2;26702:9;26698:18;26689:6;26645:72;:::i;:::-;26727:73;26795:3;26784:9;26780:19;26771:6;26727:73;:::i;:::-;25976:831;;;;;;;;:::o
Swarm Source
ipfs://79feed264bfb421565c3e14a0d14b60a6c126f4082db57047fecc88b651fbf69
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.