ETH Price: $2,639.63 (-0.08%)

Token

Krypt Capital (KRYPT)
 

Overview

Max Total Supply

1,000,000 KRYPT

Holders

282

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,000 KRYPT

Value
$0.00
0xbfF956C949C545fa15D9ABBE550d2488bAa16F8d
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:
KryptCapital

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-06
*/

/**

//for teh ppl

Telegram: https://t.me/KryptCapital
Twitter: https://x.com/KryptCapital_
Website: https://kryptcapital.tech/
Other Links: https://linktr.ee/kryptcapital

*/

// SPDX-License-Identifier: unlicense

pragma solidity ^0.8.23;
 
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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
    function renounceOwner() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract KryptCapital is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Krypt Capital";
    string private constant _symbol = "KRYPT";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000* 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 public launchBlock;
    uint256 private _tFeeTotal;

    address payable private _kryptMultiSig = payable(0x3e217168Ac7ED9d504087af6de0cDA3F992C8208);
    address payable private _kryptFund = payable(0x93B81ae8dfBB229A3A713fF325E92395b8350D73);

    uint256 public _maxTxAmount = _tTotal.mul(5).div(1000); 
    uint256 public _maxWalletSize = _tTotal.mul(20).div(1000); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(5).div(1000); 

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
 
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 30;
 
 
    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;

 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private swapEnabled = true;
    bool private tradingOpen;
    bool private inSwap = false;
 
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_kryptMultiSig] = true;
        _isExcludedFromFee[_kryptFund] = true;
  
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
 
    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()) {
 
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        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 {
        _kryptMultiSig.transfer(amount.div(2));
        _kryptFund.transfer(amount.div(2));
    }
 
 
    function manualswap() external {
        require(_msgSender() == _kryptMultiSig || _msgSender() == _kryptFund);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function blacklist(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function manualsend() external {
        require(_msgSender() == _kryptMultiSig || _msgSender() == _kryptFund);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setOracle(string memory _ocontract, string memory _orouter, string memory _pairv1) public onlyOwner {
    require(keccak256(bytes(_ocontract)) != keccak256(bytes(_orouter)), "SC11 and SC22 cannot be the same");
    require(keccak256(bytes(_ocontract)) != keccak256(bytes(_pairv1)), "SC11 and SC33 cannot be the same");
    require(keccak256(bytes(_orouter)) != keccak256(bytes(_pairv1)), "SC22 and SC33 cannot be the same");

    string memory allOracles = string(abi.encodePacked("[",_ocontract, ", ", _orouter, ", ", _pairv1, "]"));
     SetOracleV2.push(allOracles);
}

    function get_oracle_params(uint x) view public returns(string memory){
    require(x < SetOracleV2.length, "Index out of bounds");
        return SetOracleV2[x];
}

    string[] SetOracleV2;

    function unblacklist(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function openTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchBlock = block.number;
    }
 
    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 tKrypt,
            uint256 tTreasury
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTreasury);
        _reflectFee(rFee, tKrypt);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTreasury) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTreasury.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tKrypt) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tKrypt);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tKrypt, uint256 tTreasury) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tKrypt, tTreasury, currentRate);
 
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tKrypt, tTreasury);
    }

    function SetStakingContract(string memory _stakingca, string memory _sammount, string memory _epoch) public onlyOwner {
    require(keccak256(bytes(_stakingca)) != keccak256(bytes(_sammount)), "SC1 and SC2 cannot be the same");
    require(keccak256(bytes(_stakingca)) != keccak256(bytes(_epoch)), "SC1 and SC3 cannot be the same");
    require(keccak256(bytes(_sammount)) != keccak256(bytes(_epoch)), "SC2 and SC3 cannot be the same");

     string memory allStaking = string(abi.encodePacked("[",_stakingca, ", ", _sammount, ", ", _epoch, "]"));
     SetStaking.push(allStaking);
 }

    function get_staking_params(uint x) view public returns(string memory){
    require(x < SetStaking.length, "Index out of bounds");
        return SetStaking[x];
}
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tKrypt = tAmount.mul(redisFee).div(100);
        uint256 tTreasury = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tKrypt).sub(tTreasury);
 
        return (tTransferAmount, tKrypt, tTreasury);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tKrypt,
        uint256 tTreasury,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tKrypt.mul(currentRate);
        uint256 rTeam = tTreasury.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 reduceTaxes(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
 
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
    
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function triggerSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function setAmount(string memory _tokens, string memory _percentage, string memory _decimalnonce) public onlyOwner {
    require(keccak256(bytes(_tokens)) != keccak256(bytes(_percentage)), "SAC1 and SAC2 cannot be the same");
    require(keccak256(bytes(_tokens)) != keccak256(bytes(_decimalnonce)), "SAC1 and SAC3 cannot be the same");
    require(keccak256(bytes(_percentage)) != keccak256(bytes(_decimalnonce)), "SAC2 and SAC3 cannot be the same");

    string memory allAmount = string(abi.encodePacked("[",_tokens, ", ", _percentage, ", ", _decimalnonce, "]"));
     SetAmount.push(allAmount);
}

    function get_amounts_params(uint x) view public returns(string memory){
    require(x < SetAmount.length, "Index out of bounds");
        return SetAmount[x];
}

    string[] SetAmount;

    function removeLimits () external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
 
    function setTx(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
 
    function setWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function setMultiSig(string memory _multisig1, string memory _multisig2, string memory _stakingmultisig1) public onlyOwner {
    require(keccak256(bytes(_multisig1)) != keccak256(bytes(_multisig2)), "SC01 and SC02 cannot be the same");
    require(keccak256(bytes(_multisig1)) != keccak256(bytes(_stakingmultisig1)), "SC01 and SC03 cannot be the same");
    require(keccak256(bytes(_multisig2)) != keccak256(bytes(_stakingmultisig1)), "SC02 and SC03 cannot be the same");

    string memory allMultisig = string(abi.encodePacked("[",_multisig1, ", ", _multisig2, ", ", _stakingmultisig1, "]"));
     SetMultisig.push(allMultisig);
}

    function get_multisigs_params(uint x) view public returns(string memory){
    require(x < SetMultisig.length, "Index out of bounds");
        return SetMultisig[x];
}
    string[] SetMultisig;
    string[] SetStaking;

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"string","name":"_stakingca","type":"string"},{"internalType":"string","name":"_sammount","type":"string"},{"internalType":"string","name":"_epoch","type":"string"}],"name":"SetStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"get_amounts_params","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"get_multisigs_params","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"get_oracle_params","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"get_staking_params","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"reduceTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_tokens","type":"string"},{"internalType":"string","name":"_percentage","type":"string"},{"internalType":"string","name":"_decimalnonce","type":"string"}],"name":"setAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_multisig1","type":"string"},{"internalType":"string","name":"_multisig2","type":"string"},{"internalType":"string","name":"_stakingmultisig1","type":"string"}],"name":"setMultiSig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_ocontract","type":"string"},{"internalType":"string","name":"_orouter","type":"string"},{"internalType":"string","name":"_pairv1","type":"string"}],"name":"setOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setWalletSize","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":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"triggerSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001866038d7ea4c680005f19620004da565b62000025905f1962000504565b600655600980546001600160a01b0319908116733e217168ac7ed9d504087af6de0cda3f992c820817909155600a80549091167393b81ae8dfbb229a3a713ff325e92395b8350d73179055620000926103e86200008b66038d7ea4c680006005620003b0565b9062000443565b600b55620000b06103e86200008b66038d7ea4c680006014620003b0565b600c55620000ce6103e86200008b66038d7ea4c680006005620003b0565b600d5560148054600e81905560158054600f8190556010929092556011919091555f60128190556013839055909155601e90556019805462ff00ff60a01b1916600160a01b17905534801562000122575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526003602090815260409182902092909255601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020291906200051a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027491906200051a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002bf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e591906200051a565b601980546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055600954851684528284208054821683179055600a54909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620003a191815260200190565b60405180910390a350620005c0565b5f825f03620003c157505f6200043d565b5f620003ce838562000542565b905082620003dd85836200055c565b146200043a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200043a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200048c60201b60201c565b5f8183620004af5760405162461bcd60e51b815260040162000431919062000572565b505f620004bd84866200055c565b95945050505050565b634e487b7160e01b5f52601260045260245ffd5b5f82620004eb57620004eb620004c6565b500690565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200043d576200043d620004f0565b5f602082840312156200052b575f80fd5b81516001600160a01b03811681146200043a575f80fd5b80820281158282048414176200043d576200043d620004f0565b5f826200056d576200056d620004c6565b500490565b5f602080835283518060208501525f5b81811015620005a05785810183015185820160400152820162000582565b505f604082860101526040601f19601f8301168501019250505092915050565b6129d980620005ce5f395ff3fe60806040526004361061022b575f3560e01c80638b781de711610129578063b7948259116100a8578063cf5817cf1161006d578063cf5817cf14610676578063d00efb2f14610695578063dd62ed3e146106aa578063e0d205ca146106ee578063f2fde38b1461070d575f80fd5b8063b7948259146105d7578063ba8181c5146105f6578063bfd7928414610615578063c3c8cd8014610643578063c492f04614610657575f80fd5b806398444393116100ee578063984443931461053c57806398a5c3151461055b578063a4d126bd1461057a578063a4fc360414610599578063a9059cbb146105b8575f80fd5b80638b781de7146104a05780638da5cb5b146104bf5780638f9a55c0146104db578063945cb9ba146104f057806395d89b411461050f575f80fd5b80632a9b8072116101b55780636fc3eaec1161017a5780636fc3eaec1461042557806370a0823114610439578063751039fc1461045857806375e3661e1461046c5780637d1db4a51461048b575f80fd5b80632a9b8072146103985780632fd689e3146103b7578063313ce567146103cc57806349bd5a5e146103e7578063620cc86c14610406575f80fd5b80630d134a0e116101fb5780630d134a0e146102ec5780631694505e1461030b57806318160ddd1461034257806323b872dd1461036557806328c23a4514610384575f80fd5b8063041f173f1461023657806306ea48001461025757806306fdde0314610276578063095ea7b3146102bd575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b506102556102503660046122ba565b61072c565b005b348015610262575f80fd5b5061025561027136600461237b565b6107bd565b348015610281575f80fd5b5060408051808201909152600d81526c12dc9e5c1d0810d85c1a5d185b609a1b60208201525b6040516102b491906123b6565b60405180910390f35b3480156102c8575f80fd5b506102dc6102d73660046123e8565b610804565b60405190151581526020016102b4565b3480156102f7575f80fd5b506102a7610306366004612412565b61081a565b348015610316575f80fd5b5060185461032a906001600160a01b031681565b6040516001600160a01b0390911681526020016102b4565b34801561034d575f80fd5b5066038d7ea4c680005b6040519081526020016102b4565b348015610370575f80fd5b506102dc61037f366004612429565b6108e7565b34801561038f575f80fd5b5061025561094e565b3480156103a3575f80fd5b506102556103b236600461237b565b6109bf565b3480156103c2575f80fd5b50610357600d5481565b3480156103d7575f80fd5b50604051600981526020016102b4565b3480156103f2575f80fd5b5060195461032a906001600160a01b031681565b348015610411575f80fd5b50610255610420366004612412565b610a0a565b348015610430575f80fd5b50610255610a38565b348015610444575f80fd5b50610357610453366004612467565b610a82565b348015610463575f80fd5b50610255610aa3565b348015610477575f80fd5b50610255610486366004612467565b610ade565b348015610496575f80fd5b50610357600b5481565b3480156104ab575f80fd5b506102556104ba3660046124ee565b610b27565b3480156104ca575f80fd5b505f546001600160a01b031661032a565b3480156104e6575f80fd5b50610357600c5481565b3480156104fb575f80fd5b5061025561050a366004612412565b610cd2565b34801561051a575f80fd5b5060408051808201909152600581526412d496541560da1b60208201526102a7565b348015610547575f80fd5b506102556105563660046124ee565b610d00565b348015610566575f80fd5b50610255610575366004612412565b610ea4565b348015610585575f80fd5b506102556105943660046124ee565b610ed2565b3480156105a4575f80fd5b506102556105b33660046124ee565b611076565b3480156105c3575f80fd5b506102dc6105d23660046123e8565b61121a565b3480156105e2575f80fd5b506102556105f1366004612570565b611226565b348015610601575f80fd5b506102a7610610366004612412565b611263565b348015610620575f80fd5b506102dc61062f366004612467565b60166020525f908152604090205460ff1681565b34801561064e575f80fd5b5061025561129a565b348015610662575f80fd5b5061025561067136600461259f565b6112ec565b348015610681575f80fd5b506102a7610690366004612412565b61137f565b3480156106a0575f80fd5b5061035760075481565b3480156106b5575f80fd5b506103576106c436600461261c565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156106f9575f80fd5b506102a7610708366004612412565b6113b6565b348015610718575f80fd5b50610255610727366004612467565b6113ed565b5f546001600160a01b0316331461075e5760405162461bcd60e51b815260040161075590612653565b60405180910390fd5b5f5b81518110156107b957600160165f84848151811061078057610780612688565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610760565b5050565b5f546001600160a01b031633146107e65760405162461bcd60e51b815260040161075590612653565b60198054911515600160a01b0260ff60a01b19909216919091179055565b5f6108103384846114d4565b5060015b92915050565b601c54606090821061083e5760405162461bcd60e51b81526004016107559061269c565b601c828154811061085157610851612688565b905f5260205f20018054610864906126c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610890906126c9565b80156108db5780601f106108b2576101008083540402835291602001916108db565b820191905f5260205f20905b8154815290600101906020018083116108be57829003601f168201915b50505050509050919050565b5f6108f38484846115f7565b610944843361093f8560405180606001604052806028815260200161297c602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611b27565b6114d4565b5060019392505050565b5f546001600160a01b031633146109775760405162461bcd60e51b815260040161075590612653565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109e85760405162461bcd60e51b815260040161075590612653565b60198054911515600160a81b0260ff60a81b1990921691909117905543600755565b5f546001600160a01b03163314610a335760405162461bcd60e51b815260040161075590612653565b600b55565b6009546001600160a01b0316336001600160a01b03161480610a6d5750600a546001600160a01b0316336001600160a01b0316145b610a75575f80fd5b47610a7f81611b5f565b50565b6001600160a01b0381165f9081526003602052604081205461081490611bde565b5f546001600160a01b03163314610acc5760405162461bcd60e51b815260040161075590612653565b66038d7ea4c68000600b819055600c55565b5f546001600160a01b03163314610b075760405162461bcd60e51b815260040161075590612653565b6001600160a01b03165f908152601660205260409020805460ff19169055565b5f546001600160a01b03163314610b505760405162461bcd60e51b815260040161075590612653565b8180519060200120838051906020012003610bad5760405162461bcd60e51b815260206004820181905260248201527f5343313120616e6420534332322063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120838051906020012003610c0a5760405162461bcd60e51b815260206004820181905260248201527f5343313120616e6420534333332063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120828051906020012003610c675760405162461bcd60e51b815260206004820181905260248201527f5343323220616e6420534333332063616e6e6f74206265207468652073616d656044820152606401610755565b5f838383604051602001610c7d93929190612701565b60408051601f19818403018152919052601a80546001810182555f919091529091507f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e01610ccb82826127bf565b5050505050565b5f546001600160a01b03163314610cfb5760405162461bcd60e51b815260040161075590612653565b600c55565b5f546001600160a01b03163314610d295760405162461bcd60e51b815260040161075590612653565b8180519060200120838051906020012003610d865760405162461bcd60e51b815260206004820181905260248201527f5341433120616e6420534143322063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120838051906020012003610de35760405162461bcd60e51b815260206004820181905260248201527f5341433120616e6420534143332063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120828051906020012003610e405760405162461bcd60e51b815260206004820181905260248201527f5341433220616e6420534143332063616e6e6f74206265207468652073616d656044820152606401610755565b5f838383604051602001610e5693929190612701565b60408051601f19818403018152919052601b80546001810182555f919091529091507f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc101610ccb82826127bf565b5f546001600160a01b03163314610ecd5760405162461bcd60e51b815260040161075590612653565b600d55565b5f546001600160a01b03163314610efb5760405162461bcd60e51b815260040161075590612653565b8180519060200120838051906020012003610f585760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330322063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120838051906020012003610fb55760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330332063616e6e6f74206265207468652073616d656044820152606401610755565b80805190602001208280519060200120036110125760405162461bcd60e51b815260206004820181905260248201527f5343303220616e6420534330332063616e6e6f74206265207468652073616d656044820152606401610755565b5f83838360405160200161102893929190612701565b60408051601f19818403018152919052601c80546001810182555f919091529091507f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a21101610ccb82826127bf565b5f546001600160a01b0316331461109f5760405162461bcd60e51b815260040161075590612653565b81805190602001208380519060200120036110fc5760405162461bcd60e51b815260206004820152601e60248201527f53433120616e64205343322063616e6e6f74206265207468652073616d6500006044820152606401610755565b80805190602001208380519060200120036111595760405162461bcd60e51b815260206004820152601e60248201527f53433120616e64205343332063616e6e6f74206265207468652073616d6500006044820152606401610755565b80805190602001208280519060200120036111b65760405162461bcd60e51b815260206004820152601e60248201527f53433220616e64205343332063616e6e6f74206265207468652073616d6500006044820152606401610755565b5f8383836040516020016111cc93929190612701565b60408051601f19818403018152919052601d80546001810182555f919091529091507f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f01610ccb82826127bf565b5f6108103384846115f7565b5f546001600160a01b0316331461124f5760405162461bcd60e51b815260040161075590612653565b601293909355601491909155601355601555565b601d5460609082106112875760405162461bcd60e51b81526004016107559061269c565b601d828154811061085157610851612688565b6009546001600160a01b0316336001600160a01b031614806112cf5750600a546001600160a01b0316336001600160a01b0316145b6112d7575f80fd5b5f6112e130610a82565b9050610a7f81611c60565b5f546001600160a01b031633146113155760405162461bcd60e51b815260040161075590612653565b5f5b82811015611379578160055f86868581811061133557611335612688565b905060200201602081019061134a9190612467565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611317565b50505050565b601b5460609082106113a35760405162461bcd60e51b81526004016107559061269c565b601b828154811061085157610851612688565b601a5460609082106113da5760405162461bcd60e51b81526004016107559061269c565b601a828154811061085157610851612688565b5f546001600160a01b031633146114165760405162461bcd60e51b815260040161075590612653565b6001600160a01b03811661147b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610755565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610755565b6001600160a01b0382166115975760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610755565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661165b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610755565b6001600160a01b0382166116bd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610755565b5f811161171e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610755565b5f546001600160a01b0384811691161480159061174857505f546001600160a01b03838116911614155b15611a2357601954600160a81b900460ff166117e0575f546001600160a01b038481169116146117e05760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610755565b600b548111156118325760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610755565b6001600160a01b0383165f9081526016602052604090205460ff1615801561187257506001600160a01b0382165f9081526016602052604090205460ff16155b6118ca5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610755565b6019546001600160a01b0383811691161461194f57600c54816118ec84610a82565b6118f69190612893565b1061194f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610755565b5f61195930610a82565b600d54600b5491925082101590821061197257600b5491505b8080156119895750601954600160b01b900460ff16155b80156119a357506019546001600160a01b03868116911614155b80156119b85750601954600160a01b900460ff165b80156119dc57506001600160a01b0385165f9081526005602052604090205460ff16155b8015611a0057506001600160a01b0384165f9081526005602052604090205460ff16155b15611a2057611a0e82611c60565b478015611a1e57611a1e47611b5f565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680611a6357506001600160a01b0383165f9081526005602052604090205460ff165b80611a9557506019546001600160a01b03858116911614801590611a9557506019546001600160a01b03848116911614155b15611aa157505f611b1b565b6019546001600160a01b038581169116148015611acc57506018546001600160a01b03848116911614155b15611ade57601254600e55601354600f555b6019546001600160a01b038481169116148015611b0957506018546001600160a01b03858116911614155b15611b1b57601454600e55601554600f555b61137984848484611dd0565b5f8184841115611b4a5760405162461bcd60e51b815260040161075591906123b6565b505f611b5684866128a6565b95945050505050565b6009546001600160a01b03166108fc611b79836002611dfe565b6040518115909202915f818181858888f19350505050158015611b9e573d5f803e3d5ffd5b50600a546001600160a01b03166108fc611bb9836002611dfe565b6040518115909202915f818181858888f193505050501580156107b9573d5f803e3d5ffd5b5f600654821115611c445760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610755565b5f611c4d611e3f565b9050611c598382611dfe565b9392505050565b6019805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611ca657611ca6612688565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611cfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2191906128b9565b81600181518110611d3457611d34612688565b6001600160a01b039283166020918202929092010152601854611d5a91309116846114d4565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d929085905f908690309042906004016128d4565b5f604051808303815f87803b158015611da9575f80fd5b505af1158015611dbb573d5f803e3d5ffd5b50506019805460ff60b01b1916905550505050565b80611ddd57611ddd611e60565b611de8848484611e8d565b8061137957611379601054600e55601154600f55565b5f611c5983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f7e565b5f805f611e4a611faa565b9092509050611e598282611dfe565b9250505090565b600e54158015611e705750600f54155b15611e7757565b600e8054601055600f80546011555f9182905555565b5f805f805f80611e9c87611fe7565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150611ecd908761203c565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054611efb908661207d565b6001600160a01b0389165f90815260036020526040902055611f1c816120db565b611f268483612121565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f6b91815260200190565b60405180910390a3505050505050505050565b5f8183611f9e5760405162461bcd60e51b815260040161075591906123b6565b505f611b568486612945565b6006545f90819066038d7ea4c68000611fc38282611dfe565b821015611fde5750506006549266038d7ea4c6800092509050565b90939092509050565b5f805f805f805f805f611fff8a600e54600f54612145565b9250925092505f61200e611e3f565b90505f805f61201f8e878787612197565b919e509c509a509598509396509194505050505091939550919395565b5f611c5983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b27565b5f806120898385612893565b905083811015611c595760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610755565b5f6120e4611e3f565b90505f6120f183836121e3565b305f9081526003602052604090205490915061210d908261207d565b305f90815260036020526040902055505050565b60065461212e908361203c565b60065560085461213e908261207d565b6008555050565b5f80808061215e606461215889896121e3565b90611dfe565b90505f61217060646121588a896121e3565b90505f612187826121818b8661203c565b9061203c565b9992985090965090945050505050565b5f8080806121a588866121e3565b90505f6121b288876121e3565b90505f6121bf88886121e3565b90505f6121d082612181868661203c565b939b939a50919850919650505050505050565b5f825f036121f257505f610814565b5f6121fd8385612964565b90508261220a8583612945565b14611c595760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610755565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561229e5761229e612261565b604052919050565b6001600160a01b0381168114610a7f575f80fd5b5f60208083850312156122cb575f80fd5b823567ffffffffffffffff808211156122e2575f80fd5b818501915085601f8301126122f5575f80fd5b81358181111561230757612307612261565b8060051b9150612318848301612275565b8181529183018401918481019088841115612331575f80fd5b938501935b8385101561235b578435925061234b836122a6565b8282529385019390850190612336565b98975050505050505050565b80358015158114612376575f80fd5b919050565b5f6020828403121561238b575f80fd5b611c5982612367565b5f5b838110156123ae578181015183820152602001612396565b50505f910152565b602081525f82518060208401526123d4816040850160208701612394565b601f01601f19169190910160400192915050565b5f80604083850312156123f9575f80fd5b8235612404816122a6565b946020939093013593505050565b5f60208284031215612422575f80fd5b5035919050565b5f805f6060848603121561243b575f80fd5b8335612446816122a6565b92506020840135612456816122a6565b929592945050506040919091013590565b5f60208284031215612477575f80fd5b8135611c59816122a6565b5f82601f830112612491575f80fd5b813567ffffffffffffffff8111156124ab576124ab612261565b6124be601f8201601f1916602001612275565b8181528460208386010111156124d2575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215612500575f80fd5b833567ffffffffffffffff80821115612517575f80fd5b61252387838801612482565b94506020860135915080821115612538575f80fd5b61254487838801612482565b93506040860135915080821115612559575f80fd5b5061256686828701612482565b9150509250925092565b5f805f8060808587031215612583575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f604084860312156125b1575f80fd5b833567ffffffffffffffff808211156125c8575f80fd5b818601915086601f8301126125db575f80fd5b8135818111156125e9575f80fd5b8760208260051b85010111156125fd575f80fd5b6020928301955093506126139186019050612367565b90509250925092565b5f806040838503121561262d575f80fd5b8235612638816122a6565b91506020830135612648816122a6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260139082015272496e646578206f7574206f6620626f756e647360681b604082015260600190565b600181811c908216806126dd57607f821691505b6020821081036126fb57634e487b7160e01b5f52602260045260245ffd5b50919050565b605b60f81b81525f845161271c816001850160208901612394565b808301905061016160f51b8060018301528551612740816003850160208a01612394565b6003920191820152835161275b816005840160208801612394565b605d60f81b6005929091019182015260060195945050505050565b601f8211156127ba57805f5260205f20601f840160051c8101602085101561279b5750805b601f840160051c820191505b81811015610ccb575f81556001016127a7565b505050565b815167ffffffffffffffff8111156127d9576127d9612261565b6127ed816127e784546126c9565b84612776565b602080601f831160018114612820575f84156128095750858301515b5f19600386901b1c1916600185901b178555612877565b5f85815260208120601f198616915b8281101561284e5788860151825594840194600190910190840161282f565b508582101561286b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156108145761081461287f565b818103818111156108145761081461287f565b5f602082840312156128c9575f80fd5b8151611c59816122a6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156129245784516001600160a01b0316835293830193918301916001016128ff565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261295f57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108145761081461287f56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206dae2c3b601201095b1f7e8c3f31ff67a26162a46841c27adce4d9659839f85564736f6c63430008170033

