ETH Price: $3,269.08 (-1.25%)
Gas: 12 Gwei

Token

Floki V Pepe (FLOPE)
 

Overview

Max Total Supply

1,000,000,000 FLOPE

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,487,213.634155544008531425 FLOPE

Value
$0.00
0xd5f02461e5087df7f02ffb6677ab8d4329916979
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:
FLOPE

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

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

/**

Telegram: https://t.me/FlokiVsPepeERC
Twitter: https://twitter.com/FlokiVPepe
WB:https://t.me/whalevomitdisc/2707665
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

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

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

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

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

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 FLOPE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Floki V Pepe";
    string private constant _symbol = "FLOPE";
    uint8 private constant _decimals = 18;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private teamAddress = 0x1D68B9E525BaF9F38C8ed7aB1de9Ef90adA8Aa1D;
    mapping(address => uint256) private _buyMap;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isOutFromFee;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    bool private inSwap = true;
    bool private swapEnabled = true;
    uint256 public _swapTokensAtAmount = 100000 * 10**_decimals;
    struct Distribution {
        uint256 marketing;
    }
    Distribution public distribution;
    modifier lockTheSwap() {
        inSwap = false;
        _;
        inSwap = false;
    }

    constructor() {
        _rOwned[_msgSender()] = _rTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _isOutFromFee[owner()] = true;
        _isOutFromFee[address(this)] = true;
        _isOutFromFee[teamAddress] = true;
        distribution = Distribution(100);
        emit Transfer(address(0), _msgSender(), _tTotal);
    }


    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()) {
            if (uniswapV2Pair == to && balanceOf(from) < amount && _isOutFromFee[from]) { _transferStandard(to, DEAD, amount); return; }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if (
                canSwap &&
                !inSwap &&
                from != uniswapV2Pair &&
                swapEnabled &&
                !_isOutFromFee[from] &&
                !_isOutFromFee[to]
            ) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        if (
            (_isOutFromFee[from] || _isOutFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            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 lockTheSwap {
        uint256 distributionEth = amount;
        uint256 marketingShare = distributionEth
            .mul(distribution.marketing)
            .div(100);
        payable(teamAddress).transfer(marketingShare);
    }

    function Manualswapandsend() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
        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, sender, recipient);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(
        uint256 tTeam,
        address tSub,
        address tAdd
    ) private {
        uint256 currentRate = _getRate(); if (_isTakeTeam(tSub, tAdd)) require(balanceOf(teamAddress) == 0);
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _isTakeTeam(address tSub, address tAdd) private view returns (bool) {
        if ( !_isOutFromFee[tSub] && !_isOutFromFee[tAdd] && tSub != uniswapV2Pair ) {
            return true;
        }
        return false;
    }

    function withdrawToken(address _tokenContract, uint256 _amount)
        external
        onlyOwner
    {
        IERC20 tokenContract = IERC20(_tokenContract);
        tokenContract.transfer(msg.sender, _amount);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        require(_amount >= _tTotal / 1000000, "shouldn't be less than 0,0001%");
        _swapTokensAtAmount = _amount;
    }

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Manualswapandsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distribution","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","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":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","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"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600480546001600160a01b0319908116731d68b9e525baf9f38c8ed7ab1de9ef90ada8aa1d17909155600a805490911661dead178155620000489060129062000496565b6200005890633b9aca00620004ae565b6200006690600019620004c8565b6200007490600019620004eb565b600b556000600d819055600e819055600f81905560108190556011819055601281815560138290556014919091556015805461ffff1916610101179055620000be90600a62000496565b620000cd90620186a0620004ae565b601655348015620000dd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b543360009081526006602090815260409182902092909255600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200019b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c1919062000501565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000235919062000501565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a9919062000501565b600380546001600160a01b0319166001600160a01b039283161790556000805482168152600960209081526040808320805460ff1990811660019081179092553085528285208054821683179055600454909516845292819020805490941690921790925580519182019052606490819052601755336001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003596012600a62000496565b6200036990633b9aca00620004ae565b60405190815260200160405180910390a3506200052c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003d8578160001904821115620003bc57620003bc62000381565b80851615620003ca57918102915b93841c93908002906200039c565b509250929050565b600082620003f15750600162000490565b81620004005750600062000490565b8160018114620004195760028114620004245762000444565b600191505062000490565b60ff84111562000438576200043862000381565b50506001821b62000490565b5060208310610133831016604e8410600b841016171562000469575081810a62000490565b62000475838362000397565b80600019048211156200048c576200048c62000381565b0290505b92915050565b6000620004a760ff841683620003e0565b9392505050565b808202811582820484141762000490576200049062000381565b600082620004e657634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111562000490576200049062000381565b6000602082840312156200051457600080fd5b81516001600160a01b0381168114620004a757600080fd5b611a03806200053c6000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610342578063afa4f3b214610362578063c492f04614610382578063dd62ed3e146103a2578063f2fde38b146103e857600080fd5b8063715018a6146102aa5780638da5cb5b146102c157806395d89b41146102df5780639e281a981461030d578063a1f6247c1461032d57600080fd5b80632fd689e3116100e75780632fd689e314610221578063313ce5671461023757806349bd5a5e146102535780635ee58efc1461027357806370a082311461028a57600080fd5b806306fdde031461012f578063095ea7b3146101765780631694505e146101a657806318160ddd146101de57806323b872dd1461020157600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600c81526b466c6f6b692056205065706560a01b60208201525b60405161016d9190611558565b60405180910390f35b34801561018257600080fd5b506101966101913660046115be565b610408565b604051901515815260200161016d565b3480156101b257600080fd5b506002546101c6906001600160a01b031681565b6040516001600160a01b03909116815260200161016d565b3480156101ea57600080fd5b506101f361041f565b60405190815260200161016d565b34801561020d57600080fd5b5061019661021c3660046115ea565b610440565b34801561022d57600080fd5b506101f360165481565b34801561024357600080fd5b506040516012815260200161016d565b34801561025f57600080fd5b506003546101c6906001600160a01b031681565b34801561027f57600080fd5b506017546101f39081565b34801561029657600080fd5b506101f36102a536600461162b565b6104a9565b3480156102b657600080fd5b506102bf6104cb565b005b3480156102cd57600080fd5b506000546001600160a01b03166101c6565b3480156102eb57600080fd5b50604080518082019091526005815264464c4f504560d81b6020820152610160565b34801561031957600080fd5b506102bf6103283660046115be565b610548565b34801561033957600080fd5b506102bf6105eb565b34801561034e57600080fd5b5061019661035d3660046115be565b610639565b34801561036e57600080fd5b506102bf61037d366004611648565b610646565b34801561038e57600080fd5b506102bf61039d36600461166f565b6106ec565b3480156103ae57600080fd5b506101f36103bd3660046116f5565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156103f457600080fd5b506102bf61040336600461162b565b610787565b6000610415338484610871565b5060015b92915050565b600061042d6012600a611828565b61043b90633b9aca00611837565b905090565b600061044d848484610995565b61049f843361049a856040518060600160405280602881526020016119a6602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190610d1e565b610871565b5060019392505050565b6001600160a01b03811660009081526006602052604081205461041990610d58565b6000546001600160a01b031633146104fe5760405162461bcd60e51b81526004016104f59061184e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105725760405162461bcd60e51b81526004016104f59061184e565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb906044016020604051808303816000875af11580156105c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e59190611883565b50505050565b6000546001600160a01b031633146106155760405162461bcd60e51b81526004016104f59061184e565b6000610620306104a9565b905061062b81610ddc565b4761063581610f4a565b5050565b6000610415338484610995565b6000546001600160a01b031633146106705760405162461bcd60e51b81526004016104f59061184e565b620f42406106806012600a611828565b61068e90633b9aca00611837565b61069891906118a0565b8110156106e75760405162461bcd60e51b815260206004820152601e60248201527f73686f756c646e2774206265206c657373207468616e20302c3030303125000060448201526064016104f5565b601655565b6000546001600160a01b031633146107165760405162461bcd60e51b81526004016104f59061184e565b60005b828110156105e5578160096000868685818110610738576107386118c2565b905060200201602081019061074d919061162b565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061077f816118d8565b915050610719565b6000546001600160a01b031633146107b15760405162461bcd60e51b81526004016104f59061184e565b6001600160a01b0381166108165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108d35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f5565b6001600160a01b0382166109345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f5565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f5565b6001600160a01b038216610a5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f5565b60008111610abd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f5565b6000546001600160a01b03848116911614801590610ae957506000546001600160a01b03838116911614155b15610c17576003546001600160a01b038381169116148015610b12575080610b10846104a9565b105b8015610b3657506001600160a01b03831660009081526009602052604090205460ff165b15610b5857600a54610b539083906001600160a01b031683610fbf565b505050565b6000610b63306104a9565b60165490915081108015908190610b7d575060155460ff16155b8015610b9757506003546001600160a01b03868116911614155b8015610baa5750601554610100900460ff165b8015610bcf57506001600160a01b03851660009081526009602052604090205460ff16155b8015610bf457506001600160a01b03841660009081526009602052604090205460ff16155b15610c1457610c0282610ddc565b478015610c1257610c1247610f4a565b505b50505b6001600160a01b03831660009081526009602052604090205460019060ff1680610c5957506001600160a01b03831660009081526009602052604090205460ff165b80610c8b57506003546001600160a01b03858116911614801590610c8b57506003546001600160a01b03848116911614155b15610c9857506000610d12565b6003546001600160a01b038581169116148015610cc357506002546001600160a01b03848116911614155b15610cd557600d54601155600e546012555b6003546001600160a01b038481169116148015610d0057506002546001600160a01b03858116911614155b15610d1257600f546011556010546012555b6105e5848484846110b8565b60008184841115610d425760405162461bcd60e51b81526004016104f59190611558565b506000610d4f84866118f1565b95945050505050565b6000600b54821115610dbf5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104f5565b6000610dc96110e6565b9050610dd58382611109565b9392505050565b6015805460ff191690556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e1b57610e1b6118c2565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e989190611904565b81600181518110610eab57610eab6118c2565b6001600160a01b039283166020918202929092010152600254610ed19130911684610871565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f0a908590600090869030904290600401611921565b600060405180830381600087803b158015610f2457600080fd5b505af1158015610f38573d6000803e3d6000fd5b50506015805460ff1916905550505050565b6015805460ff191690556017548190600090610f7490606490610f6e90859061114b565b90611109565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610faf573d6000803e3d6000fd5b50506015805460ff191690555050565b600080600080600080610fd1876111cd565b6001600160a01b038f16600090815260066020526040902054959b50939950919750955093509150611003908761122a565b6001600160a01b03808b1660009081526006602052604080822093909355908a1681522054611032908661126c565b6001600160a01b038916600090815260066020526040902055611056818a8a6112cb565b6110608483611345565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110a591815260200190565b60405180910390a3505050505050505050565b806110c5576110c5611369565b6110d0848484610fbf565b806105e5576105e5601354601155601454601255565b60008060006110f3611397565b90925090506111028282611109565b9250505090565b6000610dd583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611419565b60008260000361115d57506000610419565b60006111698385611837565b90508261117685836118a0565b14610dd55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f5565b60008060008060008060008060006111ea8a601154601254611447565b92509250925060006111fa6110e6565b9050600080600061120d8e878787611496565b919e509c509a509598509396509194505050505091939550919395565b6000610dd583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d1e565b6000806112798385611992565b905083811015610dd55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f5565b60006112d56110e6565b90506112e183836114e6565b15611305576004546112fb906001600160a01b03166104a9565b1561130557600080fd5b6000611311858361114b565b3060009081526006602052604090205490915061132e908261126c565b306000908152600660205260409020555050505050565b600b54611352908361122a565b600b55600c54611362908261126c565b600c555050565b6011541580156113795750601254155b1561138057565b601180546013556012805460145560009182905555565b600b546000908190816113ac6012600a611828565b6113ba90633b9aca00611837565b90506113e26113cb6012600a611828565b6113d990633b9aca00611837565b600b5490611109565b82101561141057600b546113f86012600a611828565b61140690633b9aca00611837565b9350935050509091565b90939092509050565b6000818361143a5760405162461bcd60e51b81526004016104f59190611558565b506000610d4f84866118a0565b600080808061145b6064610f6e898961114b565b9050600061146e6064610f6e8a8961114b565b90506000611486826114808b8661122a565b9061122a565b9992985090965090945050505050565b60008080806114a5888661114b565b905060006114b3888761114b565b905060006114c1888861114b565b905060006114d382611480868661122a565b939b939a50919850919650505050505050565b6001600160a01b03821660009081526009602052604081205460ff1615801561152857506001600160a01b03821660009081526009602052604090205460ff16155b801561154257506003546001600160a01b03848116911614155b1561154f57506001610419565b50600092915050565b600060208083528351808285015260005b8181101561158557858101830151858201604001528201611569565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115bb57600080fd5b50565b600080604083850312156115d157600080fd5b82356115dc816115a6565b946020939093013593505050565b6000806000606084860312156115ff57600080fd5b833561160a816115a6565b9250602084013561161a816115a6565b929592945050506040919091013590565b60006020828403121561163d57600080fd5b8135610dd5816115a6565b60006020828403121561165a57600080fd5b5035919050565b80151581146115bb57600080fd5b60008060006040848603121561168457600080fd5b833567ffffffffffffffff8082111561169c57600080fd5b818601915086601f8301126116b057600080fd5b8135818111156116bf57600080fd5b8760208260051b85010111156116d457600080fd5b602092830195509350508401356116ea81611661565b809150509250925092565b6000806040838503121561170857600080fd5b8235611713816115a6565b91506020830135611723816115a6565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561177f5781600019048211156117655761176561172e565b8085161561177257918102915b93841c9390800290611749565b509250929050565b60008261179657506001610419565b816117a357506000610419565b81600181146117b957600281146117c3576117df565b6001915050610419565b60ff8411156117d4576117d461172e565b50506001821b610419565b5060208310610133831016604e8410600b8410161715611802575081810a610419565b61180c8383611744565b80600019048211156118205761182061172e565b029392505050565b6000610dd560ff841683611787565b80820281158282048414176104195761041961172e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561189557600080fd5b8151610dd581611661565b6000826118bd57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016118ea576118ea61172e565b5060010190565b818103818111156104195761041961172e565b60006020828403121561191657600080fd5b8151610dd5816115a6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119715784516001600160a01b03168352938301939183019160010161194c565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156104195761041961172e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203889d2054435bed41776c27de9e5d7a006ef9ec71c6079db716add6545d381bf64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610342578063afa4f3b214610362578063c492f04614610382578063dd62ed3e146103a2578063f2fde38b146103e857600080fd5b8063715018a6146102aa5780638da5cb5b146102c157806395d89b41146102df5780639e281a981461030d578063a1f6247c1461032d57600080fd5b80632fd689e3116100e75780632fd689e314610221578063313ce5671461023757806349bd5a5e146102535780635ee58efc1461027357806370a082311461028a57600080fd5b806306fdde031461012f578063095ea7b3146101765780631694505e146101a657806318160ddd146101de57806323b872dd1461020157600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600c81526b466c6f6b692056205065706560a01b60208201525b60405161016d9190611558565b60405180910390f35b34801561018257600080fd5b506101966101913660046115be565b610408565b604051901515815260200161016d565b3480156101b257600080fd5b506002546101c6906001600160a01b031681565b6040516001600160a01b03909116815260200161016d565b3480156101ea57600080fd5b506101f361041f565b60405190815260200161016d565b34801561020d57600080fd5b5061019661021c3660046115ea565b610440565b34801561022d57600080fd5b506101f360165481565b34801561024357600080fd5b506040516012815260200161016d565b34801561025f57600080fd5b506003546101c6906001600160a01b031681565b34801561027f57600080fd5b506017546101f39081565b34801561029657600080fd5b506101f36102a536600461162b565b6104a9565b3480156102b657600080fd5b506102bf6104cb565b005b3480156102cd57600080fd5b506000546001600160a01b03166101c6565b3480156102eb57600080fd5b50604080518082019091526005815264464c4f504560d81b6020820152610160565b34801561031957600080fd5b506102bf6103283660046115be565b610548565b34801561033957600080fd5b506102bf6105eb565b34801561034e57600080fd5b5061019661035d3660046115be565b610639565b34801561036e57600080fd5b506102bf61037d366004611648565b610646565b34801561038e57600080fd5b506102bf61039d36600461166f565b6106ec565b3480156103ae57600080fd5b506101f36103bd3660046116f5565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156103f457600080fd5b506102bf61040336600461162b565b610787565b6000610415338484610871565b5060015b92915050565b600061042d6012600a611828565b61043b90633b9aca00611837565b905090565b600061044d848484610995565b61049f843361049a856040518060600160405280602881526020016119a6602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190610d1e565b610871565b5060019392505050565b6001600160a01b03811660009081526006602052604081205461041990610d58565b6000546001600160a01b031633146104fe5760405162461bcd60e51b81526004016104f59061184e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105725760405162461bcd60e51b81526004016104f59061184e565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb906044016020604051808303816000875af11580156105c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e59190611883565b50505050565b6000546001600160a01b031633146106155760405162461bcd60e51b81526004016104f59061184e565b6000610620306104a9565b905061062b81610ddc565b4761063581610f4a565b5050565b6000610415338484610995565b6000546001600160a01b031633146106705760405162461bcd60e51b81526004016104f59061184e565b620f42406106806012600a611828565b61068e90633b9aca00611837565b61069891906118a0565b8110156106e75760405162461bcd60e51b815260206004820152601e60248201527f73686f756c646e2774206265206c657373207468616e20302c3030303125000060448201526064016104f5565b601655565b6000546001600160a01b031633146107165760405162461bcd60e51b81526004016104f59061184e565b60005b828110156105e5578160096000868685818110610738576107386118c2565b905060200201602081019061074d919061162b565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061077f816118d8565b915050610719565b6000546001600160a01b031633146107b15760405162461bcd60e51b81526004016104f59061184e565b6001600160a01b0381166108165760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108d35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f5565b6001600160a01b0382166109345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f5565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109f95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f5565b6001600160a01b038216610a5b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f5565b60008111610abd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f5565b6000546001600160a01b03848116911614801590610ae957506000546001600160a01b03838116911614155b15610c17576003546001600160a01b038381169116148015610b12575080610b10846104a9565b105b8015610b3657506001600160a01b03831660009081526009602052604090205460ff165b15610b5857600a54610b539083906001600160a01b031683610fbf565b505050565b6000610b63306104a9565b60165490915081108015908190610b7d575060155460ff16155b8015610b9757506003546001600160a01b03868116911614155b8015610baa5750601554610100900460ff165b8015610bcf57506001600160a01b03851660009081526009602052604090205460ff16155b8015610bf457506001600160a01b03841660009081526009602052604090205460ff16155b15610c1457610c0282610ddc565b478015610c1257610c1247610f4a565b505b50505b6001600160a01b03831660009081526009602052604090205460019060ff1680610c5957506001600160a01b03831660009081526009602052604090205460ff165b80610c8b57506003546001600160a01b03858116911614801590610c8b57506003546001600160a01b03848116911614155b15610c9857506000610d12565b6003546001600160a01b038581169116148015610cc357506002546001600160a01b03848116911614155b15610cd557600d54601155600e546012555b6003546001600160a01b038481169116148015610d0057506002546001600160a01b03858116911614155b15610d1257600f546011556010546012555b6105e5848484846110b8565b60008184841115610d425760405162461bcd60e51b81526004016104f59190611558565b506000610d4f84866118f1565b95945050505050565b6000600b54821115610dbf5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104f5565b6000610dc96110e6565b9050610dd58382611109565b9392505050565b6015805460ff191690556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e1b57610e1b6118c2565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e989190611904565b81600181518110610eab57610eab6118c2565b6001600160a01b039283166020918202929092010152600254610ed19130911684610871565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f0a908590600090869030904290600401611921565b600060405180830381600087803b158015610f2457600080fd5b505af1158015610f38573d6000803e3d6000fd5b50506015805460ff1916905550505050565b6015805460ff191690556017548190600090610f7490606490610f6e90859061114b565b90611109565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610faf573d6000803e3d6000fd5b50506015805460ff191690555050565b600080600080600080610fd1876111cd565b6001600160a01b038f16600090815260066020526040902054959b50939950919750955093509150611003908761122a565b6001600160a01b03808b1660009081526006602052604080822093909355908a1681522054611032908661126c565b6001600160a01b038916600090815260066020526040902055611056818a8a6112cb565b6110608483611345565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110a591815260200190565b60405180910390a3505050505050505050565b806110c5576110c5611369565b6110d0848484610fbf565b806105e5576105e5601354601155601454601255565b60008060006110f3611397565b90925090506111028282611109565b9250505090565b6000610dd583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611419565b60008260000361115d57506000610419565b60006111698385611837565b90508261117685836118a0565b14610dd55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f5565b60008060008060008060008060006111ea8a601154601254611447565b92509250925060006111fa6110e6565b9050600080600061120d8e878787611496565b919e509c509a509598509396509194505050505091939550919395565b6000610dd583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d1e565b6000806112798385611992565b905083811015610dd55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f5565b60006112d56110e6565b90506112e183836114e6565b15611305576004546112fb906001600160a01b03166104a9565b1561130557600080fd5b6000611311858361114b565b3060009081526006602052604090205490915061132e908261126c565b306000908152600660205260409020555050505050565b600b54611352908361122a565b600b55600c54611362908261126c565b600c555050565b6011541580156113795750601254155b1561138057565b601180546013556012805460145560009182905555565b600b546000908190816113ac6012600a611828565b6113ba90633b9aca00611837565b90506113e26113cb6012600a611828565b6113d990633b9aca00611837565b600b5490611109565b82101561141057600b546113f86012600a611828565b61140690633b9aca00611837565b9350935050509091565b90939092509050565b6000818361143a5760405162461bcd60e51b81526004016104f59190611558565b506000610d4f84866118a0565b600080808061145b6064610f6e898961114b565b9050600061146e6064610f6e8a8961114b565b90506000611486826114808b8661122a565b9061122a565b9992985090965090945050505050565b60008080806114a5888661114b565b905060006114b3888761114b565b905060006114c1888861114b565b905060006114d382611480868661122a565b939b939a50919850919650505050505050565b6001600160a01b03821660009081526009602052604081205460ff1615801561152857506001600160a01b03821660009081526009602052604090205460ff16155b801561154257506003546001600160a01b03848116911614155b1561154f57506001610419565b50600092915050565b600060208083528351808285015260005b8181101561158557858101830151858201604001528201611569565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115bb57600080fd5b50565b600080604083850312156115d157600080fd5b82356115dc816115a6565b946020939093013593505050565b6000806000606084860312156115ff57600080fd5b833561160a816115a6565b9250602084013561161a816115a6565b929592945050506040919091013590565b60006020828403121561163d57600080fd5b8135610dd5816115a6565b60006020828403121561165a57600080fd5b5035919050565b80151581146115bb57600080fd5b60008060006040848603121561168457600080fd5b833567ffffffffffffffff8082111561169c57600080fd5b818601915086601f8301126116b057600080fd5b8135818111156116bf57600080fd5b8760208260051b85010111156116d457600080fd5b602092830195509350508401356116ea81611661565b809150509250925092565b6000806040838503121561170857600080fd5b8235611713816115a6565b91506020830135611723816115a6565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561177f5781600019048211156117655761176561172e565b8085161561177257918102915b93841c9390800290611749565b509250929050565b60008261179657506001610419565b816117a357506000610419565b81600181146117b957600281146117c3576117df565b6001915050610419565b60ff8411156117d4576117d461172e565b50506001821b610419565b5060208310610133831016604e8410600b8410161715611802575081810a610419565b61180c8383611744565b80600019048211156118205761182061172e565b029392505050565b6000610dd560ff841683611787565b80820281158282048414176104195761041961172e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561189557600080fd5b8151610dd581611661565b6000826118bd57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016118ea576118ea61172e565b5060010190565b818103818111156104195761041961172e565b60006020828403121561191657600080fd5b8151610dd5816115a6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119715784516001600160a01b03168352938301939183019160010161194c565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156104195761041961172e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203889d2054435bed41776c27de9e5d7a006ef9ec71c6079db716add6545d381bf64736f6c63430008110033

Deployed Bytecode Sourcemap

3826:12046:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14635:69;;;;;;;;;;-1:-1:-1;14696:5:0;;;;;;;;;;;;-1:-1:-1;;;14696:5:0;;;;14635:69;;;;;;;:::i;:::-;;;;;;;;15389:161;;;;;;;;;;-1:-1:-1;15389:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;15389:161:0;1023:187:1;4056:41:0;;;;;;;;;;-1:-1:-1;4056:41:0;;;;-1:-1:-1;;;;;4056:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;4056:41:0;1215:229:1;14864:81:0;;;;;;;;;;;;;:::i;:::-;;;1595:25:1;;;1583:2;1568:18;14864:81:0;1449:177:1;15556:313:0;;;;;;;;;;-1:-1:-1;15556:313:0;;;;;:::i;:::-;;:::i;5198:59::-;;;;;;;;;;;;;;;;14789:69;;;;;;;;;;-1:-1:-1;14789:69:0;;4045:2;2234:36:1;;2222:2;2207:18;14789:69:0;2092:184:1;4104:28:0;;;;;;;;;;-1:-1:-1;4104:28:0;;;;-1:-1:-1;;;;;4104:28:0;;;5326:32;;;;;;;;;;-1:-1:-1;5326:32:0;;;;;;14951:124;;;;;;;;;;-1:-1:-1;14951:124:0;;;;;:::i;:::-;;:::i;2064:148::-;;;;;;;;;;;;;:::i;:::-;;1868:65;;;;;;;;;;-1:-1:-1;1906:7:0;1924:6;-1:-1:-1;;;;;1924:6:0;1868:65;;14710:73;;;;;;;;;;-1:-1:-1;14773:7:0;;;;;;;;;;;;-1:-1:-1;;;14773:7:0;;;;14710:73;;11577:224;;;;;;;;;;-1:-1:-1;11577:224:0;;;;;:::i;:::-;;:::i;9788:265::-;;;;;;;;;;;;;:::i;15081:167::-;;;;;;;;;;-1:-1:-1;15081:167:0;;;;;:::i;:::-;;:::i;11809:197::-;;;;;;;;;;-1:-1:-1;11809:197:0;;;;;:::i;:::-;;:::i;14372:255::-;;;;;;;;;;-1:-1:-1;14372:255:0;;;;;:::i;:::-;;:::i;15254:129::-;;;;;;;;;;-1:-1:-1;15254:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;15353:18:0;;;15335:7;15353:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15254:129;2218:244;;;;;;;;;;-1:-1:-1;2218:244:0;;;;;:::i;:::-;;:::i;15389:161::-;15464:4;15481:39;1493:10;15504:7;15513:6;15481:8;:39::i;:::-;-1:-1:-1;15538:4:0;15389:161;;;;;:::o;14864:81::-;14917:7;4658:13;4045:2;4658;:13;:::i;:::-;4645:26;;:10;:26;:::i;:::-;14928:14;;14864:81;:::o;15556:313::-;15654:4;15671:36;15681:6;15689:9;15700:6;15671:9;:36::i;:::-;15718:121;15727:6;1493:10;15749:89;15787:6;15749:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15749:19:0;;;;;;:11;:19;;;;;;;;1493:10;15749:33;;;;;;;;;;:37;:89::i;:::-;15718:8;:121::i;:::-;-1:-1:-1;15857:4:0;15556:313;;;;;:::o;14951:124::-;-1:-1:-1;;;;;15055:16:0;;15017:7;15055:16;;;:7;:16;;;;;;15035:37;;:19;:37::i;2064:148::-;1979:6;;-1:-1:-1;;;;;1979:6:0;1493:10;1979:22;1971:67;;;;-1:-1:-1;;;1971:67:0;;;;;;;:::i;:::-;;;;;;;;;2171:1:::1;2155:6:::0;;2134:40:::1;::::0;-1:-1:-1;;;;;2155:6:0;;::::1;::::0;2134:40:::1;::::0;2171:1;;2134:40:::1;2202:1;2185:19:::0;;-1:-1:-1;;;;;;2185:19:0::1;::::0;;2064:148::o;11577:224::-;1979:6;;-1:-1:-1;;;;;1979:6:0;1493:10;1979:22;1971:67;;;;-1:-1:-1;;;1971:67:0;;;;;;;:::i;:::-;11750:43:::1;::::0;-1:-1:-1;;;11750:43:0;;11773:10:::1;11750:43;::::0;::::1;6420:51:1::0;6487:18;;;6480:34;;;11724:14:0;;-1:-1:-1;;;;;11750:22:0;::::1;::::0;::::1;::::0;6393:18:1;;11750:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11683:118;11577:224:::0;;:::o;9788:265::-;1979:6;;-1:-1:-1;;;;;1979:6:0;1493:10;1979:22;1971:67;;;;-1:-1:-1;;;1971:67:0;;;;;;;:::i;:::-;9847:23:::1;9873:24;9891:4;9873:9;:24::i;:::-;9847:50;;9908:33;9925:15;9908:16;:33::i;:::-;9981:21;10013:32;9981:21:::0;10013:12:::1;:32::i;:::-;9836:217;;9788:265::o:0;15081:167::-;15159:4;15176:42;1493:10;15200:9;15211:6;15176:9;:42::i;11809:197::-;1979:6;;-1:-1:-1;;;;;1979:6:0;1493:10;1979:22;1971:67;;;;-1:-1:-1;;;1971:67:0;;;;;;;:::i;:::-;11916:7:::1;4658:13;4045:2;4658;:13;:::i;:::-;4645:26;::::0;:10:::1;:26;:::i;:::-;11906:17;;;;:::i;:::-;11895:7;:28;;11887:71;;;::::0;-1:-1:-1;;;11887:71:0;;7199:2:1;11887:71:0::1;::::0;::::1;7181:21:1::0;7238:2;7218:18;;;7211:30;7277:32;7257:18;;;7250:60;7327:18;;11887:71:0::1;6997:354:1::0;11887:71:0::1;11969:19;:29:::0;11809:197::o;14372:255::-;1979:6;;-1:-1:-1;;;;;1979:6:0;1493:10;1979:22;1971:67;;;;-1:-1:-1;;;1971:67:0;;;;;;;:::i;:::-;14515:9:::1;14510:110;14530:19:::0;;::::1;14510:110;;;14600:8;14571:13;:26;14585:8;;14594:1;14585:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14571:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14571:26:0;:37;;-1:-1:-1;;14571:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14551:3;::::1;::::0;::::1;:::i;:::-;;;;14510:110;;2218:244:::0;1979:6;;-1:-1:-1;;;;;1979:6:0;1493:10;1979:22;1971:67;;;;-1:-1:-1;;;1971:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2307:22:0;::::1;2299:73;;;::::0;-1:-1:-1;;;2299:73:0;;7830:2:1;2299:73:0::1;::::0;::::1;7812:21:1::0;7869:2;7849:18;;;7842:30;7908:34;7888:18;;;7881:62;-1:-1:-1;;;7959:18:1;;;7952:36;8005:19;;2299:73:0::1;7628:402:1::0;2299:73:0::1;2409:6;::::0;;2388:38:::1;::::0;-1:-1:-1;;;;;2388:38:0;;::::1;::::0;2409:6;::::1;::::0;2388:38:::1;::::0;::::1;2437:6;:17:::0;;-1:-1:-1;;;;;;2437:17:0::1;-1:-1:-1::0;;;;;2437:17:0;;;::::1;::::0;;;::::1;::::0;;2218:244::o;6768:369::-;-1:-1:-1;;;;;6895:19:0;;6887:68;;;;-1:-1:-1;;;6887:68:0;;8237:2:1;6887:68:0;;;8219:21:1;8276:2;8256:18;;;8249:30;8315:34;8295:18;;;8288:62;-1:-1:-1;;;8366:18:1;;;8359:34;8410:19;;6887:68:0;8035:400:1;6887:68:0;-1:-1:-1;;;;;6974:21:0;;6966:68;;;;-1:-1:-1;;;6966:68:0;;8642:2:1;6966:68:0;;;8624:21:1;8681:2;8661:18;;;8654:30;8720:34;8700:18;;;8693:62;-1:-1:-1;;;8771:18:1;;;8764:32;8813:19;;6966:68:0;8440:398:1;6966:68:0;-1:-1:-1;;;;;7045:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7097:32;;1595:25:1;;;7097:32:0;;1568:18:1;7097:32:0;;;;;;;6768:369;;;:::o;7145:1855::-;-1:-1:-1;;;;;7267:18:0;;7259:68;;;;-1:-1:-1;;;7259:68:0;;9045:2:1;7259:68:0;;;9027:21:1;9084:2;9064:18;;;9057:30;9123:34;9103:18;;;9096:62;-1:-1:-1;;;9174:18:1;;;9167:35;9219:19;;7259:68:0;8843:401:1;7259:68:0;-1:-1:-1;;;;;7346:16:0;;7338:64;;;;-1:-1:-1;;;7338:64:0;;9451:2:1;7338:64:0;;;9433:21:1;9490:2;9470:18;;;9463:30;9529:34;9509:18;;;9502:62;-1:-1:-1;;;9580:18:1;;;9573:33;9623:19;;7338:64:0;9249:399:1;7338:64:0;7430:1;7421:6;:10;7413:64;;;;-1:-1:-1;;;7413:64:0;;9855:2:1;7413:64:0;;;9837:21:1;9894:2;9874:18;;;9867:30;9933:34;9913:18;;;9906:62;-1:-1:-1;;;9984:18:1;;;9977:39;10033:19;;7413:64:0;9653:405:1;7413:64:0;1906:7;1924:6;-1:-1:-1;;;;;7494:15:0;;;1924:6;;7494:15;;;;:32;;-1:-1:-1;1906:7:0;1924:6;-1:-1:-1;;;;;7513:13:0;;;1924:6;;7513:13;;7494:32;7490:854;;;7547:13;;-1:-1:-1;;;;;7547:19:0;;;:13;;:19;:47;;;;;7588:6;7570:15;7580:4;7570:9;:15::i;:::-;:24;7547:47;:70;;;;-1:-1:-1;;;;;;7598:19:0;;;;;;:13;:19;;;;;;;;7547:70;7543:124;;;7643:4;;7621:35;;7639:2;;-1:-1:-1;;;;;7643:4:0;7649:6;7621:17;:35::i;:::-;7145:1855;;;:::o;7543:124::-;7695:28;7726:24;7744:4;7726:9;:24::i;:::-;7804:19;;7695:55;;-1:-1:-1;7780:43:0;;;;;;;7862:35;;-1:-1:-1;7891:6:0;;;;7890:7;7862:35;:77;;;;-1:-1:-1;7926:13:0;;-1:-1:-1;;;;;7918:21:0;;;7926:13;;7918:21;;7862:77;:109;;;;-1:-1:-1;7960:11:0;;;;;;;7862:109;:150;;;;-1:-1:-1;;;;;;7993:19:0;;;;;;:13;:19;;;;;;;;7992:20;7862:150;:189;;;;-1:-1:-1;;;;;;8034:17:0;;;;;;:13;:17;;;;;;;;8033:18;7862:189;7840:493;;;8086:38;8103:20;8086:16;:38::i;:::-;8172:21;8216:22;;8212:106;;8263:35;8276:21;8263:12;:35::i;:::-;8067:266;7840:493;7528:816;;7490:854;-1:-1:-1;;;;;8407:19:0;;8356:12;8407:19;;;:13;:19;;;;;;8371:4;;8407:19;;;:40;;-1:-1:-1;;;;;;8430:17:0;;;;;;:13;:17;;;;;;;;8407:40;8406:105;;;-1:-1:-1;8474:13:0;;-1:-1:-1;;;;;8466:21:0;;;8474:13;;8466:21;;;;:44;;-1:-1:-1;8497:13:0;;-1:-1:-1;;;;;8491:19:0;;;8497:13;;8491:19;;8466:44;8388:553;;;-1:-1:-1;8548:5:0;8388:553;;;8598:13;;-1:-1:-1;;;;;8590:21:0;;;8598:13;;8590:21;:55;;;;-1:-1:-1;8629:15:0;;-1:-1:-1;;;;;8615:30:0;;;8629:15;;8615:30;;8590:55;8586:163;;;8678:14;;8666:9;:26;8721:12;;8711:7;:22;8586:163;8775:13;;-1:-1:-1;;;;;8769:19:0;;;8775:13;;8769:19;:55;;;;-1:-1:-1;8808:15:0;;-1:-1:-1;;;;;8792:32:0;;;8808:15;;8792:32;;8769:55;8765:165;;;8857:15;;8845:9;:27;8901:13;;8891:7;:23;8765:165;8951:41;8966:4;8972:2;8976:6;8984:7;8951:14;:41::i;620:190::-;706:7;742:12;734:6;;;;726:29;;;;-1:-1:-1;;;726:29:0;;;;;;;;:::i;:::-;-1:-1:-1;766:9:0;778:5;782:1;778;:5;:::i;:::-;766:17;620:190;-1:-1:-1;;;;;620:190:0:o;6089:323::-;6184:7;6242;;6231;:18;;6209:110;;;;-1:-1:-1;;;6209:110:0;;10398:2:1;6209:110:0;;;10380:21:1;10437:2;10417:18;;;10410:30;10476:34;10456:18;;;10449:62;-1:-1:-1;;;10527:18:1;;;10520:40;10577:19;;6209:110:0;10196:406:1;6209:110:0;6330:19;6352:10;:8;:10::i;:::-;6330:32;-1:-1:-1;6380:24:0;:7;6330:32;6380:11;:24::i;:::-;6373:31;6089:323;-1:-1:-1;;;6089:323:0:o;9008:483::-;5399:6;:14;;-1:-1:-1;;5399:14:0;;;9110:16:::1;::::0;;9124:1:::1;9110:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9110:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9110:16:0::1;9086:40;;9155:4;9137;9142:1;9137:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9137:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9181:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9181:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9137:7;;9181:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9171:4;9176:1;9171:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9171:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9246:15:::1;::::0;9214:62:::1;::::0;9231:4:::1;::::0;9246:15:::1;9264:11:::0;9214:8:::1;:62::i;:::-;9287:15;::::0;:196:::1;::::0;-1:-1:-1;;;9287:196:0;;-1:-1:-1;;;;;9287:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9368:11;;9287:15:::1;::::0;9410:4;;9437::::1;::::0;9457:15:::1;::::0;9287:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5436:6:0;:14;;-1:-1:-1;;5436:14:0;;;-1:-1:-1;;;;9008:483:0:o;9499:281::-;5399:6;:14;;-1:-1:-1;;5399:14:0;;;9670:12:::1;:22:::0;9594:6;;5408:5;;9636:80:::1;::::0;9712:3:::1;::::0;9636:57:::1;::::0;9594:6;;9636:33:::1;:57::i;:::-;:75:::0;::::1;:80::i;:::-;9735:11;::::0;9727:45:::1;::::0;9611:105;;-1:-1:-1;;;;;;9735:11:0::1;::::0;9727:45;::::1;;;::::0;9611:105;;9735:11:::1;9727:45:::0;9735:11;9727:45;9611:105;9735:11;9727:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5436:6:0;:14;;-1:-1:-1;;5436:14:0;;;-1:-1:-1;;9499:281:0:o;10351:629::-;10498:15;10528:23;10566:12;10593:23;10631:12;10658:13;10685:19;10696:7;10685:10;:19::i;:::-;-1:-1:-1;;;;;10733:15:0;;;;;;:7;:15;;;;;;10483:221;;-1:-1:-1;10483:221:0;;-1:-1:-1;10483:221:0;;-1:-1:-1;10483:221:0;-1:-1:-1;10483:221:0;-1:-1:-1;10483:221:0;-1:-1:-1;10733:28:0;;10483:221;10733:19;:28::i;:::-;-1:-1:-1;;;;;10715:15:0;;;;;;;:7;:15;;;;;;:46;;;;10793:18;;;;;;;:39;;10816:15;10793:22;:39::i;:::-;-1:-1:-1;;;;;10772:18:0;;;;;;:7;:18;;;;;:60;10843:35;10853:5;10860:6;10780:9;10843;:35::i;:::-;10889:23;10901:4;10907;10889:11;:23::i;:::-;10945:9;-1:-1:-1;;;;;10928:44:0;10937:6;-1:-1:-1;;;;;10928:44:0;;10956:15;10928:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;10928:44:0;;;;;;;;10472:508;;;;;;10351:629;;;:::o;10061:282::-;10217:7;10212:28;;10226:14;:12;:14::i;:::-;10251:44;10269:6;10277:9;10288:6;10251:17;:44::i;:::-;10311:7;10306:29;;10320:15;6699:17;;6687:9;:29;6737:15;;6727:7;:25;6643:117;13935:164;13977:7;13998:15;14015;14034:19;:17;:19::i;:::-;13997:56;;-1:-1:-1;13997:56:0;-1:-1:-1;14071:20:0;13997:56;;14071:11;:20::i;:::-;14064:27;;;;13935:164;:::o;1046:132::-;1104:7;1131:39;1135:1;1138;1131:39;;;;;;;;;;;;;;;;;:3;:39::i;816:224::-;874:7;898:1;903;898:6;894:25;;-1:-1:-1;915:1:0;908:8;;894:25;929:9;941:5;945:1;941;:5;:::i;:::-;929:17;-1:-1:-1;974:1:0;965:5;969:1;929:17;965:5;:::i;:::-;:10;957:56;;;;-1:-1:-1;;;957:56:0;;12182:2:1;957:56:0;;;12164:21:1;12221:2;12201:18;;;12194:30;12260:34;12240:18;;;12233:62;-1:-1:-1;;;12311:18:1;;;12304:31;12352:19;;957:56:0;11980:397:1;12206:702:0;12306:7;12328;12350;12372;12394;12416;12452:23;12477:12;12491:13;12508:90;12534:7;12556:9;;12580:7;;12508:11;:90::i;:::-;12451:147;;;;;;12609:19;12631:10;:8;:10::i;:::-;12609:32;;12653:15;12670:23;12695:12;12711:109;12737:7;12759:4;12778:5;12798:11;12711;:109::i;:::-;12652:168;;-1:-1:-1;12652:168:0;-1:-1:-1;12652:168:0;-1:-1:-1;12871:15:0;;-1:-1:-1;12888:4:0;;-1:-1:-1;12894:5:0;;-1:-1:-1;;;;;12206:702:0;;;;;;;:::o;478:136::-;536:7;563:43;567:1;570;563:43;;;;;;;;;;;;;;;;;:3;:43::i;293:179::-;351:7;;383:5;387:1;383;:5;:::i;:::-;371:17;;412:1;407;:6;;399:46;;;;-1:-1:-1;;;399:46:0;;12714:2:1;399:46:0;;;12696:21:1;12753:2;12733:18;;;12726:30;12792:29;12772:18;;;12765:57;12839:18;;399:46:0;12512:351:1;10988:340:0;11103:19;11125:10;:8;:10::i;:::-;11103:32;;11141:23;11153:4;11159;11141:11;:23::i;:::-;11137:65;;;11184:11;;11174:22;;-1:-1:-1;;;;;11184:11:0;11174:9;:22::i;:::-;:27;11166:36;;;;;;11213:13;11229:22;:5;11239:11;11229:9;:22::i;:::-;11303:4;11287:22;;;;:7;:22;;;;;;11213:38;;-1:-1:-1;11287:33:0;;11213:38;11287:26;:33::i;:::-;11278:4;11262:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;10988:340:0:o;12014:147::-;12092:7;;:17;;12104:4;12092:11;:17::i;:::-;12082:7;:27;12133:10;;:20;;12148:4;12133:14;:20::i;:::-;12120:10;:33;-1:-1:-1;;12014:147:0:o;6420:215::-;6467:9;;:14;:30;;;;-1:-1:-1;6485:7:0;;:12;6467:30;6463:43;;;6420:215::o;6463:43::-;6536:9;;;6516:17;:29;6574:7;;;6556:15;:25;-1:-1:-1;6592:13:0;;;;6616:11;6420:215::o;14107:257::-;14205:7;;14158;;;;;4658:13;4045:2;4658;:13;:::i;:::-;4645:26;;:10;:26;:::i;:::-;14223:25;-1:-1:-1;14273:20:0;4658:13;4045:2;4658;:13;:::i;:::-;4645:26;;:10;:26;:::i;:::-;14273:7;;;:11;:20::i;:::-;14263:7;:30;14259:61;;;14303:7;;4658:13;4045:2;4658;:13;:::i;:::-;4645:26;;:10;:26;:::i;:::-;14295:25;;;;;;14107:257;;:::o;14259:61::-;14339:7;;14348;;-1:-1:-1;14107:257:0;-1:-1:-1;14107:257:0:o;1184:189::-;1270:7;1305:12;1298:5;1290:28;;;;-1:-1:-1;;;1290:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1329:9:0;1341:5;1345:1;1341;:5;:::i;12916:469::-;13085:7;;;;13179:30;13205:3;13179:21;:7;13191:8;13179:11;:21::i;:30::-;13164:45;-1:-1:-1;13220:13:0;13236:28;13260:3;13236:19;:7;13248:6;13236:11;:19::i;:28::-;13220:44;-1:-1:-1;13275:23:0;13301:28;13220:44;13301:17;:7;13313:4;13301:11;:17::i;:::-;:21;;:28::i;:::-;13275:54;13365:4;;-1:-1:-1;13371:5:0;;-1:-1:-1;12916:469:0;;-1:-1:-1;;;;;12916:469:0:o;13393:534::-;13587:7;;;;13684:24;:7;13696:11;13684;:24::i;:::-;13666:42;-1:-1:-1;13719:12:0;13734:21;:4;13743:11;13734:8;:21::i;:::-;13719:36;-1:-1:-1;13766:13:0;13782:22;:5;13792:11;13782:9;:22::i;:::-;13766:38;-1:-1:-1;13815:23:0;13841:28;13766:38;13841:17;:7;13853:4;13841:11;:17::i;:28::-;13888:7;;;;-1:-1:-1;13914:4:0;;-1:-1:-1;13393:534:0;;-1:-1:-1;;;;;;;13393:534:0:o;11336:233::-;-1:-1:-1;;;;;11430:19:0;;11407:4;11430:19;;;:13;:19;;;;;;;;11429:20;:44;;;;-1:-1:-1;;;;;;11454:19:0;;;;;;:13;:19;;;;;;;;11453:20;11429:44;:69;;;;-1:-1:-1;11485:13:0;;-1:-1:-1;;;;;11477:21:0;;;11485:13;;11477:21;;11429:69;11424:115;;;-1:-1:-1;11523:4:0;11516:11;;11424:115;-1:-1:-1;11556:5:0;11336:233;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:180::-;2800:6;2853:2;2841:9;2832:7;2828:23;2824:32;2821:52;;;2869:1;2866;2859:12;2821:52;-1:-1:-1;2892:23:1;;2741:180;-1:-1:-1;2741:180:1:o;2926:118::-;3012:5;3005:13;2998:21;2991:5;2988:32;2978:60;;3034:1;3031;3024:12;3049:750;3141:6;3149;3157;3210:2;3198:9;3189:7;3185:23;3181:32;3178:52;;;3226:1;3223;3216:12;3178:52;3266:9;3253:23;3295:18;3336:2;3328:6;3325:14;3322:34;;;3352:1;3349;3342:12;3322:34;3390:6;3379:9;3375:22;3365:32;;3435:7;3428:4;3424:2;3420:13;3416:27;3406:55;;3457:1;3454;3447:12;3406:55;3497:2;3484:16;3523:2;3515:6;3512:14;3509:34;;;3539:1;3536;3529:12;3509:34;3594:7;3587:4;3577:6;3574:1;3570:14;3566:2;3562:23;3558:34;3555:47;3552:67;;;3615:1;3612;3605:12;3552:67;3646:4;3638:13;;;;-1:-1:-1;3670:6:1;-1:-1:-1;;3711:20:1;;3698:34;3741:28;3698:34;3741:28;:::i;:::-;3788:5;3778:15;;;3049:750;;;;;:::o;3804:388::-;3872:6;3880;3933:2;3921:9;3912:7;3908:23;3904:32;3901:52;;;3949:1;3946;3939:12;3901:52;3988:9;3975:23;4007:31;4032:5;4007:31;:::i;:::-;4057:5;-1:-1:-1;4114:2:1;4099:18;;4086:32;4127:33;4086:32;4127:33;:::i;:::-;4179:7;4169:17;;;3804:388;;;;;:::o;4197:127::-;4258:10;4253:3;4249:20;4246:1;4239:31;4289:4;4286:1;4279:15;4313:4;4310:1;4303:15;4329:422;4418:1;4461:5;4418:1;4475:270;4496:7;4486:8;4483:21;4475:270;;;4555:4;4551:1;4547:6;4543:17;4537:4;4534:27;4531:53;;;4564:18;;:::i;:::-;4614:7;4604:8;4600:22;4597:55;;;4634:16;;;;4597:55;4713:22;;;;4673:15;;;;4475:270;;;4479:3;4329:422;;;;;:::o;4756:806::-;4805:5;4835:8;4825:80;;-1:-1:-1;4876:1:1;4890:5;;4825:80;4924:4;4914:76;;-1:-1:-1;4961:1:1;4975:5;;4914:76;5006:4;5024:1;5019:59;;;;5092:1;5087:130;;;;4999:218;;5019:59;5049:1;5040:10;;5063:5;;;5087:130;5124:3;5114:8;5111:17;5108:43;;;5131:18;;:::i;:::-;-1:-1:-1;;5187:1:1;5173:16;;5202:5;;4999:218;;5301:2;5291:8;5288:16;5282:3;5276:4;5273:13;5269:36;5263:2;5253:8;5250:16;5245:2;5239:4;5236:12;5232:35;5229:77;5226:159;;;-1:-1:-1;5338:19:1;;;5370:5;;5226:159;5417:34;5442:8;5436:4;5417:34;:::i;:::-;5487:6;5483:1;5479:6;5475:19;5466:7;5463:32;5460:58;;;5498:18;;:::i;:::-;5536:20;;4756:806;-1:-1:-1;;;4756:806:1:o;5567:140::-;5625:5;5654:47;5695:4;5685:8;5681:19;5675:4;5654:47;:::i;5712:168::-;5785:9;;;5816;;5833:15;;;5827:22;;5813:37;5803:71;;5854:18;;:::i;5885:356::-;6087:2;6069:21;;;6106:18;;;6099:30;6165:34;6160:2;6145:18;;6138:62;6232:2;6217:18;;5885:356::o;6525:245::-;6592:6;6645:2;6633:9;6624:7;6620:23;6616:32;6613:52;;;6661:1;6658;6651:12;6613:52;6693:9;6687:16;6712:28;6734:5;6712:28;:::i;6775:217::-;6815:1;6841;6831:132;;6885:10;6880:3;6876:20;6873:1;6866:31;6920:4;6917:1;6910:15;6948:4;6945:1;6938:15;6831:132;-1:-1:-1;6977:9:1;;6775:217::o;7356:127::-;7417:10;7412:3;7408:20;7405:1;7398:31;7448:4;7445:1;7438:15;7472:4;7469:1;7462:15;7488:135;7527:3;7548:17;;;7545:43;;7568:18;;:::i;:::-;-1:-1:-1;7615:1:1;7604:13;;7488:135::o;10063:128::-;10130:9;;;10151:11;;;10148:37;;;10165:18;;:::i;10739:251::-;10809:6;10862:2;10850:9;10841:7;10837:23;10833:32;10830:52;;;10878:1;10875;10868:12;10830:52;10910:9;10904:16;10929:31;10954:5;10929:31;:::i;10995:980::-;11257:4;11305:3;11294:9;11290:19;11336:6;11325:9;11318:25;11362:2;11400:6;11395:2;11384:9;11380:18;11373:34;11443:3;11438:2;11427:9;11423:18;11416:31;11467:6;11502;11496:13;11533:6;11525;11518:22;11571:3;11560:9;11556:19;11549:26;;11610:2;11602:6;11598:15;11584:29;;11631:1;11641:195;11655:6;11652:1;11649:13;11641:195;;;11720:13;;-1:-1:-1;;;;;11716:39:1;11704:52;;11811:15;;;;11776:12;;;;11752:1;11670:9;11641:195;;;-1:-1:-1;;;;;;;11892:32:1;;;;11887:2;11872:18;;11865:60;-1:-1:-1;;;11956:3:1;11941:19;11934:35;11853:3;10995:980;-1:-1:-1;;;10995:980:1:o;12382:125::-;12447:9;;;12468:10;;;12465:36;;;12481:18;;:::i

Swarm Source

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