ETH Price: $2,753.20 (+4.88%)
Gas: 2.07 Gwei

Token

Doge V Pepe (DOPE)
 

Overview

Max Total Supply

1,000,000,000 DOPE

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
24,736,041.864358764138133496 DOPE

Value
$0.00
0xfc0ff387af4a60d95d63cee964a62251dfc000e9
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:
DOPE

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/DogeVsPepeERC
Twitter: https://twitter.com/DogeVPepe

*/

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private teamAddress = 0x5F2e17261d4B41aF6B50eb7653Ae8cb14643B4C6;
    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"}]

6080604052600480546001600160a01b0319908116735f2e17261d4b41af6b50eb7653ae8cb14643b4c617909155600a805490911661dead178155620000489060129062000496565b6200005890633b9aca00620004ae565b6200006690600019620004c8565b6200007490600019620004eb565b600b556000600d819055600e819055600f81905560108190556011819055601281815560138290556014919091556015805461ffff1916610101179055620000be90600a62000496565b620000cd90620186a0620004ae565b601655348015620000dd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b543360009081526006602090815260409182902092909255600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200019b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c1919062000501565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000235919062000501565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a9919062000501565b600380546001600160a01b0319166001600160a01b039283161790556000805482168152600960209081526040808320805460ff1990811660019081179092553085528285208054821683179055600454909516845292819020805490941690921790925580519182019052606490819052601755336001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003596012600a62000496565b6200036990633b9aca00620004ae565b60405190815260200160405180910390a3506200052c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003d8578160001904821115620003bc57620003bc62000381565b80851615620003ca57918102915b93841c93908002906200039c565b509250929050565b600082620003f15750600162000490565b81620004005750600062000490565b8160018114620004195760028114620004245762000444565b600191505062000490565b60ff84111562000438576200043862000381565b50506001821b62000490565b5060208310610133831016604e8410600b841016171562000469575081810a62000490565b62000475838362000397565b80600019048211156200048c576200048c62000381565b0290505b92915050565b6000620004a760ff841683620003e0565b9392505050565b808202811582820484141762000490576200049062000381565b600082620004e657634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111562000490576200049062000381565b6000602082840312156200051457600080fd5b81516001600160a01b0381168114620004a757600080fd5b611a01806200053c6000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610340578063afa4f3b214610360578063c492f04614610380578063dd62ed3e146103a0578063f2fde38b146103e657600080fd5b8063715018a6146102a95780638da5cb5b146102c057806395d89b41146102de5780639e281a981461030b578063a1f6247c1461032b57600080fd5b80632fd689e3116100e75780632fd689e314610220578063313ce5671461023657806349bd5a5e146102525780635ee58efc1461027257806370a082311461028957600080fd5b806306fdde031461012f578063095ea7b3146101755780631694505e146101a557806318160ddd146101dd57806323b872dd1461020057600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600b81526a446f67652056205065706560a81b60208201525b60405161016c9190611556565b60405180910390f35b34801561018157600080fd5b506101956101903660046115bc565b610406565b604051901515815260200161016c565b3480156101b157600080fd5b506002546101c5906001600160a01b031681565b6040516001600160a01b03909116815260200161016c565b3480156101e957600080fd5b506101f261041d565b60405190815260200161016c565b34801561020c57600080fd5b5061019561021b3660046115e8565b61043e565b34801561022c57600080fd5b506101f260165481565b34801561024257600080fd5b506040516012815260200161016c565b34801561025e57600080fd5b506003546101c5906001600160a01b031681565b34801561027e57600080fd5b506017546101f29081565b34801561029557600080fd5b506101f26102a4366004611629565b6104a7565b3480156102b557600080fd5b506102be6104c9565b005b3480156102cc57600080fd5b506000546001600160a01b03166101c5565b3480156102ea57600080fd5b50604080518082019091526004815263444f504560e01b602082015261015f565b34801561031757600080fd5b506102be6103263660046115bc565b610546565b34801561033757600080fd5b506102be6105e9565b34801561034c57600080fd5b5061019561035b3660046115bc565b610637565b34801561036c57600080fd5b506102be61037b366004611646565b610644565b34801561038c57600080fd5b506102be61039b36600461166d565b6106ea565b3480156103ac57600080fd5b506101f26103bb3660046116f3565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156103f257600080fd5b506102be610401366004611629565b610785565b600061041333848461086f565b5060015b92915050565b600061042b6012600a611826565b61043990633b9aca00611835565b905090565b600061044b848484610993565b61049d8433610498856040518060600160405280602881526020016119a4602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190610d1c565b61086f565b5060019392505050565b6001600160a01b03811660009081526006602052604081205461041790610d56565b6000546001600160a01b031633146104fc5760405162461bcd60e51b81526004016104f39061184c565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105705760405162461bcd60e51b81526004016104f39061184c565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb906044016020604051808303816000875af11580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e39190611881565b50505050565b6000546001600160a01b031633146106135760405162461bcd60e51b81526004016104f39061184c565b600061061e306104a7565b905061062981610dda565b4761063381610f48565b5050565b6000610413338484610993565b6000546001600160a01b0316331461066e5760405162461bcd60e51b81526004016104f39061184c565b620f424061067e6012600a611826565b61068c90633b9aca00611835565b610696919061189e565b8110156106e55760405162461bcd60e51b815260206004820152601e60248201527f73686f756c646e2774206265206c657373207468616e20302c3030303125000060448201526064016104f3565b601655565b6000546001600160a01b031633146107145760405162461bcd60e51b81526004016104f39061184c565b60005b828110156105e3578160096000868685818110610736576107366118c0565b905060200201602081019061074b9190611629565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061077d816118d6565b915050610717565b6000546001600160a01b031633146107af5760405162461bcd60e51b81526004016104f39061184c565b6001600160a01b0381166108145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108d15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f3565b6001600160a01b0382166109325760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f3565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109f75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f3565b6001600160a01b038216610a595760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f3565b60008111610abb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f3565b6000546001600160a01b03848116911614801590610ae757506000546001600160a01b03838116911614155b15610c15576003546001600160a01b038381169116148015610b10575080610b0e846104a7565b105b8015610b3457506001600160a01b03831660009081526009602052604090205460ff165b15610b5657600a54610b519083906001600160a01b031683610fbd565b505050565b6000610b61306104a7565b60165490915081108015908190610b7b575060155460ff16155b8015610b9557506003546001600160a01b03868116911614155b8015610ba85750601554610100900460ff165b8015610bcd57506001600160a01b03851660009081526009602052604090205460ff16155b8015610bf257506001600160a01b03841660009081526009602052604090205460ff16155b15610c1257610c0082610dda565b478015610c1057610c1047610f48565b505b50505b6001600160a01b03831660009081526009602052604090205460019060ff1680610c5757506001600160a01b03831660009081526009602052604090205460ff165b80610c8957506003546001600160a01b03858116911614801590610c8957506003546001600160a01b03848116911614155b15610c9657506000610d10565b6003546001600160a01b038581169116148015610cc157506002546001600160a01b03848116911614155b15610cd357600d54601155600e546012555b6003546001600160a01b038481169116148015610cfe57506002546001600160a01b03858116911614155b15610d1057600f546011556010546012555b6105e3848484846110b6565b60008184841115610d405760405162461bcd60e51b81526004016104f39190611556565b506000610d4d84866118ef565b95945050505050565b6000600b54821115610dbd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104f3565b6000610dc76110e4565b9050610dd38382611107565b9392505050565b6015805460ff191690556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e1957610e196118c0565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e969190611902565b81600181518110610ea957610ea96118c0565b6001600160a01b039283166020918202929092010152600254610ecf913091168461086f565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f0890859060009086903090429060040161191f565b600060405180830381600087803b158015610f2257600080fd5b505af1158015610f36573d6000803e3d6000fd5b50506015805460ff1916905550505050565b6015805460ff191690556017548190600090610f7290606490610f6c908590611149565b90611107565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610fad573d6000803e3d6000fd5b50506015805460ff191690555050565b600080600080600080610fcf876111cb565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506110019087611228565b6001600160a01b03808b1660009081526006602052604080822093909355908a1681522054611030908661126a565b6001600160a01b038916600090815260066020526040902055611054818a8a6112c9565b61105e8483611343565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110a391815260200190565b60405180910390a3505050505050505050565b806110c3576110c3611367565b6110ce848484610fbd565b806105e3576105e3601354601155601454601255565b60008060006110f1611395565b90925090506111008282611107565b9250505090565b6000610dd383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611417565b60008260000361115b57506000610417565b60006111678385611835565b905082611174858361189e565b14610dd35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f3565b60008060008060008060008060006111e88a601154601254611445565b92509250925060006111f86110e4565b9050600080600061120b8e878787611494565b919e509c509a509598509396509194505050505091939550919395565b6000610dd383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d1c565b6000806112778385611990565b905083811015610dd35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f3565b60006112d36110e4565b90506112df83836114e4565b15611303576004546112f9906001600160a01b03166104a7565b1561130357600080fd5b600061130f8583611149565b3060009081526006602052604090205490915061132c908261126a565b306000908152600660205260409020555050505050565b600b546113509083611228565b600b55600c54611360908261126a565b600c555050565b6011541580156113775750601254155b1561137e57565b601180546013556012805460145560009182905555565b600b546000908190816113aa6012600a611826565b6113b890633b9aca00611835565b90506113e06113c96012600a611826565b6113d790633b9aca00611835565b600b5490611107565b82101561140e57600b546113f66012600a611826565b61140490633b9aca00611835565b9350935050509091565b90939092509050565b600081836114385760405162461bcd60e51b81526004016104f39190611556565b506000610d4d848661189e565b60008080806114596064610f6c8989611149565b9050600061146c6064610f6c8a89611149565b905060006114848261147e8b86611228565b90611228565b9992985090965090945050505050565b60008080806114a38886611149565b905060006114b18887611149565b905060006114bf8888611149565b905060006114d18261147e8686611228565b939b939a50919850919650505050505050565b6001600160a01b03821660009081526009602052604081205460ff1615801561152657506001600160a01b03821660009081526009602052604090205460ff16155b801561154057506003546001600160a01b03848116911614155b1561154d57506001610417565b50600092915050565b600060208083528351808285015260005b8181101561158357858101830151858201604001528201611567565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115b957600080fd5b50565b600080604083850312156115cf57600080fd5b82356115da816115a4565b946020939093013593505050565b6000806000606084860312156115fd57600080fd5b8335611608816115a4565b92506020840135611618816115a4565b929592945050506040919091013590565b60006020828403121561163b57600080fd5b8135610dd3816115a4565b60006020828403121561165857600080fd5b5035919050565b80151581146115b957600080fd5b60008060006040848603121561168257600080fd5b833567ffffffffffffffff8082111561169a57600080fd5b818601915086601f8301126116ae57600080fd5b8135818111156116bd57600080fd5b8760208260051b85010111156116d257600080fd5b602092830195509350508401356116e88161165f565b809150509250925092565b6000806040838503121561170657600080fd5b8235611711816115a4565b91506020830135611721816115a4565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561177d5781600019048211156117635761176361172c565b8085161561177057918102915b93841c9390800290611747565b509250929050565b60008261179457506001610417565b816117a157506000610417565b81600181146117b757600281146117c1576117dd565b6001915050610417565b60ff8411156117d2576117d261172c565b50506001821b610417565b5060208310610133831016604e8410600b8410161715611800575081810a610417565b61180a8383611742565b806000190482111561181e5761181e61172c565b029392505050565b6000610dd360ff841683611785565b80820281158282048414176104175761041761172c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561189357600080fd5b8151610dd38161165f565b6000826118bb57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016118e8576118e861172c565b5060010190565b818103818111156104175761041761172c565b60006020828403121561191457600080fd5b8151610dd3816115a4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196f5784516001600160a01b03168352938301939183019160010161194a565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156104175761041761172c56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220065aca654bbe845ef12c1032564086f629095a78cd2a0416798affb5f936121064736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610340578063afa4f3b214610360578063c492f04614610380578063dd62ed3e146103a0578063f2fde38b146103e657600080fd5b8063715018a6146102a95780638da5cb5b146102c057806395d89b41146102de5780639e281a981461030b578063a1f6247c1461032b57600080fd5b80632fd689e3116100e75780632fd689e314610220578063313ce5671461023657806349bd5a5e146102525780635ee58efc1461027257806370a082311461028957600080fd5b806306fdde031461012f578063095ea7b3146101755780631694505e146101a557806318160ddd146101dd57806323b872dd1461020057600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600b81526a446f67652056205065706560a81b60208201525b60405161016c9190611556565b60405180910390f35b34801561018157600080fd5b506101956101903660046115bc565b610406565b604051901515815260200161016c565b3480156101b157600080fd5b506002546101c5906001600160a01b031681565b6040516001600160a01b03909116815260200161016c565b3480156101e957600080fd5b506101f261041d565b60405190815260200161016c565b34801561020c57600080fd5b5061019561021b3660046115e8565b61043e565b34801561022c57600080fd5b506101f260165481565b34801561024257600080fd5b506040516012815260200161016c565b34801561025e57600080fd5b506003546101c5906001600160a01b031681565b34801561027e57600080fd5b506017546101f29081565b34801561029557600080fd5b506101f26102a4366004611629565b6104a7565b3480156102b557600080fd5b506102be6104c9565b005b3480156102cc57600080fd5b506000546001600160a01b03166101c5565b3480156102ea57600080fd5b50604080518082019091526004815263444f504560e01b602082015261015f565b34801561031757600080fd5b506102be6103263660046115bc565b610546565b34801561033757600080fd5b506102be6105e9565b34801561034c57600080fd5b5061019561035b3660046115bc565b610637565b34801561036c57600080fd5b506102be61037b366004611646565b610644565b34801561038c57600080fd5b506102be61039b36600461166d565b6106ea565b3480156103ac57600080fd5b506101f26103bb3660046116f3565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156103f257600080fd5b506102be610401366004611629565b610785565b600061041333848461086f565b5060015b92915050565b600061042b6012600a611826565b61043990633b9aca00611835565b905090565b600061044b848484610993565b61049d8433610498856040518060600160405280602881526020016119a4602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190610d1c565b61086f565b5060019392505050565b6001600160a01b03811660009081526006602052604081205461041790610d56565b6000546001600160a01b031633146104fc5760405162461bcd60e51b81526004016104f39061184c565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105705760405162461bcd60e51b81526004016104f39061184c565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb906044016020604051808303816000875af11580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e39190611881565b50505050565b6000546001600160a01b031633146106135760405162461bcd60e51b81526004016104f39061184c565b600061061e306104a7565b905061062981610dda565b4761063381610f48565b5050565b6000610413338484610993565b6000546001600160a01b0316331461066e5760405162461bcd60e51b81526004016104f39061184c565b620f424061067e6012600a611826565b61068c90633b9aca00611835565b610696919061189e565b8110156106e55760405162461bcd60e51b815260206004820152601e60248201527f73686f756c646e2774206265206c657373207468616e20302c3030303125000060448201526064016104f3565b601655565b6000546001600160a01b031633146107145760405162461bcd60e51b81526004016104f39061184c565b60005b828110156105e3578160096000868685818110610736576107366118c0565b905060200201602081019061074b9190611629565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061077d816118d6565b915050610717565b6000546001600160a01b031633146107af5760405162461bcd60e51b81526004016104f39061184c565b6001600160a01b0381166108145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108d15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f3565b6001600160a01b0382166109325760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f3565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109f75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f3565b6001600160a01b038216610a595760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f3565b60008111610abb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f3565b6000546001600160a01b03848116911614801590610ae757506000546001600160a01b03838116911614155b15610c15576003546001600160a01b038381169116148015610b10575080610b0e846104a7565b105b8015610b3457506001600160a01b03831660009081526009602052604090205460ff165b15610b5657600a54610b519083906001600160a01b031683610fbd565b505050565b6000610b61306104a7565b60165490915081108015908190610b7b575060155460ff16155b8015610b9557506003546001600160a01b03868116911614155b8015610ba85750601554610100900460ff165b8015610bcd57506001600160a01b03851660009081526009602052604090205460ff16155b8015610bf257506001600160a01b03841660009081526009602052604090205460ff16155b15610c1257610c0082610dda565b478015610c1057610c1047610f48565b505b50505b6001600160a01b03831660009081526009602052604090205460019060ff1680610c5757506001600160a01b03831660009081526009602052604090205460ff165b80610c8957506003546001600160a01b03858116911614801590610c8957506003546001600160a01b03848116911614155b15610c9657506000610d10565b6003546001600160a01b038581169116148015610cc157506002546001600160a01b03848116911614155b15610cd357600d54601155600e546012555b6003546001600160a01b038481169116148015610cfe57506002546001600160a01b03858116911614155b15610d1057600f546011556010546012555b6105e3848484846110b6565b60008184841115610d405760405162461bcd60e51b81526004016104f39190611556565b506000610d4d84866118ef565b95945050505050565b6000600b54821115610dbd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104f3565b6000610dc76110e4565b9050610dd38382611107565b9392505050565b6015805460ff191690556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e1957610e196118c0565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e969190611902565b81600181518110610ea957610ea96118c0565b6001600160a01b039283166020918202929092010152600254610ecf913091168461086f565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f0890859060009086903090429060040161191f565b600060405180830381600087803b158015610f2257600080fd5b505af1158015610f36573d6000803e3d6000fd5b50506015805460ff1916905550505050565b6015805460ff191690556017548190600090610f7290606490610f6c908590611149565b90611107565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610fad573d6000803e3d6000fd5b50506015805460ff191690555050565b600080600080600080610fcf876111cb565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506110019087611228565b6001600160a01b03808b1660009081526006602052604080822093909355908a1681522054611030908661126a565b6001600160a01b038916600090815260066020526040902055611054818a8a6112c9565b61105e8483611343565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110a391815260200190565b60405180910390a3505050505050505050565b806110c3576110c3611367565b6110ce848484610fbd565b806105e3576105e3601354601155601454601255565b60008060006110f1611395565b90925090506111008282611107565b9250505090565b6000610dd383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611417565b60008260000361115b57506000610417565b60006111678385611835565b905082611174858361189e565b14610dd35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f3565b60008060008060008060008060006111e88a601154601254611445565b92509250925060006111f86110e4565b9050600080600061120b8e878787611494565b919e509c509a509598509396509194505050505091939550919395565b6000610dd383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d1c565b6000806112778385611990565b905083811015610dd35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f3565b60006112d36110e4565b90506112df83836114e4565b15611303576004546112f9906001600160a01b03166104a7565b1561130357600080fd5b600061130f8583611149565b3060009081526006602052604090205490915061132c908261126a565b306000908152600660205260409020555050505050565b600b546113509083611228565b600b55600c54611360908261126a565b600c555050565b6011541580156113775750601254155b1561137e57565b601180546013556012805460145560009182905555565b600b546000908190816113aa6012600a611826565b6113b890633b9aca00611835565b90506113e06113c96012600a611826565b6113d790633b9aca00611835565b600b5490611107565b82101561140e57600b546113f66012600a611826565b61140490633b9aca00611835565b9350935050509091565b90939092509050565b600081836114385760405162461bcd60e51b81526004016104f39190611556565b506000610d4d848661189e565b60008080806114596064610f6c8989611149565b9050600061146c6064610f6c8a89611149565b905060006114848261147e8b86611228565b90611228565b9992985090965090945050505050565b60008080806114a38886611149565b905060006114b18887611149565b905060006114bf8888611149565b905060006114d18261147e8686611228565b939b939a50919850919650505050505050565b6001600160a01b03821660009081526009602052604081205460ff1615801561152657506001600160a01b03821660009081526009602052604090205460ff16155b801561154057506003546001600160a01b03848116911614155b1561154d57506001610417565b50600092915050565b600060208083528351808285015260005b8181101561158357858101830151858201604001528201611567565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115b957600080fd5b50565b600080604083850312156115cf57600080fd5b82356115da816115a4565b946020939093013593505050565b6000806000606084860312156115fd57600080fd5b8335611608816115a4565b92506020840135611618816115a4565b929592945050506040919091013590565b60006020828403121561163b57600080fd5b8135610dd3816115a4565b60006020828403121561165857600080fd5b5035919050565b80151581146115b957600080fd5b60008060006040848603121561168257600080fd5b833567ffffffffffffffff8082111561169a57600080fd5b818601915086601f8301126116ae57600080fd5b8135818111156116bd57600080fd5b8760208260051b85010111156116d257600080fd5b602092830195509350508401356116e88161165f565b809150509250925092565b6000806040838503121561170657600080fd5b8235611711816115a4565b91506020830135611721816115a4565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561177d5781600019048211156117635761176361172c565b8085161561177057918102915b93841c9390800290611747565b509250929050565b60008261179457506001610417565b816117a157506000610417565b81600181146117b757600281146117c1576117dd565b6001915050610417565b60ff8411156117d2576117d261172c565b50506001821b610417565b5060208310610133831016604e8410600b8410161715611800575081810a610417565b61180a8383611742565b806000190482111561181e5761181e61172c565b029392505050565b6000610dd360ff841683611785565b80820281158282048414176104175761041761172c565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561189357600080fd5b8151610dd38161165f565b6000826118bb57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016118e8576118e861172c565b5060010190565b818103818111156104175761041761172c565b60006020828403121561191457600080fd5b8151610dd3816115a4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196f5784516001600160a01b03168352938301939183019160010161194a565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156104175761041761172c56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220065aca654bbe845ef12c1032564086f629095a78cd2a0416798affb5f936121064736f6c63430008110033