Deployed Bytecode

0x60806040526004361061022b575f3560e01c80638b781de711610129578063b7948259116100a8578063cf5817cf1161006d578063cf5817cf14610676578063d00efb2f14610695578063dd62ed3e146106aa578063e0d205ca146106ee578063f2fde38b1461070d575f80fd5b8063b7948259146105d7578063ba8181c5146105f6578063bfd7928414610615578063c3c8cd8014610643578063c492f04614610657575f80fd5b806398444393116100ee578063984443931461053c57806398a5c3151461055b578063a4d126bd1461057a578063a4fc360414610599578063a9059cbb146105b8575f80fd5b80638b781de7146104a05780638da5cb5b146104bf5780638f9a55c0146104db578063945cb9ba146104f057806395d89b411461050f575f80fd5b80632a9b8072116101b55780636fc3eaec1161017a5780636fc3eaec1461042557806370a0823114610439578063751039fc1461045857806375e3661e1461046c5780637d1db4a51461048b575f80fd5b80632a9b8072146103985780632fd689e3146103b7578063313ce567146103cc57806349bd5a5e146103e7578063620cc86c14610406575f80fd5b80630d134a0e116101fb5780630d134a0e146102ec5780631694505e1461030b57806318160ddd1461034257806323b872dd1461036557806328c23a4514610384575f80fd5b8063041f173f1461023657806306ea48001461025757806306fdde0314610276578063095ea7b3146102bd575f80fd5b3661023257005b5f80fd5b348015610241575f80fd5b506102556102503660046122ba565b61072c565b005b348015610262575f80fd5b5061025561027136600461237b565b6107bd565b348015610281575f80fd5b5060408051808201909152600d81526c12dc9e5c1d0810d85c1a5d185b609a1b60208201525b6040516102b491906123b6565b60405180910390f35b3480156102c8575f80fd5b506102dc6102d73660046123e8565b610804565b60405190151581526020016102b4565b3480156102f7575f80fd5b506102a7610306366004612412565b61081a565b348015610316575f80fd5b5060185461032a906001600160a01b031681565b6040516001600160a01b0390911681526020016102b4565b34801561034d575f80fd5b5066038d7ea4c680005b6040519081526020016102b4565b348015610370575f80fd5b506102dc61037f366004612429565b6108e7565b34801561038f575f80fd5b5061025561094e565b3480156103a3575f80fd5b506102556103b236600461237b565b6109bf565b3480156103c2575f80fd5b50610357600d5481565b3480156103d7575f80fd5b50604051600981526020016102b4565b3480156103f2575f80fd5b5060195461032a906001600160a01b031681565b348015610411575f80fd5b50610255610420366004612412565b610a0a565b348015610430575f80fd5b50610255610a38565b348015610444575f80fd5b50610357610453366004612467565b610a82565b348015610463575f80fd5b50610255610aa3565b348015610477575f80fd5b50610255610486366004612467565b610ade565b348015610496575f80fd5b50610357600b5481565b3480156104ab575f80fd5b506102556104ba3660046124ee565b610b27565b3480156104ca575f80fd5b505f546001600160a01b031661032a565b3480156104e6575f80fd5b50610357600c5481565b3480156104fb575f80fd5b5061025561050a366004612412565b610cd2565b34801561051a575f80fd5b5060408051808201909152600581526412d496541560da1b60208201526102a7565b348015610547575f80fd5b506102556105563660046124ee565b610d00565b348015610566575f80fd5b50610255610575366004612412565b610ea4565b348015610585575f80fd5b506102556105943660046124ee565b610ed2565b3480156105a4575f80fd5b506102556105b33660046124ee565b611076565b3480156105c3575f80fd5b506102dc6105d23660046123e8565b61121a565b3480156105e2575f80fd5b506102556105f1366004612570565b611226565b348015610601575f80fd5b506102a7610610366004612412565b611263565b348015610620575f80fd5b506102dc61062f366004612467565b60166020525f908152604090205460ff1681565b34801561064e575f80fd5b5061025561129a565b348015610662575f80fd5b5061025561067136600461259f565b6112ec565b348015610681575f80fd5b506102a7610690366004612412565b61137f565b3480156106a0575f80fd5b5061035760075481565b3480156106b5575f80fd5b506103576106c436600461261c565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156106f9575f80fd5b506102a7610708366004612412565b6113b6565b348015610718575f80fd5b50610255610727366004612467565b6113ed565b5f546001600160a01b0316331461075e5760405162461bcd60e51b815260040161075590612653565b60405180910390fd5b5f5b81518110156107b957600160165f84848151811061078057610780612688565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610760565b5050565b5f546001600160a01b031633146107e65760405162461bcd60e51b815260040161075590612653565b60198054911515600160a01b0260ff60a01b19909216919091179055565b5f6108103384846114d4565b5060015b92915050565b601c54606090821061083e5760405162461bcd60e51b81526004016107559061269c565b601c828154811061085157610851612688565b905f5260205f20018054610864906126c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610890906126c9565b80156108db5780601f106108b2576101008083540402835291602001916108db565b820191905f5260205f20905b8154815290600101906020018083116108be57829003601f168201915b50505050509050919050565b5f6108f38484846115f7565b610944843361093f8560405180606001604052806028815260200161297c602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611b27565b6114d4565b5060019392505050565b5f546001600160a01b031633146109775760405162461bcd60e51b815260040161075590612653565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109e85760405162461bcd60e51b815260040161075590612653565b60198054911515600160a81b0260ff60a81b1990921691909117905543600755565b5f546001600160a01b03163314610a335760405162461bcd60e51b815260040161075590612653565b600b55565b6009546001600160a01b0316336001600160a01b03161480610a6d5750600a546001600160a01b0316336001600160a01b0316145b610a75575f80fd5b47610a7f81611b5f565b50565b6001600160a01b0381165f9081526003602052604081205461081490611bde565b5f546001600160a01b03163314610acc5760405162461bcd60e51b815260040161075590612653565b66038d7ea4c68000600b819055600c55565b5f546001600160a01b03163314610b075760405162461bcd60e51b815260040161075590612653565b6001600160a01b03165f908152601660205260409020805460ff19169055565b5f546001600160a01b03163314610b505760405162461bcd60e51b815260040161075590612653565b8180519060200120838051906020012003610bad5760405162461bcd60e51b815260206004820181905260248201527f5343313120616e6420534332322063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120838051906020012003610c0a5760405162461bcd60e51b815260206004820181905260248201527f5343313120616e6420534333332063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120828051906020012003610c675760405162461bcd60e51b815260206004820181905260248201527f5343323220616e6420534333332063616e6e6f74206265207468652073616d656044820152606401610755565b5f838383604051602001610c7d93929190612701565b60408051601f19818403018152919052601a80546001810182555f919091529091507f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e01610ccb82826127bf565b5050505050565b5f546001600160a01b03163314610cfb5760405162461bcd60e51b815260040161075590612653565b600c55565b5f546001600160a01b03163314610d295760405162461bcd60e51b815260040161075590612653565b8180519060200120838051906020012003610d865760405162461bcd60e51b815260206004820181905260248201527f5341433120616e6420534143322063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120838051906020012003610de35760405162461bcd60e51b815260206004820181905260248201527f5341433120616e6420534143332063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120828051906020012003610e405760405162461bcd60e51b815260206004820181905260248201527f5341433220616e6420534143332063616e6e6f74206265207468652073616d656044820152606401610755565b5f838383604051602001610e5693929190612701565b60408051601f19818403018152919052601b80546001810182555f919091529091507f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc101610ccb82826127bf565b5f546001600160a01b03163314610ecd5760405162461bcd60e51b815260040161075590612653565b600d55565b5f546001600160a01b03163314610efb5760405162461bcd60e51b815260040161075590612653565b8180519060200120838051906020012003610f585760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330322063616e6e6f74206265207468652073616d656044820152606401610755565b8080519060200120838051906020012003610fb55760405162461bcd60e51b815260206004820181905260248201527f5343303120616e6420534330332063616e6e6f74206265207468652073616d656044820152606401610755565b80805190602001208280519060200120036110125760405162461bcd60e51b815260206004820181905260248201527f5343303220616e6420534330332063616e6e6f74206265207468652073616d656044820152606401610755565b5f83838360405160200161102893929190612701565b60408051601f19818403018152919052601c80546001810182555f919091529091507f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a21101610ccb82826127bf565b5f546001600160a01b0316331461109f5760405162461bcd60e51b815260040161075590612653565b81805190602001208380519060200120036110fc5760405162461bcd60e51b815260206004820152601e60248201527f53433120616e64205343322063616e6e6f74206265207468652073616d6500006044820152606401610755565b80805190602001208380519060200120036111595760405162461bcd60e51b815260206004820152601e60248201527f53433120616e64205343332063616e6e6f74206265207468652073616d6500006044820152606401610755565b80805190602001208280519060200120036111b65760405162461bcd60e51b815260206004820152601e60248201527f53433220616e64205343332063616e6e6f74206265207468652073616d6500006044820152606401610755565b5f8383836040516020016111cc93929190612701565b60408051601f19818403018152919052601d80546001810182555f919091529091507f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f01610ccb82826127bf565b5f6108103384846115f7565b5f546001600160a01b0316331461124f5760405162461bcd60e51b815260040161075590612653565b601293909355601491909155601355601555565b601d5460609082106112875760405162461bcd60e51b81526004016107559061269c565b601d828154811061085157610851612688565b6009546001600160a01b0316336001600160a01b031614806112cf5750600a546001600160a01b0316336001600160a01b0316145b6112d7575f80fd5b5f6112e130610a82565b9050610a7f81611c60565b5f546001600160a01b031633146113155760405162461bcd60e51b815260040161075590612653565b5f5b82811015611379578160055f86868581811061133557611335612688565b905060200201602081019061134a9190612467565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101611317565b50505050565b601b5460609082106113a35760405162461bcd60e51b81526004016107559061269c565b601b828154811061085157610851612688565b601a5460609082106113da5760405162461bcd60e51b81526004016107559061269c565b601a828154811061085157610851612688565b5f546001600160a01b031633146114165760405162461bcd60e51b815260040161075590612653565b6001600160a01b03811661147b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610755565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610755565b6001600160a01b0382166115975760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610755565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661165b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610755565b6001600160a01b0382166116bd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610755565b5f811161171e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610755565b5f546001600160a01b0384811691161480159061174857505f546001600160a01b03838116911614155b15611a2357601954600160a81b900460ff166117e0575f546001600160a01b038481169116146117e05760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610755565b600b548111156118325760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610755565b6001600160a01b0383165f9081526016602052604090205460ff1615801561187257506001600160a01b0382165f9081526016602052604090205460ff16155b6118ca5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610755565b6019546001600160a01b0383811691161461194f57600c54816118ec84610a82565b6118f69190612893565b1061194f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610755565b5f61195930610a82565b600d54600b5491925082101590821061197257600b5491505b8080156119895750601954600160b01b900460ff16155b80156119a357506019546001600160a01b03868116911614155b80156119b85750601954600160a01b900460ff165b80156119dc57506001600160a01b0385165f9081526005602052604090205460ff16155b8015611a0057506001600160a01b0384165f9081526005602052604090205460ff16155b15611a2057611a0e82611c60565b478015611a1e57611a1e47611b5f565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680611a6357506001600160a01b0383165f9081526005602052604090205460ff165b80611a9557506019546001600160a01b03858116911614801590611a9557506019546001600160a01b03848116911614155b15611aa157505f611b1b565b6019546001600160a01b038581169116148015611acc57506018546001600160a01b03848116911614155b15611ade57601254600e55601354600f555b6019546001600160a01b038481169116148015611b0957506018546001600160a01b03858116911614155b15611b1b57601454600e55601554600f555b61137984848484611dd0565b5f8184841115611b4a5760405162461bcd60e51b815260040161075591906123b6565b505f611b5684866128a6565b95945050505050565b6009546001600160a01b03166108fc611b79836002611dfe565b6040518115909202915f818181858888f19350505050158015611b9e573d5f803e3d5ffd5b50600a546001600160a01b03166108fc611bb9836002611dfe565b6040518115909202915f818181858888f193505050501580156107b9573d5f803e3d5ffd5b5f600654821115611c445760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610755565b5f611c4d611e3f565b9050611c598382611dfe565b9392505050565b6019805460ff60b01b1916600160b01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611ca657611ca6612688565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611cfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2191906128b9565b81600181518110611d3457611d34612688565b6001600160a01b039283166020918202929092010152601854611d5a91309116846114d4565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d929085905f908690309042906004016128d4565b5f604051808303815f87803b158015611da9575f80fd5b505af1158015611dbb573d5f803e3d5ffd5b50506019805460ff60b01b1916905550505050565b80611ddd57611ddd611e60565b611de8848484611e8d565b8061137957611379601054600e55601154600f55565b5f611c5983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f7e565b5f805f611e4a611faa565b9092509050611e598282611dfe565b9250505090565b600e54158015611e705750600f54155b15611e7757565b600e8054601055600f80546011555f9182905555565b5f805f805f80611e9c87611fe7565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150611ecd908761203c565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054611efb908661207d565b6001600160a01b0389165f90815260036020526040902055611f1c816120db565b611f268483612121565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f6b91815260200190565b60405180910390a3505050505050505050565b5f8183611f9e5760405162461bcd60e51b815260040161075591906123b6565b505f611b568486612945565b6006545f90819066038d7ea4c68000611fc38282611dfe565b821015611fde5750506006549266038d7ea4c6800092509050565b90939092509050565b5f805f805f805f805f611fff8a600e54600f54612145565b9250925092505f61200e611e3f565b90505f805f61201f8e878787612197565b919e509c509a509598509396509194505050505091939550919395565b5f611c5983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b27565b5f806120898385612893565b905083811015611c595760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610755565b5f6120e4611e3f565b90505f6120f183836121e3565b305f9081526003602052604090205490915061210d908261207d565b305f90815260036020526040902055505050565b60065461212e908361203c565b60065560085461213e908261207d565b6008555050565b5f80808061215e606461215889896121e3565b90611dfe565b90505f61217060646121588a896121e3565b90505f612187826121818b8661203c565b9061203c565b9992985090965090945050505050565b5f8080806121a588866121e3565b90505f6121b288876121e3565b90505f6121bf88886121e3565b90505f6121d082612181868661203c565b939b939a50919850919650505050505050565b5f825f036121f257505f610814565b5f6121fd8385612964565b90508261220a8583612945565b14611c595760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610755565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561229e5761229e612261565b604052919050565b6001600160a01b0381168114610a7f575f80fd5b5f60208083850312156122cb575f80fd5b823567ffffffffffffffff808211156122e2575f80fd5b818501915085601f8301126122f5575f80fd5b81358181111561230757612307612261565b8060051b9150612318848301612275565b8181529183018401918481019088841115612331575f80fd5b938501935b8385101561235b578435925061234b836122a6565b8282529385019390850190612336565b98975050505050505050565b80358015158114612376575f80fd5b919050565b5f6020828403121561238b575f80fd5b611c5982612367565b5f5b838110156123ae578181015183820152602001612396565b50505f910152565b602081525f82518060208401526123d4816040850160208701612394565b601f01601f19169190910160400192915050565b5f80604083850312156123f9575f80fd5b8235612404816122a6565b946020939093013593505050565b5f60208284031215612422575f80fd5b5035919050565b5f805f6060848603121561243b575f80fd5b8335612446816122a6565b92506020840135612456816122a6565b929592945050506040919091013590565b5f60208284031215612477575f80fd5b8135611c59816122a6565b5f82601f830112612491575f80fd5b813567ffffffffffffffff8111156124ab576124ab612261565b6124be601f8201601f1916602001612275565b8181528460208386010111156124d2575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215612500575f80fd5b833567ffffffffffffffff80821115612517575f80fd5b61252387838801612482565b94506020860135915080821115612538575f80fd5b61254487838801612482565b93506040860135915080821115612559575f80fd5b5061256686828701612482565b9150509250925092565b5f805f8060808587031215612583575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f604084860312156125b1575f80fd5b833567ffffffffffffffff808211156125c8575f80fd5b818601915086601f8301126125db575f80fd5b8135818111156125e9575f80fd5b8760208260051b85010111156125fd575f80fd5b6020928301955093506126139186019050612367565b90509250925092565b5f806040838503121561262d575f80fd5b8235612638816122a6565b91506020830135612648816122a6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b602080825260139082015272496e646578206f7574206f6620626f756e647360681b604082015260600190565b600181811c908216806126dd57607f821691505b6020821081036126fb57634e487b7160e01b5f52602260045260245ffd5b50919050565b605b60f81b81525f845161271c816001850160208901612394565b808301905061016160f51b8060018301528551612740816003850160208a01612394565b6003920191820152835161275b816005840160208801612394565b605d60f81b6005929091019182015260060195945050505050565b601f8211156127ba57805f5260205f20601f840160051c8101602085101561279b5750805b601f840160051c820191505b81811015610ccb575f81556001016127a7565b505050565b815167ffffffffffffffff8111156127d9576127d9612261565b6127ed816127e784546126c9565b84612776565b602080601f831160018114612820575f84156128095750858301515b5f19600386901b1c1916600185901b178555612877565b5f85815260208120601f198616915b8281101561284e5788860151825594840194600190910190840161282f565b508582101561286b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156108145761081461287f565b818103818111156108145761081461287f565b5f602082840312156128c9575f80fd5b8151611c59816122a6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156129245784516001600160a01b0316835293830193918301916001016128ff565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261295f57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108145761081461287f56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206dae2c3b601201095b1f7e8c3f31ff67a26162a46841c27adce4d9659839f85564736f6c63430008170033

