ETH Price: $2,520.91 (-4.45%)
Gas: 7.57 Gwei

Token

WOLF COOKIES (WOOKIES 🍪)
 

Overview

Max Total Supply

1,000,000,000,000 WOOKIES 🍪

Holders

120

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
181,744,675.738356182 WOOKIES 🍪

Value
$0.00
0xB79eB097e7C066092e2258B39F46316B28f16E40
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
WOOKIES

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 9999 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-11
*/

/**
 *Submitted for verification at Etherscan.io on 2021-05-27
*/

/*
WOLF COOKIES
http://t.me/wolfcookies
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.6.12;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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);
}

contract WOOKIES is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    address[] private _excluded;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = "WOLF COOKIES";
    string private constant _symbol = 'WOOKIES \xF0\x9F\x8D\xAA';
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 5;
    uint256 private _teamFee = 10;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress, address payable marketingWalletAddress) public {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if (from != owner() && to != owner()) {
            if (cooldownEnabled) {
                if (from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router)) {
                    require(_msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair,"ERR: Uniswap only");
                }
            }
            require(amount <= _maxTxAmount);
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
		
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FeeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
    
    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
        
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 4250000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam); 
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);    
        _takeTeam(tTeam);           
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);   
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
        _takeTeam(tTeam);         
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
        
    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

60806040526818ce40f6d0219fffff19600a9081556005600c819055600d829055600e55600f556013805462ffffff60a81b19169055683635c9adc5dea000006014553480156200004f57600080fd5b506040516200261338038062002613833981810160405260408110156200007557600080fd5b50805160209091015160006200008a62000219565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b038085166001600160a01b0319928316179092556011805492841692909116919091179055600a54600260006200011562000219565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600560006200014f6200021d60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600590935281832080548516600190811790915586821684528284208054861682179055908516835291208054909216179055620001bd62000219565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040518082815260200191505060405180910390a350506200022c565b3390565b6000546001600160a01b031690565b6123d7806200023c6000396000f3fe60806040526004361061012d5760003560e01c8063715018a6116100a5578063b515566a11610074578063c9567bf911610059578063c9567bf9146104a7578063d543dbeb146104bc578063dd62ed3e146104e657610134565b8063b515566a146103e2578063c3c8cd801461049257610134565b8063715018a61461034e5780638da5cb5b1461036357806395d89b4114610394578063a9059cbb146103a957610134565b8063273123b7116100fc5780635932ead1116100e15780635932ead1146102da5780636fc3eaec1461030657806370a082311461031b57610134565b8063273123b71461027a578063313ce567146102af57610134565b806306fdde0314610139578063095ea7b3146101c357806318160ddd1461021057806323b872dd1461023757610134565b3661013457005b600080fd5b34801561014557600080fd5b5061014e610521565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610188578181015183820152602001610170565b50505050905090810190601f1680156101b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cf57600080fd5b506101fc600480360360408110156101e657600080fd5b506001600160a01b038135169060200135610558565b604080519115158252519081900360200190f35b34801561021c57600080fd5b50610225610576565b60408051918252519081900360200190f35b34801561024357600080fd5b506101fc6004803603606081101561025a57600080fd5b506001600160a01b03813581169160208101359091169060400135610583565b34801561028657600080fd5b506102ad6004803603602081101561029d57600080fd5b50356001600160a01b031661060a565b005b3480156102bb57600080fd5b506102c46106b3565b6040805160ff9092168252519081900360200190f35b3480156102e657600080fd5b506102ad600480360360208110156102fd57600080fd5b503515156106b8565b34801561031257600080fd5b506102ad61076f565b34801561032757600080fd5b506102256004803603602081101561033e57600080fd5b50356001600160a01b03166107a3565b34801561035a57600080fd5b506102ad61080d565b34801561036f57600080fd5b506103786108d9565b604080516001600160a01b039092168252519081900360200190f35b3480156103a057600080fd5b5061014e6108e8565b3480156103b557600080fd5b506101fc600480360360408110156103cc57600080fd5b506001600160a01b03813516906020013561091f565b3480156103ee57600080fd5b506102ad6004803603602081101561040557600080fd5b81019060208101813564010000000081111561042057600080fd5b82018360208201111561043257600080fd5b8035906020019184602083028401116401000000008311171561045457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610933945050505050565b34801561049e57600080fd5b506102ad610a17565b3480156104b357600080fd5b506102ad610a54565b3480156104c857600080fd5b506102ad600480360360208110156104df57600080fd5b5035610f8c565b3480156104f257600080fd5b506102256004803603604081101561050957600080fd5b506001600160a01b03813581169160200135166110a3565b60408051808201909152600c81527f574f4c4620434f4f4b4945530000000000000000000000000000000000000000602082015290565b600061056c6105656110ce565b84846110d2565b5060015b92915050565b683635c9adc5dea0000090565b60006105908484846111be565b6106008461059c6110ce565b6105fb85604051806060016040528060288152602001612308602891396001600160a01b038a166000908152600460205260408120906105da6110ce565b6001600160a01b0316815260208101919091526040016000205491906115ed565b6110d2565b5060019392505050565b6106126110ce565b6000546001600160a01b03908116911614610674576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0316600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600990565b6106c06110ce565b6000546001600160a01b03908116911614610722576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6013805491151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6010546001600160a01b03166107836110ce565b6001600160a01b03161461079657600080fd5b476107a081611684565b50565b6001600160a01b03811660009081526006602052604081205460ff16156107e357506001600160a01b038116600090815260036020526040902054610808565b6001600160a01b03821660009081526002602052604090205461080590611709565b90505b919050565b6108156110ce565b6000546001600160a01b03908116911614610877576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b031690565b60408051808201909152600c81527f574f4f4b49455320f09f8daa0000000000000000000000000000000000000000602082015290565b600061056c61092c6110ce565b84846111be565b61093b6110ce565b6000546001600160a01b0390811691161461099d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60005b8151811015610a13576001600760008484815181106109bb57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016109a0565b5050565b6010546001600160a01b0316610a2b6110ce565b6001600160a01b031614610a3e57600080fd5b6000610a49306107a3565b90506107a081611769565b610a5c6110ce565b6000546001600160a01b03908116911614610abe576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60135474010000000000000000000000000000000000000000900460ff1615610b2e576040805162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015290519081900360640190fd5b601280547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d9081179182905590610b8f9030906001600160a01b0316683635c9adc5dea000006110d2565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc857600080fd5b505afa158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b5051604080517fad5c464800000000000000000000000000000000000000000000000000000000815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015610c5b57600080fd5b505afa158015610c6f573d6000803e3d6000fd5b505050506040513d6020811015610c8557600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015610cef57600080fd5b505af1158015610d03573d6000803e3d6000fd5b505050506040513d6020811015610d1957600080fd5b5051601380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556012541663f305d7194730610d63816107a3565b600080610d6e6108d9565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b50505050506040513d6060811015610e0457600080fd5b505060138054673afb087b876900006014557fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff9092167601000000000000000000000000000000000000000000001791909116770100000000000000000000000000000000000000000000001716740100000000000000000000000000000000000000001790819055601254604080517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529051919092169163095ea7b39160448083019260209291908290030181600087803b158015610f5d57600080fd5b505af1158015610f71573d6000803e3d6000fd5b505050506040513d6020811015610f8757600080fd5b505050565b610f946110ce565b6000546001600160a01b03908116911614610ff6576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000811161104b576040805162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015290519081900360640190fd5b6110696064611063683635c9adc5dea00000846119b1565b90611a0a565b601481905560408051918252517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9181900360200190a150565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166111175760405162461bcd60e51b815260040180806020018281038252602481526020018061237e6024913960400191505060405180910390fd5b6001600160a01b03821661115c5760405162461bcd60e51b81526004018080602001828103825260228152602001806122c56022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166112035760405162461bcd60e51b81526004018080602001828103825260258152602001806123596025913960400191505060405180910390fd5b6001600160a01b0382166112485760405162461bcd60e51b81526004018080602001828103825260238152602001806122786023913960400191505060405180910390fd5b600081116112875760405162461bcd60e51b81526004018080602001828103825260298152602001806123306029913960400191505060405180910390fd5b61128f6108d9565b6001600160a01b0316836001600160a01b0316141580156112c957506112b36108d9565b6001600160a01b0316826001600160a01b031614155b156115905760135477010000000000000000000000000000000000000000000000900460ff16156113e3576001600160a01b038316301480159061131657506001600160a01b0382163014155b801561133057506012546001600160a01b03848116911614155b801561134a57506012546001600160a01b03838116911614155b156113e3576012546001600160a01b03166113636110ce565b6001600160a01b0316148061139257506013546001600160a01b03166113876110ce565b6001600160a01b0316145b6113e3576040805162461bcd60e51b815260206004820152601160248201527f4552523a20556e6973776170206f6e6c79000000000000000000000000000000604482015290519081900360640190fd5b6014548111156113f257600080fd5b6001600160a01b03831660009081526007602052604090205460ff1615801561143457506001600160a01b03821660009081526007602052604090205460ff16155b61143d57600080fd5b6013546001600160a01b03848116911614801561146857506012546001600160a01b03838116911614155b801561148d57506001600160a01b03821660009081526005602052604090205460ff16155b80156114b6575060135477010000000000000000000000000000000000000000000000900460ff165b156114fe576001600160a01b03821660009081526008602052604090205442116114df57600080fd5b6001600160a01b0382166000908152600860205260409020601e420190555b6000611509306107a3565b6013549091507501000000000000000000000000000000000000000000900460ff1615801561154657506013546001600160a01b03858116911614155b801561156e5750601354760100000000000000000000000000000000000000000000900460ff165b1561158e5761157c81611769565b47801561158c5761158c47611684565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff16806115d257506001600160a01b03831660009081526005602052604090205460ff165b156115db575060005b6115e784848484611a4c565b50505050565b6000818484111561167c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611641578181015183820152602001611629565b50505050905090810190601f16801561166e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6010546001600160a01b03166108fc61169e836002611a0a565b6040518115909202916000818181858888f193505050501580156116c6573d6000803e3d6000fd5b506011546001600160a01b03166108fc6116e1836002611a0a565b6040518115909202916000818181858888f19350505050158015610a13573d6000803e3d6000fd5b6000600a5482111561174c5760405162461bcd60e51b815260040180806020018281038252602a81526020018061229b602a913960400191505060405180910390fd5b6000611756611b68565b90506117628382611a0a565b9392505050565b601380547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604080516002808252606080830184529260208301908036833701905050905030816000815181106117d757fe5b6001600160a01b03928316602091820292909201810191909152601254604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b15801561184457600080fd5b505afa158015611858573d6000803e3d6000fd5b505050506040513d602081101561186e57600080fd5b505181518290600190811061187f57fe5b6001600160a01b0392831660209182029290920101526012546118a591309116846110d2565b6012546040517f791ac947000000000000000000000000000000000000000000000000000000008152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b8381101561194457818101518382015260200161192c565b505050509050019650505050505050600060405180830381600087803b15801561196d57600080fd5b505af1158015611981573d6000803e3d6000fd5b5050601380547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b6000826119c057506000610570565b828202828482816119cd57fe5b04146117625760405162461bcd60e51b81526004018080602001828103825260218152602001806122e76021913960400191505060405180910390fd5b600061176283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b8b565b80611a5957611a59611bf0565b6001600160a01b03841660009081526006602052604090205460ff168015611a9a57506001600160a01b03831660009081526006602052604090205460ff16155b15611aaf57611aaa848484611c22565b611b5b565b6001600160a01b03841660009081526006602052604090205460ff16158015611af057506001600160a01b03831660009081526006602052604090205460ff165b15611b0057611aaa848484611d46565b6001600160a01b03841660009081526006602052604090205460ff168015611b4057506001600160a01b03831660009081526006602052604090205460ff165b15611b5057611aaa848484611def565b611b5b848484611e62565b806115e7576115e7611ea6565b6000806000611b75611eb4565b9092509050611b848282611a0a565b9250505090565b60008183611bda5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611641578181015183820152602001611629565b506000838581611be657fe5b0495945050505050565b600c54158015611c005750600d54155b15611c0a57611c20565b600c8054600e55600d8054600f55600091829055555b565b600080600080600080611c3487612033565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611c669088612090565b6001600160a01b038a16600090815260036020908152604080832093909355600290522054611c959087612090565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611cc490866120d2565b6001600160a01b038916600090815260026020526040902055611ce68161212c565b611cf084836121b4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b600080600080600080611d5887612033565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611d8a9087612090565b6001600160a01b03808b16600090815260026020908152604080832094909455918b16815260039091522054611dc090846120d2565b6001600160a01b038916600090815260036020908152604080832093909355600290522054611cc490866120d2565b600080600080600080611e0187612033565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611e339088612090565b6001600160a01b038a16600090815260036020908152604080832093909355600290522054611d8a9087612090565b600080600080600080611e7487612033565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611c959087612090565b600e54600c55600f54600d55565b600a546000908190683635c9adc5dea00000825b600954811015611ff357826002600060098481548110611ee457fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f495750816003600060098481548110611f2257fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f6757600a54683635c9adc5dea000009450945050505061202f565b611fa76002600060098481548110611f7b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612090565b9250611fe96003600060098481548110611fbd57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612090565b9150600101611ec8565b50600a5461200a90683635c9adc5dea00000611a0a565b82101561202957600a54683635c9adc5dea0000093509350505061202f565b90925090505b9091565b60008060008060008060008060006120508a600c54600d546121d8565b9250925092506000612060611b68565b905060008060006120738e878787612227565b919e509c509a509598509396509194505050505091939550919395565b600061176283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ed565b600082820183811015611762576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000612136611b68565b9050600061214483836119b1565b3060009081526002602052604090205490915061216190826120d2565b3060009081526002602090815260408083209390935560069052205460ff1615610f87573060009081526003602052604090205461219f90846120d2565b30600090815260036020526040902055505050565b600a546121c19083612090565b600a55600b546121d190826120d2565b600b555050565b60008080806121ec606461106389896119b1565b905060006121ff60646110638a896119b1565b90506000612217826122118b86612090565b90612090565b9992985090965090945050505050565b600080808061223688866119b1565b9050600061224488876119b1565b9050600061225288886119b1565b90506000612264826122118686612090565b939b939a5091985091965050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220ec3cc0c43b1afea9b65b7c0f75c5506b44ef7a6bd36ead92a71057342257423a64736f6c634300060c003300000000000000000000000061ed039215f66494498eebb929a3b4efcd05f0c0000000000000000000000000f1ba5702d8cd80b6507bd87e411a439f39c0692e

Deployed Bytecode

0x60806040526004361061012d5760003560e01c8063715018a6116100a5578063b515566a11610074578063c9567bf911610059578063c9567bf9146104a7578063d543dbeb146104bc578063dd62ed3e146104e657610134565b8063b515566a146103e2578063c3c8cd801461049257610134565b8063715018a61461034e5780638da5cb5b1461036357806395d89b4114610394578063a9059cbb146103a957610134565b8063273123b7116100fc5780635932ead1116100e15780635932ead1146102da5780636fc3eaec1461030657806370a082311461031b57610134565b8063273123b71461027a578063313ce567146102af57610134565b806306fdde0314610139578063095ea7b3146101c357806318160ddd1461021057806323b872dd1461023757610134565b3661013457005b600080fd5b34801561014557600080fd5b5061014e610521565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610188578181015183820152602001610170565b50505050905090810190601f1680156101b55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cf57600080fd5b506101fc600480360360408110156101e657600080fd5b506001600160a01b038135169060200135610558565b604080519115158252519081900360200190f35b34801561021c57600080fd5b50610225610576565b60408051918252519081900360200190f35b34801561024357600080fd5b506101fc6004803603606081101561025a57600080fd5b506001600160a01b03813581169160208101359091169060400135610583565b34801561028657600080fd5b506102ad6004803603602081101561029d57600080fd5b50356001600160a01b031661060a565b005b3480156102bb57600080fd5b506102c46106b3565b6040805160ff9092168252519081900360200190f35b3480156102e657600080fd5b506102ad600480360360208110156102fd57600080fd5b503515156106b8565b34801561031257600080fd5b506102ad61076f565b34801561032757600080fd5b506102256004803603602081101561033e57600080fd5b50356001600160a01b03166107a3565b34801561035a57600080fd5b506102ad61080d565b34801561036f57600080fd5b506103786108d9565b604080516001600160a01b039092168252519081900360200190f35b3480156103a057600080fd5b5061014e6108e8565b3480156103b557600080fd5b506101fc600480360360408110156103cc57600080fd5b506001600160a01b03813516906020013561091f565b3480156103ee57600080fd5b506102ad6004803603602081101561040557600080fd5b81019060208101813564010000000081111561042057600080fd5b82018360208201111561043257600080fd5b8035906020019184602083028401116401000000008311171561045457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610933945050505050565b34801561049e57600080fd5b506102ad610a17565b3480156104b357600080fd5b506102ad610a54565b3480156104c857600080fd5b506102ad600480360360208110156104df57600080fd5b5035610f8c565b3480156104f257600080fd5b506102256004803603604081101561050957600080fd5b506001600160a01b03813581169160200135166110a3565b60408051808201909152600c81527f574f4c4620434f4f4b4945530000000000000000000000000000000000000000602082015290565b600061056c6105656110ce565b84846110d2565b5060015b92915050565b683635c9adc5dea0000090565b60006105908484846111be565b6106008461059c6110ce565b6105fb85604051806060016040528060288152602001612308602891396001600160a01b038a166000908152600460205260408120906105da6110ce565b6001600160a01b0316815260208101919091526040016000205491906115ed565b6110d2565b5060019392505050565b6106126110ce565b6000546001600160a01b03908116911614610674576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0316600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600990565b6106c06110ce565b6000546001600160a01b03908116911614610722576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6013805491151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6010546001600160a01b03166107836110ce565b6001600160a01b03161461079657600080fd5b476107a081611684565b50565b6001600160a01b03811660009081526006602052604081205460ff16156107e357506001600160a01b038116600090815260036020526040902054610808565b6001600160a01b03821660009081526002602052604090205461080590611709565b90505b919050565b6108156110ce565b6000546001600160a01b03908116911614610877576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000546001600160a01b031690565b60408051808201909152600c81527f574f4f4b49455320f09f8daa0000000000000000000000000000000000000000602082015290565b600061056c61092c6110ce565b84846111be565b61093b6110ce565b6000546001600160a01b0390811691161461099d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60005b8151811015610a13576001600760008484815181106109bb57fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016109a0565b5050565b6010546001600160a01b0316610a2b6110ce565b6001600160a01b031614610a3e57600080fd5b6000610a49306107a3565b90506107a081611769565b610a5c6110ce565b6000546001600160a01b03908116911614610abe576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60135474010000000000000000000000000000000000000000900460ff1615610b2e576040805162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015290519081900360640190fd5b601280547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d9081179182905590610b8f9030906001600160a01b0316683635c9adc5dea000006110d2565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc857600080fd5b505afa158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b5051604080517fad5c464800000000000000000000000000000000000000000000000000000000815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015610c5b57600080fd5b505afa158015610c6f573d6000803e3d6000fd5b505050506040513d6020811015610c8557600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015610cef57600080fd5b505af1158015610d03573d6000803e3d6000fd5b505050506040513d6020811015610d1957600080fd5b5051601380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556012541663f305d7194730610d63816107a3565b600080610d6e6108d9565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b50505050506040513d6060811015610e0457600080fd5b505060138054673afb087b876900006014557fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff9092167601000000000000000000000000000000000000000000001791909116770100000000000000000000000000000000000000000000001716740100000000000000000000000000000000000000001790819055601254604080517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529051919092169163095ea7b39160448083019260209291908290030181600087803b158015610f5d57600080fd5b505af1158015610f71573d6000803e3d6000fd5b505050506040513d6020811015610f8757600080fd5b505050565b610f946110ce565b6000546001600160a01b03908116911614610ff6576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000811161104b576040805162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e2030000000604482015290519081900360640190fd5b6110696064611063683635c9adc5dea00000846119b1565b90611a0a565b601481905560408051918252517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9181900360200190a150565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166111175760405162461bcd60e51b815260040180806020018281038252602481526020018061237e6024913960400191505060405180910390fd5b6001600160a01b03821661115c5760405162461bcd60e51b81526004018080602001828103825260228152602001806122c56022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166112035760405162461bcd60e51b81526004018080602001828103825260258152602001806123596025913960400191505060405180910390fd5b6001600160a01b0382166112485760405162461bcd60e51b81526004018080602001828103825260238152602001806122786023913960400191505060405180910390fd5b600081116112875760405162461bcd60e51b81526004018080602001828103825260298152602001806123306029913960400191505060405180910390fd5b61128f6108d9565b6001600160a01b0316836001600160a01b0316141580156112c957506112b36108d9565b6001600160a01b0316826001600160a01b031614155b156115905760135477010000000000000000000000000000000000000000000000900460ff16156113e3576001600160a01b038316301480159061131657506001600160a01b0382163014155b801561133057506012546001600160a01b03848116911614155b801561134a57506012546001600160a01b03838116911614155b156113e3576012546001600160a01b03166113636110ce565b6001600160a01b0316148061139257506013546001600160a01b03166113876110ce565b6001600160a01b0316145b6113e3576040805162461bcd60e51b815260206004820152601160248201527f4552523a20556e6973776170206f6e6c79000000000000000000000000000000604482015290519081900360640190fd5b6014548111156113f257600080fd5b6001600160a01b03831660009081526007602052604090205460ff1615801561143457506001600160a01b03821660009081526007602052604090205460ff16155b61143d57600080fd5b6013546001600160a01b03848116911614801561146857506012546001600160a01b03838116911614155b801561148d57506001600160a01b03821660009081526005602052604090205460ff16155b80156114b6575060135477010000000000000000000000000000000000000000000000900460ff165b156114fe576001600160a01b03821660009081526008602052604090205442116114df57600080fd5b6001600160a01b0382166000908152600860205260409020601e420190555b6000611509306107a3565b6013549091507501000000000000000000000000000000000000000000900460ff1615801561154657506013546001600160a01b03858116911614155b801561156e5750601354760100000000000000000000000000000000000000000000900460ff165b1561158e5761157c81611769565b47801561158c5761158c47611684565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff16806115d257506001600160a01b03831660009081526005602052604090205460ff165b156115db575060005b6115e784848484611a4c565b50505050565b6000818484111561167c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611641578181015183820152602001611629565b50505050905090810190601f16801561166e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6010546001600160a01b03166108fc61169e836002611a0a565b6040518115909202916000818181858888f193505050501580156116c6573d6000803e3d6000fd5b506011546001600160a01b03166108fc6116e1836002611a0a565b6040518115909202916000818181858888f19350505050158015610a13573d6000803e3d6000fd5b6000600a5482111561174c5760405162461bcd60e51b815260040180806020018281038252602a81526020018061229b602a913960400191505060405180910390fd5b6000611756611b68565b90506117628382611a0a565b9392505050565b601380547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604080516002808252606080830184529260208301908036833701905050905030816000815181106117d757fe5b6001600160a01b03928316602091820292909201810191909152601254604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b15801561184457600080fd5b505afa158015611858573d6000803e3d6000fd5b505050506040513d602081101561186e57600080fd5b505181518290600190811061187f57fe5b6001600160a01b0392831660209182029290920101526012546118a591309116846110d2565b6012546040517f791ac947000000000000000000000000000000000000000000000000000000008152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b8381101561194457818101518382015260200161192c565b505050509050019650505050505050600060405180830381600087803b15801561196d57600080fd5b505af1158015611981573d6000803e3d6000fd5b5050601380547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b6000826119c057506000610570565b828202828482816119cd57fe5b04146117625760405162461bcd60e51b81526004018080602001828103825260218152602001806122e76021913960400191505060405180910390fd5b600061176283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b8b565b80611a5957611a59611bf0565b6001600160a01b03841660009081526006602052604090205460ff168015611a9a57506001600160a01b03831660009081526006602052604090205460ff16155b15611aaf57611aaa848484611c22565b611b5b565b6001600160a01b03841660009081526006602052604090205460ff16158015611af057506001600160a01b03831660009081526006602052604090205460ff165b15611b0057611aaa848484611d46565b6001600160a01b03841660009081526006602052604090205460ff168015611b4057506001600160a01b03831660009081526006602052604090205460ff165b15611b5057611aaa848484611def565b611b5b848484611e62565b806115e7576115e7611ea6565b6000806000611b75611eb4565b9092509050611b848282611a0a565b9250505090565b60008183611bda5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611641578181015183820152602001611629565b506000838581611be657fe5b0495945050505050565b600c54158015611c005750600d54155b15611c0a57611c20565b600c8054600e55600d8054600f55600091829055555b565b600080600080600080611c3487612033565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611c669088612090565b6001600160a01b038a16600090815260036020908152604080832093909355600290522054611c959087612090565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611cc490866120d2565b6001600160a01b038916600090815260026020526040902055611ce68161212c565b611cf084836121b4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b600080600080600080611d5887612033565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611d8a9087612090565b6001600160a01b03808b16600090815260026020908152604080832094909455918b16815260039091522054611dc090846120d2565b6001600160a01b038916600090815260036020908152604080832093909355600290522054611cc490866120d2565b600080600080600080611e0187612033565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611e339088612090565b6001600160a01b038a16600090815260036020908152604080832093909355600290522054611d8a9087612090565b600080600080600080611e7487612033565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150611c959087612090565b600e54600c55600f54600d55565b600a546000908190683635c9adc5dea00000825b600954811015611ff357826002600060098481548110611ee457fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f495750816003600060098481548110611f2257fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f6757600a54683635c9adc5dea000009450945050505061202f565b611fa76002600060098481548110611f7b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612090565b9250611fe96003600060098481548110611fbd57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612090565b9150600101611ec8565b50600a5461200a90683635c9adc5dea00000611a0a565b82101561202957600a54683635c9adc5dea0000093509350505061202f565b90925090505b9091565b60008060008060008060008060006120508a600c54600d546121d8565b9250925092506000612060611b68565b905060008060006120738e878787612227565b919e509c509a509598509396509194505050505091939550919395565b600061176283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ed565b600082820183811015611762576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000612136611b68565b9050600061214483836119b1565b3060009081526002602052604090205490915061216190826120d2565b3060009081526002602090815260408083209390935560069052205460ff1615610f87573060009081526003602052604090205461219f90846120d2565b30600090815260036020526040902055505050565b600a546121c19083612090565b600a55600b546121d190826120d2565b600b555050565b60008080806121ec606461106389896119b1565b905060006121ff60646110638a896119b1565b90506000612217826122118b86612090565b90612090565b9992985090965090945050505050565b600080808061223688866119b1565b9050600061224488876119b1565b9050600061225288886119b1565b90506000612264826122118686612090565b939b939a5091985091965050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e7345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220ec3cc0c43b1afea9b65b7c0f75c5506b44ef7a6bd36ead92a71057342257423a64736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000061ed039215f66494498eebb929a3b4efcd05f0c0000000000000000000000000f1ba5702d8cd80b6507bd87e411a439f39c0692e

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x61ED039215F66494498EebB929A3B4Efcd05f0c0
Arg [1] : marketingWalletAddress (address): 0xF1BA5702D8cd80B6507Bd87E411A439f39C0692E

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000061ed039215f66494498eebb929a3b4efcd05f0c0
Arg [1] : 000000000000000000000000f1ba5702d8cd80b6507bd87e411a439f39c0692e


Deployed Bytecode Sourcemap

6402:14156:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8490:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9402:161;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9402:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8767:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9571:313;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9571:313:0;;;;;;;;;;;;;;;;;:::i;14699:88::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14699:88:0;-1:-1:-1;;;;;14699:88:0;;:::i;:::-;;8676:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9892:103;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9892:103:0;;;;:::i;13490:190::-;;;;;;;;;;;;;:::i;8870:198::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8870:198:0;-1:-1:-1;;;;;8870:198:0;;:::i;5481:148::-;;;;;;;;;;;;;:::i;5267:79::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;5267:79:0;;;;;;;;;;;;;;8581:87;;;;;;;;;;;;;:::i;9076:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9076:167:0;;;;;;;;:::i;14523:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14523:164:0;;-1:-1:-1;14523:164:0;;-1:-1:-1;;;;;14523:164:0:i;13287:191::-;;;;;;;;;;;;;:::i;13696:815::-;;;;;;;;;;;;;:::i;20300:255::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20300:255:0;;:::i;9251:143::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9251:143:0;;;;;;;;;;:::i;8490:83::-;8560:5;;;;;;;;;;;;;;;;;8490:83;:::o;9402:161::-;9477:4;9494:39;9503:12;:10;:12::i;:::-;9517:7;9526:6;9494:8;:39::i;:::-;-1:-1:-1;9551:4:0;9402:161;;;;;:::o;8767:95::-;7020:21;8767:95;:::o;9571:313::-;9669:4;9686:36;9696:6;9704:9;9715:6;9686:9;:36::i;:::-;9733:121;9742:6;9750:12;:10;:12::i;:::-;9764:89;9802:6;9764:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9764:19:0;;;;;;:11;:19;;;;;;9784:12;:10;:12::i;:::-;-1:-1:-1;;;;;9764:33:0;;;;;;;;;;;;-1:-1:-1;9764:33:0;;;:89;:37;:89::i;:::-;9733:8;:121::i;:::-;-1:-1:-1;9872:4:0;9571:313;;;;;:::o;14699:88::-;5404:12;:10;:12::i;:::-;5394:6;;-1:-1:-1;;;;;5394:6:0;;;:22;;;5386:67;;;;;-1:-1:-1;;;5386:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14759:12:0::1;14774:5;14759:12:::0;;;:4:::1;:12;::::0;;;;:20;;;::::1;::::0;;14699:88::o;8676:83::-;7292:1;8676:83;:::o;9892:103::-;5404:12;:10;:12::i;:::-;5394:6;;-1:-1:-1;;;;;5394:6:0;;;:22;;;5386:67;;;;;-1:-1:-1;;;5386:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9964:15:::1;:23:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;9892:103::o;13490:190::-;13556:11;;-1:-1:-1;;;;;13556:11:0;13540:12;:10;:12::i;:::-;-1:-1:-1;;;;;13540:27:0;;13532:36;;;;;;13608:21;13640:32;13608:21;13640:12;:32::i;:::-;13490:190;:::o;8870:198::-;-1:-1:-1;;;;;8960:20:0;;8936:7;8960:20;;;:11;:20;;;;;;;;8956:49;;;-1:-1:-1;;;;;;8989:16:0;;;;;;:7;:16;;;;;;8982:23;;8956:49;-1:-1:-1;;;;;9043:16:0;;;;;;:7;:16;;;;;;9023:37;;:19;:37::i;:::-;9016:44;;8870:198;;;;:::o;5481:148::-;5404:12;:10;:12::i;:::-;5394:6;;-1:-1:-1;;;;;5394:6:0;;;:22;;;5386:67;;;;;-1:-1:-1;;;5386:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5588:1:::1;5572:6:::0;;5551:40:::1;::::0;-1:-1:-1;;;;;5572:6:0;;::::1;::::0;5551:40:::1;::::0;5588:1;;5551:40:::1;5619:1;5602:19:::0;;;::::1;::::0;;5481:148::o;5267:79::-;5305:7;5332:6;-1:-1:-1;;;;;5332:6:0;5267:79;:::o;8581:87::-;8653:7;;;;;;;;;;;;;;;;;8581:87;:::o;9076:167::-;9154:4;9171:42;9181:12;:10;:12::i;:::-;9195:9;9206:6;9171:9;:42::i;14523:164::-;5404:12;:10;:12::i;:::-;5394:6;;-1:-1:-1;;;;;5394:6:0;;;:22;;;5386:67;;;;;-1:-1:-1;;;5386:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14597:6:::1;14592:88;14613:5;:12;14609:1;:16;14592:88;;;14664:4;14647;:14;14652:5;14658:1;14652:8;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14647:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14647:14:0;:21;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;14627:3:0::1;14592:88;;;;14523:164:::0;:::o;13287:191::-;13353:11;;-1:-1:-1;;;;;13353:11:0;13337:12;:10;:12::i;:::-;-1:-1:-1;;;;;13337:27:0;;13329:36;;;;;;13376:23;13402:24;13420:4;13402:9;:24::i;:::-;13376:50;;13437:33;13454:15;13437:16;:33::i;13696:815::-;5404:12;:10;:12::i;:::-;5394:6;;-1:-1:-1;;;;;5394:6:0;;;:22;;;5386:67;;;;;-1:-1:-1;;;5386:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13760:11:::1;::::0;;;::::1;;;13759:12;13751:47;;;::::0;;-1:-1:-1;;;13751:47:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13920:15;:34:::0;;;::::1;13866:42;13920:34:::0;;::::1;::::0;;;;13866:42;13965:58:::1;::::0;13982:4:::1;::::0;-1:-1:-1;;;;;13997:15:0::1;7020:21;13965:8;:58::i;:::-;14068:16;-1:-1:-1::0;;;;;14068:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14068:26:0;14122:23:::1;::::0;;;;;;;-1:-1:-1;;;;;14050:56:0;;::::1;::::0;::::1;::::0;14115:4:::1;::::0;14122:21;;::::1;::::0;::::1;::::0;:23:::1;::::0;;::::1;::::0;14068:26:::1;::::0;14122:23;;;;;;;;:21;:23;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14122:23:0;14050:96:::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;;;14050:96:0;;::::1;;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;14122:23:::1;::::0;14050:96;;;;;;;-1:-1:-1;14050:96:0;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14050:96:0;14034:13:::1;:112:::0;;;::::1;-1:-1:-1::0;;;;;14034:112:0;;::::1;;::::0;;14157:15:::1;::::0;::::1;:31;14196:21;14227:4;14233:24;14227:4:::0;14233:9:::1;:24::i;:::-;14258:1;14260::::0;14262:7:::1;:5;:7::i;:::-;14270:15;14157:129;;;;;;;;;;;;;-1:-1:-1::0;;;;;14157:129:0::1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;14157:129:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;14297:11:0::1;:18:::0;;14374::::1;14359:12;:33:::0;14403:18;14326:22;14297:18;;;::::1;::::0;::::1;14326:22:::0;;;::::1;::::0;::::1;14403:18;::::0;::::1;::::0;;;;14470:15:::1;::::0;14157:129;14432:71;;;;;-1:-1:-1;;;;;14470:15:0;;::::1;14432:71;::::0;::::1;::::0;-1:-1:-1;14432:71:0;;;;;;14439:13;;;::::1;::::0;14432:29:::1;::::0;:71;;;;;14157:129:::1;::::0;14432:71;;;;;;;14297:18;14439:13;14432:71;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;13696:815:0:o;20300:255::-;5404:12;:10;:12::i;:::-;5394:6;;-1:-1:-1;;;;;5394:6:0;;;:22;;;5386:67;;;;;-1:-1:-1;;;5386:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20402:1:::1;20387:12;:16;20379:58;;;::::0;;-1:-1:-1;;;20379:58:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;20463:36;20493:5;20463:25;7020:21;20475:12:::0;20463:11:::1;:25::i;:::-;:29:::0;::::1;:36::i;:::-;20448:12;:51:::0;;;20515:32:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;20300:255:::0;:::o;9251:143::-;-1:-1:-1;;;;;9359:18:0;;;9332:7;9359:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9251:143::o;221:106::-;309:10;221:106;:::o;10610:335::-;-1:-1:-1;;;;;10703:19:0;;10695:68;;;;-1:-1:-1;;;10695:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10782:21:0;;10774:68;;;;-1:-1:-1;;;10774:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10853:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10905:32;;;;;;;;;;;;;;;;;10610:335;;;:::o;10953:1657::-;-1:-1:-1;;;;;11041:18:0;;11033:68;;;;-1:-1:-1;;;11033:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11120:16:0;;11112:64;;;;-1:-1:-1;;;11112:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11204:1;11195:6;:10;11187:64;;;;-1:-1:-1;;;11187:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11284:7;:5;:7::i;:::-;-1:-1:-1;;;;;11276:15:0;:4;-1:-1:-1;;;;;11276:15:0;;;:32;;;;;11301:7;:5;:7::i;:::-;-1:-1:-1;;;;;11295:13:0;:2;-1:-1:-1;;;;;11295:13:0;;;11276:32;11272:1140;;;11329:15;;;;;;;11325:320;;;-1:-1:-1;;;;;11369:21:0;;11385:4;11369:21;;;;:44;;-1:-1:-1;;;;;;11394:19:0;;11408:4;11394:19;;11369:44;:80;;;;-1:-1:-1;11433:15:0;;-1:-1:-1;;;;;11417:32:0;;;11433:15;;11417:32;;11369:80;:114;;;;-1:-1:-1;11467:15:0;;-1:-1:-1;;;;;11453:30:0;;;11467:15;;11453:30;;11369:114;11365:265;;;11540:15;;-1:-1:-1;;;;;11540:15:0;11516:12;:10;:12::i;:::-;-1:-1:-1;;;;;11516:40:0;;:73;;;-1:-1:-1;11576:13:0;;-1:-1:-1;;;;;11576:13:0;11560:12;:10;:12::i;:::-;-1:-1:-1;;;;;11560:29:0;;11516:73;11508:102;;;;;-1:-1:-1;;;11508:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11677:12;;11667:6;:22;;11659:31;;;;;;-1:-1:-1;;;;;11714:10:0;;;;;;:4;:10;;;;;;;;11713:11;:24;;;;-1:-1:-1;;;;;;11729:8:0;;;;;;:4;:8;;;;;;;;11728:9;11713:24;11705:33;;;;;;11765:13;;-1:-1:-1;;;;;11757:21:0;;;11765:13;;11757:21;:55;;;;-1:-1:-1;11796:15:0;;-1:-1:-1;;;;;11782:30:0;;;11796:15;;11782:30;;11757:55;:83;;;;-1:-1:-1;;;;;;11818:22:0;;;;;;:18;:22;;;;;;;;11816:24;11757:83;:102;;;;-1:-1:-1;11844:15:0;;;;;;;11757:102;11753:246;;;-1:-1:-1;;;;;11888:12:0;;;;;;:8;:12;;;;;;11903:15;-1:-1:-1;11880:39:0;;;;;;-1:-1:-1;;;;;11938:12:0;;;;;;:8;:12;;;;;11972:10;11953:15;:30;11938:45;;11753:246;12013:28;12044:24;12062:4;12044:9;:24::i;:::-;12088:6;;12013:55;;-1:-1:-1;12088:6:0;;;;;12087:7;:32;;;;-1:-1:-1;12106:13:0;;-1:-1:-1;;;;;12098:21:0;;;12106:13;;12098:21;;12087:32;:47;;;;-1:-1:-1;12123:11:0;;;;;;;12087:47;12083:318;;;12155:38;12172:20;12155:16;:38::i;:::-;12241:21;12284:22;;12281:105;;12331:35;12344:21;12331:12;:35::i;:::-;12083:318;;11272:1140;;-1:-1:-1;;;;;12457:24:0;;12422:12;12457:24;;;:18;:24;;;;;;12437:4;;12457:24;;;:50;;-1:-1:-1;;;;;;12485:22:0;;;;;;:18;:22;;;;;;;;12457:50;12454:96;;;-1:-1:-1;12533:5:0;12454:96;12564:38;12579:4;12584:2;12587:6;12594:7;12564:14;:38::i;:::-;10953:1657;;;;:::o;1488:190::-;1574:7;1610:12;1602:6;;;;1594:29;;;;-1:-1:-1;;;1594:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1646:5:0;;;1488:190::o;13117:158::-;13174:11;;-1:-1:-1;;;;;13174:11:0;:35;13195:13;:6;13206:1;13195:10;:13::i;:::-;13174:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13220:23:0;;-1:-1:-1;;;;;13220:23:0;:47;13253:13;:6;13264:1;13253:10;:13::i;:::-;13220:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10003:254;10070:7;10109;;10098;:18;;10090:73;;;;-1:-1:-1;;;10090:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10174:19;10197:10;:8;:10::i;:::-;10174:33;-1:-1:-1;10225:24:0;:7;10174:33;10225:11;:24::i;:::-;10218:31;10003:254;-1:-1:-1;;;10003:254:0:o;12618:483::-;7923:6;:13;;;;;;;;12720:16:::1;::::0;;12734:1:::1;12720:16:::0;;;12696:21:::1;12720:16:::0;;::::1;::::0;;12696:21;12720:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12720:16:0::1;12696:40;;12765:4;12747;12752:1;12747:7;;;;;;;;-1:-1:-1::0;;;;;12747:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12791:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12747:7;;12791:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12791:22:0;12781:7;;:4;;12786:1:::1;::::0;12781:7;::::1;;;;;-1:-1:-1::0;;;;;12781:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12856:15:::1;::::0;12824:62:::1;::::0;12841:4:::1;::::0;12856:15:::1;12874:11:::0;12824:8:::1;:62::i;:::-;12897:15;::::0;:196:::1;::::0;;;;::::1;::::0;::::1;::::0;;;:15:::1;:196:::0;;;;;;13047:4:::1;12897:196:::0;;;;;;13067:15:::1;12897:196:::0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12897:15:0;;::::1;::::0;:66:::1;::::0;12978:11;;13020:4;;13047;13067:15;12897:196;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:15;:196:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7959:6:0;:14;;;;;;-1:-1:-1;;;;12618:483:0:o;1686:246::-;1744:7;1768:6;1764:47;;-1:-1:-1;1798:1:0;1791:8;;1764:47;1833:5;;;1837:1;1833;:5;:1;1857:5;;;;;:10;1849:56;;;;-1:-1:-1;;;1849:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1940:132;1998:7;2025:39;2029:1;2032;2025:39;;;;;;;;;;;;;;;;;:3;:39::i;14803:685::-;14915:7;14911:40;;14937:14;:12;:14::i;:::-;-1:-1:-1;;;;;14966:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;14990:22:0;;;;;;:11;:22;;;;;;;;14989:23;14966:46;14962:467;;;15029:48;15051:6;15059:9;15070:6;15029:21;:48::i;:::-;14962:467;;;-1:-1:-1;;;;;15100:19:0;;;;;;:11;:19;;;;;;;;15099:20;:46;;;;-1:-1:-1;;;;;;15123:22:0;;;;;;:11;:22;;;;;;;;15099:46;15095:334;;;15162:46;15182:6;15190:9;15201:6;15162:19;:46::i;15095:334::-;-1:-1:-1;;;;;15230:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;15253:22:0;;;;;;:11;:22;;;;;;;;15230:45;15226:203;;;15292:48;15314:6;15322:9;15333:6;15292:21;:48::i;15226:203::-;15373:44;15391:6;15399:9;15410:6;15373:17;:44::i;:::-;15443:7;15439:41;;15465:15;:13;:15::i;19552:163::-;19593:7;19614:15;19631;19650:19;:17;:19::i;:::-;19613:56;;-1:-1:-1;19613:56:0;-1:-1:-1;19687:20:0;19613:56;;19687:11;:20::i;:::-;19680:27;;;;19552:163;:::o;2080:189::-;2166:7;2201:12;2194:5;2186:28;;;;-1:-1:-1;;;2186:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:9;2241:1;2237;:5;;;;;;;2080:189;-1:-1:-1;;;;;2080:189:0:o;10265:210::-;10311:7;;:12;:29;;;;-1:-1:-1;10327:8:0;;:13;10311:29;10308:41;;;10342:7;;10308:41;10377:7;;;10359:15;:25;10414:8;;;10395:16;:27;-1:-1:-1;10433:11:0;;;;10455:12;10265:210;:::o;16576:552::-;16679:15;16696:23;16721:12;16735:23;16760:12;16774:13;16791:19;16802:7;16791:10;:19::i;:::-;-1:-1:-1;;;;;16839:15:0;;;;;;:7;:15;;;;;;16678:132;;-1:-1:-1;16678:132:0;;-1:-1:-1;16678:132:0;;-1:-1:-1;16678:132:0;-1:-1:-1;16678:132:0;-1:-1:-1;16678:132:0;-1:-1:-1;16839:28:0;;16859:7;16839:19;:28::i;:::-;-1:-1:-1;;;;;16821:15:0;;;;;;:7;:15;;;;;;;;:46;;;;16896:7;:15;;;;:28;;16916:7;16896:19;:28::i;:::-;-1:-1:-1;;;;;16878:15:0;;;;;;;:7;:15;;;;;;:46;;;;16956:18;;;;;;;:39;;16979:15;16956:22;:39::i;:::-;-1:-1:-1;;;;;16935:18:0;;;;;;:7;:18;;;;;:60;17007:16;17017:5;17007:9;:16::i;:::-;17037:23;17049:4;17055;17037:11;:23::i;:::-;17093:9;-1:-1:-1;;;;;17076:44:0;17085:6;-1:-1:-1;;;;;17076:44:0;;17104:15;17076:44;;;;;;;;;;;;;;;;;;16576:552;;;;;;;;;:::o;15993:575::-;16094:15;16111:23;16136:12;16150:23;16175:12;16189:13;16206:19;16217:7;16206:10;:19::i;:::-;-1:-1:-1;;;;;16254:15:0;;;;;;:7;:15;;;;;;16093:132;;-1:-1:-1;16093:132:0;;-1:-1:-1;16093:132:0;;-1:-1:-1;16093:132:0;-1:-1:-1;16093:132:0;-1:-1:-1;16093:132:0;-1:-1:-1;16254:28:0;;16093:132;16254:19;:28::i;:::-;-1:-1:-1;;;;;16236:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;16314:18;;;;;:7;:18;;;;;:39;;16337:15;16314:22;:39::i;:::-;-1:-1:-1;;;;;16293:18:0;;;;;;:7;:18;;;;;;;;:60;;;;16385:7;:18;;;;:39;;16408:15;16385:22;:39::i;17136:631::-;17239:15;17256:23;17281:12;17295:23;17320:12;17334:13;17351:19;17362:7;17351:10;:19::i;:::-;-1:-1:-1;;;;;17399:15:0;;;;;;:7;:15;;;;;;17238:132;;-1:-1:-1;17238:132:0;;-1:-1:-1;17238:132:0;;-1:-1:-1;17238:132:0;-1:-1:-1;17238:132:0;-1:-1:-1;17238:132:0;-1:-1:-1;17399:28:0;;17419:7;17399:19;:28::i;:::-;-1:-1:-1;;;;;17381:15:0;;;;;;:7;:15;;;;;;;;:46;;;;17456:7;:15;;;;:28;;17476:7;17456:19;:28::i;15496:489::-;15595:15;15612:23;15637:12;15651:23;15676:12;15690:13;15707:19;15718:7;15707:10;:19::i;:::-;-1:-1:-1;;;;;15755:15:0;;;;;;:7;:15;;;;;;15594:132;;-1:-1:-1;15594:132:0;;-1:-1:-1;15594:132:0;;-1:-1:-1;15594:132:0;-1:-1:-1;15594:132:0;-1:-1:-1;15594:132:0;-1:-1:-1;15755:28:0;;15594:132;15755:19;:28::i;10487:115::-;10541:15;;10531:7;:25;10578:16;;10567:8;:27;10487:115::o;19723:561::-;19820:7;;19773;;;;7020:21;19773:7;19880:289;19904:9;:16;19900:20;;19880:289;;;19970:7;19946;:21;19954:9;19964:1;19954:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19954:12:0;19946:21;;;;;;;;;;;;;:31;;:66;;;20005:7;19981;:21;19989:9;19999:1;19989:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19989:12:0;19981:21;;;;;;;;;;;;;:31;19946:66;19942:97;;;20022:7;;7020:21;20014:25;;;;;;;;;19942:97;20064:34;20076:7;:21;20084:9;20094:1;20084:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20084:12:0;20076:21;;;;;;;;;;;;;20064:7;;:11;:34::i;:::-;20054:44;;20123:34;20135:7;:21;20143:9;20153:1;20143:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20143:12:0;20135:21;;;;;;;;;;;;;20123:7;;:11;:34::i;:::-;20113:44;-1:-1:-1;19922:3:0;;19880:289;;;-1:-1:-1;20193:7:0;;:20;;7020:21;20193:11;:20::i;:::-;20183:7;:30;20179:61;;;20223:7;;7020:21;20215:25;;;;;;;;20179:61;20259:7;;-1:-1:-1;20268:7:0;-1:-1:-1;19723:561:0;;;:::o;18300:468::-;18359:7;18368;18377;18386;18395;18404;18425:23;18450:12;18464:13;18481:39;18493:7;18502;;18511:8;;18481:11;:39::i;:::-;18424:96;;;;;;18531:19;18554:10;:8;:10::i;:::-;18531:33;;18576:15;18593:23;18618:12;18634:46;18646:7;18655:4;18661:5;18668:11;18634;:46::i;:::-;18575:105;;-1:-1:-1;18575:105:0;-1:-1:-1;18575:105:0;-1:-1:-1;18731:15:0;;-1:-1:-1;18748:4:0;;-1:-1:-1;18754:5:0;;-1:-1:-1;;;;;18300:468:0;;;;;;;:::o;1344:136::-;1402:7;1429:43;1433:1;1436;1429:43;;;;;;;;;;;;;;;;;:3;:43::i;1157:179::-;1215:7;1247:5;;;1271:6;;;;1263:46;;;;;-1:-1:-1;;;1263:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17775:325;17828:19;17851:10;:8;:10::i;:::-;17828:33;-1:-1:-1;17872:13:0;17888:22;:5;17828:33;17888:9;:22::i;:::-;17962:4;17946:22;;;;:7;:22;;;;;;17872:38;;-1:-1:-1;17946:33:0;;17872:38;17946:26;:33::i;:::-;17937:4;17921:22;;;;:7;:22;;;;;;;;:58;;;;17993:11;:26;;;;;;17990:102;;;18075:4;18059:22;;;;:7;:22;;;;;;:33;;18086:5;18059:26;:33::i;:::-;18050:4;18034:22;;;;:7;:22;;;;;:58;17775:325;;;:::o;18108:147::-;18186:7;;:17;;18198:4;18186:11;:17::i;:::-;18176:7;:27;18227:10;;:20;;18242:4;18227:14;:20::i;:::-;18214:10;:33;-1:-1:-1;;18108:147:0:o;18776:351::-;18869:7;;;;18922:28;18946:3;18922:19;:7;18934:6;18922:11;:19::i;:28::-;18907:43;-1:-1:-1;18961:13:0;18977:29;19002:3;18977:20;:7;18989;18977:11;:20::i;:29::-;18961:45;-1:-1:-1;19017:23:0;19043:28;18961:45;19043:17;:7;19055:4;19043:11;:17::i;:::-;:21;;:28::i;:::-;19017:54;19107:4;;-1:-1:-1;19113:5:0;;-1:-1:-1;18776:351:0;;-1:-1:-1;;;;;18776:351:0:o;19135:409::-;19245:7;;;;19301:24;:7;19313:11;19301;:24::i;:::-;19283:42;-1:-1:-1;19336:12:0;19351:21;:4;19360:11;19351:8;:21::i;:::-;19336:36;-1:-1:-1;19383:13:0;19399:22;:5;19409:11;19399:9;:22::i;:::-;19383:38;-1:-1:-1;19432:23:0;19458:28;19383:38;19458:17;:7;19470:4;19458:11;:17::i;:28::-;19505:7;;;;-1:-1:-1;19531:4:0;;-1:-1:-1;19135:409:0;;-1:-1:-1;;;;;;;19135:409:0:o

Swarm Source

ipfs://ec3cc0c43b1afea9b65b7c0f75c5506b44ef7a6bd36ead92a71057342257423a
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.