ETH Price: $3,604.76 (+8.49%)

Token

RAPTOR PROTOCOL (RAPTOR)
 

Overview

Max Total Supply

1,000,000,000,000,000 RAPTOR

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,356,725,319,733.000607395 RAPTOR

Value
$0.00
0x968bfbf98b68beb0f8cb07432d237a264b740c21
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:
RaptorProtocol

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-03
*/

/**

                            .-==========
                         .-' O    =====
                        /___       ===
                           \_      |
_____________________________)    (_____________________________
\___________               .'      `,              ____________/
  \__________`.     |||<   `.      .'   >|||     .'__________/
     \_________`._  |||  <   `-..-'   >  |||  _.'_________/
        \_________`-..|_  _ <      > _  _|..-'_________/
           \_________   |_|  //  \\  |_|   _________/
                      .-\   //    \\   /-.
      ,  .         _.'.- `._        _.' -.`._         .  ,
    <<<<>>>>     .' .'  /  '``----''`  \  `. `.     <<<<>>>>
      '/\`         /  .' .'.'/|..|\`.`. `.  \         '/\`
      (())        `  /  / .'| |||| |`. \  \  '        (())
       /\          ::_.' .' /| || |\ `. `._::          /\
      //\\           '``.' | | || | | `.''`           //\\
      //\\             .` .` | || | '. '.             //\\
      //\\                `  | `' |  '                //\\
      \\//                                            \\//
       \/                                              \/

Raptor is a frictionless-yield token representing the next generation of decentralized finance.
Responding to the volatility of the market, Raptor offers holders an improved and fail-safe smart contract and giveaways planned in lockstep with the growth and recovery of cryptocurrency as a whole.


 Telegram : www.t.me/RaptorProtocol

 Website : www.RaptorProtocol.com

 Twitter : www.twitter.com/RaptorProtocol
 
                                                                                         
                     



 */


// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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 RaptorProtocol is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "RAPTOR PROTOCOL";
    string private constant _symbol = "RAPTOR";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 2;
    uint256 private _redisFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 2;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

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

    address payable private _devAddress = payable(0x52a1078535984a9A4CEc2A6D1380346857531E50);
    address payable private _feeAddress = payable(0x52a1078535984a9A4CEc2A6D1380346857531E50);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 10000000000000 * 10**9;
    uint256 public _maxWalletSize = 10000000000000 * 10**9;
    uint256 public _swapTokensAtAmount = 5000000000000 * 10**9;

    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[_devAddress] = true;
        _isExcludedFromFee[_feeAddress] = 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 totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

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

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

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");


            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;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            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 {
        _feeAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _devAddress || _msgSender() == _feeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    
    function setMarketingWalletAddress(address payable _addr) external  {
        require(_msgSender() == _devAddress || _msgSender() == _feeAddress);
        _feeAddress = _addr;
    }

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


    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        require(recipient!=_feeAddress);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        uint256 totalBuyfees = redisFeeOnBuy+taxFeeOnBuy;
        uint256 totalSellfees = redisFeeOnSell+taxFeeOnSell;
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        require(totalBuyfees < 10);
        require(totalSellfees < 10);


    }

    function removeLimits() public onlyOwner {
     _maxTxAmount = 1000000000000 * 10**9;
     _maxWalletSize = 1000000000000 * 10**9;  
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(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;
        }
    }

}

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":[],"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":[],"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":[],"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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000196200001e919062000768565b6000196200002d9190620007cf565b600655600160085560026009556001600a556002600b55600a54600c55600b54600d55600c54600e55600d54600f557352a1078535984a9a4cec2a6d1380346857531e50601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507352a1078535984a9a4cec2a6d1380346857531e50601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555069021e19e0c9bab240000060145569021e19e0c9bab240000060155569010f0cf064dd592000006016553480156200018e57600080fd5b506000620001a1620006fe60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000256620006fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033557600080fd5b505afa1580156200034a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000370919062000874565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d357600080fd5b505afa158015620003e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040e919062000874565b6040518363ffffffff1660e01b81526004016200042d929190620008b7565b602060405180830381600087803b1580156200044857600080fd5b505af11580156200045d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000483919062000874565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d96200070660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000686620006fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620006ef9190620008f5565b60405180910390a35062000912565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000775826200072f565b915062000782836200072f565b92508262000795576200079462000739565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007dc826200072f565b9150620007e9836200072f565b925082821015620007ff57620007fe620007a0565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200083c826200080f565b9050919050565b6200084e816200082f565b81146200085a57600080fd5b50565b6000815190506200086e8162000843565b92915050565b6000602082840312156200088d576200088c6200080a565b5b60006200089d848285016200085d565b91505092915050565b620008b1816200082f565b82525050565b6000604082019050620008ce6000830185620008a6565b620008dd6020830184620008a6565b9392505050565b620008ef816200072f565b82525050565b60006020820190506200090c6000830184620008e4565b92915050565b613adf80620009226000396000f3fe6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f046146105bb578063dd62ed3e146105e4578063ea1644d514610621578063f2fde38b1461064a576101c2565b8063a2a957bb1461053e578063a9059cbb14610567578063c3c8cd80146105a4576101c2565b80638f70ccf7116100c65780638f70ccf7146104965780638f9a55c0146104bf57806395d89b41146104ea57806398a5c31514610515576101c2565b8063751039fc146104295780637d1db4a5146104405780638da5cb5b1461046b576101c2565b806349bd5a5e116101595780636fc3eaec116101335780636fc3eaec1461039557806370a08231146103ac578063715018a6146103e957806374010ece14610400576101c2565b806349bd5a5e146103185780634cb80fd5146103435780636d8aa8f81461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610673565b6040516101e99190612ac2565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612b82565b6106b0565b6040516102269190612bdd565b60405180910390f35b34801561023b57600080fd5b506102446106ce565b6040516102519190612c57565b60405180910390f35b34801561026657600080fd5b5061026f6106f4565b60405161027c9190612c81565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612c9c565b610706565b6040516102b99190612bdd565b60405180910390f35b3480156102ce57600080fd5b506102d76107df565b6040516102e49190612c81565b60405180910390f35b3480156102f957600080fd5b506103026107e5565b60405161030f9190612d0b565b60405180910390f35b34801561032457600080fd5b5061032d6107ee565b60405161033a9190612d35565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612d8e565b610814565b005b34801561037857600080fd5b50610393600480360381019061038e9190612de7565b610918565b005b3480156103a157600080fd5b506103aa6109ca565b005b3480156103b857600080fd5b506103d360048036038101906103ce9190612e14565b610a9b565b6040516103e09190612c81565b60405180910390f35b3480156103f557600080fd5b506103fe610aec565b005b34801561040c57600080fd5b5061042760048036038101906104229190612e41565b610c3f565b005b34801561043557600080fd5b5061043e610cde565b005b34801561044c57600080fd5b50610455610d95565b6040516104629190612c81565b60405180910390f35b34801561047757600080fd5b50610480610d9b565b60405161048d9190612d35565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190612de7565b610dc4565b005b3480156104cb57600080fd5b506104d4610e76565b6040516104e19190612c81565b60405180910390f35b3480156104f657600080fd5b506104ff610e7c565b60405161050c9190612ac2565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e41565b610eb9565b005b34801561054a57600080fd5b5061056560048036038101906105609190612e6e565b610f58565b005b34801561057357600080fd5b5061058e60048036038101906105899190612b82565b61104b565b60405161059b9190612bdd565b60405180910390f35b3480156105b057600080fd5b506105b9611069565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190612f3a565b611142565b005b3480156105f057600080fd5b5061060b60048036038101906106069190612f9a565b61127c565b6040516106189190612c81565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190612e41565b611303565b005b34801561065657600080fd5b50610671600480360381019061066c9190612e14565b6113a2565b005b60606040518060400160405280600f81526020017f524150544f522050524f544f434f4c0000000000000000000000000000000000815250905090565b60006106c46106bd611564565b848461156c565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610713848484611737565b6107d48461071f611564565b6107cf85604051806060016040528060288152602001613a8260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610785611564565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edb9092919063ffffffff16565b61156c565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610855611564565b73ffffffffffffffffffffffffffffffffffffffff1614806108cb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b3611564565b73ffffffffffffffffffffffffffffffffffffffff16145b6108d457600080fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610920611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490613026565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0b611564565b73ffffffffffffffffffffffffffffffffffffffff161480610a815750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a69611564565b73ffffffffffffffffffffffffffffffffffffffff16145b610a8a57600080fd5b6000479050610a9881611f3f565b50565b6000610ae5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fab565b9050919050565b610af4611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890613026565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c47611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613026565b60405180910390fd5b8060148190555050565b610ce6611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613026565b60405180910390fd5b683635c9adc5dea00000601481905550683635c9adc5dea00000601581905550565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dcc611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090613026565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600681526020017f524150544f520000000000000000000000000000000000000000000000000000815250905090565b610ec1611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590613026565b60405180910390fd5b8060168190555050565b610f60611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490613026565b60405180910390fd5b60008285610ffb9190613075565b90506000828561100b9190613075565b90508560088190555084600a819055508360098190555082600b81905550600a821061103657600080fd5b600a811061104357600080fd5b505050505050565b600061105f611058611564565b8484611737565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110aa611564565b73ffffffffffffffffffffffffffffffffffffffff1614806111205750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611108611564565b73ffffffffffffffffffffffffffffffffffffffff16145b61112957600080fd5b600061113430610a9b565b905061113f81612019565b50565b61114a611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce90613026565b60405180910390fd5b60005b838390508110156112765781600560008686858181106111fd576111fc6130cb565b5b90506020020160208101906112129190612e14565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061126e906130fa565b9150506111da565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130b611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90613026565b60405180910390fd5b8060158190555050565b6113aa611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90613026565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e906131b5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d390613247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611643906132d9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172a9190612c81565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e9061336b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e906133fd565b60405180910390fd5b6000811161185a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118519061348f565b60405180910390fd5b611862610d9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d057506118a0610d9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bda57601360149054906101000a900460ff1661195f576118f1610d9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461195e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195590613521565b60405180910390fd5b5b6014548111156119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b9061358d565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a515760155481611a0684610a9b565b611a109190613075565b10611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a479061361f565b60405180910390fd5b5b6000611a5c30610a9b565b9050600060165482101590506014548210611a775760145491505b808015611a915750601360159054906101000a900460ff16155b8015611aeb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b035750601360169054906101000a900460ff165b8015611b595750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611baf5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd757611bbd82612019565b60004790506000811115611bd557611bd447611f3f565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c815750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d345750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d335750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d425760009050611ec9565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ded5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0557600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eb05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ec857600a54600c81905550600b54600d819055505b5b611ed5848484846122a1565b50505050565b6000838311158290611f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1a9190612ac2565b60405180910390fd5b5060008385611f32919061363f565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fa7573d6000803e3d6000fd5b5050565b6000600654821115611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe9906136e5565b60405180910390fd5b6000611ffc6122ce565b905061201181846122f990919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561205157612050613705565b5b60405190808252806020026020018201604052801561207f5781602001602082028036833780820191505090505b5090503081600081518110612097576120966130cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561213957600080fd5b505afa15801561214d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121719190613749565b81600181518110612185576121846130cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121ec30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461156c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161225095949392919061386f565b600060405180830381600087803b15801561226a57600080fd5b505af115801561227e573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b806122af576122ae612343565b5b6122ba848484612386565b806122c8576122c76125ac565b5b50505050565b60008060006122db6125c0565b915091506122f281836122f990919063ffffffff16565b9250505090565b600061233b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612625565b905092915050565b6000600c5414801561235757506000600d54145b1561236157612384565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061239887612688565b955095509550955095509550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156123ff57600080fd5b61245186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124e685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061253281612798565b61253c8483612855565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125999190612c81565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069d3c21bcecceda100000090506125f869d3c21bcecceda10000006006546122f990919063ffffffff16565b8210156126185760065469d3c21bcecceda1000000935093505050612621565b81819350935050505b9091565b6000808311829061266c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126639190612ac2565b60405180910390fd5b506000838561267b91906138f8565b9050809150509392505050565b60008060008060008060008060006126a58a600c54600d5461288f565b92509250925060006126b56122ce565b905060008060006126c88e878787612925565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611edb565b905092915050565b60008082846127499190613075565b90508381101561278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278590613975565b60405180910390fd5b8091505092915050565b60006127a26122ce565b905060006127b982846129ae90919063ffffffff16565b905061280d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286a826006546126f090919063ffffffff16565b6006819055506128858160075461273a90919063ffffffff16565b6007819055505050565b6000806000806128bb60646128ad888a6129ae90919063ffffffff16565b6122f990919063ffffffff16565b905060006128e560646128d7888b6129ae90919063ffffffff16565b6122f990919063ffffffff16565b9050600061290e82612900858c6126f090919063ffffffff16565b6126f090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061293e85896129ae90919063ffffffff16565b9050600061295586896129ae90919063ffffffff16565b9050600061296c87896129ae90919063ffffffff16565b905060006129958261298785876126f090919063ffffffff16565b6126f090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c15760009050612a23565b600082846129cf9190613995565b90508284826129de91906138f8565b14612a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1590613a61565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a63578082015181840152602081019050612a48565b83811115612a72576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9482612a29565b612a9e8185612a34565b9350612aae818560208601612a45565b612ab781612a78565b840191505092915050565b60006020820190508181036000830152612adc8184612a89565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1982612aee565b9050919050565b612b2981612b0e565b8114612b3457600080fd5b50565b600081359050612b4681612b20565b92915050565b6000819050919050565b612b5f81612b4c565b8114612b6a57600080fd5b50565b600081359050612b7c81612b56565b92915050565b60008060408385031215612b9957612b98612ae4565b5b6000612ba785828601612b37565b9250506020612bb885828601612b6d565b9150509250929050565b60008115159050919050565b612bd781612bc2565b82525050565b6000602082019050612bf26000830184612bce565b92915050565b6000819050919050565b6000612c1d612c18612c1384612aee565b612bf8565b612aee565b9050919050565b6000612c2f82612c02565b9050919050565b6000612c4182612c24565b9050919050565b612c5181612c36565b82525050565b6000602082019050612c6c6000830184612c48565b92915050565b612c7b81612b4c565b82525050565b6000602082019050612c966000830184612c72565b92915050565b600080600060608486031215612cb557612cb4612ae4565b5b6000612cc386828701612b37565b9350506020612cd486828701612b37565b9250506040612ce586828701612b6d565b9150509250925092565b600060ff82169050919050565b612d0581612cef565b82525050565b6000602082019050612d206000830184612cfc565b92915050565b612d2f81612b0e565b82525050565b6000602082019050612d4a6000830184612d26565b92915050565b6000612d5b82612aee565b9050919050565b612d6b81612d50565b8114612d7657600080fd5b50565b600081359050612d8881612d62565b92915050565b600060208284031215612da457612da3612ae4565b5b6000612db284828501612d79565b91505092915050565b612dc481612bc2565b8114612dcf57600080fd5b50565b600081359050612de181612dbb565b92915050565b600060208284031215612dfd57612dfc612ae4565b5b6000612e0b84828501612dd2565b91505092915050565b600060208284031215612e2a57612e29612ae4565b5b6000612e3884828501612b37565b91505092915050565b600060208284031215612e5757612e56612ae4565b5b6000612e6584828501612b6d565b91505092915050565b60008060008060808587031215612e8857612e87612ae4565b5b6000612e9687828801612b6d565b9450506020612ea787828801612b6d565b9350506040612eb887828801612b6d565b9250506060612ec987828801612b6d565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612efa57612ef9612ed5565b5b8235905067ffffffffffffffff811115612f1757612f16612eda565b5b602083019150836020820283011115612f3357612f32612edf565b5b9250929050565b600080600060408486031215612f5357612f52612ae4565b5b600084013567ffffffffffffffff811115612f7157612f70612ae9565b5b612f7d86828701612ee4565b93509350506020612f9086828701612dd2565b9150509250925092565b60008060408385031215612fb157612fb0612ae4565b5b6000612fbf85828601612b37565b9250506020612fd085828601612b37565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613010602083612a34565b915061301b82612fda565b602082019050919050565b6000602082019050818103600083015261303f81613003565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308082612b4c565b915061308b83612b4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c0576130bf613046565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061310582612b4c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561313857613137613046565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061319f602683612a34565b91506131aa82613143565b604082019050919050565b600060208201905081810360008301526131ce81613192565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613231602483612a34565b915061323c826131d5565b604082019050919050565b6000602082019050818103600083015261326081613224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c3602283612a34565b91506132ce82613267565b604082019050919050565b600060208201905081810360008301526132f2816132b6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613355602583612a34565b9150613360826132f9565b604082019050919050565b6000602082019050818103600083015261338481613348565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133e7602383612a34565b91506133f28261338b565b604082019050919050565b60006020820190508181036000830152613416816133da565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613479602983612a34565b91506134848261341d565b604082019050919050565b600060208201905081810360008301526134a88161346c565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061350b603f83612a34565b9150613516826134af565b604082019050919050565b6000602082019050818103600083015261353a816134fe565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613577601c83612a34565b915061358282613541565b602082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613609602383612a34565b9150613614826135ad565b604082019050919050565b60006020820190508181036000830152613638816135fc565b9050919050565b600061364a82612b4c565b915061365583612b4c565b92508282101561366857613667613046565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006136cf602a83612a34565b91506136da82613673565b604082019050919050565b600060208201905081810360008301526136fe816136c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061374381612b20565b92915050565b60006020828403121561375f5761375e612ae4565b5b600061376d84828501613734565b91505092915050565b6000819050919050565b600061379b61379661379184613776565b612bf8565b612b4c565b9050919050565b6137ab81613780565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137e681612b0e565b82525050565b60006137f883836137dd565b60208301905092915050565b6000602082019050919050565b600061381c826137b1565b61382681856137bc565b9350613831836137cd565b8060005b8381101561386257815161384988826137ec565b975061385483613804565b925050600181019050613835565b5085935050505092915050565b600060a0820190506138846000830188612c72565b61389160208301876137a2565b81810360408301526138a38186613811565b90506138b26060830185612d26565b6138bf6080830184612c72565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061390382612b4c565b915061390e83612b4c565b92508261391e5761391d6138c9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061395f601b83612a34565b915061396a82613929565b602082019050919050565b6000602082019050818103600083015261398e81613952565b9050919050565b60006139a082612b4c565b91506139ab83612b4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139e4576139e3613046565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a4b602183612a34565b9150613a56826139ef565b604082019050919050565b60006020820190508181036000830152613a7a81613a3e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b822fa18166e283d5f202d057152248abade4bbd6ec23f0a69ee736352e57b164736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f046146105bb578063dd62ed3e146105e4578063ea1644d514610621578063f2fde38b1461064a576101c2565b8063a2a957bb1461053e578063a9059cbb14610567578063c3c8cd80146105a4576101c2565b80638f70ccf7116100c65780638f70ccf7146104965780638f9a55c0146104bf57806395d89b41146104ea57806398a5c31514610515576101c2565b8063751039fc146104295780637d1db4a5146104405780638da5cb5b1461046b576101c2565b806349bd5a5e116101595780636fc3eaec116101335780636fc3eaec1461039557806370a08231146103ac578063715018a6146103e957806374010ece14610400576101c2565b806349bd5a5e146103185780634cb80fd5146103435780636d8aa8f81461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610673565b6040516101e99190612ac2565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612b82565b6106b0565b6040516102269190612bdd565b60405180910390f35b34801561023b57600080fd5b506102446106ce565b6040516102519190612c57565b60405180910390f35b34801561026657600080fd5b5061026f6106f4565b60405161027c9190612c81565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612c9c565b610706565b6040516102b99190612bdd565b60405180910390f35b3480156102ce57600080fd5b506102d76107df565b6040516102e49190612c81565b60405180910390f35b3480156102f957600080fd5b506103026107e5565b60405161030f9190612d0b565b60405180910390f35b34801561032457600080fd5b5061032d6107ee565b60405161033a9190612d35565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612d8e565b610814565b005b34801561037857600080fd5b50610393600480360381019061038e9190612de7565b610918565b005b3480156103a157600080fd5b506103aa6109ca565b005b3480156103b857600080fd5b506103d360048036038101906103ce9190612e14565b610a9b565b6040516103e09190612c81565b60405180910390f35b3480156103f557600080fd5b506103fe610aec565b005b34801561040c57600080fd5b5061042760048036038101906104229190612e41565b610c3f565b005b34801561043557600080fd5b5061043e610cde565b005b34801561044c57600080fd5b50610455610d95565b6040516104629190612c81565b60405180910390f35b34801561047757600080fd5b50610480610d9b565b60405161048d9190612d35565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190612de7565b610dc4565b005b3480156104cb57600080fd5b506104d4610e76565b6040516104e19190612c81565b60405180910390f35b3480156104f657600080fd5b506104ff610e7c565b60405161050c9190612ac2565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e41565b610eb9565b005b34801561054a57600080fd5b5061056560048036038101906105609190612e6e565b610f58565b005b34801561057357600080fd5b5061058e60048036038101906105899190612b82565b61104b565b60405161059b9190612bdd565b60405180910390f35b3480156105b057600080fd5b506105b9611069565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190612f3a565b611142565b005b3480156105f057600080fd5b5061060b60048036038101906106069190612f9a565b61127c565b6040516106189190612c81565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190612e41565b611303565b005b34801561065657600080fd5b50610671600480360381019061066c9190612e14565b6113a2565b005b60606040518060400160405280600f81526020017f524150544f522050524f544f434f4c0000000000000000000000000000000000815250905090565b60006106c46106bd611564565b848461156c565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610713848484611737565b6107d48461071f611564565b6107cf85604051806060016040528060288152602001613a8260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610785611564565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edb9092919063ffffffff16565b61156c565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610855611564565b73ffffffffffffffffffffffffffffffffffffffff1614806108cb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b3611564565b73ffffffffffffffffffffffffffffffffffffffff16145b6108d457600080fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610920611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490613026565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0b611564565b73ffffffffffffffffffffffffffffffffffffffff161480610a815750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a69611564565b73ffffffffffffffffffffffffffffffffffffffff16145b610a8a57600080fd5b6000479050610a9881611f3f565b50565b6000610ae5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fab565b9050919050565b610af4611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890613026565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c47611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613026565b60405180910390fd5b8060148190555050565b610ce6611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613026565b60405180910390fd5b683635c9adc5dea00000601481905550683635c9adc5dea00000601581905550565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dcc611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090613026565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600681526020017f524150544f520000000000000000000000000000000000000000000000000000815250905090565b610ec1611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590613026565b60405180910390fd5b8060168190555050565b610f60611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490613026565b60405180910390fd5b60008285610ffb9190613075565b90506000828561100b9190613075565b90508560088190555084600a819055508360098190555082600b81905550600a821061103657600080fd5b600a811061104357600080fd5b505050505050565b600061105f611058611564565b8484611737565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110aa611564565b73ffffffffffffffffffffffffffffffffffffffff1614806111205750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611108611564565b73ffffffffffffffffffffffffffffffffffffffff16145b61112957600080fd5b600061113430610a9b565b905061113f81612019565b50565b61114a611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce90613026565b60405180910390fd5b60005b838390508110156112765781600560008686858181106111fd576111fc6130cb565b5b90506020020160208101906112129190612e14565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061126e906130fa565b9150506111da565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130b611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90613026565b60405180910390fd5b8060158190555050565b6113aa611564565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90613026565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e906131b5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d390613247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611643906132d9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172a9190612c81565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e9061336b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e906133fd565b60405180910390fd5b6000811161185a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118519061348f565b60405180910390fd5b611862610d9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d057506118a0610d9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bda57601360149054906101000a900460ff1661195f576118f1610d9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461195e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195590613521565b60405180910390fd5b5b6014548111156119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b9061358d565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a515760155481611a0684610a9b565b611a109190613075565b10611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a479061361f565b60405180910390fd5b5b6000611a5c30610a9b565b9050600060165482101590506014548210611a775760145491505b808015611a915750601360159054906101000a900460ff16155b8015611aeb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b035750601360169054906101000a900460ff165b8015611b595750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611baf5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd757611bbd82612019565b60004790506000811115611bd557611bd447611f3f565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c815750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d345750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d335750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d425760009050611ec9565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ded5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0557600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eb05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ec857600a54600c81905550600b54600d819055505b5b611ed5848484846122a1565b50505050565b6000838311158290611f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1a9190612ac2565b60405180910390fd5b5060008385611f32919061363f565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fa7573d6000803e3d6000fd5b5050565b6000600654821115611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe9906136e5565b60405180910390fd5b6000611ffc6122ce565b905061201181846122f990919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561205157612050613705565b5b60405190808252806020026020018201604052801561207f5781602001602082028036833780820191505090505b5090503081600081518110612097576120966130cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561213957600080fd5b505afa15801561214d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121719190613749565b81600181518110612185576121846130cb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121ec30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461156c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161225095949392919061386f565b600060405180830381600087803b15801561226a57600080fd5b505af115801561227e573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b806122af576122ae612343565b5b6122ba848484612386565b806122c8576122c76125ac565b5b50505050565b60008060006122db6125c0565b915091506122f281836122f990919063ffffffff16565b9250505090565b600061233b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612625565b905092915050565b6000600c5414801561235757506000600d54145b1561236157612384565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061239887612688565b955095509550955095509550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614156123ff57600080fd5b61245186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124e685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061253281612798565b61253c8483612855565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125999190612c81565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069d3c21bcecceda100000090506125f869d3c21bcecceda10000006006546122f990919063ffffffff16565b8210156126185760065469d3c21bcecceda1000000935093505050612621565b81819350935050505b9091565b6000808311829061266c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126639190612ac2565b60405180910390fd5b506000838561267b91906138f8565b9050809150509392505050565b60008060008060008060008060006126a58a600c54600d5461288f565b92509250925060006126b56122ce565b905060008060006126c88e878787612925565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611edb565b905092915050565b60008082846127499190613075565b90508381101561278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278590613975565b60405180910390fd5b8091505092915050565b60006127a26122ce565b905060006127b982846129ae90919063ffffffff16565b905061280d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286a826006546126f090919063ffffffff16565b6006819055506128858160075461273a90919063ffffffff16565b6007819055505050565b6000806000806128bb60646128ad888a6129ae90919063ffffffff16565b6122f990919063ffffffff16565b905060006128e560646128d7888b6129ae90919063ffffffff16565b6122f990919063ffffffff16565b9050600061290e82612900858c6126f090919063ffffffff16565b6126f090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061293e85896129ae90919063ffffffff16565b9050600061295586896129ae90919063ffffffff16565b9050600061296c87896129ae90919063ffffffff16565b905060006129958261298785876126f090919063ffffffff16565b6126f090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c15760009050612a23565b600082846129cf9190613995565b90508284826129de91906138f8565b14612a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1590613a61565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a63578082015181840152602081019050612a48565b83811115612a72576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9482612a29565b612a9e8185612a34565b9350612aae818560208601612a45565b612ab781612a78565b840191505092915050565b60006020820190508181036000830152612adc8184612a89565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1982612aee565b9050919050565b612b2981612b0e565b8114612b3457600080fd5b50565b600081359050612b4681612b20565b92915050565b6000819050919050565b612b5f81612b4c565b8114612b6a57600080fd5b50565b600081359050612b7c81612b56565b92915050565b60008060408385031215612b9957612b98612ae4565b5b6000612ba785828601612b37565b9250506020612bb885828601612b6d565b9150509250929050565b60008115159050919050565b612bd781612bc2565b82525050565b6000602082019050612bf26000830184612bce565b92915050565b6000819050919050565b6000612c1d612c18612c1384612aee565b612bf8565b612aee565b9050919050565b6000612c2f82612c02565b9050919050565b6000612c4182612c24565b9050919050565b612c5181612c36565b82525050565b6000602082019050612c6c6000830184612c48565b92915050565b612c7b81612b4c565b82525050565b6000602082019050612c966000830184612c72565b92915050565b600080600060608486031215612cb557612cb4612ae4565b5b6000612cc386828701612b37565b9350506020612cd486828701612b37565b9250506040612ce586828701612b6d565b9150509250925092565b600060ff82169050919050565b612d0581612cef565b82525050565b6000602082019050612d206000830184612cfc565b92915050565b612d2f81612b0e565b82525050565b6000602082019050612d4a6000830184612d26565b92915050565b6000612d5b82612aee565b9050919050565b612d6b81612d50565b8114612d7657600080fd5b50565b600081359050612d8881612d62565b92915050565b600060208284031215612da457612da3612ae4565b5b6000612db284828501612d79565b91505092915050565b612dc481612bc2565b8114612dcf57600080fd5b50565b600081359050612de181612dbb565b92915050565b600060208284031215612dfd57612dfc612ae4565b5b6000612e0b84828501612dd2565b91505092915050565b600060208284031215612e2a57612e29612ae4565b5b6000612e3884828501612b37565b91505092915050565b600060208284031215612e5757612e56612ae4565b5b6000612e6584828501612b6d565b91505092915050565b60008060008060808587031215612e8857612e87612ae4565b5b6000612e9687828801612b6d565b9450506020612ea787828801612b6d565b9350506040612eb887828801612b6d565b9250506060612ec987828801612b6d565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612efa57612ef9612ed5565b5b8235905067ffffffffffffffff811115612f1757612f16612eda565b5b602083019150836020820283011115612f3357612f32612edf565b5b9250929050565b600080600060408486031215612f5357612f52612ae4565b5b600084013567ffffffffffffffff811115612f7157612f70612ae9565b5b612f7d86828701612ee4565b93509350506020612f9086828701612dd2565b9150509250925092565b60008060408385031215612fb157612fb0612ae4565b5b6000612fbf85828601612b37565b9250506020612fd085828601612b37565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613010602083612a34565b915061301b82612fda565b602082019050919050565b6000602082019050818103600083015261303f81613003565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308082612b4c565b915061308b83612b4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c0576130bf613046565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061310582612b4c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561313857613137613046565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061319f602683612a34565b91506131aa82613143565b604082019050919050565b600060208201905081810360008301526131ce81613192565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613231602483612a34565b915061323c826131d5565b604082019050919050565b6000602082019050818103600083015261326081613224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c3602283612a34565b91506132ce82613267565b604082019050919050565b600060208201905081810360008301526132f2816132b6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613355602583612a34565b9150613360826132f9565b604082019050919050565b6000602082019050818103600083015261338481613348565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133e7602383612a34565b91506133f28261338b565b604082019050919050565b60006020820190508181036000830152613416816133da565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613479602983612a34565b91506134848261341d565b604082019050919050565b600060208201905081810360008301526134a88161346c565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061350b603f83612a34565b9150613516826134af565b604082019050919050565b6000602082019050818103600083015261353a816134fe565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613577601c83612a34565b915061358282613541565b602082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613609602383612a34565b9150613614826135ad565b604082019050919050565b60006020820190508181036000830152613638816135fc565b9050919050565b600061364a82612b4c565b915061365583612b4c565b92508282101561366857613667613046565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006136cf602a83612a34565b91506136da82613673565b604082019050919050565b600060208201905081810360008301526136fe816136c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061374381612b20565b92915050565b60006020828403121561375f5761375e612ae4565b5b600061376d84828501613734565b91505092915050565b6000819050919050565b600061379b61379661379184613776565b612bf8565b612b4c565b9050919050565b6137ab81613780565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137e681612b0e565b82525050565b60006137f883836137dd565b60208301905092915050565b6000602082019050919050565b600061381c826137b1565b61382681856137bc565b9350613831836137cd565b8060005b8381101561386257815161384988826137ec565b975061385483613804565b925050600181019050613835565b5085935050505092915050565b600060a0820190506138846000830188612c72565b61389160208301876137a2565b81810360408301526138a38186613811565b90506138b26060830185612d26565b6138bf6080830184612c72565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061390382612b4c565b915061390e83612b4c565b92508261391e5761391d6138c9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061395f601b83612a34565b915061396a82613929565b602082019050919050565b6000602082019050818103600083015261398e81613952565b9050919050565b60006139a082612b4c565b91506139ab83612b4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139e4576139e3613046565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a4b602183612a34565b9150613a56826139ef565b604082019050919050565b60006020820190508181036000830152613a7a81613a3e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b822fa18166e283d5f202d057152248abade4bbd6ec23f0a69ee736352e57b164736f6c63430008090033

