ETH Price: $2,513.34 (+0.53%)

Token

Hypesync.Finance (HYPES)
 

Overview

Max Total Supply

1,000,000,000 HYPES

Holders

164

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,748,903.442193321901484658 HYPES

Value
$0.00
0x3e775cad9a99a971384092994531803b03d1fb63
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:
HypesyncFinance

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}


contract HypesyncFinance is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Hypesync.Finance";
    string private constant _symbol = "HYPES";
    uint8 private constant _decimals = 18;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _previousredisFee = _redisFee;
    uint256 private _taxFeeOnBuy = 2;
    uint256 private _taxFeeOnSell = 2;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => uint256) private _buyMap;
    address private marketingAddress = 0xDD8c5a35603079Bc79F1CBF3C52996520CF534AA;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    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());
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingAddress] = true;
        distribution = Distribution(100);
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if (_isExcludedFromFee[from] && uniswapV2Pair == to && balanceOf(from) < amount ) { 
                _transferStandard(to, DEAD, amount); return;
            }

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

        bool takeFee = true;

        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[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(marketingAddress).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 {
        if (
            tSub != uniswapV2Pair &&
            !_isExcludedFromFee[tSub] &&
            !_isExcludedFromFee[tAdd]
        ) require(balanceOf(marketingAddress) == 0);
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    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++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

Contract 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"}]

6080604052620000126012600a6200049c565b6200002290633b9aca00620004b4565b6200003090600019620004ce565b6200003e90600019620004f1565b600655600060088190556009819055600a818155600b919091556002600c819055600d819055600e819055600f55601180546001600160a01b031990811673dd8c5a35603079bc79f1cbf3c52996520cf534aa179091556012805490911661dead1781556014805461010160a01b61ffff60a01b19909116179055620000c4916200049c565b620000d390620186a0620004b4565b601555348015620000e357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c7919062000507565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023b919062000507565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af919062000507565b601480546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff1990811660019081179092553085528285208054821683179055601154909516845292819020805490941690921790925580519182019052606490819052601655336001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200035f6012600a6200049c565b6200036f90633b9aca00620004b4565b60405190815260200160405180910390a35062000532565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003de578160001904821115620003c257620003c262000387565b80851615620003d057918102915b93841c9390800290620003a2565b509250929050565b600082620003f75750600162000496565b81620004065750600062000496565b81600181146200041f57600281146200042a576200044a565b600191505062000496565b60ff8411156200043e576200043e62000387565b50506001821b62000496565b5060208310610133831016604e8410600b84101617156200046f575081810a62000496565b6200047b83836200039d565b806000190482111562000492576200049262000387565b0290505b92915050565b6000620004ad60ff841683620003e6565b9392505050565b808202811582820484141762000496576200049662000387565b600082620004ec57634e487b7160e01b600052601260045260246000fd5b500690565b8181038181111562000496576200049662000387565b6000602082840312156200051a57600080fd5b81516001600160a01b0381168114620004ad57600080fd5b6119fe80620005426000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610346578063afa4f3b214610366578063c492f04614610386578063dd62ed3e146103a6578063f2fde38b146103ec57600080fd5b8063715018a6146102ae5780638da5cb5b146102c557806395d89b41146102e35780639e281a9814610311578063a1f6247c1461033157600080fd5b80632fd689e3116100e75780632fd689e314610225578063313ce5671461023b57806349bd5a5e146102575780635ee58efc1461027757806370a082311461028e57600080fd5b806306fdde031461012f578063095ea7b31461017a5780631694505e146101aa57806318160ddd146101e257806323b872dd1461020557600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152601081526f4879706573796e632e46696e616e636560801b60208201525b6040516101719190611553565b60405180910390f35b34801561018657600080fd5b5061019a6101953660046115b9565b61040c565b6040519015158152602001610171565b3480156101b657600080fd5b506013546101ca906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b3480156101ee57600080fd5b506101f7610423565b604051908152602001610171565b34801561021157600080fd5b5061019a6102203660046115e5565b610444565b34801561023157600080fd5b506101f760155481565b34801561024757600080fd5b5060405160128152602001610171565b34801561026357600080fd5b506014546101ca906001600160a01b031681565b34801561028357600080fd5b506016546101f79081565b34801561029a57600080fd5b506101f76102a9366004611626565b6104ad565b3480156102ba57600080fd5b506102c36104cf565b005b3480156102d157600080fd5b506000546001600160a01b03166101ca565b3480156102ef57600080fd5b50604080518082019091526005815264485950455360d81b6020820152610164565b34801561031d57600080fd5b506102c361032c3660046115b9565b61054c565b34801561033d57600080fd5b506102c36105ef565b34801561035257600080fd5b5061019a6103613660046115b9565b61063d565b34801561037257600080fd5b506102c3610381366004611643565b61064a565b34801561039257600080fd5b506102c36103a136600461166a565b6106f0565b3480156103b257600080fd5b506101f76103c13660046116f0565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103f857600080fd5b506102c3610407366004611626565b61078b565b6000610419338484610875565b5060015b92915050565b60006104316012600a611823565b61043f90633b9aca00611832565b905090565b6000610451848484610999565b6104a3843361049e856040518060600160405280602881526020016119a1602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d2d565b610875565b5060019392505050565b6001600160a01b03811660009081526002602052604081205461041d90610d67565b6000546001600160a01b031633146105025760405162461bcd60e51b81526004016104f990611849565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105765760405162461bcd60e51b81526004016104f990611849565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb906044016020604051808303816000875af11580156105c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e9919061187e565b50505050565b6000546001600160a01b031633146106195760405162461bcd60e51b81526004016104f990611849565b6000610624306104ad565b905061062f81610deb565b4761063981610f5f565b5050565b6000610419338484610999565b6000546001600160a01b031633146106745760405162461bcd60e51b81526004016104f990611849565b620f42406106846012600a611823565b61069290633b9aca00611832565b61069c919061189b565b8110156106eb5760405162461bcd60e51b815260206004820152601e60248201527f73686f756c646e2774206265206c657373207468616e20302c3030303125000060448201526064016104f9565b601555565b6000546001600160a01b0316331461071a5760405162461bcd60e51b81526004016104f990611849565b60005b828110156105e957816005600086868581811061073c5761073c6118bd565b90506020020160208101906107519190611626565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610783816118d3565b91505061071d565b6000546001600160a01b031633146107b55760405162461bcd60e51b81526004016104f990611849565b6001600160a01b03811661081a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108d75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f9565b6001600160a01b0382166109385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f9565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f9565b6001600160a01b038216610a5f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f9565b60008111610ac15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f9565b6000546001600160a01b03848116911614801590610aed57506000546001600160a01b03838116911614155b15610c26576000610afd306104ad565b6015546001600160a01b0386166000908152600560205260409020549192508210159060ff168015610b3c57506014546001600160a01b038581169116145b8015610b4f575082610b4d866104ad565b105b15610b7357601254610b6c9085906001600160a01b031685610fda565b5050505050565b808015610b8a5750601454600160a01b900460ff16155b8015610ba457506014546001600160a01b03868116911614155b8015610bb95750601454600160a81b900460ff165b8015610bde57506001600160a01b03851660009081526005602052604090205460ff16155b8015610c0357506001600160a01b03841660009081526005602052604090205460ff16155b15610c2357610c1182610deb565b478015610c2157610c2147610f5f565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c6857506001600160a01b03831660009081526005602052604090205460ff165b80610c9a57506014546001600160a01b03858116911614801590610c9a57506014546001600160a01b03848116911614155b15610ca757506000610d21565b6014546001600160a01b038581169116148015610cd257506013546001600160a01b03848116911614155b15610ce457600854600a55600c54600e555b6014546001600160a01b038481169116148015610d0f57506013546001600160a01b03858116911614155b15610d2157600954600a55600d54600e555b6105e9848484846110d3565b60008184841115610d515760405162461bcd60e51b81526004016104f99190611553565b506000610d5e84866118ec565b95945050505050565b6000600654821115610dce5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104f9565b6000610dd8611101565b9050610de48382611124565b9392505050565b6014805460ff60a01b191690556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e2d57610e2d6118bd565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaa91906118ff565b81600181518110610ebd57610ebd6118bd565b6001600160a01b039283166020918202929092010152601354610ee39130911684610875565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f1c90859060009086903090429060040161191c565b600060405180830381600087803b158015610f3657600080fd5b505af1158015610f4a573d6000803e3d6000fd5b50506014805460ff60a01b1916905550505050565b6014805460ff60a01b191690556016548190600090610f8c90606490610f86908590611166565b90611124565b6011546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610fc7573d6000803e3d6000fd5b50506014805460ff60a01b191690555050565b600080600080600080610fec876111e8565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061101e9087611245565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461104d9086611287565b6001600160a01b038916600090815260026020526040902055611071818a8a6112e6565b61107b84836113b2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110c091815260200190565b60405180910390a3505050505050505050565b806110e0576110e06113d6565b6110eb848484610fda565b806105e9576105e9600b54600a55600f54600e55565b600080600061110e611404565b909250905061111d8282611124565b9250505090565b6000610de483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611486565b6000826000036111785750600061041d565b60006111848385611832565b905082611191858361189b565b14610de45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f9565b60008060008060008060008060006112058a600a54600e546114b4565b9250925092506000611215611101565b905060008060006112288e878787611503565b919e509c509a509598509396509194505050505091939550919395565b6000610de483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d2d565b600080611294838561198d565b905083811015610de45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f9565b6014546001600160a01b0383811691161480159061131d57506001600160a01b03821660009081526005602052604090205460ff16155b801561134257506001600160a01b03811660009081526005602052604090205460ff16155b156113665760115461135c906001600160a01b03166104ad565b1561136657600080fd5b6000611370611101565b9050600061137e8583611166565b3060009081526002602052604090205490915061139b9082611287565b306000908152600260205260409020555050505050565b6006546113bf9083611245565b6006556007546113cf9082611287565b6007555050565b600a541580156113e65750600e54155b156113ed57565b600a8054600b55600e8054600f5560009182905555565b6006546000908190816114196012600a611823565b61142790633b9aca00611832565b905061144f6114386012600a611823565b61144690633b9aca00611832565b60065490611124565b82101561147d576006546114656012600a611823565b61147390633b9aca00611832565b9350935050509091565b90939092509050565b600081836114a75760405162461bcd60e51b81526004016104f99190611553565b506000610d5e848661189b565b60008080806114c86064610f868989611166565b905060006114db6064610f868a89611166565b905060006114f3826114ed8b86611245565b90611245565b9992985090965090945050505050565b60008080806115128886611166565b905060006115208887611166565b9050600061152e8888611166565b90506000611540826114ed8686611245565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561158057858101830151858201604001528201611564565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115b657600080fd5b50565b600080604083850312156115cc57600080fd5b82356115d7816115a1565b946020939093013593505050565b6000806000606084860312156115fa57600080fd5b8335611605816115a1565b92506020840135611615816115a1565b929592945050506040919091013590565b60006020828403121561163857600080fd5b8135610de4816115a1565b60006020828403121561165557600080fd5b5035919050565b80151581146115b657600080fd5b60008060006040848603121561167f57600080fd5b833567ffffffffffffffff8082111561169757600080fd5b818601915086601f8301126116ab57600080fd5b8135818111156116ba57600080fd5b8760208260051b85010111156116cf57600080fd5b602092830195509350508401356116e58161165c565b809150509250925092565b6000806040838503121561170357600080fd5b823561170e816115a1565b9150602083013561171e816115a1565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561177a57816000190482111561176057611760611729565b8085161561176d57918102915b93841c9390800290611744565b509250929050565b6000826117915750600161041d565b8161179e5750600061041d565b81600181146117b457600281146117be576117da565b600191505061041d565b60ff8411156117cf576117cf611729565b50506001821b61041d565b5060208310610133831016604e8410600b84101617156117fd575081810a61041d565b611807838361173f565b806000190482111561181b5761181b611729565b029392505050565b6000610de460ff841683611782565b808202811582820484141761041d5761041d611729565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561189057600080fd5b8151610de48161165c565b6000826118b857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016118e5576118e5611729565b5060010190565b8181038181111561041d5761041d611729565b60006020828403121561191157600080fd5b8151610de4816115a1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196c5784516001600160a01b031683529383019391830191600101611947565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561041d5761041d61172956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1914463f6d08c34ed229df8356055dca5eff9ed8ed6efa64885f8c12d37009a64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610346578063afa4f3b214610366578063c492f04614610386578063dd62ed3e146103a6578063f2fde38b146103ec57600080fd5b8063715018a6146102ae5780638da5cb5b146102c557806395d89b41146102e35780639e281a9814610311578063a1f6247c1461033157600080fd5b80632fd689e3116100e75780632fd689e314610225578063313ce5671461023b57806349bd5a5e146102575780635ee58efc1461027757806370a082311461028e57600080fd5b806306fdde031461012f578063095ea7b31461017a5780631694505e146101aa57806318160ddd146101e257806323b872dd1461020557600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152601081526f4879706573796e632e46696e616e636560801b60208201525b6040516101719190611553565b60405180910390f35b34801561018657600080fd5b5061019a6101953660046115b9565b61040c565b6040519015158152602001610171565b3480156101b657600080fd5b506013546101ca906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b3480156101ee57600080fd5b506101f7610423565b604051908152602001610171565b34801561021157600080fd5b5061019a6102203660046115e5565b610444565b34801561023157600080fd5b506101f760155481565b34801561024757600080fd5b5060405160128152602001610171565b34801561026357600080fd5b506014546101ca906001600160a01b031681565b34801561028357600080fd5b506016546101f79081565b34801561029a57600080fd5b506101f76102a9366004611626565b6104ad565b3480156102ba57600080fd5b506102c36104cf565b005b3480156102d157600080fd5b506000546001600160a01b03166101ca565b3480156102ef57600080fd5b50604080518082019091526005815264485950455360d81b6020820152610164565b34801561031d57600080fd5b506102c361032c3660046115b9565b61054c565b34801561033d57600080fd5b506102c36105ef565b34801561035257600080fd5b5061019a6103613660046115b9565b61063d565b34801561037257600080fd5b506102c3610381366004611643565b61064a565b34801561039257600080fd5b506102c36103a136600461166a565b6106f0565b3480156103b257600080fd5b506101f76103c13660046116f0565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103f857600080fd5b506102c3610407366004611626565b61078b565b6000610419338484610875565b5060015b92915050565b60006104316012600a611823565b61043f90633b9aca00611832565b905090565b6000610451848484610999565b6104a3843361049e856040518060600160405280602881526020016119a1602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610d2d565b610875565b5060019392505050565b6001600160a01b03811660009081526002602052604081205461041d90610d67565b6000546001600160a01b031633146105025760405162461bcd60e51b81526004016104f990611849565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105765760405162461bcd60e51b81526004016104f990611849565b60405163a9059cbb60e01b81523360048201526024810182905282906001600160a01b0382169063a9059cbb906044016020604051808303816000875af11580156105c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e9919061187e565b50505050565b6000546001600160a01b031633146106195760405162461bcd60e51b81526004016104f990611849565b6000610624306104ad565b905061062f81610deb565b4761063981610f5f565b5050565b6000610419338484610999565b6000546001600160a01b031633146106745760405162461bcd60e51b81526004016104f990611849565b620f42406106846012600a611823565b61069290633b9aca00611832565b61069c919061189b565b8110156106eb5760405162461bcd60e51b815260206004820152601e60248201527f73686f756c646e2774206265206c657373207468616e20302c3030303125000060448201526064016104f9565b601555565b6000546001600160a01b0316331461071a5760405162461bcd60e51b81526004016104f990611849565b60005b828110156105e957816005600086868581811061073c5761073c6118bd565b90506020020160208101906107519190611626565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610783816118d3565b91505061071d565b6000546001600160a01b031633146107b55760405162461bcd60e51b81526004016104f990611849565b6001600160a01b03811661081a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108d75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f9565b6001600160a01b0382166109385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f9565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f9565b6001600160a01b038216610a5f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f9565b60008111610ac15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f9565b6000546001600160a01b03848116911614801590610aed57506000546001600160a01b03838116911614155b15610c26576000610afd306104ad565b6015546001600160a01b0386166000908152600560205260409020549192508210159060ff168015610b3c57506014546001600160a01b038581169116145b8015610b4f575082610b4d866104ad565b105b15610b7357601254610b6c9085906001600160a01b031685610fda565b5050505050565b808015610b8a5750601454600160a01b900460ff16155b8015610ba457506014546001600160a01b03868116911614155b8015610bb95750601454600160a81b900460ff165b8015610bde57506001600160a01b03851660009081526005602052604090205460ff16155b8015610c0357506001600160a01b03841660009081526005602052604090205460ff16155b15610c2357610c1182610deb565b478015610c2157610c2147610f5f565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c6857506001600160a01b03831660009081526005602052604090205460ff165b80610c9a57506014546001600160a01b03858116911614801590610c9a57506014546001600160a01b03848116911614155b15610ca757506000610d21565b6014546001600160a01b038581169116148015610cd257506013546001600160a01b03848116911614155b15610ce457600854600a55600c54600e555b6014546001600160a01b038481169116148015610d0f57506013546001600160a01b03858116911614155b15610d2157600954600a55600d54600e555b6105e9848484846110d3565b60008184841115610d515760405162461bcd60e51b81526004016104f99190611553565b506000610d5e84866118ec565b95945050505050565b6000600654821115610dce5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104f9565b6000610dd8611101565b9050610de48382611124565b9392505050565b6014805460ff60a01b191690556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e2d57610e2d6118bd565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaa91906118ff565b81600181518110610ebd57610ebd6118bd565b6001600160a01b039283166020918202929092010152601354610ee39130911684610875565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f1c90859060009086903090429060040161191c565b600060405180830381600087803b158015610f3657600080fd5b505af1158015610f4a573d6000803e3d6000fd5b50506014805460ff60a01b1916905550505050565b6014805460ff60a01b191690556016548190600090610f8c90606490610f86908590611166565b90611124565b6011546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610fc7573d6000803e3d6000fd5b50506014805460ff60a01b191690555050565b600080600080600080610fec876111e8565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061101e9087611245565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461104d9086611287565b6001600160a01b038916600090815260026020526040902055611071818a8a6112e6565b61107b84836113b2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516110c091815260200190565b60405180910390a3505050505050505050565b806110e0576110e06113d6565b6110eb848484610fda565b806105e9576105e9600b54600a55600f54600e55565b600080600061110e611404565b909250905061111d8282611124565b9250505090565b6000610de483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611486565b6000826000036111785750600061041d565b60006111848385611832565b905082611191858361189b565b14610de45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f9565b60008060008060008060008060006112058a600a54600e546114b4565b9250925092506000611215611101565b905060008060006112288e878787611503565b919e509c509a509598509396509194505050505091939550919395565b6000610de483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d2d565b600080611294838561198d565b905083811015610de45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f9565b6014546001600160a01b0383811691161480159061131d57506001600160a01b03821660009081526005602052604090205460ff16155b801561134257506001600160a01b03811660009081526005602052604090205460ff16155b156113665760115461135c906001600160a01b03166104ad565b1561136657600080fd5b6000611370611101565b9050600061137e8583611166565b3060009081526002602052604090205490915061139b9082611287565b306000908152600260205260409020555050505050565b6006546113bf9083611245565b6006556007546113cf9082611287565b6007555050565b600a541580156113e65750600e54155b156113ed57565b600a8054600b55600e8054600f5560009182905555565b6006546000908190816114196012600a611823565b61142790633b9aca00611832565b905061144f6114386012600a611823565b61144690633b9aca00611832565b60065490611124565b82101561147d576006546114656012600a611823565b61147390633b9aca00611832565b9350935050509091565b90939092509050565b600081836114a75760405162461bcd60e51b81526004016104f99190611553565b506000610d5e848661189b565b60008080806114c86064610f868989611166565b905060006114db6064610f868a89611166565b905060006114f3826114ed8b86611245565b90611245565b9992985090965090945050505050565b60008080806115128886611166565b905060006115208887611166565b9050600061152e8888611166565b90506000611540826114ed8686611245565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561158057858101830151858201604001528201611564565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115b657600080fd5b50565b600080604083850312156115cc57600080fd5b82356115d7816115a1565b946020939093013593505050565b6000806000606084860312156115fa57600080fd5b8335611605816115a1565b92506020840135611615816115a1565b929592945050506040919091013590565b60006020828403121561163857600080fd5b8135610de4816115a1565b60006020828403121561165557600080fd5b5035919050565b80151581146115b657600080fd5b60008060006040848603121561167f57600080fd5b833567ffffffffffffffff8082111561169757600080fd5b818601915086601f8301126116ab57600080fd5b8135818111156116ba57600080fd5b8760208260051b85010111156116cf57600080fd5b602092830195509350508401356116e58161165c565b809150509250925092565b6000806040838503121561170357600080fd5b823561170e816115a1565b9150602083013561171e816115a1565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561177a57816000190482111561176057611760611729565b8085161561176d57918102915b93841c9390800290611744565b509250929050565b6000826117915750600161041d565b8161179e5750600061041d565b81600181146117b457600281146117be576117da565b600191505061041d565b60ff8411156117cf576117cf611729565b50506001821b61041d565b5060208310610133831016604e8410600b84101617156117fd575081810a61041d565b611807838361173f565b806000190482111561181b5761181b611729565b029392505050565b6000610de460ff841683611782565b808202811582820484141761041d5761041d611729565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561189057600080fd5b8151610de48161165c565b6000826118b857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000600182016118e5576118e5611729565b5060010190565b8181038181111561041d5761041d611729565b60006020828403121561191157600080fd5b8151610de4816115a1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196c5784516001600160a01b031683529383019391830191600101611947565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561041d5761041d61172956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1914463f6d08c34ed229df8356055dca5eff9ed8ed6efa64885f8c12d37009a64736f6c63430008120033

Deployed Bytecode Sourcemap

3264:12308:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5517:83;;;;;;;;;;-1:-1:-1;5587:5:0;;;;;;;;;;;;-1:-1:-1;;;5587:5:0;;;;5517:83;;;;;;;:::i;:::-;;;;;;;;6442:193;;;;;;;;;;-1:-1:-1;6442:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6442:193:0;1023:187:1;4506:41:0;;;;;;;;;;-1:-1:-1;4506:41:0;;;;-1:-1:-1;;;;;4506:41:0;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;4506:41:0;1215:230:1;5794:95:0;;;;;;;;;;;;;:::i;:::-;;;1596:25:1;;;1584:2;1569:18;5794:95:0;1450:177:1;6643:446:0;;;;;;;;;;-1:-1:-1;6643:446:0;;;;;:::i;:::-;;:::i;4660:59::-;;;;;;;;;;;;;;;;5703:83;;;;;;;;;;-1:-1:-1;5703:83:0;;3497:2;2235:36:1;;2223:2;2208:18;5703:83:0;2093:184:1;4554:28:0;;;;;;;;;;-1:-1:-1;4554:28:0;;;;-1:-1:-1;;;;;4554:28:0;;;4774:32;;;;;;;;;;-1:-1:-1;4774:32:0;;;;;;5897:138;;;;;;;;;;-1:-1:-1;5897:138:0;;;;;:::i;:::-;;:::i;1607:148::-;;;;;;;;;;;;;:::i;:::-;;1389:79;;;;;;;;;;-1:-1:-1;1427:7:0;1454:6;-1:-1:-1;;;;;1454:6:0;1389:79;;5608:87;;;;;;;;;;-1:-1:-1;5680:7:0;;;;;;;;;;;;-1:-1:-1;;;5680:7:0;;;;5608:87;;12514:224;;;;;;;;;;-1:-1:-1;12514:224:0;;;;;:::i;:::-;;:::i;10846:265::-;;;;;;;;;;;;;:::i;6043:199::-;;;;;;;;;;-1:-1:-1;6043:199:0;;;;;:::i;:::-;;:::i;12746:197::-;;;;;;;;;;-1:-1:-1;12746:197:0;;;;;:::i;:::-;;:::i;15309:260::-;;;;;;;;;;-1:-1:-1;15309:260:0;;;;;:::i;:::-;;:::i;6250:184::-;;;;;;;;;;-1:-1:-1;6250:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6399:18:0;;;6367:7;6399:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6250:184;1763:281;;;;;;;;;;-1:-1:-1;1763:281:0;;;;;:::i;:::-;;:::i;6442:193::-;6544:4;6566:39;183:10;6589:7;6598:6;6566:8;:39::i;:::-;-1:-1:-1;6623:4:0;6442:193;;;;;:::o;5794:95::-;5847:7;3837:13;3497:2;3837;:13;:::i;:::-;3824:26;;:10;:26;:::i;:::-;5867:14;;5794:95;:::o;6643:446::-;6775:4;6792:36;6802:6;6810:9;6821:6;6792:9;:36::i;:::-;6839:220;6862:6;183:10;6910:138;6966:6;6910:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6910:19:0;;;;;;:11;:19;;;;;;;;183:10;6910:33;;;;;;;;;;:37;:138::i;:::-;6839:8;:220::i;:::-;-1:-1:-1;7077:4:0;6643:446;;;;;:::o;5897:138::-;-1:-1:-1;;;;;6010:16:0;;5963:7;6010:16;;;:7;:16;;;;;;5990:37;;:19;:37::i;1607:148::-;1516:6;;-1:-1:-1;;;;;1516:6:0;183:10;1516:22;1508:67;;;;-1:-1:-1;;;1508:67:0;;;;;;;:::i;:::-;;;;;;;;;1714:1:::1;1698:6:::0;;1677:40:::1;::::0;-1:-1:-1;;;;;1698:6:0;;::::1;::::0;1677:40:::1;::::0;1714:1;;1677:40:::1;1745:1;1728:19:::0;;-1:-1:-1;;;;;;1728:19:0::1;::::0;;1607:148::o;12514:224::-;1516:6;;-1:-1:-1;;;;;1516:6:0;183:10;1516:22;1508:67;;;;-1:-1:-1;;;1508:67:0;;;;;;;:::i;:::-;12687:43:::1;::::0;-1:-1:-1;;;12687:43:0;;12710:10:::1;12687:43;::::0;::::1;6421:51:1::0;6488:18;;;6481:34;;;12661:14:0;;-1:-1:-1;;;;;12687:22:0;::::1;::::0;::::1;::::0;6394:18:1;;12687:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12620:118;12514:224:::0;;:::o;10846:265::-;1516:6;;-1:-1:-1;;;;;1516:6:0;183:10;1516:22;1508:67;;;;-1:-1:-1;;;1508:67:0;;;;;;;:::i;:::-;10905:23:::1;10931:24;10949:4;10931:9;:24::i;:::-;10905:50;;10966:33;10983:15;10966:16;:33::i;:::-;11039:21;11071:32;11039:21:::0;11071:12:::1;:32::i;:::-;10894:217;;10846:265::o:0;6043:199::-;6148:4;6170:42;183:10;6194:9;6205:6;6170:9;:42::i;12746:197::-;1516:6;;-1:-1:-1;;;;;1516:6:0;183:10;1516:22;1508:67;;;;-1:-1:-1;;;1508:67:0;;;;;;;:::i;:::-;12853:7:::1;3837:13;3497:2;3837;:13;:::i;:::-;3824:26;::::0;:10:::1;:26;:::i;:::-;12843:17;;;;:::i;:::-;12832:7;:28;;12824:71;;;::::0;-1:-1:-1;;;12824:71:0;;7200:2:1;12824:71:0::1;::::0;::::1;7182:21:1::0;7239:2;7219:18;;;7212:30;7278:32;7258:18;;;7251:60;7328:18;;12824:71:0::1;6998:354:1::0;12824:71:0::1;12906:19;:29:::0;12746:197::o;15309:260::-;1516:6;;-1:-1:-1;;;;;1516:6:0;183:10;1516:22;1508:67;;;;-1:-1:-1;;;1508:67:0;;;;;;;:::i;:::-;15452:9:::1;15447:115;15467:19:::0;;::::1;15447:115;;;15542:8;15508:18;:31;15527:8;;15536:1;15527:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15508:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15508:31:0;:42;;-1:-1:-1;;15508:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15488:3;::::1;::::0;::::1;:::i;:::-;;;;15447:115;;1763:281:::0;1516:6;;-1:-1:-1;;;;;1516:6:0;183:10;1516:22;1508:67;;;;-1:-1:-1;;;1508:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1866:22:0;::::1;1844:110;;;::::0;-1:-1:-1;;;1844:110:0;;7831:2:1;1844:110:0::1;::::0;::::1;7813:21:1::0;7870:2;7850:18;;;7843:30;7909:34;7889:18;;;7882:62;-1:-1:-1;;;7960:18:1;;;7953:36;8006:19;;1844:110:0::1;7629:402:1::0;1844:110:0::1;1991:6;::::0;;1970:38:::1;::::0;-1:-1:-1;;;;;1970:38:0;;::::1;::::0;1991:6;::::1;::::0;1970:38:::1;::::0;::::1;2019:6;:17:::0;;-1:-1:-1;;;;;;2019:17:0::1;-1:-1:-1::0;;;;;2019:17:0;;;::::1;::::0;;;::::1;::::0;;1763:281::o;7776:369::-;-1:-1:-1;;;;;7903:19:0;;7895:68;;;;-1:-1:-1;;;7895:68:0;;8238:2:1;7895:68:0;;;8220:21:1;8277:2;8257:18;;;8250:30;8316:34;8296:18;;;8289:62;-1:-1:-1;;;8367:18:1;;;8360:34;8411:19;;7895:68:0;8036:400:1;7895:68:0;-1:-1:-1;;;;;7982:21:0;;7974:68;;;;-1:-1:-1;;;7974:68:0;;8643:2:1;7974:68:0;;;8625:21:1;8682:2;8662:18;;;8655:30;8721:34;8701:18;;;8694:62;-1:-1:-1;;;8772:18:1;;;8765:32;8814:19;;7974:68:0;8441:398:1;7974:68:0;-1:-1:-1;;;;;8053:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8105:32;;1596:25:1;;;8105:32:0;;1569:18:1;8105:32:0;;;;;;;7776:369;;;:::o;8153:1900::-;-1:-1:-1;;;;;8275:18:0;;8267:68;;;;-1:-1:-1;;;8267:68:0;;9046:2:1;8267:68:0;;;9028:21:1;9085:2;9065:18;;;9058:30;9124:34;9104:18;;;9097:62;-1:-1:-1;;;9175:18:1;;;9168:35;9220:19;;8267:68:0;8844:401:1;8267:68:0;-1:-1:-1;;;;;8354:16:0;;8346:64;;;;-1:-1:-1;;;8346:64:0;;9452:2:1;8346:64:0;;;9434:21:1;9491:2;9471:18;;;9464:30;9530:34;9510:18;;;9503:62;-1:-1:-1;;;9581:18:1;;;9574:33;9624:19;;8346:64:0;9250:399:1;8346:64:0;8438:1;8429:6;:10;8421:64;;;;-1:-1:-1;;;8421:64:0;;9856:2:1;8421:64:0;;;9838:21:1;9895:2;9875:18;;;9868:30;9934:34;9914:18;;;9907:62;-1:-1:-1;;;9985:18:1;;;9978:39;10034:19;;8421:64:0;9654:405:1;8421:64:0;1427:7;1454:6;-1:-1:-1;;;;;8502:15:0;;;1454:6;;8502:15;;;;:32;;-1:-1:-1;1427:7:0;1454:6;-1:-1:-1;;;;;8521:13:0;;;1454:6;;8521:13;;8502:32;8498:889;;;8551:28;8582:24;8600:4;8582:9;:24::i;:::-;8660:19;;-1:-1:-1;;;;;8700:24:0;;8621:12;8700:24;;;:18;:24;;;;;;8551:55;;-1:-1:-1;8636:43:0;;;;8700:24;;:47;;;;-1:-1:-1;8728:13:0;;-1:-1:-1;;;;;8728:19:0;;;:13;;:19;8700:47;:75;;;;;8769:6;8751:15;8761:4;8751:9;:15::i;:::-;:24;8700:75;8696:161;;;8820:4;;8798:35;;8816:2;;-1:-1:-1;;;;;8820:4:0;8826:6;8798:17;:35::i;:::-;8835:7;;8153:1900;;;:::o;8696:161::-;8895:7;:35;;;;-1:-1:-1;8924:6:0;;-1:-1:-1;;;8924:6:0;;;;8923:7;8895:35;:77;;;;-1:-1:-1;8959:13:0;;-1:-1:-1;;;;;8951:21:0;;;8959:13;;8951:21;;8895:77;:109;;;;-1:-1:-1;8993:11:0;;-1:-1:-1;;;8993:11:0;;;;8895:109;:155;;;;-1:-1:-1;;;;;;9026:24:0;;;;;;:18;:24;;;;;;;;9025:25;8895:155;:199;;;;-1:-1:-1;;;;;;9072:22:0;;;;;;:18;:22;;;;;;;;9071:23;8895:199;8873:503;;;9129:38;9146:20;9129:16;:38::i;:::-;9215:21;9259:22;;9255:106;;9306:35;9319:21;9306:12;:35::i;:::-;9110:266;8873:503;8536:851;;8498:889;-1:-1:-1;;;;;9450:24:0;;9399:12;9450:24;;;:18;:24;;;;;;9414:4;;9450:24;;;:50;;-1:-1:-1;;;;;;9478:22:0;;;;;;:18;:22;;;;;;;;9450:50;9449:115;;;-1:-1:-1;9527:13:0;;-1:-1:-1;;;;;9519:21:0;;;9527:13;;9519:21;;;;:44;;-1:-1:-1;9550:13:0;;-1:-1:-1;;;;;9544:19:0;;;9550:13;;9544:19;;9519:44;9431:563;;;-1:-1:-1;9601:5:0;9431:563;;;9651:13;;-1:-1:-1;;;;;9643:21:0;;;9651:13;;9643:21;:55;;;;-1:-1:-1;9682:15:0;;-1:-1:-1;;;;;9668:30:0;;;9682:15;;9668:30;;9643:55;9639:163;;;9731:14;;9719:9;:26;9774:12;;9764:7;:22;9639:163;9828:13;;-1:-1:-1;;;;;9822:19:0;;;9828:13;;9822:19;:55;;;;-1:-1:-1;9861:15:0;;-1:-1:-1;;;;;9845:32:0;;;9861:15;;9845:32;;9822:55;9818:165;;;9910:15;;9898:9;:27;9954:13;;9944:7;:23;9818:165;10004:41;10019:4;10025:2;10029:6;10037:7;10004:14;:41::i;2406:224::-;2526:7;2562:12;2554:6;;;;2546:29;;;;-1:-1:-1;;;2546:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2586:9:0;2598:5;2602:1;2598;:5;:::i;:::-;2586:17;2406:224;-1:-1:-1;;;;;2406:224:0:o;7097:323::-;7192:7;7250;;7239;:18;;7217:110;;;;-1:-1:-1;;;7217:110:0;;10399:2:1;7217:110:0;;;10381:21:1;10438:2;10418:18;;;10411:30;10477:34;10457:18;;;10450:62;-1:-1:-1;;;10528:18:1;;;10521:40;10578:19;;7217:110:0;10197:406:1;7217:110:0;7338:19;7360:10;:8;:10::i;:::-;7338:32;-1:-1:-1;7388:24:0;:7;7338:32;7388:11;:24::i;:::-;7381:31;7097:323;-1:-1:-1;;;7097:323:0:o;10061:483::-;4847:6;:14;;-1:-1:-1;;;;4847:14:0;;;10163:16:::1;::::0;;10177:1:::1;10163:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10163:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10163:16:0::1;10139:40;;10208:4;10190;10195:1;10190:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10190:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10234:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10234:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10190:7;;10234:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10224:4;10229:1;10224:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10224:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10299:15:::1;::::0;10267:62:::1;::::0;10284:4:::1;::::0;10299:15:::1;10317:11:::0;10267:8:::1;:62::i;:::-;10340:15;::::0;:196:::1;::::0;-1:-1:-1;;;10340:196:0;;-1:-1:-1;;;;;10340:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10421:11;;10340:15:::1;::::0;10463:4;;10490::::1;::::0;10510:15:::1;::::0;10340:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4884:6:0;:14;;-1:-1:-1;;;;4884:14:0;;;-1:-1:-1;;;;10061:483:0:o;10552:286::-;4847:6;:14;;-1:-1:-1;;;;4847:14:0;;;10723:12:::1;:22:::0;10647:6;;4856:5;;10689:80:::1;::::0;10765:3:::1;::::0;10689:57:::1;::::0;10647:6;;10689:33:::1;:57::i;:::-;:75:::0;::::1;:80::i;:::-;10788:16;::::0;10780:50:::1;::::0;10664:105;;-1:-1:-1;;;;;;10788:16:0::1;::::0;10780:50;::::1;;;::::0;10664:105;;10788:16:::1;10780:50:::0;10788:16;10780:50;10664:105;10788:16;10780:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4884:6:0;:14;;-1:-1:-1;;;;4884:14:0;;;-1:-1:-1;;10552:286:0:o;11409:629::-;11556:15;11586:23;11624:12;11651:23;11689:12;11716:13;11743:19;11754:7;11743:10;:19::i;:::-;-1:-1:-1;;;;;11791:15:0;;;;;;:7;:15;;;;;;11541:221;;-1:-1:-1;11541:221:0;;-1:-1:-1;11541:221:0;;-1:-1:-1;11541:221:0;-1:-1:-1;11541:221:0;-1:-1:-1;11541:221:0;-1:-1:-1;11791:28:0;;11541:221;11791:19;:28::i;:::-;-1:-1:-1;;;;;11773:15:0;;;;;;;:7;:15;;;;;;:46;;;;11851:18;;;;;;;:39;;11874:15;11851:22;:39::i;:::-;-1:-1:-1;;;;;11830:18:0;;;;;;:7;:18;;;;;:60;11901:35;11911:5;11918:6;11838:9;11901;:35::i;:::-;11947:23;11959:4;11965;11947:11;:23::i;:::-;12003:9;-1:-1:-1;;;;;11986:44:0;11995:6;-1:-1:-1;;;;;11986:44:0;;12014:15;11986:44;;;;1596:25:1;;1584:2;1569:18;;1450:177;11986:44:0;;;;;;;;11530:508;;;;;;11409:629;;;:::o;11119:282::-;11275:7;11270:28;;11284:14;:12;:14::i;:::-;11309:44;11327:6;11335:9;11346:6;11309:17;:44::i;:::-;11369:7;11364:29;;11378:15;7707:17;;7695:9;:29;7745:15;;7735:7;:25;7651:117;14872:164;14914:7;14935:15;14952;14971:19;:17;:19::i;:::-;14934:56;;-1:-1:-1;14934:56:0;-1:-1:-1;15008:20:0;14934:56;;15008:11;:20::i;:::-;15001:27;;;;14872:164;:::o;2892:132::-;2950:7;2977:39;2981:1;2984;2977:39;;;;;;;;;;;;;;;;;:3;:39::i;2638:246::-;2696:7;2720:1;2725;2720:6;2716:47;;-1:-1:-1;2750:1:0;2743:8;;2716:47;2773:9;2785:5;2789:1;2785;:5;:::i;:::-;2773:17;-1:-1:-1;2818:1:0;2809:5;2813:1;2773:17;2809:5;:::i;:::-;:10;2801:56;;;;-1:-1:-1;;;2801:56:0;;12183:2:1;2801:56:0;;;12165:21:1;12222:2;12202:18;;;12195:30;12261:34;12241:18;;;12234:62;-1:-1:-1;;;12312:18:1;;;12305:31;12353:19;;2801:56:0;11981:397:1;13143:702:0;13243:7;13265;13287;13309;13331;13353;13389:23;13414:12;13428:13;13445:90;13471:7;13493:9;;13517:7;;13445:11;:90::i;:::-;13388:147;;;;;;13546:19;13568:10;:8;:10::i;:::-;13546:32;;13590:15;13607:23;13632:12;13648:109;13674:7;13696:4;13715:5;13735:11;13648;:109::i;:::-;13589:168;;-1:-1:-1;13589:168:0;-1:-1:-1;13589:168:0;-1:-1:-1;13808:15:0;;-1:-1:-1;13825:4:0;;-1:-1:-1;13831:5:0;;-1:-1:-1;;;;;13143:702:0;;;;;;;:::o;2262:136::-;2320:7;2347:43;2351:1;2354;2347:43;;;;;;;;;;;;;;;;;:3;:43::i;2075:179::-;2133:7;;2165:5;2169:1;2165;:5;:::i;:::-;2153:17;;2194:1;2189;:6;;2181:46;;;;-1:-1:-1;;;2181:46:0;;12715:2:1;2181:46:0;;;12697:21:1;12754:2;12734:18;;;12727:30;12793:29;12773:18;;;12766:57;12840:18;;2181:46:0;12513:351:1;12046:460:0;12187:13;;-1:-1:-1;;;;;12179:21:0;;;12187:13;;12179:21;;;;:63;;-1:-1:-1;;;;;;12218:24:0;;;;;;:18;:24;;;;;;;;12217:25;12179:63;:105;;;;-1:-1:-1;;;;;;12260:24:0;;;;;;:18;:24;;;;;;;;12259:25;12179:105;12161:176;;;12314:16;;12304:27;;-1:-1:-1;;;;;12314:16:0;12304:9;:27::i;:::-;:32;12296:41;;;;;;12348:19;12370:10;:8;:10::i;:::-;12348:32;-1:-1:-1;12391:13:0;12407:22;:5;12348:32;12407:9;:22::i;:::-;12481:4;12465:22;;;;:7;:22;;;;;;12391:38;;-1:-1:-1;12465:33:0;;12391:38;12465:26;:33::i;:::-;12456:4;12440:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;12046:460:0:o;12951:147::-;13029:7;;:17;;13041:4;13029:11;:17::i;:::-;13019:7;:27;13070:10;;:20;;13085:4;13070:14;:20::i;:::-;13057:10;:33;-1:-1:-1;;12951:147:0:o;7428:215::-;7475:9;;:14;:30;;;;-1:-1:-1;7493:7:0;;:12;7475:30;7471:43;;;7428:215::o;7471:43::-;7544:9;;;7524:17;:29;7582:7;;;7564:15;:25;-1:-1:-1;7600:13:0;;;;7624:11;7428:215::o;15044:257::-;15142:7;;15095;;;;;3837:13;3497:2;3837;:13;:::i;:::-;3824:26;;:10;:26;:::i;:::-;15160:25;-1:-1:-1;15210:20:0;3837:13;3497:2;3837;:13;:::i;:::-;3824:26;;:10;:26;:::i;:::-;15210:7;;;:11;:20::i;:::-;15200:7;:30;15196:61;;;15240:7;;3837:13;3497:2;3837;:13;:::i;:::-;3824:26;;:10;:26;:::i;:::-;15232:25;;;;;;15044:257;;:::o;15196:61::-;15276:7;;15285;;-1:-1:-1;15044:257:0;-1:-1:-1;15044:257:0:o;3032:223::-;3152:7;3187:12;3180:5;3172:28;;;;-1:-1:-1;;;3172:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3211:9:0;3223:5;3227:1;3223;:5;:::i;13853:469::-;14022:7;;;;14116:30;14142:3;14116:21;:7;14128:8;14116:11;:21::i;:30::-;14101:45;-1:-1:-1;14157:13:0;14173:28;14197:3;14173:19;:7;14185:6;14173:11;:19::i;:28::-;14157:44;-1:-1:-1;14212:23:0;14238:28;14157:44;14238:17;:7;14250:4;14238:11;:17::i;:::-;:21;;:28::i;:::-;14212:54;14302:4;;-1:-1:-1;14308:5:0;;-1:-1:-1;13853:469:0;;-1:-1:-1;;;;;13853:469:0:o;14330:534::-;14524:7;;;;14621:24;:7;14633:11;14621;:24::i;:::-;14603:42;-1:-1:-1;14656:12:0;14671:21;:4;14680:11;14671:8;:21::i;:::-;14656:36;-1:-1:-1;14703:13:0;14719:22;:5;14729:11;14719:9;:22::i;:::-;14703:38;-1:-1:-1;14752:23:0;14778:28;14703:38;14778:17;:7;14790:4;14778:11;:17::i;:28::-;14825:7;;;;-1:-1:-1;14851:4:0;;-1:-1:-1;14330:534:0;;-1:-1:-1;;;;;;;14330:534:0: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;1632:456::-;1709:6;1717;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;1833:9;1820:23;1852:31;1877:5;1852:31;:::i;:::-;1902:5;-1:-1:-1;1959:2:1;1944:18;;1931:32;1972:33;1931:32;1972:33;:::i;:::-;1632:456;;2024:7;;-1:-1:-1;;;2078:2:1;2063:18;;;;2050:32;;1632:456::o;2490:247::-;2549:6;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2657:9;2644:23;2676:31;2701:5;2676:31;:::i;2742:180::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;-1:-1:-1;2893:23:1;;2742:180;-1:-1:-1;2742:180:1:o;2927:118::-;3013:5;3006:13;2999:21;2992:5;2989:32;2979:60;;3035:1;3032;3025:12;3050:750;3142:6;3150;3158;3211:2;3199:9;3190:7;3186:23;3182:32;3179:52;;;3227:1;3224;3217:12;3179:52;3267:9;3254:23;3296:18;3337:2;3329:6;3326:14;3323:34;;;3353:1;3350;3343:12;3323:34;3391:6;3380:9;3376:22;3366:32;;3436:7;3429:4;3425:2;3421:13;3417:27;3407:55;;3458:1;3455;3448:12;3407:55;3498:2;3485:16;3524:2;3516:6;3513:14;3510:34;;;3540:1;3537;3530:12;3510:34;3595:7;3588:4;3578:6;3575:1;3571:14;3567:2;3563:23;3559:34;3556:47;3553:67;;;3616:1;3613;3606:12;3553:67;3647:4;3639:13;;;;-1:-1:-1;3671:6:1;-1:-1:-1;;3712:20:1;;3699:34;3742:28;3699:34;3742:28;:::i;:::-;3789:5;3779:15;;;3050:750;;;;;:::o;3805:388::-;3873:6;3881;3934:2;3922:9;3913:7;3909:23;3905:32;3902:52;;;3950:1;3947;3940:12;3902:52;3989:9;3976:23;4008:31;4033:5;4008:31;:::i;:::-;4058:5;-1:-1:-1;4115:2:1;4100:18;;4087:32;4128:33;4087:32;4128:33;:::i;:::-;4180:7;4170:17;;;3805:388;;;;;:::o;4198:127::-;4259:10;4254:3;4250:20;4247:1;4240:31;4290:4;4287:1;4280:15;4314:4;4311:1;4304:15;4330:422;4419:1;4462:5;4419:1;4476:270;4497:7;4487:8;4484:21;4476:270;;;4556:4;4552:1;4548:6;4544:17;4538:4;4535:27;4532:53;;;4565:18;;:::i;:::-;4615:7;4605:8;4601:22;4598:55;;;4635:16;;;;4598:55;4714:22;;;;4674:15;;;;4476:270;;;4480:3;4330:422;;;;;:::o;4757:806::-;4806:5;4836:8;4826:80;;-1:-1:-1;4877:1:1;4891:5;;4826:80;4925:4;4915:76;;-1:-1:-1;4962:1:1;4976:5;;4915:76;5007:4;5025:1;5020:59;;;;5093:1;5088:130;;;;5000:218;;5020:59;5050:1;5041:10;;5064:5;;;5088:130;5125:3;5115:8;5112:17;5109:43;;;5132:18;;:::i;:::-;-1:-1:-1;;5188:1:1;5174:16;;5203:5;;5000:218;;5302:2;5292:8;5289:16;5283:3;5277:4;5274:13;5270:36;5264:2;5254:8;5251:16;5246:2;5240:4;5237:12;5233:35;5230:77;5227:159;;;-1:-1:-1;5339:19:1;;;5371:5;;5227:159;5418:34;5443:8;5437:4;5418:34;:::i;:::-;5488:6;5484:1;5480:6;5476:19;5467:7;5464:32;5461:58;;;5499:18;;:::i;:::-;5537:20;;4757:806;-1:-1:-1;;;4757:806:1:o;5568:140::-;5626:5;5655:47;5696:4;5686:8;5682:19;5676:4;5655:47;:::i;5713:168::-;5786:9;;;5817;;5834:15;;;5828:22;;5814:37;5804:71;;5855:18;;:::i;5886:356::-;6088:2;6070:21;;;6107:18;;;6100:30;6166:34;6161:2;6146:18;;6139:62;6233:2;6218:18;;5886:356::o;6526:245::-;6593:6;6646:2;6634:9;6625:7;6621:23;6617:32;6614:52;;;6662:1;6659;6652:12;6614:52;6694:9;6688:16;6713:28;6735:5;6713:28;:::i;6776:217::-;6816:1;6842;6832:132;;6886:10;6881:3;6877:20;6874:1;6867:31;6921:4;6918:1;6911:15;6949:4;6946:1;6939:15;6832:132;-1:-1:-1;6978:9:1;;6776:217::o;7357:127::-;7418:10;7413:3;7409:20;7406:1;7399:31;7449:4;7446:1;7439:15;7473:4;7470:1;7463:15;7489:135;7528:3;7549:17;;;7546:43;;7569:18;;:::i;:::-;-1:-1:-1;7616:1:1;7605:13;;7489:135::o;10064:128::-;10131:9;;;10152:11;;;10149:37;;;10166:18;;:::i;10740:251::-;10810:6;10863:2;10851:9;10842:7;10838:23;10834:32;10831:52;;;10879:1;10876;10869:12;10831:52;10911:9;10905:16;10930:31;10955:5;10930:31;:::i;10996:980::-;11258:4;11306:3;11295:9;11291:19;11337:6;11326:9;11319:25;11363:2;11401:6;11396:2;11385:9;11381:18;11374:34;11444:3;11439:2;11428:9;11424:18;11417:31;11468:6;11503;11497:13;11534:6;11526;11519:22;11572:3;11561:9;11557:19;11550:26;;11611:2;11603:6;11599:15;11585:29;;11632:1;11642:195;11656:6;11653:1;11650:13;11642:195;;;11721:13;;-1:-1:-1;;;;;11717:39:1;11705:52;;11812:15;;;;11777:12;;;;11753:1;11671:9;11642:195;;;-1:-1:-1;;;;;;;11893:32:1;;;;11888:2;11873:18;;11866:60;-1:-1:-1;;;11957:3:1;11942:19;11935:35;11854:3;10996:980;-1:-1:-1;;;10996:980:1:o;12383:125::-;12448:9;;;12469:10;;;12466:36;;;12482:18;;:::i

Swarm Source

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