Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 ElysiumX
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
20,473,954.929394123214811133 ElysiumXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ElysiumX
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-25 */ /** *Submitted for verification at Etherscan.io on 2023-04-14 */ /* Telegram: https://t.me/ElysiumX_Portal Twitter: https://twitter.com/ElysiumX_Defi Website: https://elysiumx.tech/ */ // Sources flattened with hardhat v2.7.0 https://hardhat.org // File @openzeppelin/contracts/utils/[email protected] // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (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/[email protected] // OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require( _owner == _msgSender(), "Ownable: caller is not the owner" ); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File @openzeppelin/contracts/token/ERC20/[email protected] // OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer( address recipient, uint256 amount ) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance( address owner, address spender ) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } // File @openzeppelin/contracts/token/ERC20/extensions/[email protected] // OpenZeppelin Contracts v4.4.0 (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/[email protected] // OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } // File contracts/Contract.sol pragma solidity ^0.8.0; contract ElysiumX is Ownable, ERC20 { uint256 public immutable maxSupply = 1_000_000_000 * (10 ** decimals()); uint16 public constant MAX_PERCENTAGE = 10000; bool public initialized = false; bool public openTrading = false; address public uniswapV2Pair = address(0); address public taxWallet; uint16 private _initialBuyFee = 2000; // 2% uint16 private _initialSellFee = 3000; // 10% uint16 private _txRemoveInitialBuyFee = 20; // If buyCount < this one, => use initial buy fee, else use current buy fee uint16 private _txRemoveInitialSellFee = 20; // If buyCount < this one, => use initial sell fee, else use current sell fee uint16 private _txStartSwap = 15; // After 5 first buy transactions => do check swap uint16 public buyFee = 500; // 1% uint16 public sellFee = 500; // 1% bool private inSwap = false; IUniswapV2Router02 private router; uint256 public maxTxAmount; uint256 public maxWalletSize; uint256 public taxSwapThreshold; uint256 public maxTaxSwap; uint256 private _buyCount = 0; string private constant _name = unicode"ElysiumX"; string private constant _symbol = unicode"ElysiumX"; event UpdatedRouter(address oldRouter, address newRouter); event SwapOutState(string message); event UpdatedTxAmountAndWalletSize(uint256 _maxTxAmount, uint256 _maxWalletSize); modifier lockDuringSwap { inSwap = true; _; inSwap = false; } receive() external payable {} fallback() external payable {} constructor() ERC20(_name, _symbol) { _mint(address(this), maxSupply); initialized = true; taxWallet = _msgSender(); // Fee after swap will be stored in here maxTaxSwap = maxSupply / 100; // Only swap maximum 1% token per each taxSwapThreshold = 0; // If balance of contract > 0.5% total supply, => do swap, maxSupply / 200 maxTxAmount = maxSupply / 50; // Max token can buy a time, 2% maxWalletSize = maxSupply / 50; // Max wallet size can a time, 2% emit UpdatedTxAmountAndWalletSize(maxTxAmount, maxWalletSize); // FOR BSCSCAN // _setRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E); // FOR ETHEREUM // _setRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // FOR GOERLI _setRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); } function removeLimits() external onlyOwner { maxTxAmount = maxSupply; maxWalletSize = maxSupply; emit UpdatedTxAmountAndWalletSize(maxTxAmount, maxWalletSize); } function setOpenTrading() external onlyOwner { _approve(address(this), address(router), maxSupply); uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH()); router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, _msgSender(), block.timestamp + 5 minutes); IERC20(uniswapV2Pair).approve(address(router), type(uint).max); openTrading = true; } function withdraw() external { require (openTrading == true || _msgSender() == owner(), "Contract::not in open trading state"); (bool success, ) = payable(taxWallet).call{ value: address(this).balance }(""); require(success, "Contract::withdraw failed"); } function setTaxWallet(address _taxWallet) external onlyOwner { taxWallet = _taxWallet; } function setRouter(address _router) external onlyOwner { _setRouter(_router); } function setMaxTransactionAmount(uint16 _buyFee, uint16 _sellFee) external onlyOwner { buyFee = _buyFee; sellFee = _sellFee; } function setUniswapPair(address _uniswapV2Pair) external onlyOwner { _setUniswapV2Pair(_uniswapV2Pair); } function _setRouter(address _router) internal { emit UpdatedRouter(address(router), _router); router = IUniswapV2Router02(_router); } function _setUniswapV2Pair(address _uniswapV2Pair) internal { uniswapV2Pair = _uniswapV2Pair; } function min(uint256 a, uint256 b) internal pure returns (uint256){ return (a > b) ? b: a; } function _swapTokensForEth(uint256 _amount) internal lockDuringSwap { uint256 _contractBalance = balanceOf(address(this)); uint256 _swapAmount = min(_amount, min(_contractBalance, maxTaxSwap)); if (_contractBalance > taxSwapThreshold) { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), _swapAmount); try router.swapExactTokensForETHSupportingFeeOnTransferTokens( _swapAmount, 0, path, taxWallet, block.timestamp + 5 minutes ) { emit SwapOutState("Swap out success..."); } catch { emit SwapOutState("Swap out error..."); } } } function _transfer( address from, address to, uint256 amount ) internal override(ERC20) { require( initialized == true, "Contract: trade is not availabel!" ); uint256 _transferAmount = amount; uint256 _fee = 0; if (from != owner() && to != owner()) { if (from == uniswapV2Pair) { _fee = _buyCount < _txRemoveInitialBuyFee ? _initialBuyFee : buyFee; if (to != address(router) && to != taxWallet && to != address(this)) { require(amount <= maxTxAmount, "Contract::exceeds maxTxAmount."); require(balanceOf(to) + amount <= maxWalletSize, "Contract::exceeds maxWalletSize."); _buyCount++; } } else if (to == uniswapV2Pair) { _fee = _buyCount < _txRemoveInitialSellFee ? _initialSellFee : sellFee; } if (to != uniswapV2Pair && to != taxWallet && to != address(this)) { require(balanceOf(to) + amount <= maxWalletSize, "Contract::exceeds maxWalletSize."); } if (!inSwap && to == uniswapV2Pair && _buyCount > _txStartSwap && openTrading == true) { _swapTokensForEth(amount); } if (_fee > 0) { uint256 _calculatedFee = amount * _fee / MAX_PERCENTAGE; _transferAmount = amount - _calculatedFee; super._transfer(from, address(this), _calculatedFee); } } super._transfer(from, to, _transferAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"SwapOutState","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"UpdatedTxAmountAndWalletSize","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"MAX_PERCENTAGE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","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":"buyFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","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":"openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_buyFee","type":"uint16"},{"internalType":"uint16","name":"_sellFee","type":"uint16"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setOpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_taxWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052620000126012600a620004ab565b6200002290633b9aca00620004c2565b608052600680546001600160b01b0319169055600780546001600160a01b03166a1f4000f001400140bb807d60a41b179055600880546101f462ffffff199091161790555f600d5534801562000076575f80fd5b506040518060400160405280600881526020016708ad8f2e6d2eadab60c31b8152506040518060400160405280600881526020016708ad8f2e6d2eadab60c31b815250620000d3620000cd620001e560201b60201c565b620001e9565b6004620000e183826200057b565b506005620000f082826200057b565b50505062000107306080516200023860201b60201c565b6006805460ff191660011790556200011c3390565b600780546001600160a01b0319166001600160a01b03929092169190911790556080516200014d9060649062000643565b600c555f600b55608051620001659060329062000643565b600955608051620001799060329062000643565b600a8190556009546040517f8b8da483504cbc128e7c335f2044a449638788eed8726ad7f9557463450ec99492620001b8928252602082015260400190565b60405180910390a1620001df737a250d5630b4cf539739df2c5dacb4c659f2488d6200031d565b62000679565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620002935760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f828254620002a6919062000663565b90915550506001600160a01b0382165f9081526001602052604081208054839290620002d490849062000663565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600854604080516001600160a01b0363010000009093048316815291831660208301527fd1122c000cb7ee1f98b2a8c3d20b186b29f5719b23d1d791f331795286b96761910160405180910390a1600880546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f057815f1904821115620003d457620003d46200039c565b80851615620003e257918102915b93841c9390800290620003b5565b509250929050565b5f826200040857506001620004a5565b816200041657505f620004a5565b81600181146200042f57600281146200043a576200045a565b6001915050620004a5565b60ff8411156200044e576200044e6200039c565b50506001821b620004a5565b5060208310610133831016604e8410600b84101617156200047f575081810a620004a5565b6200048b8383620003b0565b805f1904821115620004a157620004a16200039c565b0290505b92915050565b5f620004bb60ff841683620003f8565b9392505050565b8082028115828204841417620004a557620004a56200039c565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200050557607f821691505b6020821081036200052457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000397575f81815260208120601f850160051c81016020861015620005525750805b601f850160051c820191505b8181101562000573578281556001016200055e565b505050505050565b81516001600160401b03811115620005975762000597620004dc565b620005af81620005a88454620004f0565b846200052a565b602080601f831160018114620005e5575f8415620005cd5750858301515b5f19600386901b1c1916600185901b17855562000573565b5f85815260208120601f198616915b828110156200061557888601518255948401946001909101908401620005f4565b50858210156200063357878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f826200065e57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620004a557620004a56200039c565b608051611d27620006a05f395f818161053d015281816109680152610ac40152611d275ff3fe6080604052600436106101d9575f3560e01c806370a0823111610100578063a9059cbb11610099578063d5abeb011161006b578063d5abeb011461052c578063d5aed6bf1461055f578063dd62ed3e1461057e578063ea414b28146105c2578063f2fde38b146105e157005b8063a9059cbb146104bc578063b902e1cd146104db578063c0d78655146104ef578063c9567bf91461050e57005b80638da5cb5b116100d25780638da5cb5b146104585780638f3fa8601461047457806395d89b4114610489578063a457c2d71461049d57005b806370a08231146103e7578063715018a61461041b578063751039fc1461042f5780638c0b5e221461044357005b8063313ce5671161017257806349bd5a5e1161014457806349bd5a5e146103835780634c255c97146103a85780635e7b655c146103bd57806362997f8c146103d257005b8063313ce56714610314578063395093511461032f5780633ccfd60b1461034e578063470624021461036257005b806318160ddd116101ab57806318160ddd1461027357806323b872dd146102915780632b14ca56146102b05780632dc0562d146102dd57005b806302574d0a146101e257806306fdde0314610201578063095ea7b31461022b578063158ef93e1461025a57005b366101e057005b005b3480156101ed575f80fd5b506101e06101fc3660046119ca565b610600565b34801561020c575f80fd5b50610215610660565b60405161022291906119fb565b60405180910390f35b348015610236575f80fd5b5061024a610245366004611a5a565b6106f0565b6040519015158152602001610222565b348015610265575f80fd5b5060065461024a9060ff1681565b34801561027e575f80fd5b506003545b604051908152602001610222565b34801561029c575f80fd5b5061024a6102ab366004611a84565b610706565b3480156102bb575f80fd5b506008546102ca9061ffff1681565b60405161ffff9091168152602001610222565b3480156102e8575f80fd5b506007546102fc906001600160a01b031681565b6040516001600160a01b039091168152602001610222565b34801561031f575f80fd5b5060405160128152602001610222565b34801561033a575f80fd5b5061024a610349366004611a5a565b6107ae565b348015610359575f80fd5b506101e06107e9565b34801561036d575f80fd5b506007546102ca90600160f01b900461ffff1681565b34801561038e575f80fd5b506006546102fc906201000090046001600160a01b031681565b3480156103b3575f80fd5b506102ca61271081565b3480156103c8575f80fd5b50610283600b5481565b3480156103dd575f80fd5b50610283600c5481565b3480156103f2575f80fd5b50610283610401366004611ac2565b6001600160a01b03165f9081526001602052604090205490565b348015610426575f80fd5b506101e0610909565b34801561043a575f80fd5b506101e061093d565b34801561044e575f80fd5b5061028360095481565b348015610463575f80fd5b505f546001600160a01b03166102fc565b34801561047f575f80fd5b50610283600a5481565b348015610494575f80fd5b506102156109cd565b3480156104a8575f80fd5b5061024a6104b7366004611a5a565b6109dc565b3480156104c7575f80fd5b5061024a6104d6366004611a5a565b610a74565b3480156104e6575f80fd5b506101e0610a80565b3480156104fa575f80fd5b506101e0610509366004611ac2565b610ddb565b348015610519575f80fd5b5060065461024a90610100900460ff1681565b348015610537575f80fd5b506102837f000000000000000000000000000000000000000000000000000000000000000081565b34801561056a575f80fd5b506101e0610579366004611ac2565b610e0d565b348015610589575f80fd5b50610283610598366004611add565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156105cd575f80fd5b506101e06105dc366004611ac2565b610e5b565b3480156105ec575f80fd5b506101e06105fb366004611ac2565b610ea6565b5f546001600160a01b031633146106325760405162461bcd60e51b815260040161062990611b14565b60405180910390fd5b600780546001600160f01b0316600160f01b61ffff948516021790556008805461ffff191691909216179055565b60606004805461066f90611b49565b80601f016020809104026020016040519081016040528092919081815260200182805461069b90611b49565b80156106e65780601f106106bd576101008083540402835291602001916106e6565b820191905f5260205f20905b8154815290600101906020018083116106c957829003601f168201915b5050505050905090565b5f6106fc338484610f3d565b5060015b92915050565b5f610712848484611060565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156107965760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610629565b6107a38533858403610f3d565b506001949350505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916106fc9185906107e4908690611b95565b610f3d565b60065460ff6101009091041615156001148061080e57505f546001600160a01b031633145b6108665760405162461bcd60e51b815260206004820152602360248201527f436f6e74726163743a3a6e6f7420696e206f70656e2074726164696e6720737460448201526261746560e81b6064820152608401610629565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f81146108b0576040519150601f19603f3d011682016040523d82523d5f602084013e6108b5565b606091505b50509050806109065760405162461bcd60e51b815260206004820152601960248201527f436f6e74726163743a3a7769746864726177206661696c6564000000000000006044820152606401610629565b50565b5f546001600160a01b031633146109325760405162461bcd60e51b815260040161062990611b14565b61093b5f61146c565b565b5f546001600160a01b031633146109665760405162461bcd60e51b815260040161062990611b14565b7f00000000000000000000000000000000000000000000000000000000000000006009819055600a8190556040805182815260208101929092527f8b8da483504cbc128e7c335f2044a449638788eed8726ad7f9557463450ec994910160405180910390a1565b60606005805461066f90611b49565b335f9081526002602090815260408083206001600160a01b038616845290915281205482811015610a5d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610629565b610a6a3385858403610f3d565b5060019392505050565b5f6106fc338484611060565b5f546001600160a01b03163314610aa95760405162461bcd60e51b815260040161062990611b14565b600854610ae8903090630100000090046001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000610f3d565b600860039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5d9190611ba8565b6001600160a01b031663c9c6539630600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be19190611ba8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610c2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4f9190611ba8565b600680546001600160a01b03928316620100000262010000600160b01b0319909116179055600854630100000090041663f305d7194730610ca4816001600160a01b03165f9081526001602052604090205490565b5f8033610cb34261012c611b95565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015610d1e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d439190611bc3565b505060065460085460405163095ea7b360e01b81526001600160a01b036301000000909204821660048201525f1960248201526201000090920416915063095ea7b3906044016020604051808303815f875af1158015610da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc99190611bee565b506006805461ff001916610100179055565b5f546001600160a01b03163314610e045760405162461bcd60e51b815260040161062990611b14565b610906816114bb565b5f546001600160a01b03163314610e365760405162461bcd60e51b815260040161062990611b14565b6006805462010000600160b01b031916620100006001600160a01b0384160217905550565b5f546001600160a01b03163314610e845760405162461bcd60e51b815260040161062990611b14565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610ecf5760405162461bcd60e51b815260040161062990611b14565b6001600160a01b038116610f345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610629565b6109068161146c565b6001600160a01b038316610f9f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610629565b6001600160a01b0382166110005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610629565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60065460ff1615156001146110c15760405162461bcd60e51b815260206004820152602160248201527f436f6e74726163743a207472616465206973206e6f7420617661696c6162656c6044820152602160f81b6064820152608401610629565b805f6110d45f546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561110257505f546001600160a01b03858116911614155b1561145a576006546001600160a01b036201000090910481169086160361129857600754600d54600160c01b90910461ffff161161114d57600754600160f01b900461ffff1661115c565b600754600160a01b900461ffff165b60085461ffff9190911691506001600160a01b038581166301000000909204161480159061119857506007546001600160a01b03858116911614155b80156111ad57506001600160a01b0384163014155b15611293576009548311156112045760405162461bcd60e51b815260206004820152601e60248201527f436f6e74726163743a3a65786365656473206d61785478416d6f756e742e00006044820152606401610629565b600a5483611226866001600160a01b03165f9081526001602052604090205490565b6112309190611b95565b111561127e5760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163743a3a65786365656473206d617857616c6c657453697a652e6044820152606401610629565b600d8054905f61128d83611c0d565b91905055505b6112ed565b6006546001600160a01b03620100009091048116908516036112ed57600754600d54600160d01b90910461ffff16116112d75760085461ffff166112e6565b600754600160b01b900461ffff165b61ffff1690505b6006546001600160a01b0385811662010000909204161480159061131f57506007546001600160a01b03858116911614155b801561133457506001600160a01b0384163014155b156113b357600a548361135b866001600160a01b03165f9081526001602052604090205490565b6113659190611b95565b11156113b35760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163743a3a65786365656473206d617857616c6c657453697a652e6044820152606401610629565b60085462010000900460ff161580156113df57506006546001600160a01b038581166201000090920416145b80156113fa5750600754600d54600160e01b90910461ffff16105b8015611413575060065460ff6101009091041615156001145b156114215761142183611535565b801561145a575f6127106114358386611c25565b61143f9190611c3c565b905061144b8185611c5b565b92506114588630836117d0565b505b6114658585846117d0565b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600854604080516001600160a01b0363010000009093048316815291831660208301527fd1122c000cb7ee1f98b2a8c3d20b186b29f5719b23d1d791f331795286b96761910160405180910390a1600880546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6008805462ff0000191662010000179055305f9081526001602052604081205490505f61156d8361156884600c5461199d565b61199d565b9050600b548211156117bf576040805160028082526060820183525f9260208301908036833701905050905030815f815181106115ac576115ac611c6e565b60200260200101906001600160a01b031690816001600160a01b031681525050600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116419190611ba8565b8160018151811061165457611654611c6e565b6001600160a01b039283166020918202929092010152600854611681913091630100000090041684610f3d565b6008546007546001600160a01b03630100000090920482169163791ac9479185915f918691166116b34261012c611b95565b6040518663ffffffff1660e01b81526004016116d3959493929190611c82565b5f604051808303815f87803b1580156116ea575f80fd5b505af19250505080156116fb575060015b61175f577fa594329c8e1bcca63db1e70ceb1d6b40cee6b2a1fa5f35c00ea15633236a89d96040516117529060208082526011908201527029bbb0b81037baba1032b93937b917171760791b604082015260600190565b60405180910390a16117bd565b7fa594329c8e1bcca63db1e70ceb1d6b40cee6b2a1fa5f35c00ea15633236a89d96040516117b49060208082526013908201527229bbb0b81037baba1039bab1b1b2b9b997171760691b604082015260600190565b60405180910390a15b505b50506008805462ff00001916905550565b6001600160a01b0383166118345760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610629565b6001600160a01b0382166118965760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610629565b6001600160a01b0383165f908152600160205260409020548181101561190d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610629565b6001600160a01b038085165f90815260016020526040808220858503905591851681529081208054849290611943908490611b95565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161198f91815260200190565b60405180910390a350505050565b5f8183116119ab57826119ad565b815b9392505050565b803561ffff811681146119c5575f80fd5b919050565b5f80604083850312156119db575f80fd5b6119e4836119b4565b91506119f2602084016119b4565b90509250929050565b5f6020808352835180828501525f5b81811015611a2657858101830151858201604001528201611a0a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610906575f80fd5b5f8060408385031215611a6b575f80fd5b8235611a7681611a46565b946020939093013593505050565b5f805f60608486031215611a96575f80fd5b8335611aa181611a46565b92506020840135611ab181611a46565b929592945050506040919091013590565b5f60208284031215611ad2575f80fd5b81356119ad81611a46565b5f8060408385031215611aee575f80fd5b8235611af981611a46565b91506020830135611b0981611a46565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611b5d57607f821691505b602082108103611b7b57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561070057610700611b81565b5f60208284031215611bb8575f80fd5b81516119ad81611a46565b5f805f60608486031215611bd5575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611bfe575f80fd5b815180151581146119ad575f80fd5b5f60018201611c1e57611c1e611b81565b5060010190565b808202811582820484141761070057610700611b81565b5f82611c5657634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561070057610700611b81565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611cd05784516001600160a01b031683529383019391830191600101611cab565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f6664fcc0d1af7b73ad9d266814a794bfbdd2d603d61462998ffc7bfa78f46e264736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101d9575f3560e01c806370a0823111610100578063a9059cbb11610099578063d5abeb011161006b578063d5abeb011461052c578063d5aed6bf1461055f578063dd62ed3e1461057e578063ea414b28146105c2578063f2fde38b146105e157005b8063a9059cbb146104bc578063b902e1cd146104db578063c0d78655146104ef578063c9567bf91461050e57005b80638da5cb5b116100d25780638da5cb5b146104585780638f3fa8601461047457806395d89b4114610489578063a457c2d71461049d57005b806370a08231146103e7578063715018a61461041b578063751039fc1461042f5780638c0b5e221461044357005b8063313ce5671161017257806349bd5a5e1161014457806349bd5a5e146103835780634c255c97146103a85780635e7b655c146103bd57806362997f8c146103d257005b8063313ce56714610314578063395093511461032f5780633ccfd60b1461034e578063470624021461036257005b806318160ddd116101ab57806318160ddd1461027357806323b872dd146102915780632b14ca56146102b05780632dc0562d146102dd57005b806302574d0a146101e257806306fdde0314610201578063095ea7b31461022b578063158ef93e1461025a57005b366101e057005b005b3480156101ed575f80fd5b506101e06101fc3660046119ca565b610600565b34801561020c575f80fd5b50610215610660565b60405161022291906119fb565b60405180910390f35b348015610236575f80fd5b5061024a610245366004611a5a565b6106f0565b6040519015158152602001610222565b348015610265575f80fd5b5060065461024a9060ff1681565b34801561027e575f80fd5b506003545b604051908152602001610222565b34801561029c575f80fd5b5061024a6102ab366004611a84565b610706565b3480156102bb575f80fd5b506008546102ca9061ffff1681565b60405161ffff9091168152602001610222565b3480156102e8575f80fd5b506007546102fc906001600160a01b031681565b6040516001600160a01b039091168152602001610222565b34801561031f575f80fd5b5060405160128152602001610222565b34801561033a575f80fd5b5061024a610349366004611a5a565b6107ae565b348015610359575f80fd5b506101e06107e9565b34801561036d575f80fd5b506007546102ca90600160f01b900461ffff1681565b34801561038e575f80fd5b506006546102fc906201000090046001600160a01b031681565b3480156103b3575f80fd5b506102ca61271081565b3480156103c8575f80fd5b50610283600b5481565b3480156103dd575f80fd5b50610283600c5481565b3480156103f2575f80fd5b50610283610401366004611ac2565b6001600160a01b03165f9081526001602052604090205490565b348015610426575f80fd5b506101e0610909565b34801561043a575f80fd5b506101e061093d565b34801561044e575f80fd5b5061028360095481565b348015610463575f80fd5b505f546001600160a01b03166102fc565b34801561047f575f80fd5b50610283600a5481565b348015610494575f80fd5b506102156109cd565b3480156104a8575f80fd5b5061024a6104b7366004611a5a565b6109dc565b3480156104c7575f80fd5b5061024a6104d6366004611a5a565b610a74565b3480156104e6575f80fd5b506101e0610a80565b3480156104fa575f80fd5b506101e0610509366004611ac2565b610ddb565b348015610519575f80fd5b5060065461024a90610100900460ff1681565b348015610537575f80fd5b506102837f0000000000000000000000000000000000000000033b2e3c9fd0803ce800000081565b34801561056a575f80fd5b506101e0610579366004611ac2565b610e0d565b348015610589575f80fd5b50610283610598366004611add565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156105cd575f80fd5b506101e06105dc366004611ac2565b610e5b565b3480156105ec575f80fd5b506101e06105fb366004611ac2565b610ea6565b5f546001600160a01b031633146106325760405162461bcd60e51b815260040161062990611b14565b60405180910390fd5b600780546001600160f01b0316600160f01b61ffff948516021790556008805461ffff191691909216179055565b60606004805461066f90611b49565b80601f016020809104026020016040519081016040528092919081815260200182805461069b90611b49565b80156106e65780601f106106bd576101008083540402835291602001916106e6565b820191905f5260205f20905b8154815290600101906020018083116106c957829003601f168201915b5050505050905090565b5f6106fc338484610f3d565b5060015b92915050565b5f610712848484611060565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156107965760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610629565b6107a38533858403610f3d565b506001949350505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916106fc9185906107e4908690611b95565b610f3d565b60065460ff6101009091041615156001148061080e57505f546001600160a01b031633145b6108665760405162461bcd60e51b815260206004820152602360248201527f436f6e74726163743a3a6e6f7420696e206f70656e2074726164696e6720737460448201526261746560e81b6064820152608401610629565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f81146108b0576040519150601f19603f3d011682016040523d82523d5f602084013e6108b5565b606091505b50509050806109065760405162461bcd60e51b815260206004820152601960248201527f436f6e74726163743a3a7769746864726177206661696c6564000000000000006044820152606401610629565b50565b5f546001600160a01b031633146109325760405162461bcd60e51b815260040161062990611b14565b61093b5f61146c565b565b5f546001600160a01b031633146109665760405162461bcd60e51b815260040161062990611b14565b7f0000000000000000000000000000000000000000033b2e3c9fd0803ce80000006009819055600a8190556040805182815260208101929092527f8b8da483504cbc128e7c335f2044a449638788eed8726ad7f9557463450ec994910160405180910390a1565b60606005805461066f90611b49565b335f9081526002602090815260408083206001600160a01b038616845290915281205482811015610a5d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610629565b610a6a3385858403610f3d565b5060019392505050565b5f6106fc338484611060565b5f546001600160a01b03163314610aa95760405162461bcd60e51b815260040161062990611b14565b600854610ae8903090630100000090046001600160a01b03167f0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000610f3d565b600860039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5d9190611ba8565b6001600160a01b031663c9c6539630600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be19190611ba8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610c2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4f9190611ba8565b600680546001600160a01b03928316620100000262010000600160b01b0319909116179055600854630100000090041663f305d7194730610ca4816001600160a01b03165f9081526001602052604090205490565b5f8033610cb34261012c611b95565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af1158015610d1e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d439190611bc3565b505060065460085460405163095ea7b360e01b81526001600160a01b036301000000909204821660048201525f1960248201526201000090920416915063095ea7b3906044016020604051808303815f875af1158015610da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc99190611bee565b506006805461ff001916610100179055565b5f546001600160a01b03163314610e045760405162461bcd60e51b815260040161062990611b14565b610906816114bb565b5f546001600160a01b03163314610e365760405162461bcd60e51b815260040161062990611b14565b6006805462010000600160b01b031916620100006001600160a01b0384160217905550565b5f546001600160a01b03163314610e845760405162461bcd60e51b815260040161062990611b14565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610ecf5760405162461bcd60e51b815260040161062990611b14565b6001600160a01b038116610f345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610629565b6109068161146c565b6001600160a01b038316610f9f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610629565b6001600160a01b0382166110005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610629565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60065460ff1615156001146110c15760405162461bcd60e51b815260206004820152602160248201527f436f6e74726163743a207472616465206973206e6f7420617661696c6162656c6044820152602160f81b6064820152608401610629565b805f6110d45f546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561110257505f546001600160a01b03858116911614155b1561145a576006546001600160a01b036201000090910481169086160361129857600754600d54600160c01b90910461ffff161161114d57600754600160f01b900461ffff1661115c565b600754600160a01b900461ffff165b60085461ffff9190911691506001600160a01b038581166301000000909204161480159061119857506007546001600160a01b03858116911614155b80156111ad57506001600160a01b0384163014155b15611293576009548311156112045760405162461bcd60e51b815260206004820152601e60248201527f436f6e74726163743a3a65786365656473206d61785478416d6f756e742e00006044820152606401610629565b600a5483611226866001600160a01b03165f9081526001602052604090205490565b6112309190611b95565b111561127e5760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163743a3a65786365656473206d617857616c6c657453697a652e6044820152606401610629565b600d8054905f61128d83611c0d565b91905055505b6112ed565b6006546001600160a01b03620100009091048116908516036112ed57600754600d54600160d01b90910461ffff16116112d75760085461ffff166112e6565b600754600160b01b900461ffff165b61ffff1690505b6006546001600160a01b0385811662010000909204161480159061131f57506007546001600160a01b03858116911614155b801561133457506001600160a01b0384163014155b156113b357600a548361135b866001600160a01b03165f9081526001602052604090205490565b6113659190611b95565b11156113b35760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163743a3a65786365656473206d617857616c6c657453697a652e6044820152606401610629565b60085462010000900460ff161580156113df57506006546001600160a01b038581166201000090920416145b80156113fa5750600754600d54600160e01b90910461ffff16105b8015611413575060065460ff6101009091041615156001145b156114215761142183611535565b801561145a575f6127106114358386611c25565b61143f9190611c3c565b905061144b8185611c5b565b92506114588630836117d0565b505b6114658585846117d0565b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600854604080516001600160a01b0363010000009093048316815291831660208301527fd1122c000cb7ee1f98b2a8c3d20b186b29f5719b23d1d791f331795286b96761910160405180910390a1600880546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6008805462ff0000191662010000179055305f9081526001602052604081205490505f61156d8361156884600c5461199d565b61199d565b9050600b548211156117bf576040805160028082526060820183525f9260208301908036833701905050905030815f815181106115ac576115ac611c6e565b60200260200101906001600160a01b031690816001600160a01b031681525050600860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116419190611ba8565b8160018151811061165457611654611c6e565b6001600160a01b039283166020918202929092010152600854611681913091630100000090041684610f3d565b6008546007546001600160a01b03630100000090920482169163791ac9479185915f918691166116b34261012c611b95565b6040518663ffffffff1660e01b81526004016116d3959493929190611c82565b5f604051808303815f87803b1580156116ea575f80fd5b505af19250505080156116fb575060015b61175f577fa594329c8e1bcca63db1e70ceb1d6b40cee6b2a1fa5f35c00ea15633236a89d96040516117529060208082526011908201527029bbb0b81037baba1032b93937b917171760791b604082015260600190565b60405180910390a16117bd565b7fa594329c8e1bcca63db1e70ceb1d6b40cee6b2a1fa5f35c00ea15633236a89d96040516117b49060208082526013908201527229bbb0b81037baba1039bab1b1b2b9b997171760691b604082015260600190565b60405180910390a15b505b50506008805462ff00001916905550565b6001600160a01b0383166118345760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610629565b6001600160a01b0382166118965760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610629565b6001600160a01b0383165f908152600160205260409020548181101561190d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610629565b6001600160a01b038085165f90815260016020526040808220858503905591851681529081208054849290611943908490611b95565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161198f91815260200190565b60405180910390a350505050565b5f8183116119ab57826119ad565b815b9392505050565b803561ffff811681146119c5575f80fd5b919050565b5f80604083850312156119db575f80fd5b6119e4836119b4565b91506119f2602084016119b4565b90509250929050565b5f6020808352835180828501525f5b81811015611a2657858101830151858201604001528201611a0a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610906575f80fd5b5f8060408385031215611a6b575f80fd5b8235611a7681611a46565b946020939093013593505050565b5f805f60608486031215611a96575f80fd5b8335611aa181611a46565b92506020840135611ab181611a46565b929592945050506040919091013590565b5f60208284031215611ad2575f80fd5b81356119ad81611a46565b5f8060408385031215611aee575f80fd5b8235611af981611a46565b91506020830135611b0981611a46565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611b5d57607f821691505b602082108103611b7b57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561070057610700611b81565b5f60208284031215611bb8575f80fd5b81516119ad81611a46565b5f805f60608486031215611bd5575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611bfe575f80fd5b815180151581146119ad575f80fd5b5f60018201611c1e57611c1e611b81565b5060010190565b808202811582820484141761070057610700611b81565b5f82611c5657634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561070057610700611b81565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611cd05784516001600160a01b031683529383019391830191600101611cab565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f6664fcc0d1af7b73ad9d266814a794bfbdd2d603d61462998ffc7bfa78f46e264736f6c63430008140033
Deployed Bytecode Sourcemap
21291:6944:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24982:149;;;;;;;;;;-1:-1:-1;24982:149:0;;;;;:::i;:::-;;:::i;9679:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11912:194;;;;;;;;;;-1:-1:-1;11912:194:0;;;;;:::i;:::-;;:::i;:::-;;;1613:14:1;;1606:22;1588:41;;1576:2;1561:18;11912:194:0;1448:187:1;21466:31:0;;;;;;;;;;-1:-1:-1;21466:31:0;;;;;;;;10799:108;;;;;;;;;;-1:-1:-1;10887:12:0;;10799:108;;;1786:25:1;;;1774:2;1759:18;10799:108:0;1640:177:1;12588:529:0;;;;;;;;;;-1:-1:-1;12588:529:0;;;;;:::i;:::-;;:::i;22107:27::-;;;;;;;;;;-1:-1:-1;22107:27:0;;;;;;;;;;;2457:6:1;2445:19;;;2427:38;;2415:2;2400:18;22107:27:0;2283:188:1;21590:24:0;;;;;;;;;;-1:-1:-1;21590:24:0;;;;-1:-1:-1;;;;;21590:24:0;;;;;;-1:-1:-1;;;;;2640:32:1;;;2622:51;;2610:2;2595:18;21590:24:0;2476:203:1;10641:93:0;;;;;;;;;;-1:-1:-1;10641:93:0;;10724:2;2826:36:1;;2814:2;2799:18;10641:93:0;2684:184:1;13526:290:0;;;;;;;;;;-1:-1:-1;13526:290:0;;;;;:::i;:::-;;:::i;24453:310::-;;;;;;;;;;;;;:::i;22068:26::-;;;;;;;;;;-1:-1:-1;22068:26:0;;;;-1:-1:-1;;;22068:26:0;;;;;;21542:41;;;;;;;;;;-1:-1:-1;21542:41:0;;;;;;;-1:-1:-1;;;;;21542:41:0;;;21412:45;;;;;;;;;;;;21452:5;21412:45;;22293:31;;;;;;;;;;;;;;;;22331:25;;;;;;;;;;;;;;;;10970:143;;;;;;;;;;-1:-1:-1;10970:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11087:18:0;11060:7;11087:18;;;:9;:18;;;;;;;10970:143;2975:103;;;;;;;;;;;;;:::i;23771:193::-;;;;;;;;;;;;;:::i;22225:26::-;;;;;;;;;;;;;;;;2288:87;;;;;;;;;;-1:-1:-1;2334:7:0;2361:6;-1:-1:-1;;;;;2361:6:0;2288:87;;22258:28;;;;;;;;;;;;;;;;9898:104;;;;;;;;;;;;;:::i;14319:475::-;;;;;;;;;;-1:-1:-1;14319:475:0;;;;;:::i;:::-;;:::i;11326:200::-;;;;;;;;;;-1:-1:-1;11326:200:0;;;;;:::i;:::-;;:::i;23972:473::-;;;;;;;;;;;;;:::i;24881:93::-;;;;;;;;;;-1:-1:-1;24881:93:0;;;;;:::i;:::-;;:::i;21504:31::-;;;;;;;;;;-1:-1:-1;21504:31:0;;;;;;;;;;;21334:71;;;;;;;;;;;;;;;25139:119;;;;;;;;;;-1:-1:-1;25139:119:0;;;;;:::i;:::-;;:::i;11589:176::-;;;;;;;;;;-1:-1:-1;11589:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;11730:18:0;;;11703:7;11730:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11589:176;24771:102;;;;;;;;;;-1:-1:-1;24771:102:0;;;;;:::i;:::-;;:::i;3233:238::-;;;;;;;;;;-1:-1:-1;3233:238:0;;;;;:::i;:::-;;:::i;24982:149::-;2522:6;;-1:-1:-1;;;;;2522:6:0;1065:10;2522:22;2500:104;;;;-1:-1:-1;;;2500:104:0;;;;;;;:::i;:::-;;;;;;;;;25078:6:::1;:16:::0;;-1:-1:-1;;;;;25078:16:0::1;-1:-1:-1::0;;;25078:16:0::1;::::0;;::::1;;;::::0;;25105:7:::1;:18:::0;;-1:-1:-1;;25105:18:0::1;::::0;;;::::1;;::::0;;24982:149::o;9679:100::-;9733:13;9766:5;9759:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9679:100;:::o;11912:194::-;12020:4;12037:39;1065:10;12060:7;12069:6;12037:8;:39::i;:::-;-1:-1:-1;12094:4:0;11912:194;;;;;:::o;12588:529::-;12728:4;12745:36;12755:6;12763:9;12774:6;12745:9;:36::i;:::-;-1:-1:-1;;;;;12821:19:0;;12794:24;12821:19;;;:11;:19;;;;;;;;1065:10;12821:33;;;;;;;;12887:26;;;;12865:116;;;;-1:-1:-1;;;12865:116:0;;4466:2:1;12865:116:0;;;4448:21:1;4505:2;4485:18;;;4478:30;4544:34;4524:18;;;4517:62;-1:-1:-1;;;4595:18:1;;;4588:38;4643:19;;12865:116:0;4264:404:1;12865:116:0;13017:57;13026:6;1065:10;13067:6;13048:16;:25;13017:8;:57::i;:::-;-1:-1:-1;13105:4:0;;12588:529;-1:-1:-1;;;;12588:529:0:o;13526:290::-;1065:10;13639:4;13728:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13728:34:0;;;;;;;;;;13639:4;;13656:130;;13706:7;;13728:47;;13765:10;;13728:47;:::i;:::-;13656:8;:130::i;24453:310::-;24502:11;;;;;;;;:19;;:11;:19;;:46;;-1:-1:-1;2334:7:0;2361:6;-1:-1:-1;;;;;2361:6:0;1065:10;24525:23;24502:46;24493:95;;;;-1:-1:-1;;;24493:95:0;;5137:2:1;24493:95:0;;;5119:21:1;5176:2;5156:18;;;5149:30;5215:34;5195:18;;;5188:62;-1:-1:-1;;;5266:18:1;;;5259:33;5309:19;;24493:95:0;4935:399:1;24493:95:0;24626:9;;24618:81;;24600:12;;-1:-1:-1;;;;;24626:9:0;;24663:21;;24600:12;24618:81;24600:12;24618:81;24663:21;24626:9;24618:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24599:100;;;24718:7;24710:45;;;;-1:-1:-1;;;24710:45:0;;5751:2:1;24710:45:0;;;5733:21:1;5790:2;5770:18;;;5763:30;5829:27;5809:18;;;5802:55;5874:18;;24710:45:0;5549:349:1;24710:45:0;24482:281;24453:310::o;2975:103::-;2522:6;;-1:-1:-1;;;;;2522:6:0;1065:10;2522:22;2500:104;;;;-1:-1:-1;;;2500:104:0;;;;;;;:::i;:::-;3040:30:::1;3067:1;3040:18;:30::i;:::-;2975:103::o:0;23771:193::-;2522:6;;-1:-1:-1;;;;;2522:6:0;1065:10;2522:22;2500:104;;;;-1:-1:-1;;;2500:104:0;;;;;;;:::i;:::-;23839:9:::1;23825:11;:23:::0;;;23859:13:::1;:25:::0;;;23900:56:::1;::::0;;6077:25:1;;;6133:2;6118:18;;6111:34;;;;23900:56:0::1;::::0;6050:18:1;23900:56:0::1;;;;;;;23771:193::o:0;9898:104::-;9954:13;9987:7;9980:14;;;;;:::i;14319:475::-;1065:10;14437:4;14481:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14481:34:0;;;;;;;;;;14548:35;;;;14526:122;;;;-1:-1:-1;;;14526:122:0;;6358:2:1;14526:122:0;;;6340:21:1;6397:2;6377:18;;;6370:30;6436:34;6416:18;;;6409:62;-1:-1:-1;;;6487:18:1;;;6480:35;6532:19;;14526:122:0;6156:401:1;14526:122:0;14684:67;1065:10;14707:7;14735:15;14716:16;:34;14684:8;:67::i;:::-;-1:-1:-1;14782:4:0;;14319:475;-1:-1:-1;;;14319:475:0:o;11326:200::-;11437:4;11454:42;1065:10;11478:9;11489:6;11454:9;:42::i;23972:473::-;2522:6;;-1:-1:-1;;;;;2522:6:0;1065:10;2522:22;2500:104;;;;-1:-1:-1;;;2500:104:0;;;;;;;:::i;:::-;24060:6:::1;::::0;24028:51:::1;::::0;24045:4:::1;::::0;24060:6;;::::1;-1:-1:-1::0;;;;;24060:6:0::1;24069:9;24028:8;:51::i;:::-;24124:6;;;;;;;;;-1:-1:-1::0;;;;;24124:6:0::1;-1:-1:-1::0;;;;;24124:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24106:46:0::1;;24161:4;24168:6;;;;;;;;;-1:-1:-1::0;;;;;24168:6:0::1;-1:-1:-1::0;;;;;24168:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24106:76;::::0;-1:-1:-1;;;;;;24106:76:0::1;::::0;;;;;;-1:-1:-1;;;;;7048:15:1;;;24106:76:0::1;::::0;::::1;7030:34:1::0;7100:15;;7080:18;;;7073:43;6965:18;;24106:76:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24090:13;:92:::0;;-1:-1:-1;;;;;24090:92:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;24090:92:0;;::::1;;::::0;;24193:6:::1;::::0;;;::::1;;:22;24223:21;24254:4;24261:24;24254:4:::0;-1:-1:-1;;;;;11087:18:0;11060:7;11087:18;;;:9;:18;;;;;;;10970:143;24261:24:::1;24287:1;::::0;1065:10;24307:27:::1;:15;24325:9;24307:27;:::i;:::-;24193:142;::::0;::::1;::::0;;;-1:-1:-1;;;;;;24193:142:0;;;-1:-1:-1;;;;;7486:15:1;;;24193:142:0::1;::::0;::::1;7468:34:1::0;7518:18;;;7511:34;;;;7561:18;;;7554:34;;;;7604:18;;;7597:34;;;;7668:15;;;7647:19;;;7640:44;7700:19;;;7693:35;;;;7402:19;;24193:142:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;24353:13:0::1;::::0;24384:6:::1;::::0;24346:62:::1;::::0;-1:-1:-1;;;24346:62:0;;-1:-1:-1;;;;;24384:6:0;;;::::1;::::0;::::1;24346:62;::::0;::::1;8224:51:1::0;-1:-1:-1;;8291:18:1;;;8284:34;24353:13:0;;;::::1;;::::0;-1:-1:-1;24346:29:0::1;::::0;8197:18:1;;24346:62:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;24419:11:0::1;:18:::0;;-1:-1:-1;;24419:18:0::1;;;::::0;;23972:473::o;24881:93::-;2522:6;;-1:-1:-1;;;;;2522:6:0;1065:10;2522:22;2500:104;;;;-1:-1:-1;;;2500:104:0;;;;;;;:::i;:::-;24947:19:::1;24958:7;24947:10;:19::i;25139:119::-:0;2522:6;;-1:-1:-1;;;;;2522:6:0;1065:10;2522:22;2500:104;;;;-1:-1:-1;;;2500:104:0;;;;;;;:::i;:::-;25501:13;:30;;-1:-1:-1;;;;;;25501:30:0;;-1:-1:-1;;;;;25501:30:0;;;;;;24482:281;24453:310::o;24771:102::-;2522:6;;-1:-1:-1;;;;;2522:6:0;1065:10;2522:22;2500:104;;;;-1:-1:-1;;;2500:104:0;;;;;;;:::i;:::-;24843:9:::1;:22:::0;;-1:-1:-1;;;;;;24843:22:0::1;-1:-1:-1::0;;;;;24843:22:0;;;::::1;::::0;;;::::1;::::0;;24771:102::o;3233:238::-;2522:6;;-1:-1:-1;;;;;2522:6:0;1065:10;2522:22;2500:104;;;;-1:-1:-1;;;2500:104:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3336:22:0;::::1;3314:110;;;::::0;-1:-1:-1;;;3314:110:0;;8813:2:1;3314:110:0::1;::::0;::::1;8795:21:1::0;8852:2;8832:18;;;8825:30;8891:34;8871:18;;;8864:62;-1:-1:-1;;;8942:18:1;;;8935:36;8988:19;;3314:110:0::1;8611:402:1::0;3314:110:0::1;3435:28;3454:8;3435:18;:28::i;18102:380::-:0;-1:-1:-1;;;;;18238:19:0;;18230:68;;;;-1:-1:-1;;;18230:68:0;;9220:2:1;18230:68:0;;;9202:21:1;9259:2;9239:18;;;9232:30;9298:34;9278:18;;;9271:62;-1:-1:-1;;;9349:18:1;;;9342:34;9393:19;;18230:68:0;9018:400:1;18230:68:0;-1:-1:-1;;;;;18317:21:0;;18309:68;;;;-1:-1:-1;;;18309:68:0;;9625:2:1;18309:68:0;;;9607:21:1;9664:2;9644:18;;;9637:30;9703:34;9683:18;;;9676:62;-1:-1:-1;;;9754:18:1;;;9747:32;9796:19;;18309:68:0;9423:398:1;18309:68:0;-1:-1:-1;;;;;18390:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18442:32;;1786:25:1;;;18442:32:0;;1759:18:1;18442:32:0;;;;;;;18102:380;;;:::o;26555:1677::-;26708:11;;;;:19;;:11;:19;26686:102;;;;-1:-1:-1;;;26686:102:0;;10028:2:1;26686:102:0;;;10010:21:1;10067:2;10047:18;;;10040:30;10106:34;10086:18;;;10079:62;-1:-1:-1;;;10157:18:1;;;10150:31;10198:19;;26686:102:0;9826:397:1;26686:102:0;26827:6;26801:23;26887:7;2334;2361:6;-1:-1:-1;;;;;2361:6:0;;2288:87;26887:7;-1:-1:-1;;;;;26879:15:0;:4;-1:-1:-1;;;;;26879:15:0;;;:32;;;;-1:-1:-1;2334:7:0;2361:6;-1:-1:-1;;;;;26898:13:0;;;2361:6;;26898:13;;26879:32;26875:1295;;;26940:13;;-1:-1:-1;;;;;26940:13:0;;;;;;26932:21;;;;26928:615;;26993:22;;26981:9;;-1:-1:-1;;;26993:22:0;;;;;-1:-1:-1;26981:60:0;;27035:6;;-1:-1:-1;;;27035:6:0;;;;26981:60;;;27018:14;;-1:-1:-1;;;27018:14:0;;;;26981:60;27078:6;;26974:67;;;;;;-1:-1:-1;;;;;;27064:21:0;;;27078:6;;;;;27064:21;;;;:40;;-1:-1:-1;27095:9:0;;-1:-1:-1;;;;;27089:15:0;;;27095:9;;27089:15;;27064:40;:63;;;;-1:-1:-1;;;;;;27108:19:0;;27122:4;27108:19;;27064:63;27060:317;;;27170:11;;27160:6;:21;;27152:64;;;;-1:-1:-1;;;27152:64:0;;10430:2:1;27152:64:0;;;10412:21:1;10469:2;10449:18;;;10442:30;10508:32;10488:18;;;10481:60;10558:18;;27152:64:0;10228:354:1;27152:64:0;27273:13;;27263:6;27247:13;27257:2;-1:-1:-1;;;;;11087:18:0;11060:7;11087:18;;;:9;:18;;;;;;;10970:143;27247:13;:22;;;;:::i;:::-;:39;;27239:84;;;;-1:-1:-1;;;27239:84:0;;10789:2:1;27239:84:0;;;10771:21:1;;;10808:18;;;10801:30;10867:34;10847:18;;;10840:62;10919:18;;27239:84:0;10587:356:1;27239:84:0;27346:9;:11;;;:9;:11;;;:::i;:::-;;;;;;27060:317;26928:615;;;27423:13;;-1:-1:-1;;;;;27423:13:0;;;;;;27417:19;;;;27413:130;;27476:23;;27464:9;;-1:-1:-1;;;27476:23:0;;;;;-1:-1:-1;27464:63:0;;27520:7;;;;27464:63;;;27502:15;;-1:-1:-1;;;27502:15:0;;;;27464:63;27457:70;;;;27413:130;27569:13;;-1:-1:-1;;;;;27563:19:0;;;27569:13;;;;;27563:19;;;;:38;;-1:-1:-1;27592:9:0;;-1:-1:-1;;;;;27586:15:0;;;27592:9;;27586:15;;27563:38;:61;;;;-1:-1:-1;;;;;;27605:19:0;;27619:4;27605:19;;27563:61;27559:186;;;27679:13;;27669:6;27653:13;27663:2;-1:-1:-1;;;;;11087:18:0;11060:7;11087:18;;;:9;:18;;;;;;;10970:143;27653:13;:22;;;;:::i;:::-;:39;;27645:84;;;;-1:-1:-1;;;27645:84:0;;10789:2:1;27645:84:0;;;10771:21:1;;;10808:18;;;10801:30;10867:34;10847:18;;;10840:62;10919:18;;27645:84:0;10587:356:1;27645:84:0;27766:6;;;;;;;27765:7;:30;;;;-1:-1:-1;27782:13:0;;-1:-1:-1;;;;;27776:19:0;;;27782:13;;;;;27776:19;27765:30;:58;;;;-1:-1:-1;27811:12:0;;27799:9;;-1:-1:-1;;;27811:12:0;;;;;-1:-1:-1;27765:58:0;:81;;;;-1:-1:-1;27827:11:0;;;;;;;;:19;;:11;:19;27765:81;27761:147;;;27867:25;27885:6;27867:17;:25::i;:::-;27928:8;;27924:235;;27957:22;21452:5;27982:13;27991:4;27982:6;:13;:::i;:::-;:30;;;;:::i;:::-;27957:55;-1:-1:-1;28049:23:0;27957:55;28049:6;:23;:::i;:::-;28031:41;;28091:52;28107:4;28121;28128:14;28091:15;:52::i;:::-;27938:221;27924:235;28182:42;28198:4;28204:2;28208:15;28182;:42::i;:::-;26675:1557;;26555:1677;;;:::o;3631:191::-;3705:16;3724:6;;-1:-1:-1;;;;;3741:17:0;;;-1:-1:-1;;;;;;3741:17:0;;;;;;3774:40;;3724:6;;;;;;;3774:40;;3705:16;3774:40;3694:128;3631:191;:::o;25266:156::-;25350:6;;25328:39;;;-1:-1:-1;;;;;25350:6:0;;;;;;7030:34:1;;7100:15;;;7095:2;7080:18;;7073:43;25328:39:0;;6965:18:1;25328:39:0;;;;;;;25378:6;:36;;-1:-1:-1;;;;;25378:36:0;;;;;-1:-1:-1;;;;;;25378:36:0;;;;;;;;;25266:156::o;25659:888::-;22746:6;:13;;-1:-1:-1;;22746:13:0;;;;;25783:4:::1;-1:-1:-1::0;11087:18:0;;;-1:-1:-1;11087:18:0;;;;;;25738:51:::1;;25800:19;25822:47;25826:7;25835:33;25839:16;25857:10;;25835:3;:33::i;:::-;25822:3;:47::i;:::-;25800:69;;25905:16;;25886;:35;25882:658;;;25962:16;::::0;;25976:1:::1;25962:16:::0;;;;;::::1;::::0;;25938:21:::1;::::0;25962:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;25962:16:0::1;25938:40;;26011:4;25993;25998:1;25993:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;25993:23:0::1;;;-1:-1:-1::0;;;;;25993:23:0::1;;;::::0;::::1;26041:6;;;;;;;;;-1:-1:-1::0;;;;;26041:6:0::1;-1:-1:-1::0;;;;;26041:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26031:4;26036:1;26031:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26031:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;26101:6:::1;::::0;26069:53:::1;::::0;26086:4:::1;::::0;26101:6;;::::1;;26110:11:::0;26069:8:::1;:53::i;:::-;26141:6;::::0;26290:9:::1;::::0;-1:-1:-1;;;;;26141:6:0;;;::::1;::::0;::::1;::::0;:57:::1;::::0;26217:11;;26247:1:::1;::::0;26267:4;;26290:9:::1;26318:27;:15;26336:9;26318:27;:::i;:::-;26141:219;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;26137:392;;26480:33;;;;;13067:2:1::0;13049:21;;;13106:2;13086:18;;;13079:30;-1:-1:-1;;;13140:2:1;13125:18;;13118:47;13197:2;13182:18;;12865:341;26480:33:0::1;;;;;;;;26137:392;;;26385:35;;;;;13413:2:1::0;13395:21;;;13452:2;13432:18;;;13425:30;-1:-1:-1;;;13486:2:1;13471:18;;13464:49;13545:2;13530:18;;13211:343;26385:35:0::1;;;;;;;;26137:392;25923:617;25882:658;-1:-1:-1::0;;22782:6:0;:14;;-1:-1:-1;;22782:14:0;;;-1:-1:-1;25659:888:0:o;15284:770::-;-1:-1:-1;;;;;15424:20:0;;15416:70;;;;-1:-1:-1;;;15416:70:0;;13761:2:1;15416:70:0;;;13743:21:1;13800:2;13780:18;;;13773:30;13839:34;13819:18;;;13812:62;-1:-1:-1;;;13890:18:1;;;13883:35;13935:19;;15416:70:0;13559:401:1;15416:70:0;-1:-1:-1;;;;;15505:23:0;;15497:71;;;;-1:-1:-1;;;15497:71:0;;14167:2:1;15497:71:0;;;14149:21:1;14206:2;14186:18;;;14179:30;14245:34;14225:18;;;14218:62;-1:-1:-1;;;14296:18:1;;;14289:33;14339:19;;15497:71:0;13965:399:1;15497:71:0;-1:-1:-1;;;;;15665:17:0;;15641:21;15665:17;;;:9;:17;;;;;;15715:23;;;;15693:111;;;;-1:-1:-1;;;15693:111:0;;14571:2:1;15693:111:0;;;14553:21:1;14610:2;14590:18;;;14583:30;14649:34;14629:18;;;14622:62;-1:-1:-1;;;14700:18:1;;;14693:36;14746:19;;15693:111:0;14369:402:1;15693:111:0;-1:-1:-1;;;;;15840:17:0;;;;;;;:9;:17;;;;;;15860:22;;;15840:42;;15904:20;;;;;;;;:30;;15876:6;;15840:17;15904:30;;15876:6;;15904:30;:::i;:::-;;;;;;;;15969:9;-1:-1:-1;;;;;15952:35:0;15961:6;-1:-1:-1;;;;;15952:35:0;;15980:6;15952:35;;;;1786:25:1;;1774:2;1759:18;;1640:177;15952:35:0;;;;;;;;15405:649;15284:770;;;:::o;25547:104::-;25605:7;25634:1;25630;:5;25629:14;;25642:1;25629:14;;;25639:1;25629:14;25622:21;25547:104;-1:-1:-1;;;25547:104:0:o;14:159:1:-;81:20;;141:6;130:18;;120:29;;110:57;;163:1;160;153:12;110:57;14:159;;;:::o;178:256::-;244:6;252;305:2;293:9;284:7;280:23;276:32;273:52;;;321:1;318;311:12;273:52;344:28;362:9;344:28;:::i;:::-;334:38;;391:37;424:2;413:9;409:18;391:37;:::i;:::-;381:47;;178:256;;;;;:::o;439:548::-;551:4;580:2;609;598:9;591:21;641:6;635:13;684:6;679:2;668:9;664:18;657:34;709:1;719:140;733:6;730:1;727:13;719:140;;;828:14;;;824:23;;818:30;794:17;;;813:2;790:26;783:66;748:10;;719:140;;;723:3;908:1;903:2;894:6;883:9;879:22;875:31;868:42;978:2;971;967:7;962:2;954:6;950:15;946:29;935:9;931:45;927:54;919:62;;;;439:548;;;;:::o;992:131::-;-1:-1:-1;;;;;1067:31:1;;1057:42;;1047:70;;1113:1;1110;1103:12;1128:315;1196:6;1204;1257:2;1245:9;1236:7;1232:23;1228:32;1225:52;;;1273:1;1270;1263:12;1225:52;1312:9;1299:23;1331:31;1356:5;1331:31;:::i;:::-;1381:5;1433:2;1418:18;;;;1405:32;;-1:-1:-1;;;1128:315:1:o;1822:456::-;1899:6;1907;1915;1968:2;1956:9;1947:7;1943:23;1939:32;1936:52;;;1984:1;1981;1974:12;1936:52;2023:9;2010:23;2042:31;2067:5;2042:31;:::i;:::-;2092:5;-1:-1:-1;2149:2:1;2134:18;;2121:32;2162:33;2121:32;2162:33;:::i;:::-;1822:456;;2214:7;;-1:-1:-1;;;2268:2:1;2253:18;;;;2240:32;;1822:456::o;2873:247::-;2932:6;2985:2;2973:9;2964:7;2960:23;2956:32;2953:52;;;3001:1;2998;2991:12;2953:52;3040:9;3027:23;3059:31;3084:5;3059:31;:::i;3125:388::-;3193:6;3201;3254:2;3242:9;3233:7;3229:23;3225:32;3222:52;;;3270:1;3267;3260:12;3222:52;3309:9;3296:23;3328:31;3353:5;3328:31;:::i;:::-;3378:5;-1:-1:-1;3435:2:1;3420:18;;3407:32;3448:33;3407:32;3448:33;:::i;:::-;3500:7;3490:17;;;3125:388;;;;;:::o;3518:356::-;3720:2;3702:21;;;3739:18;;;3732:30;3798:34;3793:2;3778:18;;3771:62;3865:2;3850:18;;3518:356::o;3879:380::-;3958:1;3954:12;;;;4001;;;4022:61;;4076:4;4068:6;4064:17;4054:27;;4022:61;4129:2;4121:6;4118:14;4098:18;4095:38;4092:161;;4175:10;4170:3;4166:20;4163:1;4156:31;4210:4;4207:1;4200:15;4238:4;4235:1;4228:15;4092:161;;3879:380;;;:::o;4673:127::-;4734:10;4729:3;4725:20;4722:1;4715:31;4765:4;4762:1;4755:15;4789:4;4786:1;4779:15;4805:125;4870:9;;;4891:10;;;4888:36;;;4904:18;;:::i;6562:251::-;6632:6;6685:2;6673:9;6664:7;6660:23;6656:32;6653:52;;;6701:1;6698;6691:12;6653:52;6733:9;6727:16;6752:31;6777:5;6752:31;:::i;7739:306::-;7827:6;7835;7843;7896:2;7884:9;7875:7;7871:23;7867:32;7864:52;;;7912:1;7909;7902:12;7864:52;7941:9;7935:16;7925:26;;7991:2;7980:9;7976:18;7970:25;7960:35;;8035:2;8024:9;8020:18;8014:25;8004:35;;7739:306;;;;;:::o;8329:277::-;8396:6;8449:2;8437:9;8428:7;8424:23;8420:32;8417:52;;;8465:1;8462;8455:12;8417:52;8497:9;8491:16;8550:5;8543:13;8536:21;8529:5;8526:32;8516:60;;8572:1;8569;8562:12;10948:135;10987:3;11008:17;;;11005:43;;11028:18;;:::i;:::-;-1:-1:-1;11075:1:1;11064:13;;10948:135::o;11088:168::-;11161:9;;;11192;;11209:15;;;11203:22;;11189:37;11179:71;;11230:18;;:::i;11261:217::-;11301:1;11327;11317:132;;11371:10;11366:3;11362:20;11359:1;11352:31;11406:4;11403:1;11396:15;11434:4;11431:1;11424:15;11317:132;-1:-1:-1;11463:9:1;;11261:217::o;11483:128::-;11550:9;;;11571:11;;;11568:37;;;11585:18;;:::i;11748:127::-;11809:10;11804:3;11800:20;11797:1;11790:31;11840:4;11837:1;11830:15;11864:4;11861:1;11854:15;11880:980;12142:4;12190:3;12179:9;12175:19;12221:6;12210:9;12203:25;12247:2;12285:6;12280:2;12269:9;12265:18;12258:34;12328:3;12323:2;12312:9;12308:18;12301:31;12352:6;12387;12381:13;12418:6;12410;12403:22;12456:3;12445:9;12441:19;12434:26;;12495:2;12487:6;12483:15;12469:29;;12516:1;12526:195;12540:6;12537:1;12534:13;12526:195;;;12605:13;;-1:-1:-1;;;;;12601:39:1;12589:52;;12696:15;;;;12661:12;;;;12637:1;12555:9;12526:195;;;-1:-1:-1;;;;;;;12777:32:1;;;;12772:2;12757:18;;12750:60;-1:-1:-1;;;12841:3:1;12826:19;12819:35;12738:3;11880:980;-1:-1:-1;;;11880:980:1:o
Swarm Source
ipfs://f6664fcc0d1af7b73ad9d266814a794bfbdd2d603d61462998ffc7bfa78f46e2
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.