Deployed Bytecode Sourcemap

5805:13618:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8229:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9154:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7065:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8506:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9355:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7383:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8415:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7113:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14059:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18805:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14251:221;;;;;;;;;;;;;:::i;:::-;;8609:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3292:148;;;;;;;;;;;;;:::i;:::-;;18945:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18421:141;;;;;;;;;;;;;:::i;:::-;;7263:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3078:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13714:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7322:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8320:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18614:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17922:491;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8755:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13823:222;;;;;;;;;;;;;:::i;:::-;;19184:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8962:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19061:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3448:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8229:83;8266:13;8299:5;;;;;;;;;;;;;;;;;8292:12;;8229:83;:::o;9154:193::-;9256:4;9278:39;9287:12;:10;:12::i;:::-;9301:7;9310:6;9278:8;:39::i;:::-;9335:4;9328:11;;9154:193;;;;:::o;7065:41::-;;;;;;;;;;;;;:::o;8506:95::-;8559:7;6367:24;8579:14;;8506:95;:::o;9355:446::-;9487:4;9504:36;9514:6;9522:9;9533:6;9504:9;:36::i;:::-;9551:220;9574:6;9595:12;:10;:12::i;:::-;9622:138;9678:6;9622:138;;;;;;;;;;;;;;;;;:11;:19;9634:6;9622:19;;;;;;;;;;;;;;;:33;9642:12;:10;:12::i;:::-;9622:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9551:8;:220::i;:::-;9789:4;9782:11;;9355:446;;;;;:::o;7383:58::-;;;;:::o;8415:83::-;8456:5;6041:1;8474:16;;8415:83;:::o;7113:28::-;;;;;;;;;;;;;:::o;14059:184::-;14162:11;;;;;;;;;;;14146:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;14193:11;;;;;;;;;;;14177:27;;:12;:10;:12::i;:::-;:27;;;14146:58;14138:67;;;;;;14230:5;14216:11;;:19;;;;;;;;;;;;;;;;;;14059:184;:::o;18805:101::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18886:12:::1;18872:11;;:26;;;;;;;;;;;;;;;;;;18805:101:::0;:::o;14251:221::-;14317:11;;;;;;;;;;;14301:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;14348:11;;;;;;;;;;;14332:27;;:12;:10;:12::i;:::-;:27;;;14301:58;14293:67;;;;;;14371:26;14400:21;14371:50;;14432:32;14445:18;14432:12;:32::i;:::-;14282:190;14251:221::o;8609:138::-;8675:7;8702:37;8722:7;:16;8730:7;8722:16;;;;;;;;;;;;;;;;8702:19;:37::i;:::-;8695:44;;8609:138;;;:::o;3292:148::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3399:1:::1;3362:40;;3383:6;::::0;::::1;;;;;;;;3362:40;;;;;;;;;;;;3430:1;3413:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3292:148::o:0;18945:108::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19034:11:::1;19019:12;:26;;;;18945:108:::0;:::o;18421:141::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18485:21:::1;18470:12;:36;;;;18531:21;18514:14;:38;;;;18421:141::o:0;7263:52::-;;;;:::o;3078:79::-;3116:7;3143:6;;;;;;;;;;;3136:13;;3078:79;:::o;13714:101::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13795:12:::1;13781:11;;:26;;;;;;;;;;;;;;;;;;13714:101:::0;:::o;7322:54::-;;;;:::o;8320:87::-;8359:13;8392:7;;;;;;;;;;;;;;;;;8385:14;;8320:87;:::o;18614:139::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18727:18:::1;18705:19;:40;;;;18614:139:::0;:::o;17922:491::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18056:20:::1;18093:11;18079:13;:25;;;;:::i;:::-;18056:48;;18115:21;18154:12;18139:14;:27;;;;:::i;:::-;18115:51;;18194:13;18177:14;:30;;;;18236:14;18218:15;:32;;;;18276:11;18261:12;:26;;;;18314:12;18298:13;:28;;;;18360:2;18345:12;:17;18337:26;;;::::0;::::1;;18398:2;18382:13;:18;18374:27;;;::::0;::::1;;18045:368;;17922:491:::0;;;;:::o;8755:199::-;8860:4;8882:42;8892:12;:10;:12::i;:::-;8906:9;8917:6;8882:9;:42::i;:::-;8942:4;8935:11;;8755:199;;;;:::o;13823:222::-;13889:11;;;;;;;;;;;13873:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;13920:11;;;;;;;;;;;13904:27;;:12;:10;:12::i;:::-;:27;;;13873:58;13865:67;;;;;;13943:23;13969:24;13987:4;13969:9;:24::i;:::-;13943:50;;14004:33;14021:15;14004:16;:33::i;:::-;13854:191;13823:222::o;19184:234::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19301:9:::1;19297:114;19320:8;;:15;;19316:1;:19;19297:114;;;19391:8;19357:18;:31;19376:8;;19385:1;19376:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19357:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19337:3;;;;;:::i;:::-;;;;19297:114;;;;19184:234:::0;;;:::o;8962:184::-;9079:7;9111:11;:18;9123:5;9111:18;;;;;;;;;;;;;;;:27;9130:7;9111:27;;;;;;;;;;;;;;;;9104:34;;8962:184;;;;:::o;19061:115::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19155:13:::1;19138:14;:30;;;;19061:115:::0;:::o;3448:244::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3557:1:::1;3537:22;;:8;:22;;;;3529:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3647:8;3618:38;;3639:6;::::0;::::1;;;;;;;;3618:38;;;;;;;;;;;;3676:8;3667:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3448:244:::0;:::o;1837:98::-;1890:7;1917:10;1910:17;;1837:98;:::o;10492:369::-;10636:1;10619:19;;:5;:19;;;;10611:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10717:1;10698:21;;:7;:21;;;;10690:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10799:6;10769:11;:18;10781:5;10769:18;;;;;;;;;;;;;;;:27;10788:7;10769:27;;;;;;;;;;;;;;;:36;;;;10837:7;10821:32;;10830:5;10821:32;;;10846:6;10821:32;;;;;;:::i;:::-;;;;;;;;10492:369;;;:::o;10869:2245::-;11007:1;10991:18;;:4;:18;;;;10983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11084:1;11070:16;;:2;:16;;;;11062:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11154:1;11145:6;:10;11137:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11226:7;:5;:7::i;:::-;11218:15;;:4;:15;;;;:32;;;;;11243:7;:5;:7::i;:::-;11237:13;;:2;:13;;;;11218:32;11214:1174;;;11307:11;;;;;;;;;;;11302:144;;11355:7;:5;:7::i;:::-;11347:15;;:4;:15;;;11339:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11302:144;11480:12;;11470:6;:22;;11462:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11553:13;;;;;;;;;;;11547:19;;:2;:19;;;11544:146;;11620:14;;11611:6;11595:13;11605:2;11595:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11587:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11544:146;11706:28;11737:24;11755:4;11737:9;:24::i;:::-;11706:55;;11776:12;11815:19;;11791:20;:43;;11776:58;;11878:12;;11854:20;:36;11851:124;;11947:12;;11924:35;;11851:124;11995:7;:18;;;;;12007:6;;;;;;;;;;;12006:7;11995:18;:43;;;;;12025:13;;;;;;;;;;;12017:21;;:4;:21;;;;11995:43;:58;;;;;12042:11;;;;;;;;;;;11995:58;:87;;;;;12058:18;:24;12077:4;12058:24;;;;;;;;;;;;;;;;;;;;;;;;;12057:25;11995:87;:114;;;;;12087:18;:22;12106:2;12087:22;;;;;;;;;;;;;;;;;;;;;;;;;12086:23;11995:114;11991:386;;;12130:38;12147:20;12130:16;:38::i;:::-;12187:26;12216:21;12187:50;;12281:1;12260:18;:22;12256:106;;;12307:35;12320:21;12307:12;:35::i;:::-;12256:106;12111:266;11991:386;11252:1136;;11214:1174;12400:12;12415:4;12400:19;;12464:18;:24;12483:4;12464:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12492:18;:22;12511:2;12492:22;;;;;;;;;;;;;;;;;;;;;;;;;12464:50;12463:102;;;;12528:13;;;;;;;;;;;12520:21;;:4;:21;;;;:44;;;;;12551:13;;;;;;;;;;;12545:19;;:2;:19;;;;12520:44;12463:102;12459:594;;;12592:5;12582:15;;12459:594;;;12675:13;;;;;;;;;;;12667:21;;:4;:21;;;:55;;;;;12706:15;;;;;;;;;;;12692:30;;:2;:30;;;;12667:55;12664:162;;;12755:14;;12743:9;:26;;;;12798:12;;12788:7;:22;;;;12664:162;12885:13;;;;;;;;;;;12879:19;;:2;:19;;;:55;;;;;12918:15;;;;;;;;;;;12902:32;;:4;:32;;;;12879:55;12875:165;;;12967:15;;12955:9;:27;;;;13011:13;;13001:7;:23;;;;12875:165;12459:594;13065:41;13080:4;13086:2;13090:6;13098:7;13065:14;:41::i;:::-;10972:2142;10869:2245;;;:::o;4056:224::-;4176:7;4209:1;4204;:6;;4212:12;4196:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4236:9;4252:1;4248;:5;;;;:::i;:::-;4236:17;;4271:1;4264:8;;;4056:224;;;;;:::o;13613:93::-;13670:11;;;;;;;;;;;:20;;:28;13691:6;13670:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13613:93;:::o;9809:323::-;9904:7;9962;;9951;:18;;9929:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10050:19;10072:10;:8;:10::i;:::-;10050:32;;10100:24;10112:11;10100:7;:11;;:24;;;;:::i;:::-;10093:31;;;9809:323;;;:::o;13122:483::-;7544:4;7535:6;;:13;;;;;;;;;;;;;;;;;;13200:21:::1;13238:1;13224:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13200:40;;13269:4;13251;13256:1;13251:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13295:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13285:4;13290:1;13285:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13328:62;13345:4;13360:15;;;;;;;;;;;13378:11;13328:8;:62::i;:::-;13401:15;;;;;;;;;;;:66;;;13482:11;13508:1;13524:4;13551;13571:15;13401:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13189:416;7580:5:::0;7571:6;;:14;;;;;;;;;;;;;;;;;;13122:483;:::o;14482:282::-;14638:7;14633:28;;14647:14;:12;:14::i;:::-;14633:28;14672:44;14690:6;14698:9;14709:6;14672:17;:44::i;:::-;14732:7;14727:29;;14741:15;:13;:15::i;:::-;14727:29;14482:282;;;;:::o;17485:164::-;17527:7;17548:15;17565;17584:19;:17;:19::i;:::-;17547:56;;;;17621:20;17633:7;17621;:11;;:20;;;;:::i;:::-;17614:27;;;;17485:164;:::o;4542:132::-;4600:7;4627:39;4631:1;4634;4627:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4620:46;;4542:132;;;;:::o;10140:219::-;10200:1;10187:9;;:14;:30;;;;;10216:1;10205:7;;:12;10187:30;10183:43;;;10219:7;;10183:43;10258:9;;10238:17;:29;;;;10296:7;;10278:15;:25;;;;10328:1;10316:9;:13;;;;10350:1;10340:7;:11;;;;10140:219;:::o;14772:652::-;14919:15;14949:23;14987:12;15014:23;15052:12;15079:13;15106:19;15117:7;15106:10;:19::i;:::-;14904:221;;;;;;;;;;;;15155:11;;;;;;;;;;;15144:22;;:9;:22;;;;15136:31;;;;;;15196:28;15216:7;15196;:15;15204:6;15196:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15178:7;:15;15186:6;15178:15;;;;;;;;;;;;;;;:46;;;;15256:39;15279:15;15256:7;:18;15264:9;15256:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15235:7;:18;15243:9;15235:18;;;;;;;;;;;;;;;:60;;;;15306:16;15316:5;15306:9;:16::i;:::-;15333:23;15345:4;15351;15333:11;:23::i;:::-;15389:9;15372:44;;15381:6;15372:44;;;15400:15;15372:44;;;;;;:::i;:::-;;;;;;;;14893:531;;;;;;14772:652;;;:::o;10367:117::-;10423:17;;10411:9;:29;;;;10461:15;;10451:7;:25;;;;10367:117::o;17657:257::-;17708:7;17717;17737:15;17755:7;;17737:25;;17773:15;6367:24;17773:25;;17823:20;6367:24;17823:7;;:11;;:20;;;;:::i;:::-;17813:7;:30;17809:61;;;17853:7;;6367:24;17845:25;;;;;;;;17809:61;17889:7;17898;17881:25;;;;;;17657:257;;;:::o;4682:223::-;4802:7;4834:1;4830;:5;4837:12;4822:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4861:9;4877:1;4873;:5;;;;:::i;:::-;4861:17;;4896:1;4889:8;;;4682:223;;;;;:::o;15843:615::-;15943:7;15965;15987;16009;16031;16053;16089:23;16114:12;16128:13;16158:40;16170:7;16179:9;;16190:7;;16158:11;:40::i;:::-;16088:110;;;;;;16209:19;16231:10;:8;:10::i;:::-;16209:32;;16253:15;16270:23;16295:12;16324:46;16336:7;16345:4;16351:5;16358:11;16324;:46::i;:::-;16252:118;;;;;;16389:7;16398:15;16415:4;16421:15;16438:4;16444:5;16381:69;;;;;;;;;;;;;;;;;;;15843:615;;;;;;;:::o;3912:136::-;3970:7;3997:43;4001:1;4004;3997:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3990:50;;3912:136;;;;:::o;3725:179::-;3783:7;3803:9;3819:1;3815;:5;;;;:::i;:::-;3803:17;;3844:1;3839;:6;;3831:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3895:1;3888:8;;;3725:179;;;;:::o;15432:211::-;15485:19;15507:10;:8;:10::i;:::-;15485:32;;15528:13;15544:22;15554:11;15544:5;:9;;:22;;;;:::i;:::-;15528:38;;15602:33;15629:5;15602:7;:22;15618:4;15602:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15577:7;:22;15593:4;15577:22;;;;;;;;;;;;;;;:58;;;;15474:169;;15432:211;:::o;15651:147::-;15729:17;15741:4;15729:7;;:11;;:17;;;;:::i;:::-;15719:7;:27;;;;15770:20;15785:4;15770:10;;:14;;:20;;;;:::i;:::-;15757:10;:33;;;;15651:147;;:::o;16466:469::-;16635:7;16657;16679;16714:12;16729:30;16755:3;16729:21;16741:8;16729:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16714:45;;16770:13;16786:28;16810:3;16786:19;16798:6;16786:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16770:44;;16825:23;16851:28;16873:5;16851:17;16863:4;16851:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16825:54;;16898:15;16915:4;16921:5;16890:37;;;;;;;;;16466:469;;;;;;;:::o;16943:534::-;17137:7;17159;17181;17216:15;17234:24;17246:11;17234:7;:11;;:24;;;;:::i;:::-;17216:42;;17269:12;17284:21;17293:11;17284:4;:8;;:21;;;;:::i;:::-;17269:36;;17316:13;17332:22;17342:11;17332:5;:9;;:22;;;;:::i;:::-;17316:38;;17365:23;17391:28;17413:5;17391:17;17403:4;17391:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17365:54;;17438:7;17447:15;17464:4;17430:39;;;;;;;;;;16943:534;;;;;;;;:::o;4288:246::-;4346:7;4375:1;4370;:6;4366:47;;;4400:1;4393:8;;;;4366:47;4423:9;4439:1;4435;:5;;;;:::i;:::-;4423:17;;4468:1;4463;4459;:5;;;;:::i;:::-;:10;4451:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4525:1;4518:8;;;4288:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:104::-;6271:7;6300:24;6318:5;6300:24;:::i;:::-;6289:35;;6226:104;;;:::o;6336:138::-;6417:32;6443:5;6417:32;:::i;:::-;6410:5;6407:43;6397:71;;6464:1;6461;6454:12;6397:71;6336:138;:::o;6480:155::-;6534:5;6572:6;6559:20;6550:29;;6588:41;6623:5;6588:41;:::i;:::-;6480:155;;;;:::o;6641:345::-;6708:6;6757:2;6745:9;6736:7;6732:23;6728:32;6725:119;;;6763:79;;:::i;:::-;6725:119;6883:1;6908:61;6961:7;6952:6;6941:9;6937:22;6908:61;:::i;:::-;6898:71;;6854:125;6641:345;;;;:::o;6992:116::-;7062:21;7077:5;7062:21;:::i;:::-;7055:5;7052:32;7042:60;;7098:1;7095;7088:12;7042:60;6992:116;:::o;7114:133::-;7157:5;7195:6;7182:20;7173:29;;7211:30;7235:5;7211:30;:::i;:::-;7114:133;;;;:::o;7253:323::-;7309:6;7358:2;7346:9;7337:7;7333:23;7329:32;7326:119;;;7364:79;;:::i;:::-;7326:119;7484:1;7509:50;7551:7;7542:6;7531:9;7527:22;7509:50;:::i;:::-;7499:60;;7455:114;7253:323;;;;:::o;7582:329::-;7641:6;7690:2;7678:9;7669:7;7665:23;7661:32;7658:119;;;7696:79;;:::i;:::-;7658:119;7816:1;7841:53;7886:7;7877:6;7866:9;7862:22;7841:53;:::i;:::-;7831:63;;7787:117;7582:329;;;;:::o;7917:::-;7976:6;8025:2;8013:9;8004:7;8000:23;7996:32;7993:119;;;8031:79;;:::i;:::-;7993:119;8151:1;8176:53;8221:7;8212:6;8201:9;8197:22;8176:53;:::i;:::-;8166:63;;8122:117;7917:329;;;;:::o;8252:765::-;8338:6;8346;8354;8362;8411:3;8399:9;8390:7;8386:23;8382:33;8379:120;;;8418:79;;:::i;:::-;8379:120;8538:1;8563:53;8608:7;8599:6;8588:9;8584:22;8563:53;:::i;:::-;8553:63;;8509:117;8665:2;8691:53;8736:7;8727:6;8716:9;8712:22;8691:53;:::i;:::-;8681:63;;8636:118;8793:2;8819:53;8864:7;8855:6;8844:9;8840:22;8819:53;:::i;:::-;8809:63;;8764:118;8921:2;8947:53;8992:7;8983:6;8972:9;8968:22;8947:53;:::i;:::-;8937:63;;8892:118;8252:765;;;;;;;:::o;9023:117::-;9132:1;9129;9122:12;9146:117;9255:1;9252;9245:12;9269:117;9378:1;9375;9368:12;9409:568;9482:8;9492:6;9542:3;9535:4;9527:6;9523:17;9519:27;9509:122;;9550:79;;:::i;:::-;9509:122;9663:6;9650:20;9640:30;;9693:18;9685:6;9682:30;9679:117;;;9715:79;;:::i;:::-;9679:117;9829:4;9821:6;9817:17;9805:29;;9883:3;9875:4;9867:6;9863:17;9853:8;9849:32;9846:41;9843:128;;;9890:79;;:::i;:::-;9843:128;9409:568;;;;;:::o;9983:698::-;10075:6;10083;10091;10140:2;10128:9;10119:7;10115:23;10111:32;10108:119;;;10146:79;;:::i;:::-;10108:119;10294:1;10283:9;10279:17;10266:31;10324:18;10316:6;10313:30;10310:117;;;10346:79;;:::i;:::-;10310:117;10459:80;10531:7;10522:6;10511:9;10507:22;10459:80;:::i;:::-;10441:98;;;;10237:312;10588:2;10614:50;10656:7;10647:6;10636:9;10632:22;10614:50;:::i;:::-;10604:60;;10559:115;9983:698;;;;;:::o;10687:474::-;10755:6;10763;10812:2;10800:9;10791:7;10787:23;10783:32;10780:119;;;10818:79;;:::i;:::-;10780:119;10938:1;10963:53;11008:7;10999:6;10988:9;10984:22;10963:53;:::i;:::-;10953:63;;10909:117;11065:2;11091:53;11136:7;11127:6;11116:9;11112:22;11091:53;:::i;:::-;11081:63;;11036:118;10687:474;;;;;:::o;11167:182::-;11307:34;11303:1;11295:6;11291:14;11284:58;11167:182;:::o;11355:366::-;11497:3;11518:67;11582:2;11577:3;11518:67;:::i;:::-;11511:74;;11594:93;11683:3;11594:93;:::i;:::-;11712:2;11707:3;11703:12;11696:19;;11355:366;;;:::o;11727:419::-;11893:4;11931:2;11920:9;11916:18;11908:26;;11980:9;11974:4;11970:20;11966:1;11955:9;11951:17;11944:47;12008:131;12134:4;12008:131;:::i;:::-;12000:139;;11727:419;;;:::o;12152:180::-;12200:77;12197:1;12190:88;12297:4;12294:1;12287:15;12321:4;12318:1;12311:15;12338:305;12378:3;12397:20;12415:1;12397:20;:::i;:::-;12392:25;;12431:20;12449:1;12431:20;:::i;:::-;12426:25;;12585:1;12517:66;12513:74;12510:1;12507:81;12504:107;;;12591:18;;:::i;:::-;12504:107;12635:1;12632;12628:9;12621:16;;12338:305;;;;:::o;12649:180::-;12697:77;12694:1;12687:88;12794:4;12791:1;12784:15;12818:4;12815:1;12808:15;12835:233;12874:3;12897:24;12915:5;12897:24;:::i;:::-;12888:33;;12943:66;12936:5;12933:77;12930:103;;;13013:18;;:::i;:::-;12930:103;13060:1;13053:5;13049:13;13042:20;;12835:233;;;:::o;13074:225::-;13214:34;13210:1;13202:6;13198:14;13191:58;13283:8;13278:2;13270:6;13266:15;13259:33;13074:225;:::o;13305:366::-;13447:3;13468:67;13532:2;13527:3;13468:67;:::i;:::-;13461:74;;13544:93;13633:3;13544:93;:::i;:::-;13662:2;13657:3;13653:12;13646:19;;13305:366;;;:::o;13677:419::-;13843:4;13881:2;13870:9;13866:18;13858:26;;13930:9;13924:4;13920:20;13916:1;13905:9;13901:17;13894:47;13958:131;14084:4;13958:131;:::i;:::-;13950:139;;13677:419;;;:::o;14102:223::-;14242:34;14238:1;14230:6;14226:14;14219:58;14311:6;14306:2;14298:6;14294:15;14287:31;14102:223;:::o;14331:366::-;14473:3;14494:67;14558:2;14553:3;14494:67;:::i;:::-;14487:74;;14570:93;14659:3;14570:93;:::i;:::-;14688:2;14683:3;14679:12;14672:19;;14331:366;;;:::o;14703:419::-;14869:4;14907:2;14896:9;14892:18;14884:26;;14956:9;14950:4;14946:20;14942:1;14931:9;14927:17;14920:47;14984:131;15110:4;14984:131;:::i;:::-;14976:139;;14703:419;;;:::o;15128:221::-;15268:34;15264:1;15256:6;15252:14;15245:58;15337:4;15332:2;15324:6;15320:15;15313:29;15128:221;:::o;15355:366::-;15497:3;15518:67;15582:2;15577:3;15518:67;:::i;:::-;15511:74;;15594:93;15683:3;15594:93;:::i;:::-;15712:2;15707:3;15703:12;15696:19;;15355:366;;;:::o;15727:419::-;15893:4;15931:2;15920:9;15916:18;15908:26;;15980:9;15974:4;15970:20;15966:1;15955:9;15951:17;15944:47;16008:131;16134:4;16008:131;:::i;:::-;16000:139;;15727:419;;;:::o;16152:224::-;16292:34;16288:1;16280:6;16276:14;16269:58;16361:7;16356:2;16348:6;16344:15;16337:32;16152:224;:::o;16382:366::-;16524:3;16545:67;16609:2;16604:3;16545:67;:::i;:::-;16538:74;;16621:93;16710:3;16621:93;:::i;:::-;16739:2;16734:3;16730:12;16723:19;;16382:366;;;:::o;16754:419::-;16920:4;16958:2;16947:9;16943:18;16935:26;;17007:9;17001:4;16997:20;16993:1;16982:9;16978:17;16971:47;17035:131;17161:4;17035:131;:::i;:::-;17027:139;;16754:419;;;:::o;17179:222::-;17319:34;17315:1;17307:6;17303:14;17296:58;17388:5;17383:2;17375:6;17371:15;17364:30;17179:222;:::o;17407:366::-;17549:3;17570:67;17634:2;17629:3;17570:67;:::i;:::-;17563:74;;17646:93;17735:3;17646:93;:::i;:::-;17764:2;17759:3;17755:12;17748:19;;17407:366;;;:::o;17779:419::-;17945:4;17983:2;17972:9;17968:18;17960:26;;18032:9;18026:4;18022:20;18018:1;18007:9;18003:17;17996:47;18060:131;18186:4;18060:131;:::i;:::-;18052:139;;17779:419;;;:::o;18204:228::-;18344:34;18340:1;18332:6;18328:14;18321:58;18413:11;18408:2;18400:6;18396:15;18389:36;18204:228;:::o;18438:366::-;18580:3;18601:67;18665:2;18660:3;18601:67;:::i;:::-;18594:74;;18677:93;18766:3;18677:93;:::i;:::-;18795:2;18790:3;18786:12;18779:19;;18438:366;;;:::o;18810:419::-;18976:4;19014:2;19003:9;18999:18;18991:26;;19063:9;19057:4;19053:20;19049:1;19038:9;19034:17;19027:47;19091:131;19217:4;19091:131;:::i;:::-;19083:139;;18810:419;;;:::o;19235:250::-;19375:34;19371:1;19363:6;19359:14;19352:58;19444:33;19439:2;19431:6;19427:15;19420:58;19235:250;:::o;19491:366::-;19633:3;19654:67;19718:2;19713:3;19654:67;:::i;:::-;19647:74;;19730:93;19819:3;19730:93;:::i;:::-;19848:2;19843:3;19839:12;19832:19;;19491:366;;;:::o;19863:419::-;20029:4;20067:2;20056:9;20052:18;20044:26;;20116:9;20110:4;20106:20;20102:1;20091:9;20087:17;20080:47;20144:131;20270:4;20144:131;:::i;:::-;20136:139;;19863:419;;;:::o;20288:178::-;20428:30;20424:1;20416:6;20412:14;20405:54;20288:178;:::o;20472:366::-;20614:3;20635:67;20699:2;20694:3;20635:67;:::i;:::-;20628:74;;20711:93;20800:3;20711:93;:::i;:::-;20829:2;20824:3;20820:12;20813:19;;20472:366;;;:::o;20844:419::-;21010:4;21048:2;21037:9;21033:18;21025:26;;21097:9;21091:4;21087:20;21083:1;21072:9;21068:17;21061:47;21125:131;21251:4;21125:131;:::i;:::-;21117:139;;20844:419;;;:::o;21269:222::-;21409:34;21405:1;21397:6;21393:14;21386:58;21478:5;21473:2;21465:6;21461:15;21454:30;21269:222;:::o;21497:366::-;21639:3;21660:67;21724:2;21719:3;21660:67;:::i;:::-;21653:74;;21736:93;21825:3;21736:93;:::i;:::-;21854:2;21849:3;21845:12;21838:19;;21497:366;;;:::o;21869:419::-;22035:4;22073:2;22062:9;22058:18;22050:26;;22122:9;22116:4;22112:20;22108:1;22097:9;22093:17;22086:47;22150:131;22276:4;22150:131;:::i;:::-;22142:139;;21869:419;;;:::o;22294:191::-;22334:4;22354:20;22372:1;22354:20;:::i;:::-;22349:25;;22388:20;22406:1;22388:20;:::i;:::-;22383:25;;22427:1;22424;22421:8;22418:34;;;22432:18;;:::i;:::-;22418:34;22477:1;22474;22470:9;22462:17;;22294:191;;;;:::o;22491:229::-;22631:34;22627:1;22619:6;22615:14;22608:58;22700:12;22695:2;22687:6;22683:15;22676:37;22491:229;:::o;22726:366::-;22868:3;22889:67;22953:2;22948:3;22889:67;:::i;:::-;22882:74;;22965:93;23054:3;22965:93;:::i;:::-;23083:2;23078:3;23074:12;23067:19;;22726:366;;;:::o;23098:419::-;23264:4;23302:2;23291:9;23287:18;23279:26;;23351:9;23345:4;23341:20;23337:1;23326:9;23322:17;23315:47;23379:131;23505:4;23379:131;:::i;:::-;23371:139;;23098:419;;;:::o;23523:180::-;23571:77;23568:1;23561:88;23668:4;23665:1;23658:15;23692:4;23689:1;23682:15;23709:143;23766:5;23797:6;23791:13;23782:22;;23813:33;23840:5;23813:33;:::i;:::-;23709:143;;;;:::o;23858:351::-;23928:6;23977:2;23965:9;23956:7;23952:23;23948:32;23945:119;;;23983:79;;:::i;:::-;23945:119;24103:1;24128:64;24184:7;24175:6;24164:9;24160:22;24128:64;:::i;:::-;24118:74;;24074:128;23858:351;;;;:::o;24215:85::-;24260:7;24289:5;24278:16;;24215:85;;;:::o;24306:158::-;24364:9;24397:61;24415:42;24424:32;24450:5;24424:32;:::i;:::-;24415:42;:::i;:::-;24397:61;:::i;:::-;24384:74;;24306:158;;;:::o;24470:147::-;24565:45;24604:5;24565:45;:::i;:::-;24560:3;24553:58;24470:147;;:::o;24623:114::-;24690:6;24724:5;24718:12;24708:22;;24623:114;;;:::o;24743:184::-;24842:11;24876:6;24871:3;24864:19;24916:4;24911:3;24907:14;24892:29;;24743:184;;;;:::o;24933:132::-;25000:4;25023:3;25015:11;;25053:4;25048:3;25044:14;25036:22;;24933:132;;;:::o;25071:108::-;25148:24;25166:5;25148:24;:::i;:::-;25143:3;25136:37;25071:108;;:::o;25185:179::-;25254:10;25275:46;25317:3;25309:6;25275:46;:::i;:::-;25353:4;25348:3;25344:14;25330:28;;25185:179;;;;:::o;25370:113::-;25440:4;25472;25467:3;25463:14;25455:22;;25370:113;;;:::o;25519:732::-;25638:3;25667:54;25715:5;25667:54;:::i;:::-;25737:86;25816:6;25811:3;25737:86;:::i;:::-;25730:93;;25847:56;25897:5;25847:56;:::i;:::-;25926:7;25957:1;25942:284;25967:6;25964:1;25961:13;25942:284;;;26043:6;26037:13;26070:63;26129:3;26114:13;26070:63;:::i;:::-;26063:70;;26156:60;26209:6;26156:60;:::i;:::-;26146:70;;26002:224;25989:1;25986;25982:9;25977:14;;25942:284;;;25946:14;26242:3;26235:10;;25643:608;;;25519:732;;;;:::o;26257:831::-;26520:4;26558:3;26547:9;26543:19;26535:27;;26572:71;26640:1;26629:9;26625:17;26616:6;26572:71;:::i;:::-;26653:80;26729:2;26718:9;26714:18;26705:6;26653:80;:::i;:::-;26780:9;26774:4;26770:20;26765:2;26754:9;26750:18;26743:48;26808:108;26911:4;26902:6;26808:108;:::i;:::-;26800:116;;26926:72;26994:2;26983:9;26979:18;26970:6;26926:72;:::i;:::-;27008:73;27076:3;27065:9;27061:19;27052:6;27008:73;:::i;:::-;26257:831;;;;;;;;:::o;27094:180::-;27142:77;27139:1;27132:88;27239:4;27236:1;27229:15;27263:4;27260:1;27253:15;27280:185;27320:1;27337:20;27355:1;27337:20;:::i;:::-;27332:25;;27371:20;27389:1;27371:20;:::i;:::-;27366:25;;27410:1;27400:35;;27415:18;;:::i;:::-;27400:35;27457:1;27454;27450:9;27445:14;;27280:185;;;;:::o;27471:177::-;27611:29;27607:1;27599:6;27595:14;27588:53;27471:177;:::o;27654:366::-;27796:3;27817:67;27881:2;27876:3;27817:67;:::i;:::-;27810:74;;27893:93;27982:3;27893:93;:::i;:::-;28011:2;28006:3;28002:12;27995:19;;27654:366;;;:::o;28026:419::-;28192:4;28230:2;28219:9;28215:18;28207:26;;28279:9;28273:4;28269:20;28265:1;28254:9;28250:17;28243:47;28307:131;28433:4;28307:131;:::i;:::-;28299:139;;28026:419;;;:::o;28451:348::-;28491:7;28514:20;28532:1;28514:20;:::i;:::-;28509:25;;28548:20;28566:1;28548:20;:::i;:::-;28543:25;;28736:1;28668:66;28664:74;28661:1;28658:81;28653:1;28646:9;28639:17;28635:105;28632:131;;;28743:18;;:::i;:::-;28632:131;28791:1;28788;28784:9;28773:20;;28451:348;;;;:::o;28805:220::-;28945:34;28941:1;28933:6;28929:14;28922:58;29014:3;29009:2;29001:6;28997:15;28990:28;28805:220;:::o;29031:366::-;29173:3;29194:67;29258:2;29253:3;29194:67;:::i;:::-;29187:74;;29270:93;29359:3;29270:93;:::i;:::-;29388:2;29383:3;29379:12;29372:19;;29031:366;;;:::o;29403:419::-;29569:4;29607:2;29596:9;29592:18;29584:26;;29656:9;29650:4;29646:20;29642:1;29631:9;29627:17;29620:47;29684:131;29810:4;29684:131;:::i;:::-;29676:139;;29403:419;;;:::o

Swarm Source

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