ETH Price: $3,340.54 (-0.78%)
Gas: 4 Gwei

Token

World Cup Finals (WCF)
 

Overview

Max Total Supply

100,000,000,000 WCF

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
672,653,639.22037307 WCF

Value
$0.00
0x761d9d7d97044ab387b8b3caebdf8aeeb8f13e00
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:
WorldCupFinal

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-26
*/

// SPDX-License-Identifier: Unlicensed

/**

Tax: 3% Buy/Sehttps://t.me/WorldCupFinalEth

*/


pragma solidity ^0.8.7;
 
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;
    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 WorldCupFinal is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "World Cup Finals";//
    string private constant _symbol = "WCF";//
    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 = 100000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
 
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;//
    uint256 private _taxFeeOnBuy = 3;//
 
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;//
    uint256 private _taxFeeOnSell = 3;//
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    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(0xA56592cf50bD8c47EF7660024C4a8E3aaAd2FE5d);
    address payable private _marketingAddress = payable(0xA56592cf50bD8c47EF7660024C4a8E3aaAd2FE5d);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 1000000000 * 10**9; //
    uint256 public _maxWalletSize = 2000000000 * 10**9; //
    uint256 public _swapTokensAtAmount = 1000000000 * 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(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 = _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 {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    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(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);
    }
 
 
 
    //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;
    }
 
 
    //Can Increase Max Limits after renounce . Cannot Lower
    function increaseLimits(uint256 maxTxAmount_, uint256 maxWalletSize_) public {
        require(_msgSender() == _developmentAddress);
        require(maxTxAmount_ > _maxTxAmount && maxTxAmount_ <= totalSupply(), "Out of range");
        require(maxWalletSize_ > _maxWalletSize && maxWalletSize_ <= totalSupply(), "Out of range");

        _maxTxAmount = maxTxAmount_;
        _maxWalletSize = maxWalletSize_;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

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":"_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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize_","type":"uint256"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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"}]

