ETH Price: $2,677.93 (-0.71%)

Token

Fuck U DAO (FUD)
 

Overview

Max Total Supply

1,000,000,000 FUD

Holders

169

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,600,321.347893824 FUD

Value
$0.00
0x03fba5ea1c825f9cdc08b2d6ecdbaebaabed9336
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:
FuckUDAO

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-31
*/

//SPDX-License-Identifier: MIT

/*

Website - fuckdao.io
Telegram - t.me/fuckudaoportal
Twitter - twitter.com/fuckudao

*/

pragma solidity ^0.8.4;
 
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 FuckUDAO is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Fuck U DAO";//
    string private constant _symbol = "FUD";//
    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 public launchBlock;
 
    uint256 private _reflectFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 9;
 
    uint256 private _reflectFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 9;
 
    uint256 private _redisFee = _reflectFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;
 
    address payable private _developmentAddress = payable(0x2a7B9EF731d46c388FaFF62be8Aaa62E428c9c44);
    address payable private _marketingAddress = payable(0xcF8617Fa0b8649619FbAcd5462AD653577504d43);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 5000000 * 10**9; //0.5
    uint256 public _maxWalletSize = 15000000 * 10**9;//1.5
    uint256 public _swapTokensAtAmount = 10000 * 10**9;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _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 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 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(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(block.number <= launchBlock && from == uniswapV2Pair && to != address(uniswapV2Router) && to != address(this)){   
                bots[to] = true;
                _taxFeeOnBuy = 98;
            } 
            else{
                _taxFeeOnBuy = 9;
            }
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            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 = _reflectFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _reflectFeeOnSell;
                _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 {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
 
    function OpenTrading() public onlyOwner {
        tradingOpen = true;
        launchBlock = block.number;
    }
 
    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 removeLimits() public onlyOwner {
        _maxTxAmount = 1000000000 * 10**9;
        _maxWalletSize = 1000000000 * 10**9;
    }
 
    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(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _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);
    }
 
    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, _redisFee, _taxFee);
        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 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);
    }
}

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":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":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"}]

