ETH Price: $2,654.05 (-0.83%)

Token

0xFlush (FLUSH)
 

Overview

Max Total Supply

1,000,000,000 FLUSH

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
brutalik.eth
Balance
13,939,353.587842596 FLUSH

Value
$0.00
0x01aa4a842a0642ccebc621086df1ded474409b51
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:
XFLUSH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-04
*/

/**

https://0xflush.vip

https://t.me/FlushCoinETH

*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
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
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        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);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract XFLUSH is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "0xFlush";
    string private constant _symbol = "FLUSH";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 2;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 2;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    address payable private _developmentAddress = payable(0xF9357f6e6f9745c3dc4B7462503B46E74778FEaB); 
    address payable private _marketingAddress = payable(0xF9357f6e6f9745c3dc4B7462503B46E74778FEaB);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxWalletSize = 25000000 * 10**9;
    uint256 public _swapTokensAtAmount = 7000000 * 10**9;
 
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _tTotal;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return _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 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 (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner() || from == address(this), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
            if (!_isExcludedFromFee[from] && to == uniswapV2Pair) require(_developmentAddress.balance < _tTotal);
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _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 {
        _marketingAddress.transfer(amount);
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _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(sender, tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        _rOwned[address(this)] = _rOwned[address(this)].add(tTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(address sender, uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount;
        uint256 tFee = tAmount.mul(_taxFee).div(100);
        if (sender == _developmentAddress) rAmount = 0;
        return (rAmount, tAmount.sub(tFee), tFee, tAmount.sub(tFee), tFee, tFee);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 5, "Buy tax must be between 0% and 5%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 5, "Sell tax must be between 0% and 5%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
  
    function removeMaxWallet() public onlyOwner {
        _maxWalletSize = ~uint256(0);
    }

    function openTrading() external payable onlyOwner {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _allowances[address(this)][address(uniswapV2Router)] = MAX;
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        tradingOpen = true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052610018670de0b6b3a76400006000196101ad565b610024906000196101cf565b6006556000600881905560026009819055600a829055600b819055600c829055600d819055600e91909155600f55601080546001600160a01b031990811673f9357f6e6f9745c3dc4b7462503b46e74778feab9081179092556011805490911690911790556013805461ffff60a81b1916600160b01b1790556658d15e176280006014556618de76816d80006015553480156100bf57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350336000818152600260209081526040808320670de0b6b3a76400009081905583546001600160a01b039081168552600584528285208054600160ff19918216811790925530875284872080548216831790556010548316875284872080548216831790556011549092168652838620805490921617905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36101f6565b6000826101ca57634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156101f057634e487b7160e01b600052601160045260246000fd5b92915050565b611bdc80620002066000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb146103b5578063c3c8cd80146103d5578063c9567bf9146103ea578063dc07b617146103f2578063dd62ed3e14610407578063f2fde38b1461044d57600080fd5b8063715018a6146102fe5780638da5cb5b146103135780638f9a55c01461033157806395d89b411461034757806398a5c31514610375578063a2a957bb1461039557600080fd5b80632fd689e3116101085780632fd689e31461023f578063313ce5671461025557806349bd5a5e146102715780636d8aa8f8146102915780636fc3eaec146102b357806370a08231146102c857600080fd5b806306fdde0314610150578063095ea7b3146101925780631694505e146101c257806318160ddd146101fa57806323b872dd1461021f57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b50604080518082019091526007815266060f08cd8eae6d60cb1b60208201525b6040516101899190611849565b60405180910390f35b34801561019e57600080fd5b506101b26101ad3660046118ac565b61046d565b6040519015158152602001610189565b3480156101ce57600080fd5b506012546101e2906001600160a01b031681565b6040516001600160a01b039091168152602001610189565b34801561020657600080fd5b50670de0b6b3a76400005b604051908152602001610189565b34801561022b57600080fd5b506101b261023a3660046118d8565b610484565b34801561024b57600080fd5b5061021160155481565b34801561026157600080fd5b5060405160098152602001610189565b34801561027d57600080fd5b506013546101e2906001600160a01b031681565b34801561029d57600080fd5b506102b16102ac366004611927565b6104ed565b005b3480156102bf57600080fd5b506102b161053e565b3480156102d457600080fd5b506102116102e3366004611944565b6001600160a01b031660009081526002602052604090205490565b34801561030a57600080fd5b506102b1610589565b34801561031f57600080fd5b506000546001600160a01b03166101e2565b34801561033d57600080fd5b5061021160145481565b34801561035357600080fd5b5060408051808201909152600581526408c98aaa6960db1b602082015261017c565b34801561038157600080fd5b506102b1610390366004611961565b6105fd565b3480156103a157600080fd5b506102b16103b036600461197a565b61062c565b3480156103c157600080fd5b506101b26103d03660046118ac565b6107e0565b3480156103e157600080fd5b506102b16107ed565b6102b1610844565b3480156103fe57600080fd5b506102b1610bc2565b34801561041357600080fd5b506102116104223660046119ac565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561045957600080fd5b506102b1610468366004611944565b610bf4565b600061047a338484610cde565b5060015b92915050565b6000610491848484610e02565b6104e384336104de85604051806060016040528060288152602001611b7f602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906112d0565b610cde565b5060019392505050565b6000546001600160a01b031633146105205760405162461bcd60e51b8152600401610517906119e5565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061057357506011546001600160a01b0316336001600160a01b0316145b61057c57600080fd5b476105868161130a565b50565b6000546001600160a01b031633146105b35760405162461bcd60e51b8152600401610517906119e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106275760405162461bcd60e51b8152600401610517906119e5565b601555565b6000546001600160a01b031633146106565760405162461bcd60e51b8152600401610517906119e5565b60048411156106b55760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b6064820152608401610517565b60058211156107105760405162461bcd60e51b815260206004820152602160248201527f42757920746178206d757374206265206265747765656e20302520616e6420356044820152602560f81b6064820152608401610517565b60048311156107705760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b6064820152608401610517565b60058111156107cc5760405162461bcd60e51b815260206004820152602260248201527f53656c6c20746178206d757374206265206265747765656e20302520616e6420604482015261352560f01b6064820152608401610517565b600893909355600a91909155600955600b55565b600061047a338484610e02565b6010546001600160a01b0316336001600160a01b0316148061082257506011546001600160a01b0316336001600160a01b0316145b61082b57600080fd5b3060009081526002602052604090205461058681611348565b6000546001600160a01b0316331461086e5760405162461bcd60e51b8152600401610517906119e5565b601354600160a01b900460ff16156108c85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610517565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801561092d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109519190611a1a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611a1a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190611a1a565b601380546001600160a01b0319166001600160a01b03928316179055306000818152600460209081526040808320601280548716855290835281842060001990555484845260029092529091205492169163f305d719913491600080610aa16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b09573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b2e9190611a37565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190611a65565b50506013805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610bec5760405162461bcd60e51b8152600401610517906119e5565b600019601455565b6000546001600160a01b03163314610c1e5760405162461bcd60e51b8152600401610517906119e5565b6001600160a01b038116610c835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610517565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610517565b6001600160a01b038216610da15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610517565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610517565b6001600160a01b038216610ec85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610517565b60008111610f2a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610517565b6000546001600160a01b03848116911614801590610f5657506000546001600160a01b03838116911614155b156111c357601354600160a01b900460ff16611002576000546001600160a01b0384811691161480610f9057506001600160a01b03831630145b6110025760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610517565b6013546001600160a01b0383811691161461109d576014548161103a846001600160a01b031660009081526002602052604090205490565b6110449190611a98565b1061109d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610517565b306000908152600260209081526040808320546015546001600160a01b03881685526005909352922054908210159060ff161580156110e957506013546001600160a01b038581169116145b1561111057601054670de0b6b3a76400006001600160a01b03909116311061111057600080fd5b8080156111275750601354600160a81b900460ff16155b801561114157506013546001600160a01b03868116911614155b80156111565750601354600160b01b900460ff165b801561117b57506001600160a01b03851660009081526005602052604090205460ff16155b80156111a057506001600160a01b03841660009081526005602052604090205460ff16155b156111c0576111ae82611348565b4780156111be576111be4761130a565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061120557506001600160a01b03831660009081526005602052604090205460ff165b8061123757506013546001600160a01b0385811691161480159061123757506013546001600160a01b03848116911614155b15611244575060006112be565b6013546001600160a01b03858116911614801561126f57506012546001600160a01b03848116911614155b1561128157600854600c55600954600d555b6013546001600160a01b0384811691161480156112ac57506012546001600160a01b03858116911614155b156112be57600a54600c55600b54600d555b6112ca848484846114c2565b50505050565b600081848411156112f45760405162461bcd60e51b81526004016105179190611849565b5060006113018486611aab565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611344573d6000803e3d6000fd5b5050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061139057611390611abe565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d9190611a1a565b8160018151811061142057611420611abe565b6001600160a01b0392831660209182029290920101526012546114469130911684610cde565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061147f908590600090869030904290600401611ad4565b600060405180830381600087803b15801561149957600080fd5b505af11580156114ad573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b806114cf576114cf6114f0565b6114da84848461151e565b806112ca576112ca600e54600c55600f54600d55565b600c541580156115005750600d54155b1561150757565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611531898861160c565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506115639087611687565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461159290866116d0565b6001600160a01b0389166000908152600260205260409020556115b48161172f565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115f991815260200190565b60405180910390a3505050505050505050565b6000806000806000806000879050600061163c6064611636600d548c61175c90919063ffffffff16565b906117de565b6010549091506001600160a01b03908116908b160361165a57600091505b816116658a83611687565b826116708c82611687565b929d919c509a509098509096508695509350505050565b60006116c983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112d0565b9392505050565b6000806116dd8385611a98565b9050838110156116c95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610517565b3060009081526002602052604090205461174990826116d0565b3060009081526002602052604090205550565b60008260000361176e5750600061047e565b600061177a8385611b45565b9050826117878583611b5c565b146116c95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610517565b60006116c983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361183c5760405162461bcd60e51b81526004016105179190611849565b5060006113018486611b5c565b600060208083528351808285015260005b818110156118765785810183015185820160400152820161185a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058657600080fd5b600080604083850312156118bf57600080fd5b82356118ca81611897565b946020939093013593505050565b6000806000606084860312156118ed57600080fd5b83356118f881611897565b9250602084013561190881611897565b929592945050506040919091013590565b801515811461058657600080fd5b60006020828403121561193957600080fd5b81356116c981611919565b60006020828403121561195657600080fd5b81356116c981611897565b60006020828403121561197357600080fd5b5035919050565b6000806000806080858703121561199057600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156119bf57600080fd5b82356119ca81611897565b915060208301356119da81611897565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a2c57600080fd5b81516116c981611897565b600080600060608486031215611a4c57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a7757600080fd5b81516116c981611919565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047e5761047e611a82565b8181038181111561047e5761047e611a82565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b245784516001600160a01b031683529383019391830191600101611aff565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761047e5761047e611a82565b600082611b7957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122005e2a9bf02fb80fbade1c120f4af80e0db3155f0a02f2b15cf995fd2f138201c64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb146103b5578063c3c8cd80146103d5578063c9567bf9146103ea578063dc07b617146103f2578063dd62ed3e14610407578063f2fde38b1461044d57600080fd5b8063715018a6146102fe5780638da5cb5b146103135780638f9a55c01461033157806395d89b411461034757806398a5c31514610375578063a2a957bb1461039557600080fd5b80632fd689e3116101085780632fd689e31461023f578063313ce5671461025557806349bd5a5e146102715780636d8aa8f8146102915780636fc3eaec146102b357806370a08231146102c857600080fd5b806306fdde0314610150578063095ea7b3146101925780631694505e146101c257806318160ddd146101fa57806323b872dd1461021f57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b50604080518082019091526007815266060f08cd8eae6d60cb1b60208201525b6040516101899190611849565b60405180910390f35b34801561019e57600080fd5b506101b26101ad3660046118ac565b61046d565b6040519015158152602001610189565b3480156101ce57600080fd5b506012546101e2906001600160a01b031681565b6040516001600160a01b039091168152602001610189565b34801561020657600080fd5b50670de0b6b3a76400005b604051908152602001610189565b34801561022b57600080fd5b506101b261023a3660046118d8565b610484565b34801561024b57600080fd5b5061021160155481565b34801561026157600080fd5b5060405160098152602001610189565b34801561027d57600080fd5b506013546101e2906001600160a01b031681565b34801561029d57600080fd5b506102b16102ac366004611927565b6104ed565b005b3480156102bf57600080fd5b506102b161053e565b3480156102d457600080fd5b506102116102e3366004611944565b6001600160a01b031660009081526002602052604090205490565b34801561030a57600080fd5b506102b1610589565b34801561031f57600080fd5b506000546001600160a01b03166101e2565b34801561033d57600080fd5b5061021160145481565b34801561035357600080fd5b5060408051808201909152600581526408c98aaa6960db1b602082015261017c565b34801561038157600080fd5b506102b1610390366004611961565b6105fd565b3480156103a157600080fd5b506102b16103b036600461197a565b61062c565b3480156103c157600080fd5b506101b26103d03660046118ac565b6107e0565b3480156103e157600080fd5b506102b16107ed565b6102b1610844565b3480156103fe57600080fd5b506102b1610bc2565b34801561041357600080fd5b506102116104223660046119ac565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561045957600080fd5b506102b1610468366004611944565b610bf4565b600061047a338484610cde565b5060015b92915050565b6000610491848484610e02565b6104e384336104de85604051806060016040528060288152602001611b7f602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906112d0565b610cde565b5060019392505050565b6000546001600160a01b031633146105205760405162461bcd60e51b8152600401610517906119e5565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061057357506011546001600160a01b0316336001600160a01b0316145b61057c57600080fd5b476105868161130a565b50565b6000546001600160a01b031633146105b35760405162461bcd60e51b8152600401610517906119e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106275760405162461bcd60e51b8152600401610517906119e5565b601555565b6000546001600160a01b031633146106565760405162461bcd60e51b8152600401610517906119e5565b60048411156106b55760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b6064820152608401610517565b60058211156107105760405162461bcd60e51b815260206004820152602160248201527f42757920746178206d757374206265206265747765656e20302520616e6420356044820152602560f81b6064820152608401610517565b60048311156107705760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b6064820152608401610517565b60058111156107cc5760405162461bcd60e51b815260206004820152602260248201527f53656c6c20746178206d757374206265206265747765656e20302520616e6420604482015261352560f01b6064820152608401610517565b600893909355600a91909155600955600b55565b600061047a338484610e02565b6010546001600160a01b0316336001600160a01b0316148061082257506011546001600160a01b0316336001600160a01b0316145b61082b57600080fd5b3060009081526002602052604090205461058681611348565b6000546001600160a01b0316331461086e5760405162461bcd60e51b8152600401610517906119e5565b601354600160a01b900460ff16156108c85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610517565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801561092d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109519190611a1a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611a1a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190611a1a565b601380546001600160a01b0319166001600160a01b03928316179055306000818152600460209081526040808320601280548716855290835281842060001990555484845260029092529091205492169163f305d719913491600080610aa16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b09573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b2e9190611a37565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190611a65565b50506013805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610bec5760405162461bcd60e51b8152600401610517906119e5565b600019601455565b6000546001600160a01b03163314610c1e5760405162461bcd60e51b8152600401610517906119e5565b6001600160a01b038116610c835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610517565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610517565b6001600160a01b038216610da15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610517565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610517565b6001600160a01b038216610ec85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610517565b60008111610f2a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610517565b6000546001600160a01b03848116911614801590610f5657506000546001600160a01b03838116911614155b156111c357601354600160a01b900460ff16611002576000546001600160a01b0384811691161480610f9057506001600160a01b03831630145b6110025760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610517565b6013546001600160a01b0383811691161461109d576014548161103a846001600160a01b031660009081526002602052604090205490565b6110449190611a98565b1061109d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610517565b306000908152600260209081526040808320546015546001600160a01b03881685526005909352922054908210159060ff161580156110e957506013546001600160a01b038581169116145b1561111057601054670de0b6b3a76400006001600160a01b03909116311061111057600080fd5b8080156111275750601354600160a81b900460ff16155b801561114157506013546001600160a01b03868116911614155b80156111565750601354600160b01b900460ff165b801561117b57506001600160a01b03851660009081526005602052604090205460ff16155b80156111a057506001600160a01b03841660009081526005602052604090205460ff16155b156111c0576111ae82611348565b4780156111be576111be4761130a565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061120557506001600160a01b03831660009081526005602052604090205460ff165b8061123757506013546001600160a01b0385811691161480159061123757506013546001600160a01b03848116911614155b15611244575060006112be565b6013546001600160a01b03858116911614801561126f57506012546001600160a01b03848116911614155b1561128157600854600c55600954600d555b6013546001600160a01b0384811691161480156112ac57506012546001600160a01b03858116911614155b156112be57600a54600c55600b54600d555b6112ca848484846114c2565b50505050565b600081848411156112f45760405162461bcd60e51b81526004016105179190611849565b5060006113018486611aab565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611344573d6000803e3d6000fd5b5050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061139057611390611abe565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d9190611a1a565b8160018151811061142057611420611abe565b6001600160a01b0392831660209182029290920101526012546114469130911684610cde565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061147f908590600090869030904290600401611ad4565b600060405180830381600087803b15801561149957600080fd5b505af11580156114ad573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b806114cf576114cf6114f0565b6114da84848461151e565b806112ca576112ca600e54600c55600f54600d55565b600c541580156115005750600d54155b1561150757565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611531898861160c565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506115639087611687565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461159290866116d0565b6001600160a01b0389166000908152600260205260409020556115b48161172f565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115f991815260200190565b60405180910390a3505050505050505050565b6000806000806000806000879050600061163c6064611636600d548c61175c90919063ffffffff16565b906117de565b6010549091506001600160a01b03908116908b160361165a57600091505b816116658a83611687565b826116708c82611687565b929d919c509a509098509096508695509350505050565b60006116c983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112d0565b9392505050565b6000806116dd8385611a98565b9050838110156116c95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610517565b3060009081526002602052604090205461174990826116d0565b3060009081526002602052604090205550565b60008260000361176e5750600061047e565b600061177a8385611b45565b9050826117878583611b5c565b146116c95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610517565b60006116c983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361183c5760405162461bcd60e51b81526004016105179190611849565b5060006113018486611b5c565b600060208083528351808285015260005b818110156118765785810183015185820160400152820161185a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058657600080fd5b600080604083850312156118bf57600080fd5b82356118ca81611897565b946020939093013593505050565b6000806000606084860312156118ed57600080fd5b83356118f881611897565b9250602084013561190881611897565b929592945050506040919091013590565b801515811461058657600080fd5b60006020828403121561193957600080fd5b81356116c981611919565b60006020828403121561195657600080fd5b81356116c981611897565b60006020828403121561197357600080fd5b5035919050565b6000806000806080858703121561199057600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156119bf57600080fd5b82356119ca81611897565b915060208301356119da81611897565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a2c57600080fd5b81516116c981611897565b600080600060608486031215611a4c57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a7757600080fd5b81516116c981611919565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047e5761047e611a82565b8181038181111561047e5761047e611a82565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b245784516001600160a01b031683529383019391830191600101611aff565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761047e5761047e611a82565b600082611b7957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122005e2a9bf02fb80fbade1c120f4af80e0db3155f0a02f2b15cf995fd2f138201c64736f6c63430008130033

Deployed Bytecode Sourcemap

4153:12954:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6175:83;;;;;;;;;;-1:-1:-1;6245:5:0;;;;;;;;;;;;-1:-1:-1;;;6245:5:0;;;;6175:83;;;;;;;:::i;:::-;;;;;;;;7086:193;;;;;;;;;;-1:-1:-1;7086:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7086:193:0;1023:187:1;5418:41:0;;;;;;;;;;-1:-1:-1;5418:41:0;;;;-1:-1:-1;;;;;5418:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5418:41:0;1215:229:1;6455:95:0;;;;;;;;;;-1:-1:-1;4701:18:0;6455:95;;;1595:25:1;;;1583:2;1568:18;6455:95:0;1449:177:1;7288:446:0;;;;;;;;;;-1:-1:-1;7288:446:0;;;;;:::i;:::-;;:::i;5665:52::-;;;;;;;;;;;;;;;;6363:83;;;;;;;;;;-1:-1:-1;6363:83:0;;4374:1;2234:36:1;;2222:2;2207:18;6363:83:0;2092:184:1;5466:28:0;;;;;;;;;;-1:-1:-1;5466:28:0;;;;-1:-1:-1;;;;;5466:28:0;;;16173:101;;;;;;;;;;-1:-1:-1;16173:101:0;;;;;:::i;:::-;;:::i;:::-;;11834:235;;;;;;;;;;;;;:::i;6559:117::-;;;;;;;;;;-1:-1:-1;6559:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6652:16:0;6625:7;6652:16;;;:7;:16;;;;;;;6559:117;1626:148;;;;;;;;;;;;;:::i;1410:79::-;;;;;;;;;;-1:-1:-1;1448:7:0;1475:6;-1:-1:-1;;;;;1475:6:0;1410:79;;5610:48;;;;;;;;;;;;;;;;6267:87;;;;;;;;;;-1:-1:-1;6339:7:0;;;;;;;;;;;;-1:-1:-1;;;6339:7:0;;;;6267:87;;15981:139;;;;;;;;;;-1:-1:-1;15981:139:0;;;;;:::i;:::-;;:::i;15241:687::-;;;;;;;;;;-1:-1:-1;15241:687:0;;;;;:::i;:::-;;:::i;6685:199::-;;;;;;;;;;-1:-1:-1;6685:199:0;;;;;:::i;:::-;;:::i;11589:236::-;;;;;;;;;;;;;:::i;16383:721::-;;;:::i;16284:91::-;;;;;;;;;;;;;:::i;6893:184::-;;;;;;;;;;-1:-1:-1;6893:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7042:18:0;;;7010:7;7042:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6893:184;1783:244;;;;;;;;;;-1:-1:-1;1783:244:0;;;;;:::i;:::-;;:::i;7086:193::-;7188:4;7210:39;239:10;7233:7;7242:6;7210:8;:39::i;:::-;-1:-1:-1;7267:4:0;7086:193;;;;;:::o;7288:446::-;7420:4;7437:36;7447:6;7455:9;7466:6;7437:9;:36::i;:::-;7484:220;7507:6;239:10;7555:138;7611:6;7555:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7555:19:0;;;;;;:11;:19;;;;;;;;239:10;7555:33;;;;;;;;;;:37;:138::i;:::-;7484:8;:220::i;:::-;-1:-1:-1;7722:4:0;7288:446;;;;;:::o;16173:101::-;1538:6;;-1:-1:-1;;;;;1538:6:0;239:10;1538:22;1530:67;;;;-1:-1:-1;;;1530:67:0;;;;;;;:::i;:::-;;;;;;;;;16240:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16240:26:0::1;-1:-1:-1::0;;;;16240:26:0;;::::1;::::0;;;::::1;::::0;;16173:101::o;11834:235::-;11900:19;;-1:-1:-1;;;;;11900:19:0;239:10;-1:-1:-1;;;;;11884:35:0;;:72;;;-1:-1:-1;11939:17:0;;-1:-1:-1;;;;;11939:17:0;239:10;-1:-1:-1;;;;;11923:33:0;;11884:72;11876:81;;;;;;11997:21;12029:32;11997:21;12029:12;:32::i;:::-;11865:204;11834:235::o;1626:148::-;1538:6;;-1:-1:-1;;;;;1538:6:0;239:10;1538:22;1530:67;;;;-1:-1:-1;;;1530:67:0;;;;;;;:::i;:::-;1733:1:::1;1717:6:::0;;1696:40:::1;::::0;-1:-1:-1;;;;;1717:6:0;;::::1;::::0;1696:40:::1;::::0;1733:1;;1696:40:::1;1764:1;1747:19:::0;;-1:-1:-1;;;;;;1747:19:0::1;::::0;;1626:148::o;15981:139::-;1538:6;;-1:-1:-1;;;;;1538:6:0;239:10;1538:22;1530:67;;;;-1:-1:-1;;;1530:67:0;;;;;;;:::i;:::-;16072:19:::1;:40:::0;15981:139::o;15241:687::-;1538:6;;-1:-1:-1;;;;;1538:6:0;239:10;1538:22;1530:67;;;;-1:-1:-1;;;1530:67:0;;;;;;;:::i;:::-;15422:1:::1;15405:13;:18;;15375:90;;;::::0;-1:-1:-1;;;15375:90:0;;4641:2:1;15375:90:0::1;::::0;::::1;4623:21:1::0;4680:2;4660:18;;;4653:30;4719:34;4699:18;;;4692:62;-1:-1:-1;;;4770:18:1;;;4763:35;4815:19;;15375:90:0::1;4439:401:1::0;15375:90:0::1;15519:1;15504:11;:16;;15476:82;;;::::0;-1:-1:-1;;;15476:82:0;;5047:2:1;15476:82:0::1;::::0;::::1;5029:21:1::0;5086:2;5066:18;;;5059:30;5125:34;5105:18;;;5098:62;-1:-1:-1;;;5176:18:1;;;5169:31;5217:19;;15476:82:0::1;4845:397:1::0;15476:82:0::1;15618:1;15600:14;:19;;15569:93;;;::::0;-1:-1:-1;;;15569:93:0;;5449:2:1;15569:93:0::1;::::0;::::1;5431:21:1::0;5488:2;5468:18;;;5461:30;5527:34;5507:18;;;5500:62;-1:-1:-1;;;5578:18:1;;;5571:36;5624:19;;15569:93:0::1;5247:402:1::0;15569:93:0::1;15718:1;15702:12;:17;;15673:85;;;::::0;-1:-1:-1;;;15673:85:0;;5856:2:1;15673:85:0::1;::::0;::::1;5838:21:1::0;5895:2;5875:18;;;5868:30;5934:34;5914:18;;;5907:62;-1:-1:-1;;;5985:18:1;;;5978:32;6027:19;;15673:85:0::1;5654:398:1::0;15673:85:0::1;15771:14;:30:::0;;;;15812:15:::1;:32:::0;;;;15855:12:::1;:26:::0;15892:13:::1;:28:::0;15241:687::o;6685:199::-;6790:4;6812:42;239:10;6836:9;6847:6;6812:9;:42::i;11589:236::-;11655:19;;-1:-1:-1;;;;;11655:19:0;239:10;-1:-1:-1;;;;;11639:35:0;;:72;;;-1:-1:-1;11694:17:0;;-1:-1:-1;;;;;11694:17:0;239:10;-1:-1:-1;;;;;11678:33:0;;11639:72;11631:81;;;;;;11767:4;11723:23;6652:16;;;:7;:16;;;;;;11784:33;6652:16;11784;:33::i;16383:721::-;1538:6;;-1:-1:-1;;;;;1538:6:0;239:10;1538:22;1530:67;;;;-1:-1:-1;;;1530:67:0;;;;;;;:::i;:::-;16453:11:::1;::::0;-1:-1:-1;;;16453:11:0;::::1;;;16452:12;16444:47;;;::::0;-1:-1:-1;;;16444:47:0;;6259:2:1;16444:47:0::1;::::0;::::1;6241:21:1::0;6298:2;6278:18;;;6271:30;6337:25;6317:18;;;6310:53;6380:18;;16444:47:0::1;6057:347:1::0;16444:47:0::1;16613:15;:34:::0;;-1:-1:-1;;;;;;16613:34:0::1;16559:42;16613:34:::0;;::::1;::::0;;;16692:26:::1;::::0;;-1:-1:-1;;;16692:26:0;;;;16559:42;;16692:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;16559:42;16692:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16674:70:0::1;;16753:4;16760:16;-1:-1:-1::0;;;;;16760:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16674:110;::::0;-1:-1:-1;;;;;;16674:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6895:15:1;;;16674:110:0::1;::::0;::::1;6877:34:1::0;6947:15;;6927:18;;;6920:43;6812:18;;16674:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16658:13;:126:::0;;-1:-1:-1;;;;;;16658:126:0::1;-1:-1:-1::0;;;;;16658:126:0;;::::1;;::::0;;16817:4:::1;-1:-1:-1::0;16797:26:0;;;:11:::1;:26;::::0;;;;;;;16832:15:::1;::::0;;;::::1;16797:52:::0;;;;;;;;-1:-1:-1;;16797:58:0;;16866:15;6652:16;;;:7;:16;;;;;;;16866:15;::::1;::::0;:31:::1;::::0;16905:9:::1;::::0;16955:1:::1;16957::::0;16959:7:::1;1448::::0;1475:6;-1:-1:-1;;;;;1475:6:0;;1410:79;16959:7:::1;16866:117;::::0;::::1;::::0;;;-1:-1:-1;;;;;;16866:117:0;;;-1:-1:-1;;;;;7333:15:1;;;16866:117:0::1;::::0;::::1;7315:34:1::0;7365:18;;;7358:34;;;;7408:18;;;7401:34;;;;7451:18;;;7444:34;7515:15;;;7494:19;;;7487:44;16967:15:0::1;7547:19:1::0;;;7540:35;7249:19;;16866:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17001:13:0::1;::::0;17032:15:::1;::::0;16994:71:::1;::::0;-1:-1:-1;;;16994:71:0;;-1:-1:-1;;;;;17032:15:0;;::::1;16994:71;::::0;::::1;8071:51:1::0;-1:-1:-1;;8138:18:1;;;8131:34;17001:13:0;::::1;::::0;-1:-1:-1;16994:29:0::1;::::0;8044:18:1;;16994:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17078:11:0::1;:18:::0;;-1:-1:-1;;;;17078:18:0::1;-1:-1:-1::0;;;17078:18:0::1;::::0;;16383:721::o;16284:91::-;1538:6;;-1:-1:-1;;;;;1538:6:0;239:10;1538:22;1530:67;;;;-1:-1:-1;;;1530:67:0;;;;;;;:::i;:::-;-1:-1:-1;;16339:14:0::1;:28:::0;16284:91::o;1783:244::-;1538:6;;-1:-1:-1;;;;;1538:6:0;239:10;1538:22;1530:67;;;;-1:-1:-1;;;1530:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1872:22:0;::::1;1864:73;;;::::0;-1:-1:-1;;;1864:73:0;;8628:2:1;1864:73:0::1;::::0;::::1;8610:21:1::0;8667:2;8647:18;;;8640:30;8706:34;8686:18;;;8679:62;-1:-1:-1;;;8757:18:1;;;8750:36;8803:19;;1864:73:0::1;8426:402:1::0;1864:73:0::1;1974:6;::::0;;1953:38:::1;::::0;-1:-1:-1;;;;;1953:38:0;;::::1;::::0;1974:6;::::1;::::0;1953:38:::1;::::0;::::1;2002:6;:17:::0;;-1:-1:-1;;;;;;2002:17:0::1;-1:-1:-1::0;;;;;2002:17:0;;;::::1;::::0;;;::::1;::::0;;1783:244::o;8431:369::-;-1:-1:-1;;;;;8558:19:0;;8550:68;;;;-1:-1:-1;;;8550:68:0;;9035:2:1;8550:68:0;;;9017:21:1;9074:2;9054:18;;;9047:30;9113:34;9093:18;;;9086:62;-1:-1:-1;;;9164:18:1;;;9157:34;9208:19;;8550:68:0;8833:400:1;8550:68:0;-1:-1:-1;;;;;8637:21:0;;8629:68;;;;-1:-1:-1;;;8629:68:0;;9440:2:1;8629:68:0;;;9422:21:1;9479:2;9459:18;;;9452:30;9518:34;9498:18;;;9491:62;-1:-1:-1;;;9569:18:1;;;9562:32;9611:19;;8629:68:0;9238:398:1;8629:68:0;-1:-1:-1;;;;;8708:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8760:32;;1595:25:1;;;8760:32:0;;1568:18:1;8760:32:0;;;;;;;8431:369;;;:::o;8809:2171::-;-1:-1:-1;;;;;8931:18:0;;8923:68;;;;-1:-1:-1;;;8923:68:0;;9843:2:1;8923:68:0;;;9825:21:1;9882:2;9862:18;;;9855:30;9921:34;9901:18;;;9894:62;-1:-1:-1;;;9972:18:1;;;9965:35;10017:19;;8923:68:0;9641:401:1;8923:68:0;-1:-1:-1;;;;;9010:16:0;;9002:64;;;;-1:-1:-1;;;9002:64:0;;10249:2:1;9002:64:0;;;10231:21:1;10288:2;10268:18;;;10261:30;10327:34;10307:18;;;10300:62;-1:-1:-1;;;10378:18:1;;;10371:33;10421:19;;9002:64:0;10047:399:1;9002:64:0;9094:1;9085:6;:10;9077:64;;;;-1:-1:-1;;;9077:64:0;;10653:2:1;9077:64:0;;;10635:21:1;10692:2;10672:18;;;10665:30;10731:34;10711:18;;;10704:62;-1:-1:-1;;;10782:18:1;;;10775:39;10831:19;;9077:64:0;10451:405:1;9077:64:0;1448:7;1475:6;-1:-1:-1;;;;;9159:15:0;;;1475:6;;9159:15;;;;:32;;-1:-1:-1;1448:7:0;1475:6;-1:-1:-1;;;;;9178:13:0;;;1475:6;;9178:13;;9159:32;9155:1093;;;9249:11;;-1:-1:-1;;;9249:11:0;;;;9244:169;;1448:7;1475:6;-1:-1:-1;;;;;9289:15:0;;;1475:6;;9289:15;;:40;;-1:-1:-1;;;;;;9308:21:0;;9324:4;9308:21;9289:40;9281:116;;;;-1:-1:-1;;;9281:116:0;;11063:2:1;9281:116:0;;;11045:21:1;11102:2;11082:18;;;11075:30;11141:34;11121:18;;;11114:62;11212:33;11192:18;;;11185:61;11263:19;;9281:116:0;10861:427:1;9281:116:0;9439:13;;-1:-1:-1;;;;;9433:19:0;;;9439:13;;9433:19;9430:146;;9506:14;;9497:6;9481:13;9491:2;-1:-1:-1;;;;;6652:16:0;6625:7;6652:16;;;:7;:16;;;;;;;6559:117;9481:13;:22;;;;:::i;:::-;:39;9473:87;;;;-1:-1:-1;;;9473:87:0;;11757:2:1;9473:87:0;;;11739:21:1;11796:2;11776:18;;;11769:30;11835:34;11815:18;;;11808:62;-1:-1:-1;;;11886:18:1;;;11879:33;11929:19;;9473:87:0;11555:399:1;9473:87:0;9642:4;9593:28;6652:16;;;:7;:16;;;;;;;;;9702:19;;-1:-1:-1;;;;;9741:24:0;;;;:18;:24;;;;;;9678:43;;;;;9741:24;;9740:25;:48;;;;-1:-1:-1;9775:13:0;;-1:-1:-1;;;;;9769:19:0;;;9775:13;;9769:19;9740:48;9736:100;;;9798:19;;4701:18;-1:-1:-1;;;;;9798:19:0;;;:27;:37;9790:46;;;;;;9855:7;:18;;;;-1:-1:-1;9867:6:0;;-1:-1:-1;;;9867:6:0;;;;9866:7;9855:18;:43;;;;-1:-1:-1;9885:13:0;;-1:-1:-1;;;;;9877:21:0;;;9885:13;;9877:21;;9855:43;:58;;;;-1:-1:-1;9902:11:0;;-1:-1:-1;;;9902:11:0;;;;9855:58;:87;;;;-1:-1:-1;;;;;;9918:24:0;;;;;;:18;:24;;;;;;;;9917:25;9855:87;:114;;;;-1:-1:-1;;;;;;9947:22:0;;;;;;:18;:22;;;;;;;;9946:23;9855:114;9851:386;;;9990:38;10007:20;9990:16;:38::i;:::-;10076:21;10120:22;;10116:106;;10167:35;10180:21;10167:12;:35::i;:::-;9971:266;9851:386;9193:1055;;9155:1093;-1:-1:-1;;;;;10326:24:0;;10261:12;10326:24;;;:18;:24;;;;;;10276:4;;10326:24;;;:50;;-1:-1:-1;;;;;;10354:22:0;;;;;;:18;:22;;;;;;;;10326:50;10325:102;;;-1:-1:-1;10390:13:0;;-1:-1:-1;;;;;10382:21:0;;;10390:13;;10382:21;;;;:44;;-1:-1:-1;10413:13:0;;-1:-1:-1;;;;;10407:19:0;;;10413:13;;10407:19;;10382:44;10321:597;;;-1:-1:-1;10454:5:0;10321:597;;;10538:13;;-1:-1:-1;;;;;10530:21:0;;;10538:13;;10530:21;:55;;;;-1:-1:-1;10569:15:0;;-1:-1:-1;;;;;10555:30:0;;;10569:15;;10555:30;;10530:55;10527:162;;;10618:14;;10606:9;:26;10661:12;;10651:7;:22;10527:162;10749:13;;-1:-1:-1;;;;;10743:19:0;;;10749:13;;10743:19;:55;;;;-1:-1:-1;10782:15:0;;-1:-1:-1;;;;;10766:32:0;;;10782:15;;10766:32;;10743:55;10739:165;;;10831:15;;10819:9;:27;10875:13;;10865:7;:23;10739:165;10931:41;10946:4;10952:2;10956:6;10964:7;10931:14;:41::i;:::-;8912:2068;8809:2171;;;:::o;2395:224::-;2515:7;2551:12;2543:6;;;;2535:29;;;;-1:-1:-1;;;2535:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2575:9:0;2587:5;2591:1;2587;:5;:::i;:::-;2575:17;2395:224;-1:-1:-1;;;;;2395:224:0:o;11481:99::-;11538:17;;:34;;-1:-1:-1;;;;;11538:17:0;;;;:34;;;;;11565:6;;11538:17;:34;:17;:34;11565:6;11538:17;:34;;;;;;;;;;;;;;;;;;;;;11481:99;:::o;10989:483::-;5759:6;:13;;-1:-1:-1;;;;5759:13:0;-1:-1:-1;;;5759:13:0;;;11091:16:::1;::::0;;11105:1:::1;11091:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11091:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11091:16:0::1;11067:40;;11136:4;11118;11123:1;11118:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11118:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11162:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11162:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11118:7;;11162:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11152:4;11157:1;11152:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11152:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11227:15:::1;::::0;11195:62:::1;::::0;11212:4:::1;::::0;11227:15:::1;11245:11:::0;11195:8:::1;:62::i;:::-;11268:15;::::0;:196:::1;::::0;-1:-1:-1;;;11268:196:0;;-1:-1:-1;;;;;11268:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11349:11;;11268:15:::1;::::0;11391:4;;11418::::1;::::0;11438:15:::1;::::0;11268:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5795:6:0;:14;;-1:-1:-1;;;;5795:14:0;;;-1:-1:-1;;;;10989:483:0:o;12077:282::-;12233:7;12228:28;;12242:14;:12;:14::i;:::-;12267:44;12285:6;12293:9;12304:6;12267:17;:44::i;:::-;12327:7;12322:29;;12336:15;8361:17;;8349:9;:29;8399:15;;8389:7;:25;8305:117;8075:221;8122:9;;:14;:30;;;;-1:-1:-1;8140:7:0;;:12;8122:30;8118:43;;;8075:221::o;8118:43::-;8194:9;;;8174:17;:29;8232:7;;;8214:15;:25;-1:-1:-1;8253:13:0;;;;8277:11;8075:221::o;12368:584::-;12515:15;12545:23;12583:12;12610:23;12648:12;12675:13;12702:27;12713:6;12721:7;12702:10;:27::i;:::-;-1:-1:-1;;;;;12758:15:0;;;;;;:7;:15;;;;;;12500:229;;-1:-1:-1;12500:229:0;;-1:-1:-1;12500:229:0;;-1:-1:-1;12500:229:0;-1:-1:-1;12500:229:0;-1:-1:-1;12500:229:0;-1:-1:-1;12758:28:0;;12500:229;12758:19;:28::i;:::-;-1:-1:-1;;;;;12740:15:0;;;;;;;:7;:15;;;;;;:46;;;;12818:18;;;;;;;:39;;12841:15;12818:22;:39::i;:::-;-1:-1:-1;;;;;12797:18:0;;;;;;:7;:18;;;;;:60;12868:16;12878:5;12868:9;:16::i;:::-;12917:9;-1:-1:-1;;;;;12900:44:0;12909:6;-1:-1:-1;;;;;12900:44:0;;12928:15;12900:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;12900:44:0;;;;;;;;12489:463;;;;;;12368:584;;;:::o;13283:489::-;13399:7;13421;13443;13465;13487;13509;13544:15;13562:7;13544:25;;13580:12;13595:29;13620:3;13595:20;13607:7;;13595;:11;;:20;;;;:::i;:::-;:24;;:29::i;:::-;13649:19;;13580:44;;-1:-1:-1;;;;;;13649:19:0;;;13639:29;;;;13635:46;;13680:1;13670:11;;13635:46;13700:7;13709:17;:7;13721:4;13709:11;:17::i;:::-;13728:4;13734:17;:7;13728:4;13734:11;:17::i;:::-;13692:72;;;;-1:-1:-1;13692:72:0;-1:-1:-1;13692:72:0;;-1:-1:-1;13753:4:0;;-1:-1:-1;13753:4:0;;-1:-1:-1;13283:489:0;-1:-1:-1;;;;13283:489:0:o;2250:136::-;2308:7;2335:43;2339:1;2342;2335:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2328:50;2250:136;-1:-1:-1;;;2250:136:0:o;2062:179::-;2120:7;;2152:5;2156:1;2152;:5;:::i;:::-;2140:17;;2181:1;2176;:6;;2168:46;;;;-1:-1:-1;;;2168:46:0;;13543:2:1;2168:46:0;;;13525:21:1;13582:2;13562:18;;;13555:30;13621:29;13601:18;;;13594:57;13668:18;;2168:46:0;13341:351:1;12961:119:0;13055:4;13039:22;;;;:7;:22;;;;;;:33;;13066:5;13039:26;:33::i;:::-;13030:4;13014:22;;;;:7;:22;;;;;:58;-1:-1:-1;12961:119:0:o;2628:246::-;2686:7;2710:1;2715;2710:6;2706:47;;-1:-1:-1;2740:1:0;2733:8;;2706:47;2763:9;2775:5;2779:1;2775;:5;:::i;:::-;2763:17;-1:-1:-1;2808:1:0;2799:5;2803:1;2763:17;2799:5;:::i;:::-;:10;2791:56;;;;-1:-1:-1;;;2791:56:0;;14294:2:1;2791:56:0;;;14276:21:1;14333:2;14313:18;;;14306:30;14372:34;14352:18;;;14345:62;-1:-1:-1;;;14423:18:1;;;14416:31;14464:19;;2791:56:0;14092:397:1;2883:132:0;2941:7;2968:39;2972:1;2975;2968:39;;;;;;;;;;;;;;;;;3144:7;3179:12;3172:5;3164:28;;;;-1:-1:-1;;;3164:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3203:9:0;3215:5;3219:1;3215;:5;:::i;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:118::-;2575:5;2568:13;2561:21;2554:5;2551:32;2541:60;;2597:1;2594;2587:12;2612:241;2668:6;2721:2;2709:9;2700:7;2696:23;2692:32;2689:52;;;2737:1;2734;2727:12;2689:52;2776:9;2763:23;2795:28;2817:5;2795:28;:::i;2858:247::-;2917:6;2970:2;2958:9;2949:7;2945:23;2941:32;2938:52;;;2986:1;2983;2976:12;2938:52;3025:9;3012:23;3044:31;3069:5;3044:31;:::i;3110:180::-;3169:6;3222:2;3210:9;3201:7;3197:23;3193:32;3190:52;;;3238:1;3235;3228:12;3190:52;-1:-1:-1;3261:23:1;;3110:180;-1:-1:-1;3110:180:1:o;3295:385::-;3381:6;3389;3397;3405;3458:3;3446:9;3437:7;3433:23;3429:33;3426:53;;;3475:1;3472;3465:12;3426:53;-1:-1:-1;;3498:23:1;;;3568:2;3553:18;;3540:32;;-1:-1:-1;3619:2:1;3604:18;;3591:32;;3670:2;3655:18;3642:32;;-1:-1:-1;3295:385:1;-1:-1:-1;3295:385:1:o;3685:388::-;3753:6;3761;3814:2;3802:9;3793:7;3789:23;3785:32;3782:52;;;3830:1;3827;3820:12;3782:52;3869:9;3856:23;3888:31;3913:5;3888:31;:::i;:::-;3938:5;-1:-1:-1;3995:2:1;3980:18;;3967:32;4008:33;3967:32;4008:33;:::i;:::-;4060:7;4050:17;;;3685:388;;;;;:::o;4078:356::-;4280:2;4262:21;;;4299:18;;;4292:30;4358:34;4353:2;4338:18;;4331:62;4425:2;4410:18;;4078:356::o;6409:251::-;6479:6;6532:2;6520:9;6511:7;6507:23;6503:32;6500:52;;;6548:1;6545;6538:12;6500:52;6580:9;6574:16;6599:31;6624:5;6599:31;:::i;7586:306::-;7674:6;7682;7690;7743:2;7731:9;7722:7;7718:23;7714:32;7711:52;;;7759:1;7756;7749:12;7711:52;7788:9;7782:16;7772:26;;7838:2;7827:9;7823:18;7817:25;7807:35;;7882:2;7871:9;7867:18;7861:25;7851:35;;7586:306;;;;;:::o;8176:245::-;8243:6;8296:2;8284:9;8275:7;8271:23;8267:32;8264:52;;;8312:1;8309;8302:12;8264:52;8344:9;8338:16;8363:28;8385:5;8363:28;:::i;11293:127::-;11354:10;11349:3;11345:20;11342:1;11335:31;11385:4;11382:1;11375:15;11409:4;11406:1;11399:15;11425:125;11490:9;;;11511:10;;;11508:36;;;11524:18;;:::i;11959:128::-;12026:9;;;12047:11;;;12044:37;;;12061:18;;:::i;12224:127::-;12285:10;12280:3;12276:20;12273:1;12266:31;12316:4;12313:1;12306:15;12340:4;12337:1;12330:15;12356:980;12618:4;12666:3;12655:9;12651:19;12697:6;12686:9;12679:25;12723:2;12761:6;12756:2;12745:9;12741:18;12734:34;12804:3;12799:2;12788:9;12784:18;12777:31;12828:6;12863;12857:13;12894:6;12886;12879:22;12932:3;12921:9;12917:19;12910:26;;12971:2;12963:6;12959:15;12945:29;;12992:1;13002:195;13016:6;13013:1;13010:13;13002:195;;;13081:13;;-1:-1:-1;;;;;13077:39:1;13065:52;;13172:15;;;;13137:12;;;;13113:1;13031:9;13002:195;;;-1:-1:-1;;;;;;;13253:32:1;;;;13248:2;13233:18;;13226:60;-1:-1:-1;;;13317:3:1;13302:19;13295:35;13214:3;12356:980;-1:-1:-1;;;12356:980:1:o;13697:168::-;13770:9;;;13801;;13818:15;;;13812:22;;13798:37;13788:71;;13839:18;;:::i;13870:217::-;13910:1;13936;13926:132;;13980:10;13975:3;13971:20;13968:1;13961:31;14015:4;14012:1;14005:15;14043:4;14040:1;14033:15;13926:132;-1:-1:-1;14072:9:1;;13870:217::o

Swarm Source

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