Deployed Bytecode Sourcemap

3786:12043:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14592:69;;;;;;;;;;-1:-1:-1;14653:5:0;;;;;;;;;;;;-1:-1:-1;;;14653:5:0;;;;14592:69;;;;;;;:::i;:::-;;;;;;;;15346:161;;;;;;;;;;-1:-1:-1;15346:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;15346:161:0;1023:187:1;4013:41:0;;;;;;;;;;-1:-1:-1;4013:41:0;;;;-1:-1:-1;;;;;4013:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;4013:41:0;1215:229:1;14821:81:0;;;;;;;;;;;;;:::i;:::-;;;1595:25:1;;;1583:2;1568:18;14821:81:0;1449:177:1;15513:313:0;;;;;;;;;;-1:-1:-1;15513:313:0;;;;;:::i;:::-;;:::i;5155:59::-;;;;;;;;;;;;;;;;14746:69;;;;;;;;;;-1:-1:-1;14746:69:0;;4002:2;2234:36:1;;2222:2;2207:18;14746:69:0;2092:184:1;4061:28:0;;;;;;;;;;-1:-1:-1;4061:28:0;;;;-1:-1:-1;;;;;4061:28:0;;;5283:32;;;;;;;;;;-1:-1:-1;5283:32:0;;;;;;14908:124;;;;;;;;;;-1:-1:-1;14908:124:0;;;;;:::i;:::-;;:::i;2024:148::-;;;;;;;;;;;;;:::i;:::-;;1828:65;;;;;;;;;;-1:-1:-1;1866:7:0;1884:6;-1:-1:-1;;;;;1884:6:0;1828:65;;14667:73;;;;;;;;;;-1:-1:-1;14730:7:0;;;;;;;;;;;;-1:-1:-1;;;14730:7:0;;;;14667:73;;11534:224;;;;;;;;;;-1:-1:-1;11534:224:0;;;;;:::i;:::-;;:::i;9745:265::-;;;;;;;;;;;;;:::i;15038:167::-;;;;;;;;;;-1:-1:-1;15038:167:0;;;;;:::i;:::-;;:::i;11766:197::-;;;;;;;;;;-1:-1:-1;11766:197:0;;;;;:::i;:::-;;:::i;14329:255::-;;;;;;;;;;-1:-1:-1;14329:255:0;;;;;:::i;:::-;;:::i;15211:129::-;;;;;;;;;;-1:-1:-1;15211:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;15310:18:0;;;15292:7;15310:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15211:129;2178:244;;;;;;;;;;-1:-1:-1;2178:244:0;;;;;:::i;:::-;;:::i;15346:161::-;15421:4;15438:39;1453:10;15461:7;15470:6;15438:8;:39::i;:::-;-1:-1:-1;15495:4:0;15346:161;;;;;:::o;14821:81::-;14874:7;4615:13;4002:2;4615;:13;:::i;:::-;4602:26;;:10;:26;:::i;:::-;14885:14;;14821:81;:::o;15513:313::-;15611:4;15628:36;15638:6;15646:9;15657:6;15628:9;:36::i;:::-;15675:121;15684:6;1453:10;15706:89;15744:6;15706:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15706:19:0;;;;;;:11;:19;;;;;;;;1453:10;15706:33;;;;;;;;;;:37;:89::i;:::-;15675:8;:121::i;:::-;-1:-1:-1;15814:4:0;15513:313;;;;;:::o;14908:124::-;-1:-1:-1;;;;;15012:16:0;;14974:7;15012:16;;;:7;:16;;;;;;14992:37;;:19;:37::i;2024:148::-;1939:6;;-1:-1:-1;;;;;1939:6:0;1453:10;1939:22;1931:67;;;;-1:-1:-1;;;1931:67:0;;;;;;;:::i;:::-;;;;;;;;;2131:1:::1;2115:6:::0;;2094:40:::1;::::0;-1:-1:-1;;;;;2115:6:0;;::::1;::::0;2094:40:::1;::::0;2131:1;;2094:40:::1;2162:1;2145:19:::0;;-1:-1:-1;;;;;;2145:19:0::1;::::0;;2024:148::o;11534:224::-;1939:6;;-1:-1:-1;;;;;1939:6:0;1453:10;1939:22;1931:67;;;;-1:-1:-1;;;1931:67:0;;;;;;;:::i;:::-;11707:43:::1;::::0;-1:-1:-1;;;11707:43:0;;11730:10:::1;11707:43;::::0;::::1;6420:51:1::0;6487:18;;;6480:34;;;11681:14:0;;-1:-1:-1;;;;;11707:22:0;::::1;::::0;::::1;::::0;6393:18:1;;11707:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11640:118;11534:224:::0;;:::o;9745:265::-;1939:6;;-1:-1:-1;;;;;1939:6:0;1453:10;1939:22;1931:67;;;;-1:-1:-1;;;1931:67:0;;;;;;;:::i;:::-;9804:23:::1;9830:24;9848:4;9830:9;:24::i;:::-;9804:50;;9865:33;9882:15;9865:16;:33::i;:::-;9938:21;9970:32;9938:21:::0;9970:12:::1;:32::i;:::-;9793:217;;9745:265::o:0;15038:167::-;15116:4;15133:42;1453:10;15157:9;15168:6;15133:9;:42::i;11766:197::-;1939:6;;-1:-1:-1;;;;;1939:6:0;1453:10;1939:22;1931:67;;;;-1:-1:-1;;;1931:67:0;;;;;;;:::i;:::-;11873:7:::1;4615:13;4002:2;4615;:13;:::i;:::-;4602:26;::::0;:10:::1;:26;:::i;:::-;11863:17;;;;:::i;:::-;11852:7;:28;;11844:71;;;::::0;-1:-1:-1;;;11844:71:0;;7199:2:1;11844:71:0::1;::::0;::::1;7181:21:1::0;7238:2;7218:18;;;7211:30;7277:32;7257:18;;;7250:60;7327:18;;11844:71:0::1;6997:354:1::0;11844:71:0::1;11926:19;:29:::0;11766:197::o;14329:255::-;1939:6;;-1:-1:-1;;;;;1939:6:0;1453:10;1939:22;1931:67;;;;-1:-1:-1;;;1931:67:0;;;;;;;:::i;:::-;14472:9:::1;14467:110;14487:19:::0;;::::1;14467:110;;;14557:8;14528:13;:26;14542:8;;14551:1;14542:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14528:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14528:26:0;:37;;-1:-1:-1;;14528:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14508:3;::::1;::::0;::::1;:::i;:::-;;;;14467:110;;2178:244:::0;1939:6;;-1:-1:-1;;;;;1939:6:0;1453:10;1939:22;1931:67;;;;-1:-1:-1;;;1931:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2267:22:0;::::1;2259:73;;;::::0;-1:-1:-1;;;2259:73:0;;7830:2:1;2259: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;;2259:73:0::1;7628:402:1::0;2259:73:0::1;2369:6;::::0;;2348:38:::1;::::0;-1:-1:-1;;;;;2348:38:0;;::::1;::::0;2369:6;::::1;::::0;2348:38:::1;::::0;::::1;2397:6;:17:::0;;-1:-1:-1;;;;;;2397:17:0::1;-1:-1:-1::0;;;;;2397:17:0;;;::::1;::::0;;;::::1;::::0;;2178:244::o;6725:369::-;-1:-1:-1;;;;;6852:19:0;;6844:68;;;;-1:-1:-1;;;6844:68:0;;8237:2:1;6844: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;;6844:68:0;8035:400:1;6844:68:0;-1:-1:-1;;;;;6931:21:0;;6923:68;;;;-1:-1:-1;;;6923:68:0;;8642:2:1;6923: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;;6923:68:0;8440:398:1;6923:68:0;-1:-1:-1;;;;;7002:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7054:32;;1595:25:1;;;7054:32:0;;1568:18:1;7054:32:0;;;;;;;6725:369;;;:::o;7102:1855::-;-1:-1:-1;;;;;7224:18:0;;7216:68;;;;-1:-1:-1;;;7216:68:0;;9045:2:1;7216: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;;7216:68:0;8843:401:1;7216:68:0;-1:-1:-1;;;;;7303:16:0;;7295:64;;;;-1:-1:-1;;;7295:64:0;;9451:2:1;7295: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;;7295:64:0;9249:399:1;7295:64:0;7387:1;7378:6;:10;7370:64;;;;-1:-1:-1;;;7370:64:0;;9855:2:1;7370: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;;7370:64:0;9653:405:1;7370:64:0;1866:7;1884:6;-1:-1:-1;;;;;7451:15:0;;;1884:6;;7451:15;;;;:32;;-1:-1:-1;1866:7:0;1884:6;-1:-1:-1;;;;;7470:13:0;;;1884:6;;7470:13;;7451:32;7447:854;;;7504:13;;-1:-1:-1;;;;;7504:19:0;;;:13;;:19;:47;;;;;7545:6;7527:15;7537:4;7527:9;:15::i;:::-;:24;7504:47;:70;;;;-1:-1:-1;;;;;;7555:19:0;;;;;;:13;:19;;;;;;;;7504:70;7500:124;;;7600:4;;7578:35;;7596:2;;-1:-1:-1;;;;;7600:4:0;7606:6;7578:17;:35::i;:::-;7102:1855;;;:::o;7500:124::-;7652:28;7683:24;7701:4;7683:9;:24::i;:::-;7761:19;;7652:55;;-1:-1:-1;7737:43:0;;;;;;;7819:35;;-1:-1:-1;7848:6:0;;;;7847:7;7819:35;:77;;;;-1:-1:-1;7883:13:0;;-1:-1:-1;;;;;7875:21:0;;;7883:13;;7875:21;;7819:77;:109;;;;-1:-1:-1;7917:11:0;;;;;;;7819:109;:150;;;;-1:-1:-1;;;;;;7950:19:0;;;;;;:13;:19;;;;;;;;7949:20;7819:150;:189;;;;-1:-1:-1;;;;;;7991:17:0;;;;;;:13;:17;;;;;;;;7990:18;7819:189;7797:493;;;8043:38;8060:20;8043:16;:38::i;:::-;8129:21;8173:22;;8169:106;;8220:35;8233:21;8220:12;:35::i;:::-;8024:266;7797:493;7485:816;;7447:854;-1:-1:-1;;;;;8364:19:0;;8313:12;8364:19;;;:13;:19;;;;;;8328:4;;8364:19;;;:40;;-1:-1:-1;;;;;;8387:17:0;;;;;;:13;:17;;;;;;;;8364:40;8363:105;;;-1:-1:-1;8431:13:0;;-1:-1:-1;;;;;8423:21:0;;;8431:13;;8423:21;;;;:44;;-1:-1:-1;8454:13:0;;-1:-1:-1;;;;;8448:19:0;;;8454:13;;8448:19;;8423:44;8345:553;;;-1:-1:-1;8505:5:0;8345:553;;;8555:13;;-1:-1:-1;;;;;8547:21:0;;;8555:13;;8547:21;:55;;;;-1:-1:-1;8586:15:0;;-1:-1:-1;;;;;8572:30:0;;;8586:15;;8572:30;;8547:55;8543:163;;;8635:14;;8623:9;:26;8678:12;;8668:7;:22;8543:163;8732:13;;-1:-1:-1;;;;;8726:19:0;;;8732:13;;8726:19;:55;;;;-1:-1:-1;8765:15:0;;-1:-1:-1;;;;;8749:32:0;;;8765:15;;8749:32;;8726:55;8722:165;;;8814:15;;8802:9;:27;8858:13;;8848:7;:23;8722:165;8908:41;8923:4;8929:2;8933:6;8941:7;8908:14;:41::i;580:190::-;666:7;702:12;694:6;;;;686:29;;;;-1:-1:-1;;;686:29:0;;;;;;;;:::i;:::-;-1:-1:-1;726:9:0;738:5;742:1;738;:5;:::i;:::-;726:17;580:190;-1:-1:-1;;;;;580:190:0:o;6046:323::-;6141:7;6199;;6188;:18;;6166:110;;;;-1:-1:-1;;;6166:110:0;;10398:2:1;6166: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;;6166:110:0;10196:406:1;6166:110:0;6287:19;6309:10;:8;:10::i;:::-;6287:32;-1:-1:-1;6337:24:0;:7;6287:32;6337:11;:24::i;:::-;6330:31;6046:323;-1:-1:-1;;;6046:323:0:o;8965:483::-;5356:6;:14;;-1:-1:-1;;5356:14:0;;;9067:16:::1;::::0;;9081:1:::1;9067:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9067:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9067:16:0::1;9043:40;;9112:4;9094;9099:1;9094:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9094:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9138:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9138:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9094:7;;9138:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9128:4;9133:1;9128:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9128:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9203:15:::1;::::0;9171:62:::1;::::0;9188:4:::1;::::0;9203:15:::1;9221:11:::0;9171:8:::1;:62::i;:::-;9244:15;::::0;:196:::1;::::0;-1:-1:-1;;;9244:196:0;;-1:-1:-1;;;;;9244:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9325:11;;9244:15:::1;::::0;9367:4;;9394::::1;::::0;9414:15:::1;::::0;9244:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5393:6:0;:14;;-1:-1:-1;;5393:14:0;;;-1:-1:-1;;;;8965:483:0:o;9456:281::-;5356:6;:14;;-1:-1:-1;;5356:14:0;;;9627:12:::1;:22:::0;9551:6;;5365:5;;9593:80:::1;::::0;9669:3:::1;::::0;9593:57:::1;::::0;9551:6;;9593:33:::1;:57::i;:::-;:75:::0;::::1;:80::i;:::-;9692:11;::::0;9684:45:::1;::::0;9568:105;;-1:-1:-1;;;;;;9692:11:0::1;::::0;9684:45;::::1;;;::::0;9568:105;;9692:11:::1;9684:45:::0;9692:11;9684:45;9568:105;9692:11;9684:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5393:6:0;:14;;-1:-1:-1;;5393:14:0;;;-1:-1:-1;;9456:281:0:o;10308:629::-;10455:15;10485:23;10523:12;10550:23;10588:12;10615:13;10642:19;10653:7;10642:10;:19::i;:::-;-1:-1:-1;;;;;10690:15:0;;;;;;:7;:15;;;;;;10440:221;;-1:-1:-1;10440:221:0;;-1:-1:-1;10440:221:0;;-1:-1:-1;10440:221:0;-1:-1:-1;10440:221:0;-1:-1:-1;10440:221:0;-1:-1:-1;10690:28:0;;10440:221;10690:19;:28::i;:::-;-1:-1:-1;;;;;10672:15:0;;;;;;;:7;:15;;;;;;:46;;;;10750:18;;;;;;;:39;;10773:15;10750:22;:39::i;:::-;-1:-1:-1;;;;;10729:18:0;;;;;;:7;:18;;;;;:60;10800:35;10810:5;10817:6;10737:9;10800;:35::i;:::-;10846:23;10858:4;10864;10846:11;:23::i;:::-;10902:9;-1:-1:-1;;;;;10885:44:0;10894:6;-1:-1:-1;;;;;10885:44:0;;10913:15;10885:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;10885:44:0;;;;;;;;10429:508;;;;;;10308:629;;;:::o;10018:282::-;10174:7;10169:28;;10183:14;:12;:14::i;:::-;10208:44;10226:6;10234:9;10245:6;10208:17;:44::i;:::-;10268:7;10263:29;;10277:15;6656:17;;6644:9;:29;6694:15;;6684:7;:25;6600:117;13892:164;13934:7;13955:15;13972;13991:19;:17;:19::i;:::-;13954:56;;-1:-1:-1;13954:56:0;-1:-1:-1;14028:20:0;13954:56;;14028:11;:20::i;:::-;14021:27;;;;13892:164;:::o;1006:132::-;1064:7;1091:39;1095:1;1098;1091:39;;;;;;;;;;;;;;;;;:3;:39::i;776:224::-;834:7;858:1;863;858:6;854:25;;-1:-1:-1;875:1:0;868:8;;854:25;889:9;901:5;905:1;901;:5;:::i;:::-;889:17;-1:-1:-1;934:1:0;925:5;929:1;889:17;925:5;:::i;:::-;:10;917:56;;;;-1:-1:-1;;;917:56:0;;12182:2:1;917: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;;917:56:0;11980:397:1;12163:702:0;12263:7;12285;12307;12329;12351;12373;12409:23;12434:12;12448:13;12465:90;12491:7;12513:9;;12537:7;;12465:11;:90::i;:::-;12408:147;;;;;;12566:19;12588:10;:8;:10::i;:::-;12566:32;;12610:15;12627:23;12652:12;12668:109;12694:7;12716:4;12735:5;12755:11;12668;:109::i;:::-;12609:168;;-1:-1:-1;12609:168:0;-1:-1:-1;12609:168:0;-1:-1:-1;12828:15:0;;-1:-1:-1;12845:4:0;;-1:-1:-1;12851:5:0;;-1:-1:-1;;;;;12163:702:0;;;;;;;:::o;438:136::-;496:7;523:43;527:1;530;523:43;;;;;;;;;;;;;;;;;:3;:43::i;253:179::-;311:7;;343:5;347:1;343;:5;:::i;:::-;331:17;;372:1;367;:6;;359:46;;;;-1:-1:-1;;;359:46:0;;12714:2:1;359:46:0;;;12696:21:1;12753:2;12733:18;;;12726:30;12792:29;12772:18;;;12765:57;12839:18;;359:46:0;12512:351:1;10945:340:0;11060:19;11082:10;:8;:10::i;:::-;11060:32;;11098:23;11110:4;11116;11098:11;:23::i;:::-;11094:65;;;11141:11;;11131:22;;-1:-1:-1;;;;;11141:11:0;11131:9;:22::i;:::-;:27;11123:36;;;;;;11170:13;11186:22;:5;11196:11;11186:9;:22::i;:::-;11260:4;11244:22;;;;:7;:22;;;;;;11170:38;;-1:-1:-1;11244:33:0;;11170:38;11244:26;:33::i;:::-;11235:4;11219:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;10945:340:0:o;11971:147::-;12049:7;;:17;;12061:4;12049:11;:17::i;:::-;12039:7;:27;12090:10;;:20;;12105:4;12090:14;:20::i;:::-;12077:10;:33;-1:-1:-1;;11971:147:0:o;6377:215::-;6424:9;;:14;:30;;;;-1:-1:-1;6442:7:0;;:12;6424:30;6420:43;;;6377:215::o;6420:43::-;6493:9;;;6473:17;:29;6531:7;;;6513:15;:25;-1:-1:-1;6549:13:0;;;;6573:11;6377:215::o;14064:257::-;14162:7;;14115;;;;;4615:13;4002:2;4615;:13;:::i;:::-;4602:26;;:10;:26;:::i;:::-;14180:25;-1:-1:-1;14230:20:0;4615:13;4002:2;4615;:13;:::i;:::-;4602:26;;:10;:26;:::i;:::-;14230:7;;;:11;:20::i;:::-;14220:7;:30;14216:61;;;14260:7;;4615:13;4002:2;4615;:13;:::i;:::-;4602:26;;:10;:26;:::i;:::-;14252:25;;;;;;14064:257;;:::o;14216:61::-;14296:7;;14305;;-1:-1:-1;14064:257:0;-1:-1:-1;14064:257:0:o;1144:189::-;1230:7;1265:12;1258:5;1250:28;;;;-1:-1:-1;;;1250:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1289:9:0;1301:5;1305:1;1301;:5;:::i;12873:469::-;13042:7;;;;13136:30;13162:3;13136:21;:7;13148:8;13136:11;:21::i;:30::-;13121:45;-1:-1:-1;13177:13:0;13193:28;13217:3;13193:19;:7;13205:6;13193:11;:19::i;:28::-;13177:44;-1:-1:-1;13232:23:0;13258:28;13177:44;13258:17;:7;13270:4;13258:11;:17::i;:::-;:21;;:28::i;:::-;13232:54;13322:4;;-1:-1:-1;13328:5:0;;-1:-1:-1;12873:469:0;;-1:-1:-1;;;;;12873:469:0:o;13350:534::-;13544:7;;;;13641:24;:7;13653:11;13641;:24::i;:::-;13623:42;-1:-1:-1;13676:12:0;13691:21;:4;13700:11;13691:8;:21::i;:::-;13676:36;-1:-1:-1;13723:13:0;13739:22;:5;13749:11;13739:9;:22::i;:::-;13723:38;-1:-1:-1;13772:23:0;13798:28;13723:38;13798:17;:7;13810:4;13798:11;:17::i;:28::-;13845:7;;;;-1:-1:-1;13871:4:0;;-1:-1:-1;13350:534:0;;-1:-1:-1;;;;;;;13350:534:0:o;11293:233::-;-1:-1:-1;;;;;11387:19:0;;11364:4;11387:19;;;:13;:19;;;;;;;;11386:20;:44;;;;-1:-1:-1;;;;;;11411:19:0;;;;;;:13;:19;;;;;;;;11410:20;11386:44;:69;;;;-1:-1:-1;11442:13:0;;-1:-1:-1;;;;;11434:21:0;;;11442:13;;11434:21;;11386:69;11381:115;;;-1:-1:-1;11480:4:0;11473:11;;11381:115;-1:-1:-1;11513:5:0;11293: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://065aca654bbe845ef12c1032564086f629095a78cd2a0416798affb5f9361210
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.