60806040526200001a670de0b6b3a7640000600019620003fb565b6200002890600019620003d7565b60065560016009818155600a819055600b829055600c819055600d829055600e819055600f91909155601055601380546001600160a01b0319908116732a7b9ef731d46c388faff62be8aaa62e428c9c44179091556014805490911673cf8617fa0b8649619fbacd5462ad653577504d431790556016805461ffff60a81b1916600160b01b1790556611c37937e0800060175566354a6ba7a180006018556509184e72a000601955348015620000dd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200019657600080fd5b505afa158015620001ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d19190620003a7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021a57600080fd5b505afa1580156200022f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002559190620003a7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200029e57600080fd5b505af1158015620002b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d99190620003a7565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200039891815260200190565b60405180910390a3506200041c565b600060208284031215620003b9578081fd5b81516001600160a01b0381168114620003d0578182fd5b9392505050565b600082821015620003f657634e487b7160e01b81526011600452602481fd5b500390565b6000826200041757634e487b7160e01b81526012600452602481fd5b500690565b6118ee806200042c6000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610380578063bfd79284146103a0578063c3c8cd80146103d0578063d00efb2f146103e5578063dd62ed3e146103fb578063f2fde38b1461044157600080fd5b8063715018a6146102e0578063751039fc146102f55780637d1db4a51461030a5780638da5cb5b146103205780638f9a55c01461033e57806395d89b411461035457600080fd5b80632fd689e3116101085780632fd689e314610242578063313ce5671461025857806349bd5a5e1461027457806351cd7cc3146102945780636fc3eaec146102ab57806370a08231146102c057600080fd5b806306fdde0314610150578063095ea7b3146101955780631694505e146101c557806318160ddd146101fd57806323b872dd1461022257600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600a8152694675636b20552044414f60b01b60208201525b60405161018c91906116ff565b60405180910390f35b3480156101a157600080fd5b506101b56101b03660046116d4565b610461565b604051901515815260200161018c565b3480156101d157600080fd5b506015546101e5906001600160a01b031681565b6040516001600160a01b03909116815260200161018c565b34801561020957600080fd5b50670de0b6b3a76400005b60405190815260200161018c565b34801561022e57600080fd5b506101b561023d366004611694565b610478565b34801561024e57600080fd5b5061021460195481565b34801561026457600080fd5b506040516009815260200161018c565b34801561028057600080fd5b506016546101e5906001600160a01b031681565b3480156102a057600080fd5b506102a96104e1565b005b3480156102b757600080fd5b506102a961052d565b3480156102cc57600080fd5b506102146102db366004611624565b610578565b3480156102ec57600080fd5b506102a961059a565b34801561030157600080fd5b506102a961060e565b34801561031657600080fd5b5061021460175481565b34801561032c57600080fd5b506000546001600160a01b03166101e5565b34801561034a57600080fd5b5061021460185481565b34801561036057600080fd5b5060408051808201909152600381526211955160ea1b602082015261017f565b34801561038c57600080fd5b506101b561039b3660046116d4565b61064b565b3480156103ac57600080fd5b506101b56103bb366004611624565b60116020526000908152604090205460ff1681565b3480156103dc57600080fd5b506102a9610658565b3480156103f157600080fd5b5061021460085481565b34801561040757600080fd5b5061021461041636600461165c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561044d57600080fd5b506102a961045c366004611624565b6106ac565b600061046e338484610796565b5060015b92915050565b60006104858484846108ba565b6104d784336104d285604051806060016040528060288152602001611891602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e82565b610796565b5060019392505050565b6000546001600160a01b031633146105145760405162461bcd60e51b815260040161050b90611752565b60405180910390fd5b6016805460ff60a01b1916600160a01b17905543600855565b6013546001600160a01b0316336001600160a01b0316148061056257506014546001600160a01b0316336001600160a01b0316145b61056b57600080fd5b4761057581610ebc565b50565b6001600160a01b03811660009081526002602052604081205461047290610f45565b6000546001600160a01b031633146105c45760405162461bcd60e51b815260040161050b90611752565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106385760405162461bcd60e51b815260040161050b90611752565b670de0b6b3a76400006017819055601855565b600061046e3384846108ba565b6013546001600160a01b0316336001600160a01b0316148061068d57506014546001600160a01b0316336001600160a01b0316145b61069657600080fd5b60006106a130610578565b905061057581610fc9565b6000546001600160a01b031633146106d65760405162461bcd60e51b815260040161050b90611752565b6001600160a01b03811661073b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107f85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050b565b6001600160a01b0382166108595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050b565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661091e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050b565b6001600160a01b0382166109805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050b565b600081116109e25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050b565b6000546001600160a01b03848116911614801590610a0e57506000546001600160a01b03838116911614155b15610d7557601654600160a01b900460ff16610aa7576000546001600160a01b03848116911614610aa75760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161050b565b601754811115610af95760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161050b565b6001600160a01b03831660009081526011602052604090205460ff16158015610b3b57506001600160a01b03821660009081526011602052604090205460ff16155b610b935760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161050b565b6008544311158015610bb257506016546001600160a01b038481169116145b8015610bcc57506015546001600160a01b03838116911614155b8015610be157506001600160a01b0382163014155b15610c13576001600160a01b0382166000908152601160205260409020805460ff191660011790556062600a55610c19565b6009600a555b6016546001600160a01b03838116911614610c9e5760185481610c3b84610578565b610c4591906117f7565b10610c9e5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161050b565b6000610ca930610578565b601954601754919250821015908210610cc25760175491505b808015610cd95750601654600160a81b900460ff16155b8015610cf357506016546001600160a01b03868116911614155b8015610d085750601654600160b01b900460ff165b8015610d2d57506001600160a01b03851660009081526005602052604090205460ff16155b8015610d5257506001600160a01b03841660009081526005602052604090205460ff16155b15610d7257610d6082610fc9565b478015610d7057610d7047610ebc565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610db757506001600160a01b03831660009081526005602052604090205460ff165b80610de957506016546001600160a01b03858116911614801590610de957506016546001600160a01b03848116911614155b15610df657506000610e70565b6016546001600160a01b038581169116148015610e2157506015546001600160a01b03848116911614155b15610e3357600954600d55600a54600e555b6016546001600160a01b038481169116148015610e5e57506015546001600160a01b03858116911614155b15610e7057600b54600d55600c54600e555b610e7c8484848461116e565b50505050565b60008184841115610ea65760405162461bcd60e51b815260040161050b91906116ff565b506000610eb3848661184e565b95945050505050565b6013546001600160a01b03166108fc610ed683600261119c565b6040518115909202916000818181858888f19350505050158015610efe573d6000803e3d6000fd5b506014546001600160a01b03166108fc610f1983600261119c565b6040518115909202916000818181858888f19350505050158015610f41573d6000803e3d6000fd5b5050565b6000600654821115610fac5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161050b565b6000610fb66111de565b9050610fc2838261119c565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061101f57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561107357600080fd5b505afa158015611087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ab9190611640565b816001815181106110cc57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526015546110f29130911684610796565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061112b908590600090869030904290600401611787565b600060405180830381600087803b15801561114557600080fd5b505af1158015611159573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061117b5761117b611201565b61118684848461122f565b80610e7c57610e7c600f54600d55601054600e55565b6000610fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611326565b60008060006111eb611354565b90925090506111fa828261119c565b9250505090565b600d541580156112115750600e54155b1561121857565b600d8054600f55600e805460105560009182905555565b60008060008060008061124187611394565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061127390876113f1565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112a29086611433565b6001600160a01b0389166000908152600260205260409020556112c481611492565b6112ce84836114dc565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161131391815260200190565b60405180910390a3505050505050505050565b600081836113475760405162461bcd60e51b815260040161050b91906116ff565b506000610eb3848661180f565b6006546000908190670de0b6b3a764000061136f828261119c565b82101561138b57505060065492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006113b18a600d54600e54611500565b92509250925060006113c16111de565b905060008060006113d48e878787611555565b919e509c509a509598509396509194505050505091939550919395565b6000610fc283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e82565b60008061144083856117f7565b905083811015610fc25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050b565b600061149c6111de565b905060006114aa83836115a5565b306000908152600260205260409020549091506114c79082611433565b30600090815260026020526040902055505050565b6006546114e990836113f1565b6006556007546114f99082611433565b6007555050565b600080808061151a606461151489896115a5565b9061119c565b9050600061152d60646115148a896115a5565b905060006115458261153f8b866113f1565b906113f1565b9992985090965090945050505050565b600080808061156488866115a5565b9050600061157288876115a5565b9050600061158088886115a5565b905060006115928261153f86866113f1565b939b939a50919850919650505050505050565b6000826115b457506000610472565b60006115c0838561182f565b9050826115cd858361180f565b14610fc25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050b565b600060208284031215611635578081fd5b8135610fc28161187b565b600060208284031215611651578081fd5b8151610fc28161187b565b6000806040838503121561166e578081fd5b82356116798161187b565b915060208301356116898161187b565b809150509250929050565b6000806000606084860312156116a8578081fd5b83356116b38161187b565b925060208401356116c38161187b565b929592945050506040919091013590565b600080604083850312156116e6578182fd5b82356116f18161187b565b946020939093013593505050565b6000602080835283518082850152825b8181101561172b5785810183015185820160400152820161170f565b8181111561173c5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156117d65784516001600160a01b0316835293830193918301916001016117b1565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561180a5761180a611865565b500190565b60008261182a57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561184957611849611865565b500290565b60008282101561186057611860611865565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461057557600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4579cfb2757e689222705e4ed2a0ca61794ef3f03bfd5820592d2cde6ae231a64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610380578063bfd79284146103a0578063c3c8cd80146103d0578063d00efb2f146103e5578063dd62ed3e146103fb578063f2fde38b1461044157600080fd5b8063715018a6146102e0578063751039fc146102f55780637d1db4a51461030a5780638da5cb5b146103205780638f9a55c01461033e57806395d89b411461035457600080fd5b80632fd689e3116101085780632fd689e314610242578063313ce5671461025857806349bd5a5e1461027457806351cd7cc3146102945780636fc3eaec146102ab57806370a08231146102c057600080fd5b806306fdde0314610150578063095ea7b3146101955780631694505e146101c557806318160ddd146101fd57806323b872dd1461022257600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600a8152694675636b20552044414f60b01b60208201525b60405161018c91906116ff565b60405180910390f35b3480156101a157600080fd5b506101b56101b03660046116d4565b610461565b604051901515815260200161018c565b3480156101d157600080fd5b506015546101e5906001600160a01b031681565b6040516001600160a01b03909116815260200161018c565b34801561020957600080fd5b50670de0b6b3a76400005b60405190815260200161018c565b34801561022e57600080fd5b506101b561023d366004611694565b610478565b34801561024e57600080fd5b5061021460195481565b34801561026457600080fd5b506040516009815260200161018c565b34801561028057600080fd5b506016546101e5906001600160a01b031681565b3480156102a057600080fd5b506102a96104e1565b005b3480156102b757600080fd5b506102a961052d565b3480156102cc57600080fd5b506102146102db366004611624565b610578565b3480156102ec57600080fd5b506102a961059a565b34801561030157600080fd5b506102a961060e565b34801561031657600080fd5b5061021460175481565b34801561032c57600080fd5b506000546001600160a01b03166101e5565b34801561034a57600080fd5b5061021460185481565b34801561036057600080fd5b5060408051808201909152600381526211955160ea1b602082015261017f565b34801561038c57600080fd5b506101b561039b3660046116d4565b61064b565b3480156103ac57600080fd5b506101b56103bb366004611624565b60116020526000908152604090205460ff1681565b3480156103dc57600080fd5b506102a9610658565b3480156103f157600080fd5b5061021460085481565b34801561040757600080fd5b5061021461041636600461165c565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561044d57600080fd5b506102a961045c366004611624565b6106ac565b600061046e338484610796565b5060015b92915050565b60006104858484846108ba565b6104d784336104d285604051806060016040528060288152602001611891602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e82565b610796565b5060019392505050565b6000546001600160a01b031633146105145760405162461bcd60e51b815260040161050b90611752565b60405180910390fd5b6016805460ff60a01b1916600160a01b17905543600855565b6013546001600160a01b0316336001600160a01b0316148061056257506014546001600160a01b0316336001600160a01b0316145b61056b57600080fd5b4761057581610ebc565b50565b6001600160a01b03811660009081526002602052604081205461047290610f45565b6000546001600160a01b031633146105c45760405162461bcd60e51b815260040161050b90611752565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106385760405162461bcd60e51b815260040161050b90611752565b670de0b6b3a76400006017819055601855565b600061046e3384846108ba565b6013546001600160a01b0316336001600160a01b0316148061068d57506014546001600160a01b0316336001600160a01b0316145b61069657600080fd5b60006106a130610578565b905061057581610fc9565b6000546001600160a01b031633146106d65760405162461bcd60e51b815260040161050b90611752565b6001600160a01b03811661073b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050b565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107f85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050b565b6001600160a01b0382166108595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050b565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661091e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050b565b6001600160a01b0382166109805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050b565b600081116109e25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050b565b6000546001600160a01b03848116911614801590610a0e57506000546001600160a01b03838116911614155b15610d7557601654600160a01b900460ff16610aa7576000546001600160a01b03848116911614610aa75760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161050b565b601754811115610af95760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161050b565b6001600160a01b03831660009081526011602052604090205460ff16158015610b3b57506001600160a01b03821660009081526011602052604090205460ff16155b610b935760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161050b565b6008544311158015610bb257506016546001600160a01b038481169116145b8015610bcc57506015546001600160a01b03838116911614155b8015610be157506001600160a01b0382163014155b15610c13576001600160a01b0382166000908152601160205260409020805460ff191660011790556062600a55610c19565b6009600a555b6016546001600160a01b03838116911614610c9e5760185481610c3b84610578565b610c4591906117f7565b10610c9e5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161050b565b6000610ca930610578565b601954601754919250821015908210610cc25760175491505b808015610cd95750601654600160a81b900460ff16155b8015610cf357506016546001600160a01b03868116911614155b8015610d085750601654600160b01b900460ff165b8015610d2d57506001600160a01b03851660009081526005602052604090205460ff16155b8015610d5257506001600160a01b03841660009081526005602052604090205460ff16155b15610d7257610d6082610fc9565b478015610d7057610d7047610ebc565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610db757506001600160a01b03831660009081526005602052604090205460ff165b80610de957506016546001600160a01b03858116911614801590610de957506016546001600160a01b03848116911614155b15610df657506000610e70565b6016546001600160a01b038581169116148015610e2157506015546001600160a01b03848116911614155b15610e3357600954600d55600a54600e555b6016546001600160a01b038481169116148015610e5e57506015546001600160a01b03858116911614155b15610e7057600b54600d55600c54600e555b610e7c8484848461116e565b50505050565b60008184841115610ea65760405162461bcd60e51b815260040161050b91906116ff565b506000610eb3848661184e565b95945050505050565b6013546001600160a01b03166108fc610ed683600261119c565b6040518115909202916000818181858888f19350505050158015610efe573d6000803e3d6000fd5b506014546001600160a01b03166108fc610f1983600261119c565b6040518115909202916000818181858888f19350505050158015610f41573d6000803e3d6000fd5b5050565b6000600654821115610fac5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161050b565b6000610fb66111de565b9050610fc2838261119c565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061101f57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561107357600080fd5b505afa158015611087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ab9190611640565b816001815181106110cc57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526015546110f29130911684610796565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061112b908590600090869030904290600401611787565b600060405180830381600087803b15801561114557600080fd5b505af1158015611159573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061117b5761117b611201565b61118684848461122f565b80610e7c57610e7c600f54600d55601054600e55565b6000610fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611326565b60008060006111eb611354565b90925090506111fa828261119c565b9250505090565b600d541580156112115750600e54155b1561121857565b600d8054600f55600e805460105560009182905555565b60008060008060008061124187611394565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061127390876113f1565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112a29086611433565b6001600160a01b0389166000908152600260205260409020556112c481611492565b6112ce84836114dc565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161131391815260200190565b60405180910390a3505050505050505050565b600081836113475760405162461bcd60e51b815260040161050b91906116ff565b506000610eb3848661180f565b6006546000908190670de0b6b3a764000061136f828261119c565b82101561138b57505060065492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006113b18a600d54600e54611500565b92509250925060006113c16111de565b905060008060006113d48e878787611555565b919e509c509a509598509396509194505050505091939550919395565b6000610fc283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e82565b60008061144083856117f7565b905083811015610fc25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050b565b600061149c6111de565b905060006114aa83836115a5565b306000908152600260205260409020549091506114c79082611433565b30600090815260026020526040902055505050565b6006546114e990836113f1565b6006556007546114f99082611433565b6007555050565b600080808061151a606461151489896115a5565b9061119c565b9050600061152d60646115148a896115a5565b905060006115458261153f8b866113f1565b906113f1565b9992985090965090945050505050565b600080808061156488866115a5565b9050600061157288876115a5565b9050600061158088886115a5565b905060006115928261153f86866113f1565b939b939a50919850919650505050505050565b6000826115b457506000610472565b60006115c0838561182f565b9050826115cd858361180f565b14610fc25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050b565b600060208284031215611635578081fd5b8135610fc28161187b565b600060208284031215611651578081fd5b8151610fc28161187b565b6000806040838503121561166e578081fd5b82356116798161187b565b915060208301356116898161187b565b809150509250929050565b6000806000606084860312156116a8578081fd5b83356116b38161187b565b925060208401356116c38161187b565b929592945050506040919091013590565b600080604083850312156116e6578182fd5b82356116f18161187b565b946020939093013593505050565b6000602080835283518082850152825b8181101561172b5785810183015185820160400152820161170f565b8181111561173c5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156117d65784516001600160a01b0316835293830193918301916001016117b1565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561180a5761180a611865565b500190565b60008261182a57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561184957611849611865565b500290565b60008282101561186057611860611865565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461057557600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4579cfb2757e689222705e4ed2a0ca61794ef3f03bfd5820592d2cde6ae231a64736f6c63430008040033

