ETH Price: $2,397.37 (-3.59%)

Token

Prime Finance (PF)
 

Overview

Max Total Supply

1,000,000,000 PF

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,692,697.426916577 PF

Value
$0.00
0xd133c4792068d0702e9E90cE387D454D3513ef75
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:
PrimeFinance

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-29
*/

// TG : https://t.me/PrimeFinanceERC

// TW : https://twitter.com/PrimeFinanceERC

/*

PRIME FINANCE ERC

Launching On Uniswap 🦄
Tax : 1% Buy
          1% Sell

Lp Locked 🔐 & Renounced

UTILITIES: 
LIQUIDITY LOCKERS
TOKEN VESTING
REAL TIME CHARTS

http://t.me/primefinanceERC 
primefinance.live
https://twitter.com/primefinanceERC

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.5;

library SafeMath {

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

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

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

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

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

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

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

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

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

interface DexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        PFERC[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal PFERC;

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

    modifier PFATH() {
        require(isPFATH(msg.sender), "!PFATH"); _;
    }

    function isPFATH(address adr) public view returns (bool) {
        return PFERC[adr];
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract PrimeFinance is Ownable, IERC20 {
    using SafeMath for uint256;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    uint8 constant private _decimals = 9;

    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 38 / 10000;
    uint256 public _walletMax = _totalSupply * 44 /10000;

    string constant private _name = "Prime Finance";
    string constant private _symbol = "PF";

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
 
    uint256 public LPTax = 0;
    uint256 public MarketTax = 1;
    uint256 public TokenTax = 0;

    uint256 public NetBuyTax = 1;
    uint256 public NetSellTax = 1;

    bool public takeBF = true;
    bool public takeSF = true;
    bool public takeTF = true;

    address private lpWallet;
    address private projectAddress;
    address private devWallet;
    address private nativeWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 26 / 10000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[nativeWallet] = true;
        isFeeExempt[routerAddress] = true;

        isTxLimitExempt[nativeWallet] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[routerAddress] = true;

        lpWallet = 0x4F326d675ea1c721367d5B757BCDEB36Bb097072;
        projectAddress = 0x4F326d675ea1c721367d5B757BCDEB36Bb097072;
        devWallet = 0x4F326d675ea1c721367d5B757BCDEB36Bb097072;
        nativeWallet = msg.sender;

        isFeeExempt[projectAddress] = true;
        NetBuyTax = LPTax.add(MarketTax).add(TokenTax);
        NetSellTax = NetBuyTax;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

    function totalSupply() external view override returns (uint256) {return _totalSupply;}

    function getOwner() external view override returns (address) {return owner();}

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!PFERC[sender] && !PFERC[recipient]){
            require(tradingOpen, "");
        }
        if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient]) {
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        uint nativeAmount = 0;
        if (isPair[recipient] && takeSF) {
            feeApplicable = NetSellTax.sub(TokenTax);        
        }
        if (isPair[sender] && takeBF) {
            feeApplicable = NetBuyTax.sub(TokenTax);        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTF){
                feeApplicable = NetSellTax.sub(TokenTax); 
            }
            else{
                feeApplicable = 0;
            }
        }
        if(feeApplicable > 0 && TokenTax >0){
            nativeAmount = amount.mul(TokenTax).div(100);
            _balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, nativeAmount);
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount).sub(nativeAmount);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(LPTax).div(NetBuyTax.sub(TokenTax)).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = NetBuyTax.sub(TokenTax).sub(LPTax.div(2));

        uint256 amountETHLiquidity = amountETH.mul(LPTax).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(MarketTax).div(totalETHFee);
        
        (bool tmpSuccess1,) = payable(projectAddress).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess1 = false;


        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function extractERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function extractERC(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

    function BSF(uint256 newLiqFee, uint256 newMarketTax, uint256 newNativeFee, uint256 extra) public PFATH{
        LPTax = newLiqFee;
        MarketTax = newMarketTax;
        TokenTax = newNativeFee;
        NetBuyTax = LPTax.add(MarketTax).add(TokenTax);
        NetSellTax = NetBuyTax + extra;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketTax","type":"uint256"},{"internalType":"uint256","name":"newNativeFee","type":"uint256"},{"internalType":"uint256","name":"extra","type":"uint256"}],"name":"BSF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LPTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NetBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NetSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TokenTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"extractERC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"extractERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isPFATH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBF","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSF","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTF","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386009600a6200069a565b6200004890633b9aca0062000766565b60035561271060035460266200005f919062000766565b6200006b91906200062e565b600455612710600354602c62000082919062000766565b6200008e91906200062e565b6005556000600a8190556001600b819055600c91909155600d819055600e55600f80546201010162ffffff199091161790556017805463ffff00ff19166201000117905560035461271090620000e690601a62000766565b620000f291906200062e565b6018553480156200010257600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b158015620001b557600080fd5b505afa158015620001ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f09190620005e8565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024d57600080fd5b505afa15801562000262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002889190620005e8565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002d057600080fd5b505af1158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b9190620005e8565b601480546001600160a01b03199081166001600160a01b0393841690811783556000908152601560209081526040808320805460ff19908116600190811790925530808652600785528386206013548a16875285528386206000199081905588548a16875284872055338087526008808752858820805485168617905591875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054841685179055601280548b1688528588208054851686179055600280548c168952868920805486168717905581548c168952600988528689208054861687179055828952868920805486168717905599548b16885285882080548516861790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054851686179055985490991686529285208054821683179055600f80546301000000600160b81b031916764f326d675ea1c721367d5b757bcdeb36bb09707200000017905560108054734f326d675ea1c721367d5b757bcdeb36bb0970729088168117909155601180548816821790558754909616909717909555929091529081527fcd0ddc73684da6659fc10763d7a2951de8547bf42fcf20fcba3849f29fc403d18054909316909117909155600c54600b54600a5462000520936200050c929062000579811b62000bd917901c565b6200057960201b62000bd91790919060201c565b600d819055600e5560035433600081815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200079e565b60008062000588838562000613565b905083811015620005df5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b600060208284031215620005fb57600080fd5b81516001600160a01b0381168114620005df57600080fd5b6000821982111562000629576200062962000788565b500190565b6000826200064c57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200069257816000190482111562000676576200067662000788565b808516156200068457918102915b93841c939080029062000656565b509250929050565b6000620006ab60ff841683620006b2565b9392505050565b600082620006c357506001620005e2565b81620006d257506000620005e2565b8160018114620006eb5760028114620006f65762000716565b6001915050620005e2565b60ff8411156200070a576200070a62000788565b50506001821b620005e2565b5060208310610133831016604e8410600b84101617156200073b575081810a620005e2565b62000747838362000651565b80600019048211156200075e576200075e62000788565b029392505050565b600081600019048311821515161562000783576200078362000788565b500290565b634e487b7160e01b600052601160045260246000fd5b611a2e80620007ae6000396000f3fe6080604052600436106102345760003560e01c8063893d20e81161012e578063bf56b371116100ab578063e55a06261161006f578063e55a0626146106ce578063e5e31b13146106ee578063f542dcac1461071e578063f887ea4014610734578063ffb54a991461075457600080fd5b8063bf56b37114610622578063c9567bf914610638578063da00097d1461064d578063dd62ed3e1461066e578063e5161d40146106b457600080fd5b806395d89b41116100f257806395d89b411461055e578063a8aa1b3114610589578063a9059cbb146105a9578063b019f732146105c9578063b09a0cc71461060257600080fd5b8063893d20e8146104a85780638a190dee146104da5780638b42507f146104fa5780638b4c03531461052a5780638da5cb5b1461054057600080fd5b8063313ce567116101bc578063571ac8b011610180578063571ac8b01461040f57806370a082311461042f578063715018a6146104655780637d1db4a51461047c578063807c2d9c1461049257600080fd5b8063313ce5671461036e57806337e160ed1461038a5780633f4218e0146103a05780634a74bb02146103d057806350a7e00f146103f057600080fd5b806315e8530a1161020357806315e8530a146102f857806318160ddd1461030e57806323b872dd146103235780632818b2e7146103435780632b112e491461035957600080fd5b80630445b6671461024057806306fdde0314610269578063095ea7b3146102a85780630b6986b4146102d857600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660185481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b5060408051808201909152600d81526c5072696d652046696e616e636560981b60208201525b6040516102609190611829565b3480156102b457600080fd5b506102c86102c3366004611762565b61076e565b6040519015158152602001610260565b3480156102e457600080fd5b50600f546102c89062010000900460ff1681565b34801561030457600080fd5b50610256600e5481565b34801561031a57600080fd5b50600354610256565b34801561032f57600080fd5b506102c861033e366004611721565b6107db565b34801561034f57600080fd5b50610256600d5481565b34801561036557600080fd5b5061025661089d565b34801561037a57600080fd5b5060405160098152602001610260565b34801561039657600080fd5b50610256600b5481565b3480156103ac57600080fd5b506102c86103bb3660046116ae565b60086020526000908152604090205460ff1681565b3480156103dc57600080fd5b506017546102c89062010000900460ff1681565b3480156103fc57600080fd5b50600f546102c890610100900460ff1681565b34801561041b57600080fd5b506102c861042a3660046116ae565b61090e565b34801561043b57600080fd5b5061025661044a3660046116ae565b6001600160a01b031660009081526006602052604090205490565b34801561047157600080fd5b5061047a61091c565b005b34801561048857600080fd5b5061025660045481565b34801561049e57600080fd5b5061025660055481565b3480156104b457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610260565b3480156104e657600080fd5b5061047a6104f53660046117b0565b610999565b34801561050657600080fd5b506102c86105153660046116ae565b60096020526000908152604090205460ff1681565b34801561053657600080fd5b50610256600c5481565b34801561054c57600080fd5b506000546001600160a01b03166104c2565b34801561056a57600080fd5b50604080518082019091526002815261282360f11b602082015261029b565b34801561059557600080fd5b506014546104c2906001600160a01b031681565b3480156105b557600080fd5b506102c86105c4366004611762565b610a0b565b3480156105d557600080fd5b506102c86105e43660046116ae565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561060e57600080fd5b506102c861061d366004611762565b610a18565b34801561062e57600080fd5b5061025660165481565b34801561064457600080fd5b5061047a610b1c565b34801561065957600080fd5b506017546102c8906301000000900460ff1681565b34801561067a57600080fd5b506102566106893660046116e8565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106c057600080fd5b50600f546102c89060ff1681565b3480156106da57600080fd5b5061047a6106e93660046117f7565b610b55565b3480156106fa57600080fd5b506102c86107093660046116ae565b60156020526000908152604090205460ff1681565b34801561072a57600080fd5b50610256600a5481565b34801561074057600080fd5b506013546104c2906001600160a01b031681565b34801561076057600080fd5b506017546102c89060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107c99086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610888576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610863918490610c38565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610893848484610c72565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e225460035491926109099290916109039190610efe565b90610efe565b905090565b60006107d58260001961076e565b6000546001600160a01b0316331461094f5760405162461bcd60e51b81526004016109469061187e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109c35760405162461bcd60e51b81526004016109469061187e565b47336108fc60646109d4858561195e565b6109de919061193c565b6040518115909202916000818181858888f19350505050158015610a06573d6000803e3d6000fd5b505050565b6000610896338484610c72565b600080546001600160a01b03163314610a435760405162461bcd60e51b81526004016109469061187e565b6001600160a01b038316301415610a9c5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610946565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610ae457600080fd5b505af1158015610af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610896919061178e565b6000546001600160a01b03163314610b465760405162461bcd60e51b81526004016109469061187e565b6017805460ff19166001179055565b3360009081526001602052604090205460ff16610b9d5760405162461bcd60e51b8152602060048201526006602482015265042a08c82a8960d31b6044820152606401610946565b600a849055600b839055600c829055610bc082610bba8686610bd9565b90610bd9565b600d819055610bd0908290611924565b600e5550505050565b600080610be68385611924565b9050838110156108965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610946565b60008184841115610c5c5760405162461bcd60e51b81526004016109469190611829565b506000610c69848661197d565b95945050505050565b601754600090610100900460ff1615610c9757610c90848484610f40565b9050610896565b6001600160a01b03841660009081526001602052604090205460ff16158015610cd957506001600160a01b03831660009081526001602052604090205460ff16155b15610d0a5760175460ff16610d0a5760405162461bcd60e51b81526020600482015260006024820152604401610946565b6001600160a01b03831660009081526015602052604090205460ff168015610d3a5750601754610100900460ff16155b8015610d4e575060175462010000900460ff165b8015610d6b57506018543060009081526006602052604090205410155b15610d7857610d78611014565b601654158015610da057506001600160a01b03831660009081526015602052604090205460ff165b15610ded576001600160a01b038416600090815260066020526040902054610de45760405162461bcd60e51b81526020600482015260006024820152604401610946565b610ded43601655565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610e1e918490610c38565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610e6e57506001600160a01b03841660009081526008602052604090205460ff16155b610e785782610e83565b610e83858585611391565b6001600160a01b038516600090815260066020526040902054909150610ea99082610bd9565b6001600160a01b0380861660008181526006602052604090819020939093559151908716906000805160206119d983398151915290610eeb9085815260200190565b60405180910390a3506001949350505050565b600061089683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c38565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610f91918490610c38565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610fc09083610bd9565b6001600160a01b0380851660008181526006602052604090819020939093559151908616906000805160206119d9833981519152906110029086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260066020526040812054600c54600d549192916110659160029161105f916110519190610efe565b600a5461105f9087906115c4565b90611643565b905060006110738383610efe565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106110ad576110ad6119aa565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113991906116cb565b8160018151811061114c5761114c6119aa565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906111929085906000908690309042906004016118b3565b600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b5050600a54479250600091506111ea906111db906002611643565b600c54600d5461090391610efe565b9050600061120c600261105f8461105f600a54886115c490919063ffffffff16565b905060006112298361105f600b54876115c490919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611280576040519150601f19603f3d011682016040523d82523d6000602084013e611285565b606091505b5060009250508815905061137b57601354600f5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561130557600080fd5b505af1158015611319573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061133e91906117c9565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff001916905550505050505050565b6001600160a01b0382166000908152601560205260408120548190819060ff1680156113c45750600f54610100900460ff165b156113db57600c54600e546113d891610efe565b91505b6001600160a01b03861660009081526015602052604090205460ff1680156114055750600f5460ff165b1561141c57600c54600d5461141991610efe565b91505b6001600160a01b03861660009081526015602052604090205460ff1615801561145e57506001600160a01b03851660009081526015602052604090205460ff16155b1561148f57600f5462010000900460ff161561148a57600c54600e5461148391610efe565b915061148f565b600091505b6000821180156114a157506000600c54115b15611536576114c0606461105f600c54876115c490919063ffffffff16565b6012546001600160a01b03166000908152600660205260409020549091506114e89082610bd9565b601280546001600160a01b03908116600090815260066020908152604091829020949094559154915184815291811692908916916000805160206119d9833981519152910160405180910390a35b6000611547606461105f87866115c4565b306000908152600660205260409020549091506115649082610bd9565b30600081815260066020526040908190209290925590516001600160a01b038916906000805160206119d9833981519152906115a39085815260200190565b60405180910390a36115b9826109038784610efe565b979650505050505050565b6000826115d3575060006107d5565b60006115df838561195e565b9050826115ec858361193c565b146108965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610946565b600061089683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116a15760405162461bcd60e51b81526004016109469190611829565b506000610c69848661193c565b6000602082840312156116c057600080fd5b8135610896816119c0565b6000602082840312156116dd57600080fd5b8151610896816119c0565b600080604083850312156116fb57600080fd5b8235611706816119c0565b91506020830135611716816119c0565b809150509250929050565b60008060006060848603121561173657600080fd5b8335611741816119c0565b92506020840135611751816119c0565b929592945050506040919091013590565b6000806040838503121561177557600080fd5b8235611780816119c0565b946020939093013593505050565b6000602082840312156117a057600080fd5b8151801515811461089657600080fd5b6000602082840312156117c257600080fd5b5035919050565b6000806000606084860312156117de57600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561180d57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156118565785810183015185820160400152820161183a565b81811115611868576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119035784516001600160a01b0316835293830193918301916001016118de565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561193757611937611994565b500190565b60008261195957634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561197857611978611994565b500290565b60008282101561198f5761198f611994565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146119d557600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122043887512e58ec7b375d961ae5fe4f83cf4aa0c0b422a657a4e3125399353ea4264736f6c63430008050033

Deployed Bytecode

0x6080604052600436106102345760003560e01c8063893d20e81161012e578063bf56b371116100ab578063e55a06261161006f578063e55a0626146106ce578063e5e31b13146106ee578063f542dcac1461071e578063f887ea4014610734578063ffb54a991461075457600080fd5b8063bf56b37114610622578063c9567bf914610638578063da00097d1461064d578063dd62ed3e1461066e578063e5161d40146106b457600080fd5b806395d89b41116100f257806395d89b411461055e578063a8aa1b3114610589578063a9059cbb146105a9578063b019f732146105c9578063b09a0cc71461060257600080fd5b8063893d20e8146104a85780638a190dee146104da5780638b42507f146104fa5780638b4c03531461052a5780638da5cb5b1461054057600080fd5b8063313ce567116101bc578063571ac8b011610180578063571ac8b01461040f57806370a082311461042f578063715018a6146104655780637d1db4a51461047c578063807c2d9c1461049257600080fd5b8063313ce5671461036e57806337e160ed1461038a5780633f4218e0146103a05780634a74bb02146103d057806350a7e00f146103f057600080fd5b806315e8530a1161020357806315e8530a146102f857806318160ddd1461030e57806323b872dd146103235780632818b2e7146103435780632b112e491461035957600080fd5b80630445b6671461024057806306fdde0314610269578063095ea7b3146102a85780630b6986b4146102d857600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660185481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b5060408051808201909152600d81526c5072696d652046696e616e636560981b60208201525b6040516102609190611829565b3480156102b457600080fd5b506102c86102c3366004611762565b61076e565b6040519015158152602001610260565b3480156102e457600080fd5b50600f546102c89062010000900460ff1681565b34801561030457600080fd5b50610256600e5481565b34801561031a57600080fd5b50600354610256565b34801561032f57600080fd5b506102c861033e366004611721565b6107db565b34801561034f57600080fd5b50610256600d5481565b34801561036557600080fd5b5061025661089d565b34801561037a57600080fd5b5060405160098152602001610260565b34801561039657600080fd5b50610256600b5481565b3480156103ac57600080fd5b506102c86103bb3660046116ae565b60086020526000908152604090205460ff1681565b3480156103dc57600080fd5b506017546102c89062010000900460ff1681565b3480156103fc57600080fd5b50600f546102c890610100900460ff1681565b34801561041b57600080fd5b506102c861042a3660046116ae565b61090e565b34801561043b57600080fd5b5061025661044a3660046116ae565b6001600160a01b031660009081526006602052604090205490565b34801561047157600080fd5b5061047a61091c565b005b34801561048857600080fd5b5061025660045481565b34801561049e57600080fd5b5061025660055481565b3480156104b457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610260565b3480156104e657600080fd5b5061047a6104f53660046117b0565b610999565b34801561050657600080fd5b506102c86105153660046116ae565b60096020526000908152604090205460ff1681565b34801561053657600080fd5b50610256600c5481565b34801561054c57600080fd5b506000546001600160a01b03166104c2565b34801561056a57600080fd5b50604080518082019091526002815261282360f11b602082015261029b565b34801561059557600080fd5b506014546104c2906001600160a01b031681565b3480156105b557600080fd5b506102c86105c4366004611762565b610a0b565b3480156105d557600080fd5b506102c86105e43660046116ae565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561060e57600080fd5b506102c861061d366004611762565b610a18565b34801561062e57600080fd5b5061025660165481565b34801561064457600080fd5b5061047a610b1c565b34801561065957600080fd5b506017546102c8906301000000900460ff1681565b34801561067a57600080fd5b506102566106893660046116e8565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106c057600080fd5b50600f546102c89060ff1681565b3480156106da57600080fd5b5061047a6106e93660046117f7565b610b55565b3480156106fa57600080fd5b506102c86107093660046116ae565b60156020526000908152604090205460ff1681565b34801561072a57600080fd5b50610256600a5481565b34801561074057600080fd5b506013546104c2906001600160a01b031681565b34801561076057600080fd5b506017546102c89060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107c99086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610888576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610863918490610c38565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610893848484610c72565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e225460035491926109099290916109039190610efe565b90610efe565b905090565b60006107d58260001961076e565b6000546001600160a01b0316331461094f5760405162461bcd60e51b81526004016109469061187e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109c35760405162461bcd60e51b81526004016109469061187e565b47336108fc60646109d4858561195e565b6109de919061193c565b6040518115909202916000818181858888f19350505050158015610a06573d6000803e3d6000fd5b505050565b6000610896338484610c72565b600080546001600160a01b03163314610a435760405162461bcd60e51b81526004016109469061187e565b6001600160a01b038316301415610a9c5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610946565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610ae457600080fd5b505af1158015610af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610896919061178e565b6000546001600160a01b03163314610b465760405162461bcd60e51b81526004016109469061187e565b6017805460ff19166001179055565b3360009081526001602052604090205460ff16610b9d5760405162461bcd60e51b8152602060048201526006602482015265042a08c82a8960d31b6044820152606401610946565b600a849055600b839055600c829055610bc082610bba8686610bd9565b90610bd9565b600d819055610bd0908290611924565b600e5550505050565b600080610be68385611924565b9050838110156108965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610946565b60008184841115610c5c5760405162461bcd60e51b81526004016109469190611829565b506000610c69848661197d565b95945050505050565b601754600090610100900460ff1615610c9757610c90848484610f40565b9050610896565b6001600160a01b03841660009081526001602052604090205460ff16158015610cd957506001600160a01b03831660009081526001602052604090205460ff16155b15610d0a5760175460ff16610d0a5760405162461bcd60e51b81526020600482015260006024820152604401610946565b6001600160a01b03831660009081526015602052604090205460ff168015610d3a5750601754610100900460ff16155b8015610d4e575060175462010000900460ff165b8015610d6b57506018543060009081526006602052604090205410155b15610d7857610d78611014565b601654158015610da057506001600160a01b03831660009081526015602052604090205460ff165b15610ded576001600160a01b038416600090815260066020526040902054610de45760405162461bcd60e51b81526020600482015260006024820152604401610946565b610ded43601655565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610e1e918490610c38565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610e6e57506001600160a01b03841660009081526008602052604090205460ff16155b610e785782610e83565b610e83858585611391565b6001600160a01b038516600090815260066020526040902054909150610ea99082610bd9565b6001600160a01b0380861660008181526006602052604090819020939093559151908716906000805160206119d983398151915290610eeb9085815260200190565b60405180910390a3506001949350505050565b600061089683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c38565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054610f91918490610c38565b6001600160a01b038086166000908152600660205260408082209390935590851681522054610fc09083610bd9565b6001600160a01b0380851660008181526006602052604090819020939093559151908616906000805160206119d9833981519152906110029086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260066020526040812054600c54600d549192916110659160029161105f916110519190610efe565b600a5461105f9087906115c4565b90611643565b905060006110738383610efe565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106110ad576110ad6119aa565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113991906116cb565b8160018151811061114c5761114c6119aa565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906111929085906000908690309042906004016118b3565b600060405180830381600087803b1580156111ac57600080fd5b505af11580156111c0573d6000803e3d6000fd5b5050600a54479250600091506111ea906111db906002611643565b600c54600d5461090391610efe565b9050600061120c600261105f8461105f600a54886115c490919063ffffffff16565b905060006112298361105f600b54876115c490919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114611280576040519150601f19603f3d011682016040523d82523d6000602084013e611285565b606091505b5060009250508815905061137b57601354600f5460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561130557600080fd5b505af1158015611319573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061133e91906117c9565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff001916905550505050505050565b6001600160a01b0382166000908152601560205260408120548190819060ff1680156113c45750600f54610100900460ff165b156113db57600c54600e546113d891610efe565b91505b6001600160a01b03861660009081526015602052604090205460ff1680156114055750600f5460ff165b1561141c57600c54600d5461141991610efe565b91505b6001600160a01b03861660009081526015602052604090205460ff1615801561145e57506001600160a01b03851660009081526015602052604090205460ff16155b1561148f57600f5462010000900460ff161561148a57600c54600e5461148391610efe565b915061148f565b600091505b6000821180156114a157506000600c54115b15611536576114c0606461105f600c54876115c490919063ffffffff16565b6012546001600160a01b03166000908152600660205260409020549091506114e89082610bd9565b601280546001600160a01b03908116600090815260066020908152604091829020949094559154915184815291811692908916916000805160206119d9833981519152910160405180910390a35b6000611547606461105f87866115c4565b306000908152600660205260409020549091506115649082610bd9565b30600081815260066020526040908190209290925590516001600160a01b038916906000805160206119d9833981519152906115a39085815260200190565b60405180910390a36115b9826109038784610efe565b979650505050505050565b6000826115d3575060006107d5565b60006115df838561195e565b9050826115ec858361193c565b146108965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610946565b600061089683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116a15760405162461bcd60e51b81526004016109469190611829565b506000610c69848661193c565b6000602082840312156116c057600080fd5b8135610896816119c0565b6000602082840312156116dd57600080fd5b8151610896816119c0565b600080604083850312156116fb57600080fd5b8235611706816119c0565b91506020830135611716816119c0565b809150509250929050565b60008060006060848603121561173657600080fd5b8335611741816119c0565b92506020840135611751816119c0565b929592945050506040919091013590565b6000806040838503121561177557600080fd5b8235611780816119c0565b946020939093013593505050565b6000602082840312156117a057600080fd5b8151801515811461089657600080fd5b6000602082840312156117c257600080fd5b5035919050565b6000806000606084860312156117de57600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561180d57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156118565785810183015185820160400152820161183a565b81811115611868576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119035784516001600160a01b0316835293830193918301916001016118de565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561193757611937611994565b500190565b60008261195957634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561197857611978611994565b500290565b60008282101561198f5761198f611994565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146119d557600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122043887512e58ec7b375d961ae5fe4f83cf4aa0c0b422a657a4e3125399353ea4264736f6c63430008050033

Deployed Bytecode Sourcemap

5189:9976:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:56;;;;;;;;;;;;;;;;;;;7437:25:1;;;7425:2;7410:18;6812:56:0;;;;;;;;8349:78;;;;;;;;;;-1:-1:-1;8420:5:0;;;;;;;;;;;;-1:-1:-1;;;8420:5:0;;;;8349:78;;;;;;;:::i;9191:216::-;;;;;;;;;;-1:-1:-1;9191:216:0;;;;;:::i;:::-;;:::i;:::-;;;4338:14:1;;4331:22;4313:41;;4301:2;4286:18;9191:216:0;4268:92:1;6330:25:0;;;;;;;;;;-1:-1:-1;6330:25:0;;;;;;;;;;;6228:29;;;;;;;;;;;;;;;;8611:86;;;;;;;;;;-1:-1:-1;8683:12:0;;8611:86;;10308:370;;;;;;;;;;-1:-1:-1;10308:370:0;;;;;:::i;:::-;;:::i;6193:28::-;;;;;;;;;;;;;;;;9041:142;;;;;;;;;;;;;:::i;8525:78::-;;;;;;;;;;-1:-1:-1;8525:78:0;;5554:1;8853:36:1;;8841:2;8826:18;8525:78:0;8808:87:1;6122:28:0;;;;;;;;;;;;;;;;5984:43;;;;;;;;;;-1:-1:-1;5984:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6711:40;;;;;;;;;;-1:-1:-1;6711:40:0;;;;;;;;;;;6298:25;;;;;;;;;;-1:-1:-1;6298:25:0;;;;;;;;;;;9415:122;;;;;;;;;;-1:-1:-1;9415:122:0;;;;;:::i;:::-;;:::i;8791:103::-;;;;;;;;;;-1:-1:-1;8791:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8874:18:0;8857:7;8874:18;;;:9;:18;;;;;;;8791:103;5034:148;;;;;;;;;;;;;:::i;:::-;;5632:55;;;;;;;;;;;;;;;;5694:52;;;;;;;;;;;;;;;;8705:78;;;;;;;;;;-1:-1:-1;8757:7:0;4699:6;-1:-1:-1;;;;;4699:6:0;8705:78;;;-1:-1:-1;;;;;3238:32:1;;;3220:51;;3208:2;3193:18;8705:78:0;3175:102:1;14648:200:0;;;;;;;;;;-1:-1:-1;14648:200:0;;;;;:::i;:::-;;:::i;6034:47::-;;;;;;;;;;-1:-1:-1;6034:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6157:27;;;;;;;;;;;;;;;;4634:79;;;;;;;;;;-1:-1:-1;4672:7:0;4699:6;-1:-1:-1;;;;;4699:6:0;4634:79;;8435:82;;;;;;;;;;-1:-1:-1;8508:7:0;;;;;;;;;;;;-1:-1:-1;;;8508:7:0;;;;8435:82;;6531:19;;;;;;;;;;-1:-1:-1;6531:19:0;;;;-1:-1:-1;;;;;6531:19:0;;;9806:156;;;;;;;;;;-1:-1:-1;9806:156:0;;;;;:::i;:::-;;:::i;4806:93::-;;;;;;;;;;-1:-1:-1;4806:93:0;;;;;:::i;:::-;-1:-1:-1;;;;;4881:10:0;4857:4;4881:10;;;:5;:10;;;;;;;;;4806:93;14384:256;;;;;;;;;;-1:-1:-1;14384:256:0;;;;;:::i;:::-;;:::i;6604:25::-;;;;;;;;;;;;;;;;12868:77;;;;;;;;;;;;;:::i;6758:45::-;;;;;;;;;;-1:-1:-1;6758:45:0;;;;;;;;;;;8902:131;;;;;;;;;;-1:-1:-1;8902:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;9003:19:0;;;8986:7;9003:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8902:131;6266:25;;;;;;;;;;-1:-1:-1;6266:25:0;;;;;;;;14856:306;;;;;;;;;;-1:-1:-1;14856:306:0;;;;;:::i;:::-;;:::i;6557:38::-;;;;;;;;;;-1:-1:-1;6557:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6091:24;;;;;;;;;;;;;;;;6501:23;;;;;;;;;;-1:-1:-1;6501:23:0;;;;-1:-1:-1;;;;;6501:23:0;;;6638:30;;;;;;;;;;-1:-1:-1;6638:30:0;;;;;;;;9191:216;9295:10;9266:4;9283:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9283:32:0;;;;;;;;;;:41;;;9340:37;9266:4;;9283:32;;9340:37;;;;9318:6;7437:25:1;;7425:2;7410:18;;7392:76;9340:37:0;;;;;;;;-1:-1:-1;9395:4:0;9191:216;;;;;:::o;10308:370::-;-1:-1:-1;;;;;10429:19:0;;10408:4;10429:19;;;:11;:19;;;;;;;;10449:10;10429:31;;;;;;;;-1:-1:-1;;10429:52:0;10425:188;;10532:69;;;;;;;;;;;-1:-1:-1;;;10532:69:0;;;;;;;;-1:-1:-1;;;;;10532:19:0;;-1:-1:-1;10532:19:0;;;:11;:19;;;;;10552:10;10532:31;;;;;;;;;;:69;;10568:6;;10532:35;:69::i;:::-;-1:-1:-1;;;;;10498:19:0;;;;;;:11;:19;;;;;;;;10518:10;10498:31;;;;;;;:103;10425:188;10630:40;10644:6;10652:9;10663:6;10630:13;:40::i;:::-;10623:47;;10308:370;;;;;;:::o;9041:142::-;8874:9;:18;;;;5387:42;9094:7;8874:18;;;;;9121:12;;9094:7;;9121:54;;8874:18;;9121:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;9114:61;;9041:142;:::o;9415:122::-;9470:4;9494:35;9502:7;-1:-1:-1;;9494:7:0;:35::i;5034:148::-;4947:6;;-1:-1:-1;;;;;4947:6:0;4088:10;4947:22;4939:67;;;;-1:-1:-1;;;4939:67:0;;;;;;;:::i;:::-;;;;;;;;;5141:1:::1;5125:6:::0;;5104:40:::1;::::0;-1:-1:-1;;;;;5125:6:0;;::::1;::::0;5104:40:::1;::::0;5141:1;;5104:40:::1;5172:1;5155:19:::0;;-1:-1:-1;;;;;;5155:19:0::1;::::0;;5034:148::o;14648:200::-;4947:6;;-1:-1:-1;;;;;4947:6:0;4088:10;4947:22;4939:67;;;;-1:-1:-1;;;4939:67:0;;;;;;;:::i;:::-;14744:21:::1;14784:10;14776:64;14836:3;14805:28;14817:16:::0;14744:21;14805:28:::1;:::i;:::-;:34;;;;:::i;:::-;14776:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14713:135;14648:200:::0;:::o;9806:156::-;9886:4;9910:44;9924:10;9936:9;9947:6;9910:13;:44::i;14384:256::-;14470:12;4947:6;;-1:-1:-1;;;;;4947:6:0;4088:10;4947:22;4939:67;;;;-1:-1:-1;;;4939:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14503:29:0;::::1;14527:4;14503:29;;14495:70;;;::::0;-1:-1:-1;;;14495:70:0;;6084:2:1;14495:70:0::1;::::0;::::1;6066:21:1::0;6123:2;6103:18;;;6096:30;6162;6142:18;;;6135:58;6210:18;;14495:70:0::1;6056:178:1::0;14495:70:0::1;14583:49;::::0;-1:-1:-1;;;14583:49:0;;14613:10:::1;14583:49;::::0;::::1;3456:51:1::0;3523:18;;;3516:34;;;-1:-1:-1;;;;;14583:29:0;::::1;::::0;::::1;::::0;3429:18:1;;14583:49:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12868:77::-:0;4947:6;;-1:-1:-1;;;;;4947:6:0;4088:10;4947:22;4939:67;;;;-1:-1:-1;;;4939:67:0;;;;;;;:::i;:::-;12919:11:::1;:18:::0;;-1:-1:-1;;12919:18:0::1;12933:4;12919:18;::::0;;12868:77::o;14856:306::-;4765:10;4857:4;4881:10;;;:5;:10;;;;;;;;4749:38;;;;-1:-1:-1;;;4749:38:0;;5750:2:1;4749:38:0;;;5732:21:1;5789:1;5769:18;;;5762:29;-1:-1:-1;;;5807:18:1;;;5800:36;5853:18;;4749:38:0;5722:155:1;4749:38:0;14970:5:::1;:17:::0;;;14998:9:::1;:24:::0;;;15033:8:::1;:23:::0;;;15079:34:::1;15044:12:::0;15079:20:::1;14978:9:::0;15010:12;15079:9:::1;:20::i;:::-;:24:::0;::::1;:34::i;:::-;15067:9;:46:::0;;;15137:17:::1;::::0;15149:5;;15137:17:::1;:::i;:::-;15124:10;:30:::0;-1:-1:-1;;;;14856:306:0:o;455:179::-;513:7;;545:5;549:1;545;:5;:::i;:::-;533:17;;574:1;569;:6;;561:46;;;;-1:-1:-1;;;561:46:0;;5394:2:1;561:46:0;;;5376:21:1;5433:2;5413:18;;;5406:30;5472:29;5452:18;;;5445:57;5519:18;;561:46:0;5366:177:1;786:190:0;872:7;908:12;900:6;;;;892:29;;;;-1:-1:-1;;;892:29:0;;;;;;;;:::i;:::-;-1:-1:-1;932:9:0;944:5;948:1;944;:5;:::i;:::-;932:17;786:190;-1:-1:-1;;;;;786:190:0:o;10686:1004::-;10799:16;;10778:4;;10799:16;;;;;10795:73;;;10825:41;10840:6;10848:9;10859:6;10825:14;:41::i;:::-;10818:48;;;;10795:73;-1:-1:-1;;;;;10882:13:0;;;;;;:5;:13;;;;;;;;10881:14;:35;;;;-1:-1:-1;;;;;;10900:16:0;;;;;;:5;:16;;;;;;;;10899:17;10881:35;10878:90;;;10940:11;;;;10932:24;;;;-1:-1:-1;;;10932:24:0;;7204:2:1;10932:24:0;;;7186:21:1;-1:-1:-1;7223:18:1;;;7216:29;7262:18;;10932:24:0;7176:110:1;10932:24:0;-1:-1:-1;;;;;10982:17:0;;;;;;:6;:17;;;;;;;;:38;;;;-1:-1:-1;11004:16:0;;;;;;;11003:17;10982:38;:63;;;;-1:-1:-1;11024:21:0;;;;;;;10982:63;:108;;;;-1:-1:-1;11077:13:0;;11067:4;11049:24;;;;:9;:24;;;;;;:41;;10982:108;10978:140;;;11093:23;:21;:23::i;:::-;9612:10;;:15;;;11132:32;;-1:-1:-1;;;;;;11147:17:0;;;;;;:6;:17;;;;;;;;11132:32;11128:122;;;-1:-1:-1;;;;;11189:17:0;;11209:1;11189:17;;;:9;:17;;;;;;11181:34;;;;-1:-1:-1;;;11181:34:0;;7204:2:1;11181:34:0;;;7186:21:1;-1:-1:-1;7223:18:1;;;7216:29;7262:18;;11181:34:0;7176:110:1;11181:34:0;11230:8;9694:12;9681:10;:25;9643:71;11230:8;11310:33;;;;;;;;;-1:-1:-1;11310:33:0;;;-1:-1:-1;;;;;11310:17:0;;;;:9;:17;;;;;;;;:33;;11332:6;;11310:21;:33::i;:::-;-1:-1:-1;;;;;11290:17:0;;;;;;:9;:17;;;;;;;;:53;;;;11436:11;:19;;;;;;;;11435:20;:47;;;;-1:-1:-1;;;;;;11460:22:0;;;;;;:11;:22;;;;;;;;11459:23;11435:47;:96;;11525:6;11435:96;;;11485:37;11496:6;11504:9;11515:6;11485:10;:37::i;:::-;-1:-1:-1;;;;;11565:20:0;;;;;;:9;:20;;;;;;11413:118;;-1:-1:-1;11565:37:0;;11413:118;11565:24;:37::i;:::-;-1:-1:-1;;;;;11542:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11620:40;;;;;;-1:-1:-1;;;;;;;;;;;11620:40:0;;;11648:11;7437:25:1;;7425:2;7410:18;;7392:76;11620:40:0;;;;;;;;-1:-1:-1;11678:4:0;;10686:1004;-1:-1:-1;;;;10686:1004:0:o;642:136::-;700:7;727:43;731:1;734;727:43;;;;;;;;;;;;;;;;;:3;:43::i;9970:330::-;10100:53;;;;;;;;;;;-1:-1:-1;;;10100:53:0;;;;;;;;-1:-1:-1;;;;;10100:17:0;;10063:4;10100:17;;;:9;:17;;;;;;;:53;;10122:6;;10100:21;:53::i;:::-;-1:-1:-1;;;;;10080:17:0;;;;;;;:9;:17;;;;;;:73;;;;10187:20;;;;;;;:32;;10212:6;10187:24;:32::i;:::-;-1:-1:-1;;;;;10164:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10235:35;;;;;;-1:-1:-1;;;;;;;;;;;10235:35:0;;;10263:6;7437:25:1;;7425:2;7410:18;;7392:76;10235:35:0;;;;;;;;-1:-1:-1;10288:4:0;9970:330;;;;;:::o;12953:1423::-;6973:16;:23;;-1:-1:-1;;6973:23:0;;;;;13062:4:::1;6973:23:::0;13044:24;;;:9:::1;:24;::::0;;;;;13150:8:::1;::::0;13136:9:::1;::::0;13044:24;;6973:23;13105:62:::1;::::0;13165:1:::1;::::0;13105:55:::1;::::0;13136:23:::1;::::0;:9;:13:::1;:23::i;:::-;13125:5;::::0;13105:26:::1;::::0;:15;;:19:::1;:26::i;:::-;:30:::0;::::1;:55::i;:62::-;13079:88:::0;-1:-1:-1;13178:20:0::1;13201:36;:15:::0;13079:88;13201:19:::1;:36::i;:::-;13274:16;::::0;;13288:1:::1;13274:16:::0;;;;;::::1;::::0;;13178:59;;-1:-1:-1;13250:21:0::1;::::0;13274:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13274:16:0::1;13250:40;;13319:4;13301;13306:1;13301:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13301:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13345:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13345:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;13301:7;;13345:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13335:4;13340:1;13335:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13335:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13371:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13371:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13443:12;;13371:6:::1;::::0;13486:4;;13513::::1;::::0;13533:15:::1;::::0;13371:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13676:5:0::1;::::0;13592:21:::1;::::0;-1:-1:-1;13572:17:0::1;::::0;-1:-1:-1;13648:41:0::1;::::0;13676:12:::1;::::0;13686:1:::1;13676:9;:12::i;:::-;13662:8;::::0;13648:9:::1;::::0;:23:::1;::::0;:13:::1;:23::i;:41::-;13626:63;;13702:26;13731:44;13773:1;13731:37;13756:11;13731:20;13745:5;;13731:9;:13;;:20;;;;:::i;:44::-;13702:73;;13786:26;13815:41;13844:11;13815:24;13829:9;;13815;:13;;:24;;;;:::i;:41::-;13907:14;::::0;13899:73:::1;::::0;13786:70;;-1:-1:-1;13878:16:0::1;::::0;-1:-1:-1;;;;;13907:14:0;;::::1;::::0;13962:5:::1;::::0;13786:70;;13878:16;13899:73;13878:16;13899:73;13786:70;13907:14;13962:5;13899:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;13997:5:0::1;::::0;-1:-1:-1;;14021:19:0;;;-1:-1:-1;14017:352:0::1;;14057:6;::::0;14232:8:::1;::::0;14057:232:::1;::::0;-1:-1:-1;;;14057:232:0;;14134:4:::1;14057:232;::::0;::::1;3902:34:1::0;3952:18;;;3945:34;;;-1:-1:-1;3995:18:1;;;3988:34;;;4038:18;;;4031:34;-1:-1:-1;;;;;14232:8:0;;;::::1;::::0;::::1;4081:19:1::0;;;4074:44;14259:15:0::1;4134:19:1::0;;;4127:35;14057:6:0;::::1;::::0;:22:::1;::::0;14088:18;;3836:19:1;;14057:232:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14309:48:0::1;::::0;;8632:25:1;;;8688:2;8673:18;;8666:34;;;14309:48:0::1;::::0;-1:-1:-1;8605:18:1;14309:48:0::1;;;;;;;14017:352;-1:-1:-1::0;;7019:16:0;:24;;-1:-1:-1;;7019:24:0;;;-1:-1:-1;;;;;;;12953:1423:0:o;11698:1162::-;-1:-1:-1;;;;;11876:17:0;;11787:7;11876:17;;;:6;:17;;;;;;11787:7;;;;11876:17;;:27;;;;-1:-1:-1;11897:6:0;;;;;;;11876:27;11872:108;;;11951:8;;11936:10;;:24;;:14;:24::i;:::-;11920:40;;11872:108;-1:-1:-1;;;;;11994:14:0;;;;;;:6;:14;;;;;;;;:24;;;;-1:-1:-1;12012:6:0;;;;11994:24;11990:104;;;12065:8;;12051:9;;:23;;:13;:23::i;:::-;12035:39;;11990:104;-1:-1:-1;;;;;12109:14:0;;;;;;:6;:14;;;;;;;;12108:15;:37;;;;-1:-1:-1;;;;;;12128:17:0;;;;;;:6;:17;;;;;;;;12127:18;12108:37;12104:225;;;12165:6;;;;;;;12161:157;;;12222:8;;12207:10;;:24;;:14;:24::i;:::-;12191:40;;12161:157;;;12301:1;12285:17;;12161:157;12358:1;12342:13;:17;:32;;;;;12373:1;12363:8;;:11;12342:32;12339:253;;;12405:29;12430:3;12405:20;12416:8;;12405:6;:10;;:20;;;;:::i;:29::-;12485:12;;-1:-1:-1;;;;;12485:12:0;12475:23;;;;:9;:23;;;;;;12390:44;;-1:-1:-1;12475:41:0;;12390:44;12475:27;:41::i;:::-;12459:12;;;-1:-1:-1;;;;;12459:12:0;;;12449:23;;;;:9;:23;;;;;;;;;:67;;;;12553:12;;12536:44;;7437:25:1;;;12553:12:0;;;;12536:44;;;;-1:-1:-1;;;;;;;;;;;12536:44:0;7410:18:1;12536:44:0;;;;;;;12339:253;12602:17;12622:34;12652:3;12622:25;:6;12633:13;12622:10;:25::i;:34::-;12714:4;12696:24;;;;:9;:24;;;;;;12602:54;;-1:-1:-1;12696:39:0;;12602:54;12696:28;:39::i;:::-;12687:4;12669:24;;;;:9;:24;;;;;;;:66;;;;12751:42;;-1:-1:-1;;;;;12751:42:0;;;-1:-1:-1;;;;;;;;;;;12751:42:0;;;12783:9;7437:25:1;;7425:2;7410:18;;7392:76;12751:42:0;;;;;;;;12813:39;12839:12;12813:21;:6;12824:9;12813:10;:21::i;:39::-;12806:46;11698:1162;-1:-1:-1;;;;;;;11698:1162:0:o;984:222::-;1042:7;1066:6;1062:23;;-1:-1:-1;1082:1:0;1075:8;;1062:23;1095:9;1107:5;1111:1;1107;:5;:::i;:::-;1095:17;-1:-1:-1;1140:1:0;1131:5;1135:1;1095:17;1131:5;:::i;:::-;:10;1123:56;;;;-1:-1:-1;;;1123:56:0;;6441:2:1;1123:56:0;;;6423:21:1;6480:2;6460:18;;;6453:30;6519:34;6499:18;;;6492:62;-1:-1:-1;;;6570:18:1;;;6563:31;6611:19;;1123:56:0;6413:223:1;1214:132:0;1272:7;1299:39;1303:1;1306;1299:39;;;;;;;;;;;;;;;;;1440:7;1475:12;1468:5;1460:28;;;;-1:-1:-1;;;1460:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1499:9:0;1511:5;1515:1;1511;:5;:::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:2;;;667:1;664;657:12;619:2;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;609:301;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:2;;;1077:1;1074;1067:12;1029:2;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;1019:352;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;1019:352::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1521:1;1518;1511:12;1473:2;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1463:228:1:o;1696:277::-;1763:6;1816:2;1804:9;1795:7;1791:23;1787:32;1784:2;;;1832:1;1829;1822:12;1784:2;1864:9;1858:16;1917:5;1910:13;1903:21;1896:5;1893:32;1883:2;;1939:1;1936;1929:12;1978:180;2037:6;2090:2;2078:9;2069:7;2065:23;2061:32;2058:2;;;2106:1;2103;2096:12;2058:2;-1:-1:-1;2129:23:1;;2048:110;-1:-1:-1;2048:110:1:o;2163:306::-;2251:6;2259;2267;2320:2;2308:9;2299:7;2295:23;2291:32;2288:2;;;2336:1;2333;2326:12;2288:2;2365:9;2359:16;2349:26;;2415:2;2404:9;2400:18;2394:25;2384:35;;2459:2;2448:9;2444:18;2438:25;2428:35;;2278:191;;;;;:::o;2474:385::-;2560:6;2568;2576;2584;2637:3;2625:9;2616:7;2612:23;2608:33;2605:2;;;2654:1;2651;2644:12;2605:2;-1:-1:-1;;2677:23:1;;;2747:2;2732:18;;2719:32;;-1:-1:-1;2798:2:1;2783:18;;2770:32;;2849:2;2834:18;2821:32;;-1:-1:-1;2595:264:1;-1:-1:-1;2595:264:1:o;4590:597::-;4702:4;4731:2;4760;4749:9;4742:21;4792:6;4786:13;4835:6;4830:2;4819:9;4815:18;4808:34;4860:1;4870:140;4884:6;4881:1;4878:13;4870:140;;;4979:14;;;4975:23;;4969:30;4945:17;;;4964:2;4941:26;4934:66;4899:10;;4870:140;;;5028:6;5025:1;5022:13;5019:2;;;5098:1;5093:2;5084:6;5073:9;5069:22;5065:31;5058:42;5019:2;-1:-1:-1;5171:2:1;5150:15;-1:-1:-1;;5146:29:1;5131:45;;;;5178:2;5127:54;;4711:476;-1:-1:-1;;;4711:476:1:o;6641:356::-;6843:2;6825:21;;;6862:18;;;6855:30;6921:34;6916:2;6901:18;;6894:62;6988:2;6973:18;;6815:182::o;7473:980::-;7735:4;7783:3;7772:9;7768:19;7814:6;7803:9;7796:25;7840:2;7878:6;7873:2;7862:9;7858:18;7851:34;7921:3;7916:2;7905:9;7901:18;7894:31;7945:6;7980;7974:13;8011:6;8003;7996:22;8049:3;8038:9;8034:19;8027:26;;8088:2;8080:6;8076:15;8062:29;;8109:1;8119:195;8133:6;8130:1;8127:13;8119:195;;;8198:13;;-1:-1:-1;;;;;8194:39:1;8182:52;;8289:15;;;;8254:12;;;;8230:1;8148:9;8119:195;;;-1:-1:-1;;;;;;;8370:32:1;;;;8365:2;8350:18;;8343:60;-1:-1:-1;;;8434:3:1;8419:19;8412:35;8331:3;7744:709;-1:-1:-1;;;7744:709:1:o;8900:128::-;8940:3;8971:1;8967:6;8964:1;8961:13;8958:2;;;8977:18;;:::i;:::-;-1:-1:-1;9013:9:1;;8948:80::o;9033:217::-;9073:1;9099;9089:2;;9143:10;9138:3;9134:20;9131:1;9124:31;9178:4;9175:1;9168:15;9206:4;9203:1;9196:15;9089:2;-1:-1:-1;9235:9:1;;9079:171::o;9255:168::-;9295:7;9361:1;9357;9353:6;9349:14;9346:1;9343:21;9338:1;9331:9;9324:17;9320:45;9317:2;;;9368:18;;:::i;:::-;-1:-1:-1;9408:9:1;;9307:116::o;9428:125::-;9468:4;9496:1;9493;9490:8;9487:2;;;9501:18;;:::i;:::-;-1:-1:-1;9538:9:1;;9477:76::o;9558:127::-;9619:10;9614:3;9610:20;9607:1;9600:31;9650:4;9647:1;9640:15;9674:4;9671:1;9664:15;9690:127;9751:10;9746:3;9742:20;9739:1;9732:31;9782:4;9779:1;9772:15;9806:4;9803:1;9796:15;9954:131;-1:-1:-1;;;;;10029:31:1;;10019:42;;10009:2;;10075:1;10072;10065:12;10009:2;9999:86;:::o

Swarm Source

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