60806040526200001b68056bc75e2d63100000600019620003ef565b6200002990600019620003c9565b60055560006007819055600360088190556009829055600a819055600b829055600c819055600d91909155600e55601180546001600160a01b031990811673a56592cf50bd8c47ef7660024c4a8e3aaad2fe5d9081179092556012805490911690911790556014805461ffff60a81b1916600160b01b179055670de0b6b3a76400006015819055671bc16d674ec80000601655601755348015620000cc57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506005543360009081526001602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200018557600080fd5b505afa1580156200019a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c0919062000397565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020957600080fd5b505afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000244919062000397565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028d57600080fd5b505af1158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000397565b601480546001600160a01b0319166001600160a01b03928316179055600080548216815260046020526040808220805460ff1990811660019081179092553084528284208054821683179055601154851684528284208054821683179055601254909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d631000006040516200038891815260200190565b60405180910390a35062000412565b600060208284031215620003aa57600080fd5b81516001600160a01b0381168114620003c257600080fd5b9392505050565b600082821015620003ea57634e487b7160e01b600052601160045260246000fd5b500390565b6000826200040d57634e487b7160e01b600052601260045260246000fd5b500690565b611bb580620004226000396000f3fe60806040526004361061016a5760003560e01c806378f8484b116100d157806398a5c3151161008a578063c3c8cd8011610064578063c3c8cd8014610453578063c492f04614610468578063dd62ed3e14610488578063f2fde38b146104ce57600080fd5b806398a5c315146103e3578063a9059cbb14610403578063bfd792841461042357600080fd5b806378f8484b1461032d5780637d1db4a51461034d5780638da5cb5b146103635780638f70ccf7146103815780638f9a55c0146103a157806395d89b41146103b757600080fd5b8063313ce56711610123578063313ce5671461028557806349bd5a5e146102a15780636d8aa8f8146102c15780636fc3eaec146102e357806370a08231146102f8578063715018a61461031857600080fd5b806306fdde0314610176578063095ea7b3146101c15780631694505e146101f157806318160ddd1461022957806323b872dd1461024f5780632fd689e31461026f57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152601081526f576f726c64204375702046696e616c7360801b60208201525b6040516101b89190611990565b60405180910390f35b3480156101cd57600080fd5b506101e16101dc36600461188a565b6104ee565b60405190151581526020016101b8565b3480156101fd57600080fd5b50601354610211906001600160a01b031681565b6040516001600160a01b0390911681526020016101b8565b34801561023557600080fd5b5068056bc75e2d631000005b6040519081526020016101b8565b34801561025b57600080fd5b506101e161026a366004611849565b610505565b34801561027b57600080fd5b5061024160175481565b34801561029157600080fd5b50604051600981526020016101b8565b3480156102ad57600080fd5b50601454610211906001600160a01b031681565b3480156102cd57600080fd5b506102e16102dc36600461193a565b61056e565b005b3480156102ef57600080fd5b506102e16105bf565b34801561030457600080fd5b506102416103133660046117d6565b61060a565b34801561032457600080fd5b506102e161062c565b34801561033957600080fd5b506102e161034836600461196e565b6106a0565b34801561035957600080fd5b5061024160155481565b34801561036f57600080fd5b506000546001600160a01b0316610211565b34801561038d57600080fd5b506102e161039c36600461193a565b610775565b3480156103ad57600080fd5b5061024160165481565b3480156103c357600080fd5b506040805180820190915260038152622ba1a360e91b60208201526101ab565b3480156103ef57600080fd5b506102e16103fe366004611955565b6107bd565b34801561040f57600080fd5b506101e161041e36600461188a565b6107ec565b34801561042f57600080fd5b506101e161043e3660046117d6565b600f6020526000908152604090205460ff1681565b34801561045f57600080fd5b506102e16107f9565b34801561047457600080fd5b506102e16104833660046118b6565b61084d565b34801561049457600080fd5b506102416104a3366004611810565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104da57600080fd5b506102e16104e93660046117d6565b6108ee565b60006104fb3384846109d8565b5060015b92915050565b6000610512848484610afc565b610564843361055f85604051806060016040528060288152602001611b58602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611039565b6109d8565b5060019392505050565b6000546001600160a01b031633146105a15760405162461bcd60e51b8152600401610598906119e5565b60405180910390fd5b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b031614806105f457506012546001600160a01b0316336001600160a01b0316145b6105fd57600080fd5b4761060781611073565b50565b6001600160a01b0381166000908152600160205260408120546104ff906110fc565b6000546001600160a01b031633146106565760405162461bcd60e51b8152600401610598906119e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6011546001600160a01b0316336001600160a01b0316146106c057600080fd5b601554821180156106da575068056bc75e2d631000008211155b6107155760405162461bcd60e51b815260206004820152600c60248201526b4f7574206f662072616e676560a01b6044820152606401610598565b6016548111801561072f575068056bc75e2d631000008111155b61076a5760405162461bcd60e51b815260206004820152600c60248201526b4f7574206f662072616e676560a01b6044820152606401610598565b601591909155601655565b6000546001600160a01b0316331461079f5760405162461bcd60e51b8152600401610598906119e5565b60148054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107e75760405162461bcd60e51b8152600401610598906119e5565b601755565b60006104fb338484610afc565b6011546001600160a01b0316336001600160a01b0316148061082e57506012546001600160a01b0316336001600160a01b0316145b61083757600080fd5b60006108423061060a565b905061060781611180565b6000546001600160a01b031633146108775760405162461bcd60e51b8152600401610598906119e5565b60005b828110156108e857816004600086868581811061089957610899611b2c565b90506020020160208101906108ae91906117d6565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108e081611afb565b91505061087a565b50505050565b6000546001600160a01b031633146109185760405162461bcd60e51b8152600401610598906119e5565b6001600160a01b03811661097d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610598565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a3a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610598565b6001600160a01b038216610a9b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610598565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610598565b6001600160a01b038216610bc25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610598565b60008111610c245760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610598565b6000546001600160a01b03848116911614801590610c5057506000546001600160a01b03838116911614155b15610f3257601454600160a01b900460ff16610ce9576000546001600160a01b03848116911614610ce95760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610598565b601554811115610d3b5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610598565b6001600160a01b0383166000908152600f602052604090205460ff16158015610d7d57506001600160a01b0382166000908152600f602052604090205460ff16155b610dd55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610598565b6014546001600160a01b03838116911614610e5b5760165481610df78461060a565b610e019190611a8b565b1115610e5b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610598565b6000610e663061060a565b601754601554919250821015908210610e7f5760155491505b808015610e965750601454600160a81b900460ff16155b8015610eb057506014546001600160a01b03868116911614155b8015610ec55750601454600160b01b900460ff165b8015610eea57506001600160a01b03851660009081526004602052604090205460ff16155b8015610f0f57506001600160a01b03841660009081526004602052604090205460ff16155b15610f2f57610f1d82611180565b478015610f2d57610f2d47611073565b505b50505b6001600160a01b03831660009081526004602052604090205460019060ff1680610f7457506001600160a01b03831660009081526004602052604090205460ff165b80610fa657506014546001600160a01b03858116911614801590610fa657506014546001600160a01b03848116911614155b15610fb35750600061102d565b6014546001600160a01b038581169116148015610fde57506013546001600160a01b03848116911614155b15610ff057600754600b55600854600c555b6014546001600160a01b03848116911614801561101b57506013546001600160a01b03858116911614155b1561102d57600954600b55600a54600c555b6108e884848484611309565b6000818484111561105d5760405162461bcd60e51b81526004016105989190611990565b50600061106a8486611ae4565b95945050505050565b6011546001600160a01b03166108fc61108d836002611337565b6040518115909202916000818181858888f193505050501580156110b5573d6000803e3d6000fd5b506012546001600160a01b03166108fc6110d0836002611337565b6040518115909202916000818181858888f193505050501580156110f8573d6000803e3d6000fd5b5050565b60006005548211156111635760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610598565b600061116d611379565b90506111798382611337565b9392505050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111c8576111c8611b2c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561121c57600080fd5b505afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125491906117f3565b8160018151811061126757611267611b2c565b6001600160a01b03928316602091820292909201015260135461128d91309116846109d8565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c6908590600090869030904290600401611a1a565b600060405180830381600087803b1580156112e057600080fd5b505af11580156112f4573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b806113165761131661139c565b6113218484846113ca565b806108e8576108e8600d54600b55600e54600c55565b600061117983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114c1565b60008060006113866114ef565b90925090506113958282611337565b9250505090565b600b541580156113ac5750600c54155b156113b357565b600b8054600d55600c8054600e5560009182905555565b6000806000806000806113dc87611531565b6001600160a01b038f16600090815260016020526040902054959b5093995091975095509350915061140e908761158e565b6001600160a01b03808b1660009081526001602052604080822093909355908a168152205461143d90866115d0565b6001600160a01b03891660009081526001602052604090205561145f8161162f565b6114698483611679565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114ae91815260200190565b60405180910390a3505050505050505050565b600081836114e25760405162461bcd60e51b81526004016105989190611990565b50600061106a8486611aa3565b600554600090819068056bc75e2d6310000061150b8282611337565b8210156115285750506005549268056bc75e2d6310000092509050565b90939092509050565b600080600080600080600080600061154e8a600b54600c5461169d565b925092509250600061155e611379565b905060008060006115718e8787876116f2565b919e509c509a509598509396509194505050505091939550919395565b600061117983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611039565b6000806115dd8385611a8b565b9050838110156111795760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610598565b6000611639611379565b905060006116478383611742565b3060009081526001602052604090205490915061166490826115d0565b30600090815260016020526040902055505050565b600554611686908361158e565b60055560065461169690826115d0565b6006555050565b60008080806116b760646116b18989611742565b90611337565b905060006116ca60646116b18a89611742565b905060006116e2826116dc8b8661158e565b9061158e565b9992985090965090945050505050565b60008080806117018886611742565b9050600061170f8887611742565b9050600061171d8888611742565b9050600061172f826116dc868661158e565b939b939a50919850919650505050505050565b600082611751575060006104ff565b600061175d8385611ac5565b90508261176a8583611aa3565b146111795760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610598565b803580151581146117d157600080fd5b919050565b6000602082840312156117e857600080fd5b813561117981611b42565b60006020828403121561180557600080fd5b815161117981611b42565b6000806040838503121561182357600080fd5b823561182e81611b42565b9150602083013561183e81611b42565b809150509250929050565b60008060006060848603121561185e57600080fd5b833561186981611b42565b9250602084013561187981611b42565b929592945050506040919091013590565b6000806040838503121561189d57600080fd5b82356118a881611b42565b946020939093013593505050565b6000806000604084860312156118cb57600080fd5b833567ffffffffffffffff808211156118e357600080fd5b818601915086601f8301126118f757600080fd5b81358181111561190657600080fd5b8760208260051b850101111561191b57600080fd5b60209283019550935061193191860190506117c1565b90509250925092565b60006020828403121561194c57600080fd5b611179826117c1565b60006020828403121561196757600080fd5b5035919050565b6000806040838503121561198157600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156119bd578581018301518582016040015282016119a1565b818111156119cf576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a6a5784516001600160a01b031683529383019391830191600101611a45565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611a9e57611a9e611b16565b500190565b600082611ac057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611adf57611adf611b16565b500290565b600082821015611af657611af6611b16565b500390565b6000600019821415611b0f57611b0f611b16565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461060757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fc4812502be4e60958237ffb45a74c959e4410ef60c806d2f6ba1acc154c152564736f6c63430008070033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806378f8484b116100d157806398a5c3151161008a578063c3c8cd8011610064578063c3c8cd8014610453578063c492f04614610468578063dd62ed3e14610488578063f2fde38b146104ce57600080fd5b806398a5c315146103e3578063a9059cbb14610403578063bfd792841461042357600080fd5b806378f8484b1461032d5780637d1db4a51461034d5780638da5cb5b146103635780638f70ccf7146103815780638f9a55c0146103a157806395d89b41146103b757600080fd5b8063313ce56711610123578063313ce5671461028557806349bd5a5e146102a15780636d8aa8f8146102c15780636fc3eaec146102e357806370a08231146102f8578063715018a61461031857600080fd5b806306fdde0314610176578063095ea7b3146101c15780631694505e146101f157806318160ddd1461022957806323b872dd1461024f5780632fd689e31461026f57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152601081526f576f726c64204375702046696e616c7360801b60208201525b6040516101b89190611990565b60405180910390f35b3480156101cd57600080fd5b506101e16101dc36600461188a565b6104ee565b60405190151581526020016101b8565b3480156101fd57600080fd5b50601354610211906001600160a01b031681565b6040516001600160a01b0390911681526020016101b8565b34801561023557600080fd5b5068056bc75e2d631000005b6040519081526020016101b8565b34801561025b57600080fd5b506101e161026a366004611849565b610505565b34801561027b57600080fd5b5061024160175481565b34801561029157600080fd5b50604051600981526020016101b8565b3480156102ad57600080fd5b50601454610211906001600160a01b031681565b3480156102cd57600080fd5b506102e16102dc36600461193a565b61056e565b005b3480156102ef57600080fd5b506102e16105bf565b34801561030457600080fd5b506102416103133660046117d6565b61060a565b34801561032457600080fd5b506102e161062c565b34801561033957600080fd5b506102e161034836600461196e565b6106a0565b34801561035957600080fd5b5061024160155481565b34801561036f57600080fd5b506000546001600160a01b0316610211565b34801561038d57600080fd5b506102e161039c36600461193a565b610775565b3480156103ad57600080fd5b5061024160165481565b3480156103c357600080fd5b506040805180820190915260038152622ba1a360e91b60208201526101ab565b3480156103ef57600080fd5b506102e16103fe366004611955565b6107bd565b34801561040f57600080fd5b506101e161041e36600461188a565b6107ec565b34801561042f57600080fd5b506101e161043e3660046117d6565b600f6020526000908152604090205460ff1681565b34801561045f57600080fd5b506102e16107f9565b34801561047457600080fd5b506102e16104833660046118b6565b61084d565b34801561049457600080fd5b506102416104a3366004611810565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104da57600080fd5b506102e16104e93660046117d6565b6108ee565b60006104fb3384846109d8565b5060015b92915050565b6000610512848484610afc565b610564843361055f85604051806060016040528060288152602001611b58602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611039565b6109d8565b5060019392505050565b6000546001600160a01b031633146105a15760405162461bcd60e51b8152600401610598906119e5565b60405180910390fd5b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b031614806105f457506012546001600160a01b0316336001600160a01b0316145b6105fd57600080fd5b4761060781611073565b50565b6001600160a01b0381166000908152600160205260408120546104ff906110fc565b6000546001600160a01b031633146106565760405162461bcd60e51b8152600401610598906119e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6011546001600160a01b0316336001600160a01b0316146106c057600080fd5b601554821180156106da575068056bc75e2d631000008211155b6107155760405162461bcd60e51b815260206004820152600c60248201526b4f7574206f662072616e676560a01b6044820152606401610598565b6016548111801561072f575068056bc75e2d631000008111155b61076a5760405162461bcd60e51b815260206004820152600c60248201526b4f7574206f662072616e676560a01b6044820152606401610598565b601591909155601655565b6000546001600160a01b0316331461079f5760405162461bcd60e51b8152600401610598906119e5565b60148054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107e75760405162461bcd60e51b8152600401610598906119e5565b601755565b60006104fb338484610afc565b6011546001600160a01b0316336001600160a01b0316148061082e57506012546001600160a01b0316336001600160a01b0316145b61083757600080fd5b60006108423061060a565b905061060781611180565b6000546001600160a01b031633146108775760405162461bcd60e51b8152600401610598906119e5565b60005b828110156108e857816004600086868581811061089957610899611b2c565b90506020020160208101906108ae91906117d6565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108e081611afb565b91505061087a565b50505050565b6000546001600160a01b031633146109185760405162461bcd60e51b8152600401610598906119e5565b6001600160a01b03811661097d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610598565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a3a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610598565b6001600160a01b038216610a9b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610598565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610598565b6001600160a01b038216610bc25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610598565b60008111610c245760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610598565b6000546001600160a01b03848116911614801590610c5057506000546001600160a01b03838116911614155b15610f3257601454600160a01b900460ff16610ce9576000546001600160a01b03848116911614610ce95760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610598565b601554811115610d3b5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610598565b6001600160a01b0383166000908152600f602052604090205460ff16158015610d7d57506001600160a01b0382166000908152600f602052604090205460ff16155b610dd55760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610598565b6014546001600160a01b03838116911614610e5b5760165481610df78461060a565b610e019190611a8b565b1115610e5b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610598565b6000610e663061060a565b601754601554919250821015908210610e7f5760155491505b808015610e965750601454600160a81b900460ff16155b8015610eb057506014546001600160a01b03868116911614155b8015610ec55750601454600160b01b900460ff165b8015610eea57506001600160a01b03851660009081526004602052604090205460ff16155b8015610f0f57506001600160a01b03841660009081526004602052604090205460ff16155b15610f2f57610f1d82611180565b478015610f2d57610f2d47611073565b505b50505b6001600160a01b03831660009081526004602052604090205460019060ff1680610f7457506001600160a01b03831660009081526004602052604090205460ff165b80610fa657506014546001600160a01b03858116911614801590610fa657506014546001600160a01b03848116911614155b15610fb35750600061102d565b6014546001600160a01b038581169116148015610fde57506013546001600160a01b03848116911614155b15610ff057600754600b55600854600c555b6014546001600160a01b03848116911614801561101b57506013546001600160a01b03858116911614155b1561102d57600954600b55600a54600c555b6108e884848484611309565b6000818484111561105d5760405162461bcd60e51b81526004016105989190611990565b50600061106a8486611ae4565b95945050505050565b6011546001600160a01b03166108fc61108d836002611337565b6040518115909202916000818181858888f193505050501580156110b5573d6000803e3d6000fd5b506012546001600160a01b03166108fc6110d0836002611337565b6040518115909202916000818181858888f193505050501580156110f8573d6000803e3d6000fd5b5050565b60006005548211156111635760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610598565b600061116d611379565b90506111798382611337565b9392505050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111c8576111c8611b2c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561121c57600080fd5b505afa158015611230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125491906117f3565b8160018151811061126757611267611b2c565b6001600160a01b03928316602091820292909201015260135461128d91309116846109d8565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c6908590600090869030904290600401611a1a565b600060405180830381600087803b1580156112e057600080fd5b505af11580156112f4573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b806113165761131661139c565b6113218484846113ca565b806108e8576108e8600d54600b55600e54600c55565b600061117983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114c1565b60008060006113866114ef565b90925090506113958282611337565b9250505090565b600b541580156113ac5750600c54155b156113b357565b600b8054600d55600c8054600e5560009182905555565b6000806000806000806113dc87611531565b6001600160a01b038f16600090815260016020526040902054959b5093995091975095509350915061140e908761158e565b6001600160a01b03808b1660009081526001602052604080822093909355908a168152205461143d90866115d0565b6001600160a01b03891660009081526001602052604090205561145f8161162f565b6114698483611679565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516114ae91815260200190565b60405180910390a3505050505050505050565b600081836114e25760405162461bcd60e51b81526004016105989190611990565b50600061106a8486611aa3565b600554600090819068056bc75e2d6310000061150b8282611337565b8210156115285750506005549268056bc75e2d6310000092509050565b90939092509050565b600080600080600080600080600061154e8a600b54600c5461169d565b925092509250600061155e611379565b905060008060006115718e8787876116f2565b919e509c509a509598509396509194505050505091939550919395565b600061117983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611039565b6000806115dd8385611a8b565b9050838110156111795760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610598565b6000611639611379565b905060006116478383611742565b3060009081526001602052604090205490915061166490826115d0565b30600090815260016020526040902055505050565b600554611686908361158e565b60055560065461169690826115d0565b6006555050565b60008080806116b760646116b18989611742565b90611337565b905060006116ca60646116b18a89611742565b905060006116e2826116dc8b8661158e565b9061158e565b9992985090965090945050505050565b60008080806117018886611742565b9050600061170f8887611742565b9050600061171d8888611742565b9050600061172f826116dc868661158e565b939b939a50919850919650505050505050565b600082611751575060006104ff565b600061175d8385611ac5565b90508261176a8583611aa3565b146111795760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610598565b803580151581146117d157600080fd5b919050565b6000602082840312156117e857600080fd5b813561117981611b42565b60006020828403121561180557600080fd5b815161117981611b42565b6000806040838503121561182357600080fd5b823561182e81611b42565b9150602083013561183e81611b42565b809150509250929050565b60008060006060848603121561185e57600080fd5b833561186981611b42565b9250602084013561187981611b42565b929592945050506040919091013590565b6000806040838503121561189d57600080fd5b82356118a881611b42565b946020939093013593505050565b6000806000604084860312156118cb57600080fd5b833567ffffffffffffffff808211156118e357600080fd5b818601915086601f8301126118f757600080fd5b81358181111561190657600080fd5b8760208260051b850101111561191b57600080fd5b60209283019550935061193191860190506117c1565b90509250925092565b60006020828403121561194c57600080fd5b611179826117c1565b60006020828403121561196757600080fd5b5035919050565b6000806040838503121561198157600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156119bd578581018301518582016040015282016119a1565b818111156119cf576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a6a5784516001600160a01b031683529383019391830191600101611a45565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611a9e57611a9e611b16565b500190565b600082611ac057634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611adf57611adf611b16565b500290565b600082821015611af657611af6611b16565b500390565b6000600019821415611b0f57611b0f611b16565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461060757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fc4812502be4e60958237ffb45a74c959e4410ef60c806d2f6ba1acc154c152564736f6c63430008070033