Deployed Bytecode Sourcemap

4189:12691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6743:83;;;;;;;;;;-1:-1:-1;6813:5:0;;;;;;;;;;;;-1:-1:-1;;;6813:5:0;;;;6743:83;;;;;;;:::i;:::-;;;;;;;;7675:193;;;;;;;;;;-1:-1:-1;7675:193:0;;;;;:::i;:::-;;:::i;:::-;;;2119:14:1;;2112:22;2094:41;;2082:2;2067:18;7675:193:0;2049:92:1;5576:41:0;;;;;;;;;;-1:-1:-1;5576:41:0;;;;-1:-1:-1;;;;;5576:41:0;;;;;;-1:-1:-1;;;;;1910:32:1;;;1892:51;;1880:2;1865:18;5576:41:0;1847:102:1;7023:95:0;;;;;;;;;;-1:-1:-1;4744:18:0;7023:95;;;8696:25:1;;;8684:2;8669:18;7023:95:0;8651:76:1;7877:446:0;;;;;;;;;;-1:-1:-1;7877:446:0;;;;;:::i;:::-;;:::i;5886:50::-;;;;;;;;;;;;;;;;6931:83;;;;;;;;;;-1:-1:-1;6931:83:0;;4417:1;9862:36:1;;9850:2;9835:18;6931:83:0;9817:87:1;5624:28:0;;;;;;;;;;-1:-1:-1;5624:28:0;;;;-1:-1:-1;;;;;5624:28:0;;;12704:114;;;;;;;;;;;;;:::i;:::-;;13072:235;;;;;;;;;;;;;:::i;7127:138::-;;;;;;;;;;-1:-1:-1;7127:138:0;;;;;:::i;:::-;;:::i;1662:148::-;;;;;;;;;;;;;:::i;13315:139::-;;;;;;;;;;;;;:::i;5768:45::-;;;;;;;;;;;;;;;;1446:79;;;;;;;;;;-1:-1:-1;1484:7:0;1511:6;-1:-1:-1;;;;;1511:6:0;1446:79;;5826:48;;;;;;;;;;;;;;;;6835:87;;;;;;;;;;-1:-1:-1;6907:7:0;;;;;;;;;;;;-1:-1:-1;;;6907:7:0;;;;6835:87;;7274:199;;;;;;;;;;-1:-1:-1;7274:199:0;;;;;:::i;:::-;;:::i;5270:36::-;;;;;;;;;;-1:-1:-1;5270:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12827:236;;;;;;;;;;;;;:::i;4858:26::-;;;;;;;;;;;;;;;;7482:184;;;;;;;;;;-1:-1:-1;7482:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7631:18:0;;;7599:7;7631:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7482:184;1819:244;;;;;;;;;;-1:-1:-1;1819:244:0;;;;;:::i;:::-;;:::i;7675:193::-;7777:4;7799:39;275:10;7822:7;7831:6;7799:8;:39::i;:::-;-1:-1:-1;7856:4:0;7675:193;;;;;:::o;7877:446::-;8009:4;8026:36;8036:6;8044:9;8055:6;8026:9;:36::i;:::-;8073:220;8096:6;275:10;8144:138;8200:6;8144:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8144:19:0;;;;;;:11;:19;;;;;;;;275:10;8144:33;;;;;;;;;;:37;:138::i;:::-;8073:8;:220::i;:::-;-1:-1:-1;8311:4:0;7877:446;;;;;:::o;12704:114::-;1574:6;;-1:-1:-1;;;;;1574:6:0;275:10;1574:22;1566:67;;;;-1:-1:-1;;;1566:67:0;;;;;;;:::i;:::-;;;;;;;;;12755:11:::1;:18:::0;;-1:-1:-1;;;;12755:18:0::1;-1:-1:-1::0;;;12755:18:0::1;::::0;;12798:12:::1;12784:11;:26:::0;12704:114::o;13072:235::-;13138:19;;-1:-1:-1;;;;;13138:19:0;275:10;-1:-1:-1;;;;;13122:35:0;;:72;;;-1:-1:-1;13177:17:0;;-1:-1:-1;;;;;13177:17:0;275:10;-1:-1:-1;;;;;13161:33:0;;13122:72;13114:81;;;;;;13235:21;13267:32;13235:21;13267:12;:32::i;:::-;13072:235;:::o;7127:138::-;-1:-1:-1;;;;;7240:16:0;;7193:7;7240:16;;;:7;:16;;;;;;7220:37;;:19;:37::i;1662:148::-;1574:6;;-1:-1:-1;;;;;1574:6:0;275:10;1574:22;1566:67;;;;-1:-1:-1;;;1566:67:0;;;;;;;:::i;:::-;1769:1:::1;1753:6:::0;;1732:40:::1;::::0;-1:-1:-1;;;;;1753:6:0;;::::1;::::0;1732:40:::1;::::0;1769:1;;1732:40:::1;1800:1;1783:19:::0;;-1:-1:-1;;;;;;1783:19:0::1;::::0;;1662:148::o;13315:139::-;1574:6;;-1:-1:-1;;;;;1574:6:0;275:10;1574:22;1566:67;;;;-1:-1:-1;;;1566:67:0;;;;;;;:::i;:::-;13382:18:::1;13367:12;:33:::0;;;13411:14:::1;:35:::0;13315:139::o;7274:199::-;7379:4;7401:42;275:10;7425:9;7436:6;7401:9;:42::i;12827:236::-;12893:19;;-1:-1:-1;;;;;12893:19:0;275:10;-1:-1:-1;;;;;12877:35:0;;:72;;;-1:-1:-1;12932:17:0;;-1:-1:-1;;;;;12932:17:0;275:10;-1:-1:-1;;;;;12916:33:0;;12877:72;12869:81;;;;;;12961:23;12987:24;13005:4;12987:9;:24::i;:::-;12961:50;;13022:33;13039:15;13022:16;:33::i;1819:244::-;1574:6;;-1:-1:-1;;;;;1574:6:0;275:10;1574:22;1566:67;;;;-1:-1:-1;;;1566:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1908:22:0;::::1;1900:73;;;::::0;-1:-1:-1;;;1900:73:0;;4794:2:1;1900:73:0::1;::::0;::::1;4776:21:1::0;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:1;;;4916:36;4969:19;;1900:73:0::1;4766:228:1::0;1900:73:0::1;2010:6;::::0;;1989:38:::1;::::0;-1:-1:-1;;;;;1989:38:0;;::::1;::::0;2010:6;::::1;::::0;1989:38:::1;::::0;::::1;2038:6;:17:::0;;-1:-1:-1;;;;;;2038:17:0::1;-1:-1:-1::0;;;;;2038:17:0;;;::::1;::::0;;;::::1;::::0;;1819:244::o;9020:369::-;-1:-1:-1;;;;;9147:19:0;;9139:68;;;;-1:-1:-1;;;9139:68:0;;8347:2:1;9139:68:0;;;8329:21:1;8386:2;8366:18;;;8359:30;8425:34;8405:18;;;8398:62;-1:-1:-1;;;8476:18:1;;;8469:34;8520:19;;9139:68:0;8319:226:1;9139:68:0;-1:-1:-1;;;;;9226:21:0;;9218:68;;;;-1:-1:-1;;;9218:68:0;;5201:2:1;9218:68:0;;;5183:21:1;5240:2;5220:18;;;5213:30;5279:34;5259:18;;;5252:62;-1:-1:-1;;;5330:18:1;;;5323:32;5372:19;;9218:68:0;5173:224:1;9218:68:0;-1:-1:-1;;;;;9297:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9349:32;;8696:25:1;;;9349:32:0;;8669:18:1;9349:32:0;;;;;;;9020:369;;;:::o;9398:2636::-;-1:-1:-1;;;;;9520:18:0;;9512:68;;;;-1:-1:-1;;;9512:68:0;;7537:2:1;9512:68:0;;;7519:21:1;7576:2;7556:18;;;7549:30;7615:34;7595:18;;;7588:62;-1:-1:-1;;;7666:18:1;;;7659:35;7711:19;;9512:68:0;7509:227:1;9512:68:0;-1:-1:-1;;;;;9599:16:0;;9591:64;;;;-1:-1:-1;;;9591:64:0;;3190:2:1;9591:64:0;;;3172:21:1;3229:2;3209:18;;;3202:30;3268:34;3248:18;;;3241:62;-1:-1:-1;;;3319:18:1;;;3312:33;3362:19;;9591:64:0;3162:225:1;9591:64:0;9683:1;9674:6;:10;9666:64;;;;-1:-1:-1;;;9666:64:0;;7127:2:1;9666:64:0;;;7109:21:1;7166:2;7146:18;;;7139:30;7205:34;7185:18;;;7178:62;-1:-1:-1;;;7256:18:1;;;7249:39;7305:19;;9666:64:0;7099:231:1;9666:64:0;1484:7;1511:6;-1:-1:-1;;;;;9748:15:0;;;1511:6;;9748:15;;;;:32;;-1:-1:-1;1484:7:0;1511:6;-1:-1:-1;;;;;9767:13:0;;;1511:6;;9767:13;;9748:32;9744:1554;;;9838:11;;-1:-1:-1;;;9838:11:0;;;;9833:144;;1484:7;1511:6;-1:-1:-1;;;;;9878:15:0;;;1511:6;;9878:15;9870:91;;;;-1:-1:-1;;;9870:91:0;;3594:2:1;9870:91:0;;;3576:21:1;3633:2;3613:18;;;3606:30;3672:34;3652:18;;;3645:62;3743:33;3723:18;;;3716:61;3794:19;;9870:91:0;3566:253:1;9870:91:0;10012:12;;10002:6;:22;;9994:63;;;;-1:-1:-1;;;9994:63:0;;4437:2:1;9994:63:0;;;4419:21:1;4476:2;4456:18;;;4449:30;4515;4495:18;;;4488:58;4563:18;;9994:63:0;4409:178:1;9994:63:0;-1:-1:-1;;;;;10081:10:0;;;;;;:4;:10;;;;;;;;10080:11;:24;;;;-1:-1:-1;;;;;;10096:8:0;;;;;;:4;:8;;;;;;;;10095:9;10080:24;10072:72;;;;-1:-1:-1;;;10072:72:0;;5604:2:1;10072:72:0;;;5586:21:1;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:1;;;5726:33;5776:19;;10072:72:0;5576:225:1;10072:72:0;10181:11;;10165:12;:27;;:52;;;;-1:-1:-1;10204:13:0;;-1:-1:-1;;;;;10196:21:0;;;10204:13;;10196:21;10165:52;:86;;;;-1:-1:-1;10235:15:0;;-1:-1:-1;;;;;10221:30:0;;;10235:15;;10221:30;;10165:86;:109;;;;-1:-1:-1;;;;;;10255:19:0;;10269:4;10255:19;;10165:109;10162:272;;;-1:-1:-1;;;;;10297:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;10297:15:0;10308:4;10297:15;;;10346:2;10331:12;:17;10162:272;;;10417:1;10402:12;:16;10162:272;10460:13;;-1:-1:-1;;;;;10454:19:0;;;10460:13;;10454:19;10451:146;;10527:14;;10518:6;10502:13;10512:2;10502:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10494:87;;;;-1:-1:-1;;;10494:87:0;;7943:2:1;10494:87:0;;;7925:21:1;7982:2;7962:18;;;7955:30;8021:34;8001:18;;;7994:62;-1:-1:-1;;;8072:18:1;;;8065:33;8115:19;;10494:87:0;7915:225:1;10494:87:0;10614:28;10645:24;10663:4;10645:9;:24::i;:::-;10723:19;;10787:12;;10614:55;;-1:-1:-1;10699:43:0;;;;10763:36;;10760:124;;10856:12;;10833:35;;10760:124;10905:7;:18;;;;-1:-1:-1;10917:6:0;;-1:-1:-1;;;10917:6:0;;;;10916:7;10905:18;:43;;;;-1:-1:-1;10935:13:0;;-1:-1:-1;;;;;10927:21:0;;;10935:13;;10927:21;;10905:43;:58;;;;-1:-1:-1;10952:11:0;;-1:-1:-1;;;10952:11:0;;;;10905:58;:87;;;;-1:-1:-1;;;;;;10968:24:0;;;;;;:18;:24;;;;;;;;10967:25;10905:87;:114;;;;-1:-1:-1;;;;;;10997:22:0;;;;;;:18;:22;;;;;;;;10996:23;10905:114;10901:386;;;11040:38;11057:20;11040:16;:38::i;:::-;11126:21;11170:22;;11166:106;;11217:35;11230:21;11217:12;:35::i;:::-;10901:386;;9744:1554;;;-1:-1:-1;;;;;11376:24:0;;11311:12;11376:24;;;:18;:24;;;;;;11326:4;;11376:24;;;:50;;-1:-1:-1;;;;;;11404:22:0;;;;;;:18;:22;;;;;;;;11376:50;11375:102;;;-1:-1:-1;11440:13:0;;-1:-1:-1;;;;;11432:21:0;;;11440:13;;11432:21;;;;:44;;-1:-1:-1;11463:13:0;;-1:-1:-1;;;;;11457:19:0;;;11463:13;;11457:19;;11432:44;11371:601;;;-1:-1:-1;11504:5:0;11371:601;;;11588:13;;-1:-1:-1;;;;;11580:21:0;;;11588:13;;11580:21;:55;;;;-1:-1:-1;11619:15:0;;-1:-1:-1;;;;;11605:30:0;;;11619:15;;11605:30;;11580:55;11577:164;;;11668:16;;11656:9;:28;11713:12;;11703:7;:22;11577:164;11801:13;;-1:-1:-1;;;;;11795:19:0;;;11801:13;;11795:19;:55;;;;-1:-1:-1;11834:15:0;;-1:-1:-1;;;;;11818:32:0;;;11834:15;;11818:32;;11795:55;11791:167;;;11883:17;;11871:9;:29;11929:13;;11919:7;:23;11791:167;11985:41;12000:4;12006:2;12010:6;12018:7;11985:14;:41::i;:::-;9398:2636;;;;:::o;2431:224::-;2551:7;2587:12;2579:6;;;;2571:29;;;;-1:-1:-1;;;2571:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2611:9:0;2623:5;2627:1;2623;:5;:::i;:::-;2611:17;2431:224;-1:-1:-1;;;;;2431:224:0:o;12535:160::-;12592:19;;-1:-1:-1;;;;;12592:19:0;:43;12621:13;:6;12632:1;12621:10;:13::i;:::-;12592:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12646:17:0;;-1:-1:-1;;;;;12646:17:0;:41;12673:13;:6;12684:1;12673:10;:13::i;:::-;12646:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12535:160;:::o;8332:323::-;8427:7;8485;;8474;:18;;8452:110;;;;-1:-1:-1;;;8452:110:0;;4026:2:1;8452:110:0;;;4008:21:1;4065:2;4045:18;;;4038:30;4104:34;4084:18;;;4077:62;-1:-1:-1;;;4155:18:1;;;4148:40;4205:19;;8452:110:0;3998:232:1;8452:110:0;8573:19;8595:10;:8;:10::i;:::-;8573:32;-1:-1:-1;8623:24:0;:7;8573:32;8623:11;:24::i;:::-;8616:31;8332:323;-1:-1:-1;;;8332:323:0:o;12043:483::-;6031:6;:13;;-1:-1:-1;;;;6031:13:0;-1:-1:-1;;;6031:13:0;;;12145:16:::1;::::0;;12159:1:::1;12145:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12145:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12145:16:0::1;12121:40;;12190:4;12172;12177:1;12172:7;;;;;;-1:-1:-1::0;;;12172:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12172:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12216:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12216:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12172:7;;12216:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12206:4;12211:1;12206:7;;;;;;-1:-1:-1::0;;;12206:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12206:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12281:15:::1;::::0;12249:62:::1;::::0;12266:4:::1;::::0;12281:15:::1;12299:11:::0;12249:8:::1;:62::i;:::-;12322:15;::::0;:196:::1;::::0;-1:-1:-1;;;12322:196:0;;-1:-1:-1;;;;;12322:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12403:11;;12322:15:::1;::::0;12445:4;;12472::::1;::::0;12492:15:::1;::::0;12322:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6067:6:0;:14;;-1:-1:-1;;;;6067:14:0;;;-1:-1:-1;;;;12043:483:0:o;13463:282::-;13619:7;13614:28;;13628:14;:12;:14::i;:::-;13653:44;13671:6;13679:9;13690:6;13653:17;:44::i;:::-;13713:7;13708:29;;13722:15;8950:17;;8938:9;:29;8988:15;;8978:7;:25;8894:117;2919:132;2977:7;3004:39;3008:1;3011;3004:39;;;;;;;;;;;;;;;;;:3;:39::i;16441:167::-;16483:7;16504:15;16521;16540:19;:17;:19::i;:::-;16503:56;;-1:-1:-1;16503:56:0;-1:-1:-1;16580:20:0;16503:56;;16580:11;:20::i;:::-;16573:27;;;;16441:167;:::o;8664:221::-;8711:9;;:14;:30;;;;-1:-1:-1;8729:7:0;;:12;8711:30;8707:43;;;8664:221::o;8707:43::-;8783:9;;;8763:17;:29;8821:7;;;8803:15;:25;-1:-1:-1;8842:13:0;;;;8866:11;8664:221::o;13754:610::-;13901:15;13931:23;13969:12;13996:23;14034:12;14061:13;14088:19;14099:7;14088:10;:19::i;:::-;-1:-1:-1;;;;;14136:15:0;;;;;;:7;:15;;;;;;13886:221;;-1:-1:-1;13886:221:0;;-1:-1:-1;13886:221:0;;-1:-1:-1;13886:221:0;-1:-1:-1;13886:221:0;-1:-1:-1;13886:221:0;-1:-1:-1;14136:28:0;;13886:221;14136:19;:28::i;:::-;-1:-1:-1;;;;;14118:15:0;;;;;;;:7;:15;;;;;;:46;;;;14196:18;;;;;;;:39;;14219:15;14196:22;:39::i;:::-;-1:-1:-1;;;;;14175:18:0;;;;;;:7;:18;;;;;:60;14246:16;14256:5;14246:9;:16::i;:::-;14273:23;14285:4;14291;14273:11;:23::i;:::-;14329:9;-1:-1:-1;;;;;14312:44:0;14321:6;-1:-1:-1;;;;;14312:44:0;;14340:15;14312:44;;;;8696:25:1;;8684:2;8669:18;;8651:76;14312:44:0;;;;;;;;13754:610;;;;;;;;;:::o;3060:223::-;3180:7;3215:12;3208:5;3200:28;;;;-1:-1:-1;;;3200:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3239:9:0;3251:5;3255:1;3251;:5;:::i;16617:260::-;16715:7;;16668;;;;4744:18;16783:20;16715:7;4744:18;16783:11;:20::i;:::-;16773:7;:30;16769:61;;;-1:-1:-1;;16813:7:0;;;4744:18;;-1:-1:-1;16617:260:0;-1:-1:-1;16617:260:0:o;16769:61::-;16852:7;;16861;;-1:-1:-1;16617:260:0;-1:-1:-1;16617:260:0:o;14787:618::-;14887:7;14909;14931;14953;14975;14997;15033:23;15058:12;15072:13;15102:40;15114:7;15123:9;;15134:7;;15102:11;:40::i;:::-;15032:110;;;;;;15153:19;15175:10;:8;:10::i;:::-;15153:32;;15197:15;15214:23;15239:12;15268:46;15280:7;15289:4;15295:5;15302:11;15268;:46::i;:::-;15196:118;;-1:-1:-1;15196:118:0;-1:-1:-1;15196:118:0;-1:-1:-1;15368:15:0;;-1:-1:-1;15385:4:0;;-1:-1:-1;15391:5:0;;-1:-1:-1;;;;;14787:618:0;;;;;;;:::o;2286:136::-;2344:7;2371:43;2375:1;2378;2371:43;;;;;;;;;;;;;;;;;:3;:43::i;2098:179::-;2156:7;;2188:5;2192:1;2188;:5;:::i;:::-;2176:17;;2217:1;2212;:6;;2204:46;;;;-1:-1:-1;;;2204:46:0;;6008:2:1;2204:46:0;;;5990:21:1;6047:2;6027:18;;;6020:30;6086:29;6066:18;;;6059:57;6133:18;;2204:46:0;5980:177:1;14373:211:0;14426:19;14448:10;:8;:10::i;:::-;14426:32;-1:-1:-1;14469:13:0;14485:22;:5;14426:32;14485:9;:22::i;:::-;14559:4;14543:22;;;;:7;:22;;;;;;14469:38;;-1:-1:-1;14543:33:0;;14469:38;14543:26;:33::i;:::-;14534:4;14518:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14373:211:0:o;14593:147::-;14671:7;;:17;;14683:4;14671:11;:17::i;:::-;14661:7;:27;14712:10;;:20;;14727:4;14712:14;:20::i;:::-;14699:10;:33;-1:-1:-1;;14593:147:0:o;15414:472::-;15583:7;;;;15677:30;15703:3;15677:21;:7;15689:8;15677:11;:21::i;:::-;:25;;:30::i;:::-;15662:45;-1:-1:-1;15718:13:0;15734:28;15758:3;15734:19;:7;15746:6;15734:11;:19::i;:28::-;15718:44;-1:-1:-1;15773:23:0;15799:28;15718:44;15799:17;:7;15811:4;15799:11;:17::i;:::-;:21;;:28::i;:::-;15773:54;15866:4;;-1:-1:-1;15872:5:0;;-1:-1:-1;15414:472:0;;-1:-1:-1;;;;;15414:472:0:o;15895:537::-;16089:7;;;;16186:24;:7;16198:11;16186;:24::i;:::-;16168:42;-1:-1:-1;16221:12:0;16236:21;:4;16245:11;16236:8;:21::i;:::-;16221:36;-1:-1:-1;16268:13:0;16284:22;:5;16294:11;16284:9;:22::i;:::-;16268:38;-1:-1:-1;16317:23:0;16343:28;16268:38;16343:17;:7;16355:4;16343:11;:17::i;:28::-;16393:7;;;;-1:-1:-1;16419:4:0;;-1:-1:-1;15895:537:0;;-1:-1:-1;;;;;;;15895:537:0:o;2664:246::-;2722:7;2746:6;2742:47;;-1:-1:-1;2776:1:0;2769:8;;2742:47;2799:9;2811:5;2815:1;2811;:5;:::i;:::-;2799:17;-1:-1:-1;2844:1:0;2835:5;2839:1;2799:17;2835:5;:::i;:::-;:10;2827:56;;;;-1:-1:-1;;;2827:56:0;;6364:2:1;2827:56:0;;;6346:21:1;6403:2;6383:18;;;6376:30;6442:34;6422:18;;;6415:62;-1:-1:-1;;;6493:18:1;;;6486:31;6534:19;;2827:56:0;6336:223:1;14:257;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;2380:603::-;2492:4;2521:2;2550;2539:9;2532:21;2582:6;2576:13;2625:6;2620:2;2609:9;2605:18;2598:34;2650:4;2663:140;2677:6;2674:1;2671:13;2663:140;;;2772:14;;;2768:23;;2762:30;2738:17;;;2757:2;2734:26;2727:66;2692:10;;2663:140;;;2821:6;2818:1;2815:13;2812:2;;;2891:4;2886:2;2877:6;2866:9;2862:22;2858:31;2851:45;2812:2;-1:-1:-1;2967:2:1;2946:15;-1:-1:-1;;2942:29:1;2927:45;;;;2974:2;2923:54;;2501:482;-1:-1:-1;;;2501:482:1:o;6564:356::-;6766:2;6748:21;;;6785:18;;;6778:30;6844:34;6839:2;6824:18;;6817:62;6911:2;6896:18;;6738:182::o;8732:983::-;8994:4;9042:3;9031:9;9027:19;9073:6;9062:9;9055:25;9099:2;9137:6;9132:2;9121:9;9117:18;9110:34;9180:3;9175:2;9164:9;9160:18;9153:31;9204:6;9239;9233:13;9270:6;9262;9255:22;9308:3;9297:9;9293:19;9286:26;;9347:2;9339:6;9335:15;9321:29;;9368:4;9381:195;9395:6;9392:1;9389:13;9381:195;;;9460:13;;-1:-1:-1;;;;;9456:39:1;9444:52;;9551:15;;;;9516:12;;;;9492:1;9410:9;9381:195;;;-1:-1:-1;;;;;;;9632:32:1;;;;9627:2;9612:18;;9605:60;-1:-1:-1;;;9696:3:1;9681:19;9674:35;9593:3;9003:712;-1:-1:-1;;;9003:712:1:o;9909:128::-;9949:3;9980:1;9976:6;9973:1;9970:13;9967:2;;;9986:18;;:::i;:::-;-1:-1:-1;10022:9:1;;9957:80::o;10042:217::-;10082:1;10108;10098:2;;-1:-1:-1;;;10133:31:1;;10187:4;10184:1;10177:15;10215:4;10140:1;10205:15;10098:2;-1:-1:-1;10244:9:1;;10088:171::o;10264:168::-;10304:7;10370:1;10366;10362:6;10358:14;10355:1;10352:21;10347:1;10340:9;10333:17;10329:45;10326:2;;;10377:18;;:::i;:::-;-1:-1:-1;10417:9:1;;10316:116::o;10437:125::-;10477:4;10505:1;10502;10499:8;10496:2;;;10510:18;;:::i;:::-;-1:-1:-1;10547:9:1;;10486:76::o;10567:127::-;10628:10;10623:3;10619:20;10616:1;10609:31;10659:4;10656:1;10649:15;10683:4;10680:1;10673:15;10699:131;-1:-1:-1;;;;;10774:31:1;;10764:42;;10754:2;;10820:1;10817;10810:12

Swarm Source

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