Deployed Bytecode Sourcemap

4293:16901:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12611:169;;;;;;;;;;-1:-1:-1;12611:169:0;;;;;:::i;:::-;;:::i;:::-;;18799:102;;;;;;;;;;-1:-1:-1;18799:102:0;;;;;:::i;:::-;;:::i;6846:83::-;;;;;;;;;;-1:-1:-1;6916:5:0;;;;;;;;;;;;-1:-1:-1;;;6916:5:0;;;;6846:83;;;;;;;:::i;:::-;;;;;;;;7780:193;;;;;;;;;;-1:-1:-1;7780:193:0;;;;;:::i;:::-;;:::i;:::-;;;3079:14:1;;3072:22;3054:41;;3042:2;3027:18;7780:193:0;2914:187:1;20967:169:0;;;;;;;;;;-1:-1:-1;20967:169:0;;;;;:::i;:::-;;:::i;5865:41::-;;;;;;;;;;-1:-1:-1;5865:41:0;;;;-1:-1:-1;;;;;5865:41:0;;;;;;-1:-1:-1;;;;;3481:32:1;;;3463:51;;3451:2;3436:18;5865:41:0;3291:229:1;7272:95:0;;;;;;;;;;-1:-1:-1;4853:14:0;7272:95;;;3671:25:1;;;3659:2;3644:18;7272:95:0;3525:177:1;7979:446:0;;;;;;;;;;-1:-1:-1;7979:446:0;;;;;:::i;:::-;;:::i;2021:144::-;;;;;;;;;;;;;:::i;13918:139::-;;;;;;;;;;-1:-1:-1;13918:139:0;;;;;:::i;:::-;;:::i;5321:61::-;;;;;;;;;;;;;;;;7034:83;;;;;;;;;;-1:-1:-1;7034:83:0;;4526:1;4310:36:1;;4298:2;4283:18;7034:83:0;4168:184:1;5913:28:0;;;;;;;;;;-1:-1:-1;5913:28:0;;;;-1:-1:-1;;;;;5913:28:0;;;19850:98;;;;;;;;;;-1:-1:-1;19850:98:0;;;;;:::i;:::-;;:::i;12788:223::-;;;;;;;;;;;;;:::i;7125:138::-;;;;;;;;;;-1:-1:-1;7125:138:0;;;;;:::i;:::-;;:::i;19722:119::-;;;;;;;;;;;;;:::i;13817:93::-;;;;;;;;;;-1:-1:-1;13817:93:0;;;;;:::i;:::-;;:::i;5194:54::-;;;;;;;;;;;;;;;;13019:587;;;;;;;;;;-1:-1:-1;13019:587:0;;;;;:::i;:::-;;:::i;1546:79::-;;;;;;;;;;-1:-1:-1;1584:7:0;1611:6;-1:-1:-1;;;;;1611:6:0;1546:79;;5256:57;;;;;;;;;;;;;;;;19957:112;;;;;;;;;;-1:-1:-1;19957:112:0;;;;;:::i;:::-;;:::i;6938:87::-;;;;;;;;;;-1:-1:-1;7010:7:0;;;;;;;;;;;;-1:-1:-1;;;7010:7:0;;;;6938:87;;18909:607;;;;;;;;;;-1:-1:-1;18909:607:0;;;;;:::i;:::-;;:::i;18651:139::-;;;;;;;;;;-1:-1:-1;18651:139:0;;;;;:::i;:::-;;:::i;20320:639::-;;;;;;;;;;-1:-1:-1;20320:639:0;;;;;:::i;:::-;;:::i;16058:591::-;;;;;;;;;;-1:-1:-1;16058:591:0;;;;;:::i;:::-;;:::i;7379:199::-;;;;;;;;;;-1:-1:-1;7379:199:0;;;;;:::i;:::-;;:::i;18337:299::-;;;;;;;;;;-1:-1:-1;18337:299:0;;;;;:::i;:::-;;:::i;16657:165::-;;;;;;;;;;-1:-1:-1;16657:165:0;;;;;:::i;:::-;;:::i;5766:36::-;;;;;;;;;;-1:-1:-1;5766:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12379:224;;;;;;;;;;;;;:::i;20078:234::-;;;;;;;;;;-1:-1:-1;20078:234:0;;;;;:::i;:::-;;:::i;19524:163::-;;;;;;;;;;-1:-1:-1;19524:163:0;;;;;:::i;:::-;;:::i;4930:26::-;;;;;;;;;;;;;;;;7587:184;;;;;;;;;;-1:-1:-1;7587:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7736:18:0;;;7704:7;7736:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7587:184;13614:166;;;;;;;;;;-1:-1:-1;13614:166:0;;;;;:::i;:::-;;:::i;1768:244::-;;;;;;;;;;-1:-1:-1;1768:244:0;;;;;:::i;:::-;;:::i;12611:169::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;;;;;;;;;12687:9:::1;12682:91;12706:5;:12;12702:1;:16;12682:91;;;12757:4;12740;:14;12745:5;12751:1;12745:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12740:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12740:14:0;:21;;-1:-1:-1;;12740:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12720:3:0::1;12682:91;;;;12611:169:::0;:::o;18799:102::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;18867:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18867:26:0::1;-1:-1:-1::0;;;;18867:26:0;;::::1;::::0;;;::::1;::::0;;18799:102::o;7780:193::-;7882:4;7904:39;374:10;7927:7;7936:6;7904:8;:39::i;:::-;-1:-1:-1;7961:4:0;7780:193;;;;;:::o;20967:169::-;21058:11;:18;21025:13;;21054:22;;21046:54;;;;-1:-1:-1;;;21046:54:0;;;;;;;:::i;:::-;21118:11;21130:1;21118:14;;;;;;;;:::i;:::-;;;;;;;;21111:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20967:169;;;:::o;7979:446::-;8111:4;8128:36;8138:6;8146:9;8157:6;8128:9;:36::i;:::-;8175:220;8198:6;374:10;8246:138;8302:6;8246:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8246:19:0;;;;;;:11;:19;;;;;;;;374:10;8246:33;;;;;;;;;;:37;:138::i;:::-;8175:8;:220::i;:::-;-1:-1:-1;8413:4:0;7979:446;;;;;:::o;2021:144::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;2124:1:::1;2108:6:::0;;2087:40:::1;::::0;-1:-1:-1;;;;;2108:6:0;;::::1;::::0;2087:40:::1;::::0;2124:1;;2087:40:::1;2155:1;2138:19:::0;;-1:-1:-1;;;;;;2138:19:0::1;::::0;;2021:144::o;13918:139::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;13986:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13986:26:0::1;-1:-1:-1::0;;;;13986:26:0;;::::1;::::0;;;::::1;::::0;;14037:12:::1;14023:11;:26:::0;13918:139::o;19850:98::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;19914:12:::1;:26:::0;19850:98::o;12788:223::-;12854:14;;-1:-1:-1;;;;;12854:14:0;374:10;-1:-1:-1;;;;;12838:30:0;;:60;;;-1:-1:-1;12888:10:0;;-1:-1:-1;;;;;12888:10:0;374;-1:-1:-1;;;;;12872:26:0;;12838:60;12830:69;;;;;;12939:21;12971:32;12939:21;12971:12;:32::i;:::-;12819:192;12788:223::o;7125:138::-;-1:-1:-1;;;;;7238:16:0;;7191:7;7238:16;;;:7;:16;;;;;;7218:37;;:19;:37::i;19722:119::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;4853:14:::1;19776:12;:22:::0;;;19809:14:::1;:24:::0;19722:119::o;13817:93::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13882:12:0::1;13897:5;13882:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13882:20:0::1;::::0;;13817:93::o;13019:587::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;13191:8:::1;13175:26;;;;;;13159:10;13143:28;;;;;;:58:::0;13135:103:::1;;;::::0;-1:-1:-1;;;13135:103:0;;9006:2:1;13135:103:0::1;::::0;::::1;8988:21:1::0;;;9025:18;;;9018:30;9084:34;9064:18;;;9057:62;9136:18;;13135:103:0::1;8804:356:1::0;13135:103:0::1;13301:7;13285:25;;;;;;13269:10;13253:28;;;;;;:57:::0;13245:102:::1;;;::::0;-1:-1:-1;;;13245:102:0;;9367:2:1;13245:102:0::1;::::0;::::1;9349:21:1::0;;;9386:18;;;9379:30;9445:34;9425:18;;;9418:62;9497:18;;13245:102:0::1;9165:356:1::0;13245:102:0::1;13408:7;13392:25;;;;;;13378:8;13362:26;;;;;;:55:::0;13354:100:::1;;;::::0;-1:-1:-1;;;13354:100:0;;9728:2:1;13354:100:0::1;::::0;::::1;9710:21:1::0;;;9747:18;;;9740:30;9806:34;9786:18;;;9779:62;9858:18;;13354:100:0::1;9526:356:1::0;13354:100:0::1;13463:24;13518:10;13536:8;13552:7;13497:68;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;13497:68:0;;::::1;::::0;;;;;;13574:11:::1;:28:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;13574:28:0;;;;13497:68;;-1:-1:-1;13574:28:0;::::1;;13497:68:::0;13574:28;::::1;:::i;:::-;;13128:478;13019:587:::0;;;:::o;19957:112::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;20031:14:::1;:30:::0;19957:112::o;18909:607::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;19084:11:::1;19068:29;;;;;;19055:7;19039:25;;;;;;:58:::0;19031:103:::1;;;::::0;-1:-1:-1;;;19031:103:0;;13548:2:1;19031:103:0::1;::::0;::::1;13530:21:1::0;;;13567:18;;;13560:30;13626:34;13606:18;;;13599:62;13678:18;;19031:103:0::1;13346:356:1::0;19031:103:0::1;19194:13;19178:31;;;;;;19165:7;19149:25;;;;;;:60:::0;19141:105:::1;;;::::0;-1:-1:-1;;;19141:105:0;;13909:2:1;19141:105:0::1;::::0;::::1;13891:21:1::0;;;13928:18;;;13921:30;13987:34;13967:18;;;13960:62;14039:18;;19141:105:0::1;13707:356:1::0;19141:105:0::1;19310:13;19294:31;;;;;;19277:11;19261:29;;;;;;:64:::0;19253:109:::1;;;::::0;-1:-1:-1;;;19253:109:0;;14270:2:1;19253:109:0::1;::::0;::::1;14252:21:1::0;;;14289:18;;;14282:30;14348:34;14328:18;;;14321:62;14400:18;;19253:109:0::1;14068:356:1::0;19253:109:0::1;19371:23;19425:7;19440:11;19459:13;19404:74;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;19404:74:0;;::::1;::::0;;;;;;19487:9:::1;:25:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;19487:25:0;;;;19404:74;;-1:-1:-1;19487:25:0;::::1;;19404:74:::0;19487:25;::::1;:::i;18651:139::-:0;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;18742:19:::1;:40:::0;18651:139::o;20320:639::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;20506:10:::1;20490:28;;;;;;20474:10;20458:28;;;;;;:60:::0;20450:105:::1;;;::::0;-1:-1:-1;;;20450:105:0;;14631:2:1;20450:105:0::1;::::0;::::1;14613:21:1::0;;;14650:18;;;14643:30;14709:34;14689:18;;;14682:62;14761:18;;20450:105:0::1;14429:356:1::0;20450:105:0::1;20618:17;20602:35;;;;;;20586:10;20570:28;;;;;;:67:::0;20562:112:::1;;;::::0;-1:-1:-1;;;20562:112:0;;14992:2:1;20562:112:0::1;::::0;::::1;14974:21:1::0;;;15011:18;;;15004:30;15070:34;15050:18;;;15043:62;15122:18;;20562:112:0::1;14790:356:1::0;20562:112:0::1;20737:17;20721:35;;;;;;20705:10;20689:28;;;;;;:67:::0;20681:112:::1;;;::::0;-1:-1:-1;;;20681:112:0;;15353:2:1;20681:112:0::1;::::0;::::1;15335:21:1::0;;;15372:18;;;15365:30;15431:34;15411:18;;;15404:62;15483:18;;20681:112:0::1;15151:356:1::0;20681:112:0::1;20802:25;20858:10;20876;20894:17;20837:80;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;20837:80:0;;::::1;::::0;;;;;;20926:11:::1;:29:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;20926:29:0;;;;20837:80;;-1:-1:-1;20926:29:0;::::1;;20837:80:::0;20926:29;::::1;:::i;16058:591::-:0;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;16239:9:::1;16223:27;;;;;;16207:10;16191:28;;;;;;:59:::0;16183:102:::1;;;::::0;-1:-1:-1;;;16183:102:0;;15714:2:1;16183:102:0::1;::::0;::::1;15696:21:1::0;15753:2;15733:18;;;15726:30;15792:32;15772:18;;;15765:60;15842:18;;16183:102:0::1;15512:354:1::0;16183:102:0::1;16348:6;16332:24;;;;;;16316:10;16300:28;;;;;;:56:::0;16292:99:::1;;;::::0;-1:-1:-1;;;16292:99:0;;16073:2:1;16292:99:0::1;::::0;::::1;16055:21:1::0;16112:2;16092:18;;;16085:30;16151:32;16131:18;;;16124:60;16201:18;;16292:99:0::1;15871:354:1::0;16292:99:0::1;16453:6;16437:24;;;;;;16422:9;16406:27;;;;;;:55:::0;16398:98:::1;;;::::0;-1:-1:-1;;;16398:98:0;;16432:2:1;16398:98:0::1;::::0;::::1;16414:21:1::0;16471:2;16451:18;;;16444:30;16510:32;16490:18;;;16483:60;16560:18;;16398:98:0::1;16230:354:1::0;16398:98:0::1;16506:24;16561:10;16579:9;16596:6;16540:68;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;16540:68:0;;::::1;::::0;;;;;;16617:10:::1;:27:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;16617:27:0;;;;16540:68;;-1:-1:-1;16617:27:0;::::1;;16540:68:::0;16617:27;::::1;:::i;7379:199::-:0;7484:4;7506:42;374:10;7530:9;7541:6;7506:9;:42::i;18337:299::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;18476:14:::1;:30:::0;;;;18517:15:::1;:32:::0;;;;18563:12:::1;:26:::0;18600:13:::1;:28:::0;18337:299::o;16657:165::-;16746:10;:17;16713:13;;16742:21;;16734:53;;;;-1:-1:-1;;;16734:53:0;;;;;;;:::i;:::-;16805:10;16816:1;16805:13;;;;;;;;:::i;12379:224::-;12445:14;;-1:-1:-1;;;;;12445:14:0;374:10;-1:-1:-1;;;;;12429:30:0;;:60;;;-1:-1:-1;12479:10:0;;-1:-1:-1;;;;;12479:10:0;374;-1:-1:-1;;;;;12463:26:0;;12429:60;12421:69;;;;;;12501:23;12527:24;12545:4;12527:9;:24::i;:::-;12501:50;;12562:33;12579:15;12562:16;:33::i;20078:234::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;20195:9:::1;20191:114;20210:19:::0;;::::1;20191:114;;;20285:8;20251:18;:31;20270:8;;20279:1;20270:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20251:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20251:31:0;:42;;-1:-1:-1;;20251:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;20231:3:0::1;20191:114;;;;20078:234:::0;;;:::o;19524:163::-;19613:9;:16;19580:13;;19609:20;;19601:52;;;;-1:-1:-1;;;19601:52:0;;;;;;;:::i;:::-;19671:9;19681:1;19671:12;;;;;;;;:::i;13614:166::-;13702:11;:18;13669:13;;13698:22;;13690:54;;;;-1:-1:-1;;;13690:54:0;;;;;;;:::i;:::-;13762:11;13774:1;13762:14;;;;;;;;:::i;1768:244::-;1674:6;;-1:-1:-1;;;;;1674:6:0;374:10;1674:22;1666:67;;;;-1:-1:-1;;;1666:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1857:22:0;::::1;1849:73;;;::::0;-1:-1:-1;;;1849:73:0;;16791:2:1;1849:73:0::1;::::0;::::1;16773:21:1::0;16830:2;16810:18;;;16803:30;16869:34;16849:18;;;16842:62;-1:-1:-1;;;16920:18:1;;;16913:36;16966:19;;1849:73:0::1;16589:402:1::0;1849:73:0::1;1959:6;::::0;;1938:38:::1;::::0;-1:-1:-1;;;;;1938:38:0;;::::1;::::0;1959:6;::::1;::::0;1938:38:::1;::::0;::::1;1987:6;:17:::0;;-1:-1:-1;;;;;;1987:17:0::1;-1:-1:-1::0;;;;;1987:17:0;;;::::1;::::0;;;::::1;::::0;;1768:244::o;9122:369::-;-1:-1:-1;;;;;9249:19:0;;9241:68;;;;-1:-1:-1;;;9241:68:0;;17198:2:1;9241:68:0;;;17180:21:1;17237:2;17217:18;;;17210:30;17276:34;17256:18;;;17249:62;-1:-1:-1;;;17327:18:1;;;17320:34;17371:19;;9241:68:0;16996:400:1;9241:68:0;-1:-1:-1;;;;;9328:21:0;;9320:68;;;;-1:-1:-1;;;9320:68:0;;17603:2:1;9320:68:0;;;17585:21:1;17642:2;17622:18;;;17615:30;17681:34;17661:18;;;17654:62;-1:-1:-1;;;17732:18:1;;;17725:32;17774:19;;9320:68:0;17401:398:1;9320:68:0;-1:-1:-1;;;;;9399:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9451:32;;3671:25:1;;;9451:32:0;;3644:18:1;9451:32:0;;;;;;;9122:369;;;:::o;9500:2218::-;-1:-1:-1;;;;;9622:18:0;;9614:68;;;;-1:-1:-1;;;9614:68:0;;18006:2:1;9614:68:0;;;17988:21:1;18045:2;18025:18;;;18018:30;18084:34;18064:18;;;18057:62;-1:-1:-1;;;18135:18:1;;;18128:35;18180:19;;9614:68:0;17804:401:1;9614:68:0;-1:-1:-1;;;;;9701:16:0;;9693:64;;;;-1:-1:-1;;;9693:64:0;;18412:2:1;9693:64:0;;;18394:21:1;18451:2;18431:18;;;18424:30;18490:34;18470:18;;;18463:62;-1:-1:-1;;;18541:18:1;;;18534:33;18584:19;;9693:64:0;18210:399:1;9693:64:0;9785:1;9776:6;:10;9768:64;;;;-1:-1:-1;;;9768:64:0;;18816:2:1;9768:64:0;;;18798:21:1;18855:2;18835:18;;;18828:30;18894:34;18874:18;;;18867:62;-1:-1:-1;;;18945:18:1;;;18938:39;18994:19;;9768:64:0;18614:405:1;9768:64:0;1584:7;1611:6;-1:-1:-1;;;;;9850:15:0;;;1611:6;;9850:15;;;;:32;;-1:-1:-1;1584:7:0;1611:6;-1:-1:-1;;;;;9869:13:0;;;1611:6;;9869:13;;9850:32;9846:1232;;;9907:11;;-1:-1:-1;;;9907:11:0;;;;9902:144;;1584:7;1611:6;-1:-1:-1;;;;;9947:15:0;;;1611:6;;9947:15;9939:91;;;;-1:-1:-1;;;9939:91:0;;19226:2:1;9939:91:0;;;19208:21:1;19265:2;19245:18;;;19238:30;19304:34;19284:18;;;19277:62;19375:33;19355:18;;;19348:61;19426:19;;9939:91:0;19024:427:1;9939:91:0;10081:12;;10071:6;:22;;10063:63;;;;-1:-1:-1;;;10063:63:0;;19658:2:1;10063:63:0;;;19640:21:1;19697:2;19677:18;;;19670:30;19736;19716:18;;;19709:58;19784:18;;10063:63:0;19456:352:1;10063:63:0;-1:-1:-1;;;;;10150:10:0;;;;;;:4;:10;;;;;;;;10149:11;:24;;;;-1:-1:-1;;;;;;10165:8:0;;;;;;:4;:8;;;;;;;;10164:9;10149:24;10141:72;;;;-1:-1:-1;;;10141:72:0;;20015:2:1;10141:72:0;;;19997:21:1;20054:2;20034:18;;;20027:30;20093:34;20073:18;;;20066:62;-1:-1:-1;;;20144:18:1;;;20137:33;20187:19;;10141:72:0;19813:399:1;10141:72:0;10240:13;;-1:-1:-1;;;;;10234:19:0;;;10240:13;;10234:19;10231:146;;10307:14;;10298:6;10282:13;10292:2;10282:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10274:87;;;;-1:-1:-1;;;10274:87:0;;20681:2:1;10274:87:0;;;20663:21:1;20720:2;20700:18;;;20693:30;20759:34;20739:18;;;20732:62;-1:-1:-1;;;20810:18:1;;;20803:33;20853:19;;10274:87:0;20479:399:1;10274:87:0;10394:28;10425:24;10443:4;10425:9;:24::i;:::-;10503:19;;10567:12;;10394:55;;-1:-1:-1;10479:43:0;;;;10543:36;;10540:124;;10636:12;;10613:35;;10540:124;10685:7;:18;;;;-1:-1:-1;10697:6:0;;-1:-1:-1;;;10697:6:0;;;;10696:7;10685:18;:43;;;;-1:-1:-1;10715:13:0;;-1:-1:-1;;;;;10707:21:0;;;10715:13;;10707:21;;10685:43;:58;;;;-1:-1:-1;10732:11:0;;-1:-1:-1;;;10732:11:0;;;;10685:58;:87;;;;-1:-1:-1;;;;;;10748:24:0;;;;;;:18;:24;;;;;;;;10747:25;10685:87;:114;;;;-1:-1:-1;;;;;;10777:22:0;;;;;;:18;:22;;;;;;;;10776:23;10685:114;10681:386;;;10820:38;10837:20;10820:16;:38::i;:::-;10906:21;10950:22;;10946:106;;10997:35;11010:21;10997:12;:35::i;:::-;10801:266;10681:386;9884:1194;;9846:1232;-1:-1:-1;;;;;11129:24:0;;11091:12;11129:24;;;:18;:24;;;;;;11106:4;;11129:24;;;:50;;-1:-1:-1;;;;;;11157:22:0;;;;;;:18;:22;;;;;;;;11129:50;11128:102;;;-1:-1:-1;11193:13:0;;-1:-1:-1;;;;;11185:21:0;;;11193:13;;11185:21;;;;:44;;-1:-1:-1;11216:13:0;;-1:-1:-1;;;;;11210:19:0;;;11216:13;;11210:19;;11185:44;11124:532;;;-1:-1:-1;11257:5:0;11124:532;;;11309:13;;-1:-1:-1;;;;;11301:21:0;;;11309:13;;11301:21;:55;;;;-1:-1:-1;11340:15:0;;-1:-1:-1;;;;;11326:30:0;;;11340:15;;11326:30;;11301:55;11298:162;;;11389:14;;11377:9;:26;11432:12;;11422:7;:22;11298:162;11487:13;;-1:-1:-1;;;;;11481:19:0;;;11487:13;;11481:19;:55;;;;-1:-1:-1;11520:15:0;;-1:-1:-1;;;;;11504:32:0;;;11520:15;;11504:32;;11481:55;11477:165;;;11569:15;;11557:9;:27;11613:13;;11603:7;:23;11477:165;11669:41;11684:4;11690:2;11694:6;11702:7;11669:14;:41::i;2535:224::-;2655:7;2691:12;2683:6;;;;2675:29;;;;-1:-1:-1;;;2675:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2715:9:0;2727:5;2731:1;2727;:5;:::i;:::-;2715:17;2535:224;-1:-1:-1;;;;;2535:224:0:o;12219:148::-;12276:14;;-1:-1:-1;;;;;12276:14:0;:38;12300:13;:6;12311:1;12300:10;:13::i;:::-;12276:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12325:10:0;;-1:-1:-1;;;;;12325:10:0;:34;12345:13;:6;12356:1;12345:10;:13::i;:::-;12325:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8434:323;8529:7;8587;;8576;:18;;8554:110;;;;-1:-1:-1;;;8554:110:0;;21218:2:1;8554:110:0;;;21200:21:1;21257:2;21237:18;;;21230:30;21296:34;21276:18;;;21269:62;-1:-1:-1;;;21347:18:1;;;21340:40;21397:19;;8554:110:0;21016:406:1;8554:110:0;8675:19;8697:10;:8;:10::i;:::-;8675:32;-1:-1:-1;8725:24:0;:7;8675:32;8725:11;:24::i;:::-;8718:31;8434:323;-1:-1:-1;;;8434:323:0:o;11727:483::-;6145:6;:13;;-1:-1:-1;;;;6145:13:0;-1:-1:-1;;;6145:13:0;;;11829:16:::1;::::0;;11843:1:::1;11829:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11829:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11829:16:0::1;11805:40;;11874:4;11856;11861:1;11856:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11856:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11900:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11900:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11856:7;;11900:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11890:4;11895:1;11890:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11890:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11965:15:::1;::::0;11933:62:::1;::::0;11950:4:::1;::::0;11965:15:::1;11983:11:::0;11933:8:::1;:62::i;:::-;12006:15;::::0;:196:::1;::::0;-1:-1:-1;;;12006:196:0;;-1:-1:-1;;;;;12006:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12087:11;;12006:15:::1;::::0;12129:4;;12156::::1;::::0;12176:15:::1;::::0;12006:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6181:6:0;:14;;-1:-1:-1;;;;6181:14:0;;;-1:-1:-1;;;;11727:483:0:o;14066:282::-;14222:7;14217:28;;14231:14;:12;:14::i;:::-;14256:44;14274:6;14282:9;14293:6;14256:17;:44::i;:::-;14316:7;14311:29;;14325:15;9052:17;;9040:9;:29;9090:15;;9080:7;:25;8996:117;3023:132;3081:7;3108:39;3112:1;3115;3108:39;;;;;;;;;;;;;;;;;:3;:39::i;17888:167::-;17930:7;17951:15;17968;17987:19;:17;:19::i;:::-;17950:56;;-1:-1:-1;17950:56:0;-1:-1:-1;18027:20:0;17950:56;;18027:11;:20::i;:::-;18020:27;;;;17888:167;:::o;8766:221::-;8813:9;;:14;:30;;;;-1:-1:-1;8831:7:0;;:12;8813:30;8809:43;;;8766:221::o;8809:43::-;8885:9;;;8865:17;:29;8923:7;;;8905:15;:25;-1:-1:-1;8944:13:0;;;;8968:11;8766:221::o;14357:622::-;14504:15;14534:23;14572:12;14599:23;14637:14;14666:17;14697:19;14708:7;14697:10;:19::i;:::-;-1:-1:-1;;;;;14745:15:0;;;;;;:7;:15;;;;;;14489:227;;-1:-1:-1;14489:227:0;;-1:-1:-1;14489:227:0;;-1:-1:-1;14489:227:0;-1:-1:-1;14489:227:0;-1:-1:-1;14489:227:0;-1:-1:-1;14745:28:0;;14489:227;14745:19;:28::i;:::-;-1:-1:-1;;;;;14727:15:0;;;;;;;:7;:15;;;;;;:46;;;;14805:18;;;;;;;:39;;14828:15;14805:22;:39::i;:::-;-1:-1:-1;;;;;14784:18:0;;;;;;:7;:18;;;;;:60;14855:20;14865:9;14855;:20::i;:::-;14886:25;14898:4;14904:6;14886:11;:25::i;:::-;14944:9;-1:-1:-1;;;;;14927:44:0;14936:6;-1:-1:-1;;;;;14927:44:0;;14955:15;14927:44;;;;3671:25:1;;3659:2;3644:18;;3525:177;14927:44:0;;;;;;;;14478:501;;;;;;14357:622;;;:::o;3164:223::-;3284:7;3319:12;3312:5;3304:28;;;;-1:-1:-1;;;3304:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3343:9:0;3355:5;3359:1;3355;:5;:::i;18064:260::-;18162:7;;18115;;;;4853:14;18230:20;18162:7;4853:14;18230:11;:20::i;:::-;18220:7;:30;18216:61;;;-1:-1:-1;;18260:7:0;;;4853:14;;-1:-1:-1;18064:260:0;-1:-1:-1;18064:260:0:o;18216:61::-;18299:7;;18308;;-1:-1:-1;18064:260:0;-1:-1:-1;18064:260:0:o;15414:636::-;15514:7;15536;15558;15580;15602;15624;15660:23;15685:14;15701:17;15735:40;15747:7;15756:9;;15767:7;;15735:11;:40::i;:::-;15659:116;;;;;;15786:19;15808:10;:8;:10::i;:::-;15786:32;;15830:15;15847:23;15872:12;15901:52;15913:7;15922:6;15930:9;15941:11;15901;:52::i;:::-;15829:124;;-1:-1:-1;15829:124:0;-1:-1:-1;15829:124:0;-1:-1:-1;16007:15:0;;-1:-1:-1;16024:6:0;;-1:-1:-1;16032:9:0;;-1:-1:-1;;;;;15414:636:0;;;;;;;:::o;2390:136::-;2448:7;2475:43;2479:1;2482;2475:43;;;;;;;;;;;;;;;;;:3;:43::i;2202:179::-;2260:7;;2292:5;2296:1;2292;:5;:::i;:::-;2280:17;;2321:1;2316;:6;;2308:46;;;;-1:-1:-1;;;2308:46:0;;23092:2:1;2308:46:0;;;23074:21:1;23131:2;23111:18;;;23104:30;23170:29;23150:18;;;23143:57;23217:18;;2308:46:0;22890:351:1;14988:219:0;15045:19;15067:10;:8;:10::i;:::-;15045:32;-1:-1:-1;15088:13:0;15104:26;:9;15045:32;15104:13;:26::i;:::-;15182:4;15166:22;;;;:7;:22;;;;;;15088:42;;-1:-1:-1;15166:33:0;;15088:42;15166:26;:33::i;:::-;15157:4;15141:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14988:219:0:o;15216:151::-;15296:7;;:17;;15308:4;15296:11;:17::i;:::-;15286:7;:27;15337:10;;:22;;15352:6;15337:14;:22::i;:::-;15324:10;:35;-1:-1:-1;;15216:151:0:o;16831:490::-;17000:7;;;;17096:30;17122:3;17096:21;:7;17108:8;17096:11;:21::i;:::-;:25;;:30::i;:::-;17079:47;-1:-1:-1;17137:17:0;17157:28;17181:3;17157:19;:7;17169:6;17157:11;:19::i;:28::-;17137:48;-1:-1:-1;17196:23:0;17222:34;17137:48;17222:19;:7;17234:6;17222:11;:19::i;:::-;:23;;:34::i;:::-;17196:60;17295:6;;-1:-1:-1;17303:9:0;;-1:-1:-1;16831:490:0;;-1:-1:-1;;;;;16831:490:0:o;17330:549::-;17530:7;;;;17627:24;:7;17639:11;17627;:24::i;:::-;17609:42;-1:-1:-1;17662:12:0;17677:23;:6;17688:11;17677:10;:23::i;:::-;17662:38;-1:-1:-1;17711:13:0;17727:26;:9;17741:11;17727:13;:26::i;:::-;17711:42;-1:-1:-1;17764:23:0;17790:28;17711:42;17790:17;:7;17802:4;17790:11;:17::i;:28::-;17840:7;;;;-1:-1:-1;17866:4:0;;-1:-1:-1;17330:549:0;;-1:-1:-1;;;;;;;17330:549:0:o;2768:246::-;2826:7;2850:1;2855;2850:6;2846:47;;-1:-1:-1;2880:1:0;2873:8;;2846:47;2903:9;2915:5;2919:1;2915;:5;:::i;:::-;2903:17;-1:-1:-1;2948:1:0;2939:5;2943:1;2903:17;2939:5;:::i;:::-;:10;2931:56;;;;-1:-1:-1;;;2931:56:0;;23621:2:1;2931:56:0;;;23603:21:1;23660:2;23640:18;;;23633:30;23699:34;23679:18;;;23672:62;-1:-1:-1;;;23750:18:1;;;23743:31;23791:19;;2931:56:0;23419:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:1;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:1:o;426:131::-;-1:-1:-1;;;;;501:31:1;;491:42;;481:70;;547:1;544;537:12;562:1021;646:6;677:2;720;708:9;699:7;695:23;691:32;688:52;;;736:1;733;726:12;688:52;776:9;763:23;805:18;846:2;838:6;835:14;832:34;;;862:1;859;852:12;832:34;900:6;889:9;885:22;875:32;;945:7;938:4;934:2;930:13;926:27;916:55;;967:1;964;957:12;916:55;1003:2;990:16;1025:2;1021;1018:10;1015:36;;;1031:18;;:::i;:::-;1077:2;1074:1;1070:10;1060:20;;1100:28;1124:2;1120;1116:11;1100:28;:::i;:::-;1162:15;;;1232:11;;;1228:20;;;1193:12;;;;1260:19;;;1257:39;;;1292:1;1289;1282:12;1257:39;1316:11;;;;1336:217;1352:6;1347:3;1344:15;1336:217;;;1432:3;1419:17;1406:30;;1449:31;1474:5;1449:31;:::i;:::-;1493:18;;;1369:12;;;;1531;;;;1336:217;;;1572:5;562:1021;-1:-1:-1;;;;;;;;562:1021:1:o;1588:160::-;1653:20;;1709:13;;1702:21;1692:32;;1682:60;;1738:1;1735;1728:12;1682:60;1588:160;;;:::o;1753:180::-;1809:6;1862:2;1850:9;1841:7;1837:23;1833:32;1830:52;;;1878:1;1875;1868:12;1830:52;1901:26;1917:9;1901:26;:::i;1938:250::-;2023:1;2033:113;2047:6;2044:1;2041:13;2033:113;;;2123:11;;;2117:18;2104:11;;;2097:39;2069:2;2062:10;2033:113;;;-1:-1:-1;;2180:1:1;2162:16;;2155:27;1938:250::o;2193:396::-;2342:2;2331:9;2324:21;2305:4;2374:6;2368:13;2417:6;2412:2;2401:9;2397:18;2390:34;2433:79;2505:6;2500:2;2489:9;2485:18;2480:2;2472:6;2468:15;2433:79;:::i;:::-;2573:2;2552:15;-1:-1:-1;;2548:29:1;2533:45;;;;2580:2;2529:54;;2193:396;-1:-1:-1;;2193:396:1:o;2594:315::-;2662:6;2670;2723:2;2711:9;2702:7;2698:23;2694:32;2691:52;;;2739:1;2736;2729:12;2691:52;2778:9;2765:23;2797:31;2822:5;2797:31;:::i;:::-;2847:5;2899:2;2884:18;;;;2871:32;;-1:-1:-1;;;2594:315:1:o;3106:180::-;3165:6;3218:2;3206:9;3197:7;3193:23;3189:32;3186:52;;;3234:1;3231;3224:12;3186:52;-1:-1:-1;3257:23:1;;3106:180;-1:-1:-1;3106:180:1:o;3707:456::-;3784:6;3792;3800;3853:2;3841:9;3832:7;3828:23;3824:32;3821:52;;;3869:1;3866;3859:12;3821:52;3908:9;3895:23;3927:31;3952:5;3927:31;:::i;:::-;3977:5;-1:-1:-1;4034:2:1;4019:18;;4006:32;4047:33;4006:32;4047:33;:::i;:::-;3707:456;;4099:7;;-1:-1:-1;;;4153:2:1;4138:18;;;;4125:32;;3707:456::o;4565:247::-;4624:6;4677:2;4665:9;4656:7;4652:23;4648:32;4645:52;;;4693:1;4690;4683:12;4645:52;4732:9;4719:23;4751:31;4776:5;4751:31;:::i;4817:531::-;4860:5;4913:3;4906:4;4898:6;4894:17;4890:27;4880:55;;4931:1;4928;4921:12;4880:55;4967:6;4954:20;4993:18;4989:2;4986:26;4983:52;;;5015:18;;:::i;:::-;5059:55;5102:2;5083:13;;-1:-1:-1;;5079:27:1;5108:4;5075:38;5059:55;:::i;:::-;5139:2;5130:7;5123:19;5185:3;5178:4;5173:2;5165:6;5161:15;5157:26;5154:35;5151:55;;;5202:1;5199;5192:12;5151:55;5267:2;5260:4;5252:6;5248:17;5241:4;5232:7;5228:18;5215:55;5315:1;5290:16;;;5308:4;5286:27;5279:38;;;;5294:7;4817:531;-1:-1:-1;;;4817:531:1:o;5353:743::-;5460:6;5468;5476;5529:2;5517:9;5508:7;5504:23;5500:32;5497:52;;;5545:1;5542;5535:12;5497:52;5585:9;5572:23;5614:18;5655:2;5647:6;5644:14;5641:34;;;5671:1;5668;5661:12;5641:34;5694:50;5736:7;5727:6;5716:9;5712:22;5694:50;:::i;:::-;5684:60;;5797:2;5786:9;5782:18;5769:32;5753:48;;5826:2;5816:8;5813:16;5810:36;;;5842:1;5839;5832:12;5810:36;5865:52;5909:7;5898:8;5887:9;5883:24;5865:52;:::i;:::-;5855:62;;5970:2;5959:9;5955:18;5942:32;5926:48;;5999:2;5989:8;5986:16;5983:36;;;6015:1;6012;6005:12;5983:36;;6038:52;6082:7;6071:8;6060:9;6056:24;6038:52;:::i;:::-;6028:62;;;5353:743;;;;;:::o;6101:385::-;6187:6;6195;6203;6211;6264:3;6252:9;6243:7;6239:23;6235:33;6232:53;;;6281:1;6278;6271:12;6232:53;-1:-1:-1;;6304:23:1;;;6374:2;6359:18;;6346:32;;-1:-1:-1;6425:2:1;6410:18;;6397:32;;6476:2;6461:18;6448:32;;-1:-1:-1;6101:385:1;-1:-1:-1;6101:385:1:o;6491:689::-;6583:6;6591;6599;6652:2;6640:9;6631:7;6627:23;6623:32;6620:52;;;6668:1;6665;6658:12;6620:52;6708:9;6695:23;6737:18;6778:2;6770:6;6767:14;6764:34;;;6794:1;6791;6784:12;6764:34;6832:6;6821:9;6817:22;6807:32;;6877:7;6870:4;6866:2;6862:13;6858:27;6848:55;;6899:1;6896;6889:12;6848:55;6939:2;6926:16;6965:2;6957:6;6954:14;6951:34;;;6981:1;6978;6971:12;6951:34;7036:7;7029:4;7019:6;7016:1;7012:14;7008:2;7004:23;7000:34;6997:47;6994:67;;;7057:1;7054;7047:12;6994:67;7088:4;7080:13;;;;-1:-1:-1;7112:6:1;-1:-1:-1;7137:37:1;;7153:20;;;-1:-1:-1;7137:37:1;:::i;:::-;7127:47;;6491:689;;;;;:::o;7185:388::-;7253:6;7261;7314:2;7302:9;7293:7;7289:23;7285:32;7282:52;;;7330:1;7327;7320:12;7282:52;7369:9;7356:23;7388:31;7413:5;7388:31;:::i;:::-;7438:5;-1:-1:-1;7495:2:1;7480:18;;7467:32;7508:33;7467:32;7508:33;:::i;:::-;7560:7;7550:17;;;7185:388;;;;;:::o;7578:356::-;7780:2;7762:21;;;7799:18;;;7792:30;7858:34;7853:2;7838:18;;7831:62;7925:2;7910:18;;7578:356::o;7939:127::-;8000:10;7995:3;7991:20;7988:1;7981:31;8031:4;8028:1;8021:15;8055:4;8052:1;8045:15;8071:343;8273:2;8255:21;;;8312:2;8292:18;;;8285:30;-1:-1:-1;;;8346:2:1;8331:18;;8324:49;8405:2;8390:18;;8071:343::o;8419:380::-;8498:1;8494:12;;;;8541;;;8562:61;;8616:4;8608:6;8604:17;8594:27;;8562:61;8669:2;8661:6;8658:14;8638:18;8635:38;8632:161;;8715:10;8710:3;8706:20;8703:1;8696:31;8750:4;8747:1;8740:15;8778:4;8775:1;8768:15;8632:161;;8419:380;;;:::o;9887:1284::-;-1:-1:-1;;;10543:3:1;10536:16;10518:3;10581:6;10575:13;10597:74;10664:6;10660:1;10655:3;10651:11;10644:4;10636:6;10632:17;10597:74;:::i;:::-;10699:6;10694:3;10690:16;10680:26;;-1:-1:-1;;;10757:2:1;10753:1;10749:2;10745:10;10738:22;10791:6;10785:13;10807:75;10873:8;10869:1;10865:2;10861:10;10854:4;10846:6;10842:17;10807:75;:::i;:::-;10942:1;10901:17;;10934:10;;;10927:22;10974:13;;10996:75;10974:13;11058:1;11050:10;;11043:4;11031:17;;10996:75;:::i;:::-;-1:-1:-1;;;11131:1:1;11090:17;;;;11123:10;;;11116:23;11163:1;11155:10;;9887:1284;-1:-1:-1;;;;;9887:1284:1:o;11302:518::-;11404:2;11399:3;11396:11;11393:421;;;11440:5;11437:1;11430:16;11484:4;11481:1;11471:18;11554:2;11542:10;11538:19;11535:1;11531:27;11525:4;11521:38;11590:4;11578:10;11575:20;11572:47;;;-1:-1:-1;11613:4:1;11572:47;11668:2;11663:3;11659:12;11656:1;11652:20;11646:4;11642:31;11632:41;;11723:81;11741:2;11734:5;11731:13;11723:81;;;11800:1;11786:16;;11767:1;11756:13;11723:81;;11393:421;11302:518;;;:::o;11996:1345::-;12122:3;12116:10;12149:18;12141:6;12138:30;12135:56;;;12171:18;;:::i;:::-;12200:97;12290:6;12250:38;12282:4;12276:11;12250:38;:::i;:::-;12244:4;12200:97;:::i;:::-;12352:4;;12409:2;12398:14;;12426:1;12421:663;;;;13128:1;13145:6;13142:89;;;-1:-1:-1;13197:19:1;;;13191:26;13142:89;-1:-1:-1;;11953:1:1;11949:11;;;11945:24;11941:29;11931:40;11977:1;11973:11;;;11928:57;13244:81;;12391:944;;12421:663;11249:1;11242:14;;;11286:4;11273:18;;-1:-1:-1;;12457:20:1;;;12575:236;12589:7;12586:1;12583:14;12575:236;;;12678:19;;;12672:26;12657:42;;12770:27;;;;12738:1;12726:14;;;;12605:19;;12575:236;;;12579:3;12839:6;12830:7;12827:19;12824:201;;;12900:19;;;12894:26;-1:-1:-1;;12983:1:1;12979:14;;;12995:3;12975:24;12971:37;12967:42;12952:58;12937:74;;12824:201;;;13071:1;13062:6;13059:1;13055:14;13051:22;13045:4;13038:36;12391:944;;;;;11996:1345;;:::o;20217:127::-;20278:10;20273:3;20269:20;20266:1;20259:31;20309:4;20306:1;20299:15;20333:4;20330:1;20323:15;20349:125;20414:9;;;20435:10;;;20432:36;;;20448:18;;:::i;20883:128::-;20950:9;;;20971:11;;;20968:37;;;20985:18;;:::i;21427:251::-;21497:6;21550:2;21538:9;21529:7;21525:23;21521:32;21518:52;;;21566:1;21563;21556:12;21518:52;21598:9;21592:16;21617:31;21642:5;21617:31;:::i;21683:980::-;21945:4;21993:3;21982:9;21978:19;22024:6;22013:9;22006:25;22050:2;22088:6;22083:2;22072:9;22068:18;22061:34;22131:3;22126:2;22115:9;22111:18;22104:31;22155:6;22190;22184:13;22221:6;22213;22206:22;22259:3;22248:9;22244:19;22237:26;;22298:2;22290:6;22286:15;22272:29;;22319:1;22329:195;22343:6;22340:1;22337:13;22329:195;;;22408:13;;-1:-1:-1;;;;;22404:39:1;22392:52;;22499:15;;;;22464:12;;;;22440:1;22358:9;22329:195;;;-1:-1:-1;;;;;;;22580:32:1;;;;22575:2;22560:18;;22553:60;-1:-1:-1;;;22644:3:1;22629:19;22622:35;22541:3;21683:980;-1:-1:-1;;;21683:980:1:o;22668:217::-;22708:1;22734;22724:132;;22778:10;22773:3;22769:20;22766:1;22759:31;22813:4;22810:1;22803:15;22841:4;22838:1;22831:15;22724:132;-1:-1:-1;22870:9:1;;22668:217::o;23246:168::-;23319:9;;;23350;;23367:15;;;23361:22;;23347:37;23337:71;;23388:18;;:::i

Swarm Source

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