Deployed Bytecode Sourcemap

4122:13382:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6720:83;;;;;;;;;;-1:-1:-1;6790:5:0;;;;;;;;;;;;-1:-1:-1;;;6790:5:0;;;;6720:83;;;;;;;:::i;:::-;;;;;;;;7652:193;;;;;;;;;;-1:-1:-1;7652:193:0;;;;;:::i;:::-;;:::i;:::-;;;3551:14:1;;3544:22;3526:41;;3514:2;3499:18;7652:193:0;3386:187:1;5542:41:0;;;;;;;;;;-1:-1:-1;5542:41:0;;;;-1:-1:-1;;;;;5542:41:0;;;;;;-1:-1:-1;;;;;3342:32:1;;;3324:51;;3312:2;3297:18;5542:41:0;3178:203:1;7000:95:0;;;;;;;;;;-1:-1:-1;4688:20:0;7000:95;;;10463:25:1;;;10451:2;10436:18;7000:95:0;10317:177:1;7854:446:0;;;;;;;;;;-1:-1:-1;7854:446:0;;;;;:::i;:::-;;:::i;5852:55::-;;;;;;;;;;;;;;;;6908:83;;;;;;;;;;-1:-1:-1;6908:83:0;;4361:1;11626:36:1;;11614:2;11599:18;6908:83:0;11484:184:1;5590:28:0;;;;;;;;;;-1:-1:-1;5590:28:0;;;;-1:-1:-1;;;;;5590:28:0;;;16664:101;;;;;;;;;;-1:-1:-1;16664:101:0;;;;;:::i;:::-;;:::i;:::-;;12749:235;;;;;;;;;;;;;:::i;7104:138::-;;;;;;;;;;-1:-1:-1;7104:138:0;;;;;:::i;:::-;;:::i;1595:148::-;;;;;;;;;;;;;:::i;16838:420::-;;;;;;;;;;-1:-1:-1;16838:420:0;;;;;:::i;:::-;;:::i;5734:48::-;;;;;;;;;;;;;;;;1379:79;;;;;;;;;;-1:-1:-1;1417:7:0;1444:6;-1:-1:-1;;;;;1444:6:0;1379:79;;12394:101;;;;;;;;;;-1:-1:-1;12394:101:0;;;;;:::i;:::-;;:::i;5792:50::-;;;;;;;;;;;;;;;;6812:87;;;;;;;;;;-1:-1:-1;6884:7:0;;;;;;;;;;;;-1:-1:-1;;;6884:7:0;;;;6812:87;;16472:139;;;;;;;;;;-1:-1:-1;16472:139:0;;;;;:::i;:::-;;:::i;7251:199::-;;;;;;;;;;-1:-1:-1;7251:199:0;;;;;:::i;:::-;;:::i;5236:36::-;;;;;;;;;;-1:-1:-1;5236:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12504:236;;;;;;;;;;;;;:::i;17267:234::-;;;;;;;;;;-1:-1:-1;17267:234:0;;;;;:::i;:::-;;:::i;7459:184::-;;;;;;;;;;-1:-1:-1;7459:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7608:18:0;;;7576:7;7608:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7459:184;1752:244;;;;;;;;;;-1:-1:-1;1752:244:0;;;;;:::i;:::-;;:::i;7652:193::-;7754:4;7776:39;245:10;7799:7;7808:6;7776:8;:39::i;:::-;-1:-1:-1;7833:4:0;7652:193;;;;;:::o;7854:446::-;7986:4;8003:36;8013:6;8021:9;8032:6;8003:9;:36::i;:::-;8050:220;8073:6;245:10;8121:138;8177:6;8121:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8121:19:0;;;;;;:11;:19;;;;;;;;245:10;8121:33;;;;;;;;;;:37;:138::i;:::-;8050:8;:220::i;:::-;-1:-1:-1;8288:4:0;7854:446;;;;;:::o;16664:101::-;1507:6;;-1:-1:-1;;;;;1507:6:0;245:10;1507:22;1499:67;;;;-1:-1:-1;;;1499:67:0;;;;;;;:::i;:::-;;;;;;;;;16731:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16731:26:0::1;-1:-1:-1::0;;;;16731:26:0;;::::1;::::0;;;::::1;::::0;;16664:101::o;12749:235::-;12815:19;;-1:-1:-1;;;;;12815:19:0;245:10;-1:-1:-1;;;;;12799:35:0;;:72;;;-1:-1:-1;12854:17:0;;-1:-1:-1;;;;;12854:17:0;245:10;-1:-1:-1;;;;;12838:33:0;;12799:72;12791:81;;;;;;12912:21;12944:32;12912:21;12944:12;:32::i;:::-;12780:204;12749:235::o;7104:138::-;-1:-1:-1;;;;;7217:16:0;;7170:7;7217:16;;;:7;:16;;;;;;7197:37;;:19;:37::i;1595:148::-;1507:6;;-1:-1:-1;;;;;1507:6:0;245:10;1507:22;1499:67;;;;-1:-1:-1;;;1499:67:0;;;;;;;:::i;:::-;1702:1:::1;1686:6:::0;;1665:40:::1;::::0;-1:-1:-1;;;;;1686:6:0;;::::1;::::0;1665:40:::1;::::0;1702:1;;1665:40:::1;1733:1;1716:19:::0;;-1:-1:-1;;;;;;1716:19:0::1;::::0;;1595:148::o;16838:420::-;16950:19;;-1:-1:-1;;;;;16950:19:0;245:10;-1:-1:-1;;;;;16934:35:0;;16926:44;;;;;;17004:12;;16989;:27;:60;;;;-1:-1:-1;4688:20:0;17020:12;:29;;16989:60;16981:85;;;;-1:-1:-1;;;16981:85:0;;9773:2:1;16981:85:0;;;9755:21:1;9812:2;9792:18;;;9785:30;-1:-1:-1;;;9831:18:1;;;9824:42;9883:18;;16981:85:0;9571:336:1;16981:85:0;17102:14;;17085;:31;:66;;;;-1:-1:-1;4688:20:0;17120:14;:31;;17085:66;17077:91;;;;-1:-1:-1;;;17077:91:0;;9773:2:1;17077:91:0;;;9755:21:1;9812:2;9792:18;;;9785:30;-1:-1:-1;;;9831:18:1;;;9824:42;9883:18;;17077:91:0;9571:336:1;17077:91:0;17181:12;:27;;;;17219:14;:31;16838:420::o;12394:101::-;1507:6;;-1:-1:-1;;;;;1507:6:0;245:10;1507:22;1499:67;;;;-1:-1:-1;;;1499:67:0;;;;;;;:::i;:::-;12461:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12461:26:0::1;-1:-1:-1::0;;;;12461:26:0;;::::1;::::0;;;::::1;::::0;;12394:101::o;16472:139::-;1507:6;;-1:-1:-1;;;;;1507:6:0;245:10;1507:22;1499:67;;;;-1:-1:-1;;;1499:67:0;;;;;;;:::i;:::-;16563:19:::1;:40:::0;16472:139::o;7251:199::-;7356:4;7378:42;245:10;7402:9;7413:6;7378:9;:42::i;12504:236::-;12570:19;;-1:-1:-1;;;;;12570:19:0;245:10;-1:-1:-1;;;;;12554:35:0;;:72;;;-1:-1:-1;12609:17:0;;-1:-1:-1;;;;;12609:17:0;245:10;-1:-1:-1;;;;;12593:33:0;;12554:72;12546:81;;;;;;12638:23;12664:24;12682:4;12664:9;:24::i;:::-;12638:50;;12699:33;12716:15;12699:16;:33::i;17267:234::-;1507:6;;-1:-1:-1;;;;;1507:6:0;245:10;1507:22;1499:67;;;;-1:-1:-1;;;1499:67:0;;;;;;;:::i;:::-;17384:9:::1;17380:114;17399:19:::0;;::::1;17380:114;;;17474:8;17440:18;:31;17459:8;;17468:1;17459:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17440:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17440:31:0;:42;;-1:-1:-1;;17440:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17420:3;::::1;::::0;::::1;:::i;:::-;;;;17380:114;;;;17267:234:::0;;;:::o;1752:244::-;1507:6;;-1:-1:-1;;;;;1507:6:0;245:10;1507:22;1499:67;;;;-1:-1:-1;;;1499:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1841:22:0;::::1;1833:73;;;::::0;-1:-1:-1;;;1833:73:0;;6220:2:1;1833:73:0::1;::::0;::::1;6202:21:1::0;6259:2;6239:18;;;6232:30;6298:34;6278:18;;;6271:62;-1:-1:-1;;;6349:18:1;;;6342:36;6395:19;;1833:73:0::1;6018:402:1::0;1833:73:0::1;1943:6;::::0;;1922:38:::1;::::0;-1:-1:-1;;;;;1922:38:0;;::::1;::::0;1943:6;::::1;::::0;1922:38:::1;::::0;::::1;1971:6;:17:::0;;-1:-1:-1;;;;;;1971:17:0::1;-1:-1:-1::0;;;;;1971:17:0;;;::::1;::::0;;;::::1;::::0;;1752:244::o;8997:369::-;-1:-1:-1;;;;;9124:19:0;;9116:68;;;;-1:-1:-1;;;9116:68:0;;10114:2:1;9116:68:0;;;10096:21:1;10153:2;10133:18;;;10126:30;10192:34;10172:18;;;10165:62;-1:-1:-1;;;10243:18:1;;;10236:34;10287:19;;9116:68:0;9912:400:1;9116:68:0;-1:-1:-1;;;;;9203:21:0;;9195:68;;;;-1:-1:-1;;;9195:68:0;;6627:2:1;9195:68:0;;;6609:21:1;6666:2;6646:18;;;6639:30;6705:34;6685:18;;;6678:62;-1:-1:-1;;;6756:18:1;;;6749:32;6798:19;;9195:68:0;6425:398:1;9195:68:0;-1:-1:-1;;;;;9274:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9326:32;;10463:25:1;;;9326:32:0;;10436:18:1;9326:32:0;;;;;;;8997:369;;;:::o;9375:2349::-;-1:-1:-1;;;;;9497:18:0;;9489:68;;;;-1:-1:-1;;;9489:68:0;;8963:2:1;9489:68:0;;;8945:21:1;9002:2;8982:18;;;8975:30;9041:34;9021:18;;;9014:62;-1:-1:-1;;;9092:18:1;;;9085:35;9137:19;;9489:68:0;8761:401:1;9489:68:0;-1:-1:-1;;;;;9576:16:0;;9568:64;;;;-1:-1:-1;;;9568:64:0;;4616:2:1;9568:64:0;;;4598:21:1;4655:2;4635:18;;;4628:30;4694:34;4674:18;;;4667:62;-1:-1:-1;;;4745:18:1;;;4738:33;4788:19;;9568:64:0;4414:399:1;9568:64:0;9660:1;9651:6;:10;9643:64;;;;-1:-1:-1;;;9643:64:0;;8553:2:1;9643:64:0;;;8535:21:1;8592:2;8572:18;;;8565:30;8631:34;8611:18;;;8604:62;-1:-1:-1;;;8682:18:1;;;8675:39;8731:19;;9643:64:0;8351:405:1;9643:64:0;1417:7;1444:6;-1:-1:-1;;;;;9725:15:0;;;1444:6;;9725:15;;;;:32;;-1:-1:-1;1417:7:0;1444:6;-1:-1:-1;;;;;9744:13:0;;;1444:6;;9744:13;;9725:32;9721:1271;;;9815:11;;-1:-1:-1;;;9815:11:0;;;;9810:144;;1417:7;1444:6;-1:-1:-1;;;;;9855:15:0;;;1444:6;;9855:15;9847:91;;;;-1:-1:-1;;;9847:91:0;;5020:2:1;9847:91:0;;;5002:21:1;5059:2;5039:18;;;5032:30;5098:34;5078:18;;;5071:62;5169:33;5149:18;;;5142:61;5220:19;;9847:91:0;4818:427:1;9847:91:0;9989:12;;9979:6;:22;;9971:63;;;;-1:-1:-1;;;9971:63:0;;5863:2:1;9971:63:0;;;5845:21:1;5902:2;5882:18;;;5875:30;5941;5921:18;;;5914:58;5989:18;;9971:63:0;5661:352:1;9971:63:0;-1:-1:-1;;;;;10060:10:0;;;;;;:4;:10;;;;;;;;10059:11;:24;;;;-1:-1:-1;;;;;;10075:8:0;;;;;;:4;:8;;;;;;;;10074:9;10059:24;10051:72;;;;-1:-1:-1;;;10051:72:0;;7030:2:1;10051:72:0;;;7012:21:1;7069:2;7049:18;;;7042:30;7108:34;7088:18;;;7081:62;-1:-1:-1;;;7159:18:1;;;7152:33;7202:19;;10051:72:0;6828:399:1;10051:72:0;10153:13;;-1:-1:-1;;;;;10147:19:0;;;10153:13;;10147:19;10144:147;;10221:14;;10211:6;10195:13;10205:2;10195:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10187:88;;;;-1:-1:-1;;;10187:88:0;;9369:2:1;10187:88:0;;;9351:21:1;9408:2;9388:18;;;9381:30;9447:34;9427:18;;;9420:62;-1:-1:-1;;;9498:18:1;;;9491:33;9541:19;;10187:88:0;9167:399:1;10187:88:0;10308:28;10339:24;10357:4;10339:9;:24::i;:::-;10417:19;;10481:12;;10308:55;;-1:-1:-1;10393:43:0;;;;10457:36;;10454:124;;10550:12;;10527:35;;10454:124;10599:7;:18;;;;-1:-1:-1;10611:6:0;;-1:-1:-1;;;10611:6:0;;;;10610:7;10599:18;:43;;;;-1:-1:-1;10629:13:0;;-1:-1:-1;;;;;10621:21:0;;;10629:13;;10621:21;;10599:43;:58;;;;-1:-1:-1;10646:11:0;;-1:-1:-1;;;10646:11:0;;;;10599:58;:87;;;;-1:-1:-1;;;;;;10662:24:0;;;;;;:18;:24;;;;;;;;10661:25;10599:87;:114;;;;-1:-1:-1;;;;;;10691:22:0;;;;;;:18;:22;;;;;;;;10690:23;10599:114;10595:386;;;10734:38;10751:20;10734:16;:38::i;:::-;10820:21;10864:22;;10860:106;;10911:35;10924:21;10911:12;:35::i;:::-;10715:266;10595:386;9759:1233;;9721:1271;-1:-1:-1;;;;;11070:24:0;;11005:12;11070:24;;;:18;:24;;;;;;11020:4;;11070:24;;;:50;;-1:-1:-1;;;;;;11098:22:0;;;;;;:18;:22;;;;;;;;11070:50;11069:102;;;-1:-1:-1;11134:13:0;;-1:-1:-1;;;;;11126:21:0;;;11134:13;;11126:21;;;;:44;;-1:-1:-1;11157:13:0;;-1:-1:-1;;;;;11151:19:0;;;11157:13;;11151:19;;11126:44;11065:597;;;-1:-1:-1;11198:5:0;11065:597;;;11282:13;;-1:-1:-1;;;;;11274:21:0;;;11282:13;;11274:21;:55;;;;-1:-1:-1;11313:15:0;;-1:-1:-1;;;;;11299:30:0;;;11313:15;;11299:30;;11274:55;11271:162;;;11362:14;;11350:9;:26;11405:12;;11395:7;:22;11271:162;11493:13;;-1:-1:-1;;;;;11487:19:0;;;11493:13;;11487:19;:55;;;;-1:-1:-1;11526:15:0;;-1:-1:-1;;;;;11510:32:0;;;11526:15;;11510:32;;11487:55;11483:165;;;11575:15;;11563:9;:27;11619:13;;11609:7;:23;11483:165;11675:41;11690:4;11696:2;11700:6;11708:7;11675:14;:41::i;2364:224::-;2484:7;2520:12;2512:6;;;;2504:29;;;;-1:-1:-1;;;2504:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2544:9:0;2556:5;2560:1;2556;:5;:::i;:::-;2544:17;2364:224;-1:-1:-1;;;;;2364:224:0:o;12225:160::-;12282:19;;-1:-1:-1;;;;;12282:19:0;:43;12311:13;:6;12322:1;12311:10;:13::i;:::-;12282:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12336:17:0;;-1:-1:-1;;;;;12336:17:0;:41;12363:13;:6;12374:1;12363:10;:13::i;:::-;12336:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12225:160;:::o;8309:323::-;8404:7;8462;;8451;:18;;8429:110;;;;-1:-1:-1;;;8429:110:0;;5452:2:1;8429:110:0;;;5434:21:1;5491:2;5471:18;;;5464:30;5530:34;5510:18;;;5503:62;-1:-1:-1;;;5581:18:1;;;5574:40;5631:19;;8429:110:0;5250:406:1;8429:110:0;8550:19;8572:10;:8;:10::i;:::-;8550:32;-1:-1:-1;8600:24:0;:7;8550:32;8600:11;:24::i;:::-;8593:31;8309:323;-1:-1:-1;;;8309:323:0:o;11733:483::-;6005:6;:13;;-1:-1:-1;;;;6005:13:0;-1:-1:-1;;;6005:13:0;;;11835:16:::1;::::0;;11849:1:::1;11835:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11835:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11835:16:0::1;11811:40;;11880:4;11862;11867:1;11862:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11862:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11906:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11906:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11862:7;;11906:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11896:4;11901:1;11896:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11896:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11971:15:::1;::::0;11939:62:::1;::::0;11956:4:::1;::::0;11971:15:::1;11989:11:::0;11939:8:::1;:62::i;:::-;12012:15;::::0;:196:::1;::::0;-1:-1:-1;;;12012:196:0;;-1:-1:-1;;;;;12012:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12093:11;;12012:15:::1;::::0;12135:4;;12162::::1;::::0;12182:15:::1;::::0;12012:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6041:6:0;:14;;-1:-1:-1;;;;6041:14:0;;;-1:-1:-1;;;;11733:483:0:o;12999:282::-;13155:7;13150:28;;13164:14;:12;:14::i;:::-;13189:44;13207:6;13215:9;13226:6;13189:17;:44::i;:::-;13249:7;13244:29;;13258:15;8927:17;;8915:9;:29;8965:15;;8955:7;:25;8871:117;2852:132;2910:7;2937:39;2941:1;2944;2937:39;;;;;;;;;;;;;;;;;:3;:39::i;15977:167::-;16019:7;16040:15;16057;16076:19;:17;:19::i;:::-;16039:56;;-1:-1:-1;16039:56:0;-1:-1:-1;16116:20:0;16039:56;;16116:11;:20::i;:::-;16109:27;;;;15977:167;:::o;8641:221::-;8688:9;;:14;:30;;;;-1:-1:-1;8706:7:0;;:12;8688:30;8684:43;;;8641:221::o;8684:43::-;8760:9;;;8740:17;:29;8798:7;;;8780:15;:25;-1:-1:-1;8819:13:0;;;;8843:11;8641:221::o;13290:610::-;13437:15;13467:23;13505:12;13532:23;13570:12;13597:13;13624:19;13635:7;13624:10;:19::i;:::-;-1:-1:-1;;;;;13672:15:0;;;;;;:7;:15;;;;;;13422:221;;-1:-1:-1;13422:221:0;;-1:-1:-1;13422:221:0;;-1:-1:-1;13422:221:0;-1:-1:-1;13422:221:0;-1:-1:-1;13422:221:0;-1:-1:-1;13672:28:0;;13422:221;13672:19;:28::i;:::-;-1:-1:-1;;;;;13654:15:0;;;;;;;:7;:15;;;;;;:46;;;;13732:18;;;;;;;:39;;13755:15;13732:22;:39::i;:::-;-1:-1:-1;;;;;13711:18:0;;;;;;:7;:18;;;;;:60;13782:16;13792:5;13782:9;:16::i;:::-;13809:23;13821:4;13827;13809:11;:23::i;:::-;13865:9;-1:-1:-1;;;;;13848:44:0;13857:6;-1:-1:-1;;;;;13848:44:0;;13876:15;13848:44;;;;10463:25:1;;10451:2;10436:18;;10317:177;13848:44:0;;;;;;;;13411:489;;;;;;13290:610;;;:::o;2993:223::-;3113:7;3148:12;3141:5;3133:28;;;;-1:-1:-1;;;3133:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3172:9:0;3184:5;3188:1;3184;:5;:::i;16153:260::-;16251:7;;16204;;;;4688:20;16319;16251:7;4688:20;16319:11;:20::i;:::-;16309:7;:30;16305:61;;;-1:-1:-1;;16349:7:0;;;4688:20;;-1:-1:-1;16153:260:0;-1:-1:-1;16153:260:0:o;16305:61::-;16388:7;;16397;;-1:-1:-1;16153:260:0;-1:-1:-1;16153:260:0:o;14323:618::-;14423:7;14445;14467;14489;14511;14533;14569:23;14594:12;14608:13;14638:40;14650:7;14659:9;;14670:7;;14638:11;:40::i;:::-;14568:110;;;;;;14689:19;14711:10;:8;:10::i;:::-;14689:32;;14733:15;14750:23;14775:12;14804:46;14816:7;14825:4;14831:5;14838:11;14804;:46::i;:::-;14732:118;;-1:-1:-1;14732:118:0;-1:-1:-1;14732:118:0;-1:-1:-1;14904:15:0;;-1:-1:-1;14921:4:0;;-1:-1:-1;14927:5:0;;-1:-1:-1;;;;;14323:618:0;;;;;;;:::o;2219:136::-;2277:7;2304:43;2308:1;2311;2304:43;;;;;;;;;;;;;;;;;:3;:43::i;2031:179::-;2089:7;;2121:5;2125:1;2121;:5;:::i;:::-;2109:17;;2150:1;2145;:6;;2137:46;;;;-1:-1:-1;;;2137:46:0;;7434:2:1;2137:46:0;;;7416:21:1;7473:2;7453:18;;;7446:30;7512:29;7492:18;;;7485:57;7559:18;;2137:46:0;7232:351:1;13909:211:0;13962:19;13984:10;:8;:10::i;:::-;13962:32;-1:-1:-1;14005:13:0;14021:22;:5;13962:32;14021:9;:22::i;:::-;14095:4;14079:22;;;;:7;:22;;;;;;14005:38;;-1:-1:-1;14079:33:0;;14005:38;14079:26;:33::i;:::-;14070:4;14054:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13909:211:0:o;14129:147::-;14207:7;;:17;;14219:4;14207:11;:17::i;:::-;14197:7;:27;14248:10;;:20;;14263:4;14248:14;:20::i;:::-;14235:10;:33;-1:-1:-1;;14129:147:0:o;14950:472::-;15119:7;;;;15213:30;15239:3;15213:21;:7;15225:8;15213:11;:21::i;:::-;:25;;:30::i;:::-;15198:45;-1:-1:-1;15254:13:0;15270:28;15294:3;15270:19;:7;15282:6;15270:11;:19::i;:28::-;15254:44;-1:-1:-1;15309:23:0;15335:28;15254:44;15335:17;:7;15347:4;15335:11;:17::i;:::-;:21;;:28::i;:::-;15309:54;15402:4;;-1:-1:-1;15408:5:0;;-1:-1:-1;14950:472:0;;-1:-1:-1;;;;;14950:472:0:o;15431:537::-;15625:7;;;;15722:24;:7;15734:11;15722;:24::i;:::-;15704:42;-1:-1:-1;15757:12:0;15772:21;:4;15781:11;15772:8;:21::i;:::-;15757:36;-1:-1:-1;15804:13:0;15820:22;:5;15830:11;15820:9;:22::i;:::-;15804:38;-1:-1:-1;15853:23:0;15879:28;15804:38;15879:17;:7;15891:4;15879:11;:17::i;:28::-;15929:7;;;;-1:-1:-1;15955:4:0;;-1:-1:-1;15431:537:0;;-1:-1:-1;;;;;;;15431:537:0:o;2597:246::-;2655:7;2679:6;2675:47;;-1:-1:-1;2709:1:0;2702:8;;2675:47;2732:9;2744:5;2748:1;2744;:5;:::i;:::-;2732:17;-1:-1:-1;2777:1:0;2768:5;2772:1;2732:17;2768:5;:::i;:::-;:10;2760:56;;;;-1:-1:-1;;;2760:56:0;;7790:2:1;2760:56:0;;;7772:21:1;7829:2;7809:18;;;7802:30;7868:34;7848:18;;;7841:62;-1:-1:-1;;;7919:18:1;;;7912:31;7960:19;;2760:56:0;7588:397:1;14:160;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:247::-;238:6;291:2;279:9;270:7;266:23;262:32;259:52;;;307:1;304;297:12;259:52;346:9;333:23;365:31;390:5;365:31;:::i;431:251::-;501:6;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;602:9;596:16;621:31;646:5;621:31;:::i;687:388::-;755:6;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;871:9;858:23;890:31;915:5;890:31;:::i;:::-;940:5;-1:-1:-1;997:2:1;982:18;;969:32;1010:33;969:32;1010:33;:::i;:::-;1062:7;1052:17;;;687:388;;;;;:::o;1080:456::-;1157:6;1165;1173;1226:2;1214:9;1205:7;1201:23;1197:32;1194:52;;;1242:1;1239;1232:12;1194:52;1281:9;1268:23;1300:31;1325:5;1300:31;:::i;:::-;1350:5;-1:-1:-1;1407:2:1;1392:18;;1379:32;1420:33;1379:32;1420:33;:::i;:::-;1080:456;;1472:7;;-1:-1:-1;;;1526:2:1;1511:18;;;;1498:32;;1080:456::o;1541:315::-;1609:6;1617;1670:2;1658:9;1649:7;1645:23;1641:32;1638:52;;;1686:1;1683;1676:12;1638:52;1725:9;1712:23;1744:31;1769:5;1744:31;:::i;:::-;1794:5;1846:2;1831:18;;;;1818:32;;-1:-1:-1;;;1541:315:1:o;1861:689::-;1953:6;1961;1969;2022:2;2010:9;2001:7;1997:23;1993:32;1990:52;;;2038:1;2035;2028:12;1990:52;2078:9;2065:23;2107:18;2148:2;2140:6;2137:14;2134:34;;;2164:1;2161;2154:12;2134:34;2202:6;2191:9;2187:22;2177:32;;2247:7;2240:4;2236:2;2232:13;2228:27;2218:55;;2269:1;2266;2259:12;2218:55;2309:2;2296:16;2335:2;2327:6;2324:14;2321:34;;;2351:1;2348;2341:12;2321:34;2406:7;2399:4;2389:6;2386:1;2382:14;2378:2;2374:23;2370:34;2367:47;2364:67;;;2427:1;2424;2417:12;2364:67;2458:4;2450:13;;;;-1:-1:-1;2482:6:1;-1:-1:-1;2507:37:1;;2523:20;;;-1:-1:-1;2507:37:1;:::i;:::-;2497:47;;1861:689;;;;;:::o;2555:180::-;2611:6;2664:2;2652:9;2643:7;2639:23;2635:32;2632:52;;;2680:1;2677;2670:12;2632:52;2703:26;2719:9;2703:26;:::i;2740:180::-;2799:6;2852:2;2840:9;2831:7;2827:23;2823:32;2820:52;;;2868:1;2865;2858:12;2820:52;-1:-1:-1;2891:23:1;;2740:180;-1:-1:-1;2740:180:1:o;2925:248::-;2993:6;3001;3054:2;3042:9;3033:7;3029:23;3025:32;3022:52;;;3070:1;3067;3060:12;3022:52;-1:-1:-1;;3093:23:1;;;3163:2;3148:18;;;3135:32;;-1:-1:-1;2925:248:1:o;3812:597::-;3924:4;3953:2;3982;3971:9;3964:21;4014:6;4008:13;4057:6;4052:2;4041:9;4037:18;4030:34;4082:1;4092:140;4106:6;4103:1;4100:13;4092:140;;;4201:14;;;4197:23;;4191:30;4167:17;;;4186:2;4163:26;4156:66;4121:10;;4092:140;;;4250:6;4247:1;4244:13;4241:91;;;4320:1;4315:2;4306:6;4295:9;4291:22;4287:31;4280:42;4241:91;-1:-1:-1;4393:2:1;4372:15;-1:-1:-1;;4368:29:1;4353:45;;;;4400:2;4349:54;;3812:597;-1:-1:-1;;;3812:597:1:o;7990:356::-;8192:2;8174:21;;;8211:18;;;8204:30;8270:34;8265:2;8250:18;;8243:62;8337:2;8322:18;;7990:356::o;10499:980::-;10761:4;10809:3;10798:9;10794:19;10840:6;10829:9;10822:25;10866:2;10904:6;10899:2;10888:9;10884:18;10877:34;10947:3;10942:2;10931:9;10927:18;10920:31;10971:6;11006;11000:13;11037:6;11029;11022:22;11075:3;11064:9;11060:19;11053:26;;11114:2;11106:6;11102:15;11088:29;;11135:1;11145:195;11159:6;11156:1;11153:13;11145:195;;;11224:13;;-1:-1:-1;;;;;11220:39:1;11208:52;;11315:15;;;;11280:12;;;;11256:1;11174:9;11145:195;;;-1:-1:-1;;;;;;;11396:32:1;;;;11391:2;11376:18;;11369:60;-1:-1:-1;;;11460:3:1;11445:19;11438:35;11357:3;10499:980;-1:-1:-1;;;10499:980:1:o;11673:128::-;11713:3;11744:1;11740:6;11737:1;11734:13;11731:39;;;11750:18;;:::i;:::-;-1:-1:-1;11786:9:1;;11673:128::o;11806:217::-;11846:1;11872;11862:132;;11916:10;11911:3;11907:20;11904:1;11897:31;11951:4;11948:1;11941:15;11979:4;11976:1;11969:15;11862:132;-1:-1:-1;12008:9:1;;11806:217::o;12028:168::-;12068:7;12134:1;12130;12126:6;12122:14;12119:1;12116:21;12111:1;12104:9;12097:17;12093:45;12090:71;;;12141:18;;:::i;:::-;-1:-1:-1;12181:9:1;;12028:168::o;12201:125::-;12241:4;12269:1;12266;12263:8;12260:34;;;12274:18;;:::i;:::-;-1:-1:-1;12311:9:1;;12201:125::o;12331:135::-;12370:3;-1:-1:-1;;12391:17:1;;12388:43;;;12411:18;;:::i;:::-;-1:-1:-1;12458:1:1;12447:13;;12331:135::o;12471:127::-;12532:10;12527:3;12523:20;12520:1;12513:31;12563:4;12560:1;12553:15;12587:4;12584:1;12577:15;12603:127;12664:10;12659:3;12655:20;12652:1;12645:31;12695:4;12692:1;12685:15;12719:4;12716:1;12709:15;12867:131;-1:-1:-1;;;;;12942:31:1;;12932:42;;12922:70;;12988:1;12985;12978:12

Swarm Source

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