ETH Price: $2,811.68 (+1.50%)

Token

Mega Bonk (KABOOM)
 

Overview

Max Total Supply

1,000,000,000 KABOOM

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,100,242.25955 KABOOM

Value
$0.00
0xeb64013619b702dca6050d364c1528a1510d1493
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:
SmartContract

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/********************

Mega Bonk / KABOOM
1B Supply
5/5 TAX (15% sell tax for the 1st hour)

1% Fist buy 10,000,000

https://t.me/MegaBonkERC20

***********************/

pragma solidity ^0.8.4;

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract SmartContract is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWalletSize;

    string private constant _name = "Mega Bonk"; //
    string private constant _symbol = "KABOOM"; //
    uint8 private constant _decimals = 9;

    uint256 public buyAutoLiquidityFee;
    uint256 public buyAutoBurnFee;
    uint256 public buyMarketingFee;
    uint256 public totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;

    uint256 public sellAutoLiquidityFee;
    uint256 public sellAutoBurnFee;
    uint256 public sellMarketingFee;
    uint256 public totalSellFees =  sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;

    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForAutoBurn;  
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _tTotal = 1000000000 * 10 ** _decimals; //
    uint256 private maxWalletAmount = 10000000 * 10 ** _decimals;
    uint256 private maxTxAmount = 10000000 * 10 ** _decimals; 
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0x6C4CBB4862252711dea50AFD5A30CeDc0430405C); //wallet
        _tOwned[owner()] = _tTotal;
                
        uint256 _buyAutoLiquidityFee = 500; //
        uint256 _buyAutoBurnFee = 0; //
        uint256 _buyMarketingFee = 0; //
        uint256 _sellAutoLiquidityFee = 0; //
        uint256 _sellAutoBurnFee = 0; //
        uint256 _sellMarketingFee = 1500; // 1st hour sell tax to avoid early jeets
        
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyAutoBurnFee = _buyAutoBurnFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;
        
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellAutoBurnFee = _sellAutoBurnFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        _isExcludedFromMaxWalletSize[owner()] = true;
        _isExcludedFromMaxWalletSize[address(this)] = true;
        _isExcludedFromMaxWalletSize[feeAddrWallet] = true;  
        emit Transfer(address(0), owner(), _tTotal);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        
    }

    function name() public pure returns (string memory) { return _name; }
    function getTxAmount() public view returns(uint256) {return maxTxAmount;}
    function getMaxWallet() public view returns(uint256) {return maxWalletAmount;}
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public view override returns (uint256) { return _tTotal; }
    function balanceOf(address account) public view override returns (uint256) { return _tOwned[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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

    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");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= maxWalletAmount, "Exceeds the maxWalletSize.");
        }
        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) {             
                require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size.");
        }

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

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoLiquidity = (amount * buyAutoLiquidityFee) / masterTaxDivisor;
            tokensForAutoBurn = (amount * buyAutoBurnFee) / masterTaxDivisor;         
            tokensForMarketing = (amount * buyMarketingFee) / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoLiquidity = (amount * sellAutoLiquidityFee) / masterTaxDivisor;
            tokensForAutoBurn = (amount * sellAutoBurnFee) / masterTaxDivisor;
            tokensForMarketing = (amount * sellMarketingFee) / masterTaxDivisor;        
        }
        _tOwned[pairAddress] += tokensForAutoLiquidity;
        emit Transfer(from, pairAddress, tokensForAutoLiquidity);
        
        _tOwned[DEAD] += tokensForAutoBurn;
        _tTotal = _tTotal - tokensForAutoBurn;
        _tTotal = totalSupply();
        emit Transfer(from, DEAD, tokensForAutoBurn);
                
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);

        uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

     function excludeFromMaxWalletLimit(address account) public onlyOwner {
		_isExcludedFromMaxWalletSize[account] = true;
	}

    function includeInMaxWalletLimit(address account) public onlyOwner {
		_isExcludedFromMaxWalletSize[account] = false;
	}

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }

      function RervertSellFeesToOriginalTax() external onlyOwner {
        //Revert to original sell tax 
        sellAutoLiquidityFee = 500;
        sellAutoBurnFee = 0;
        sellMarketingFee = 500;
        totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
    }
    function sendETHToFee(uint256 amount) private {
        feeAddrWallet.transfer(amount);
    } 

    receive() external payable{
    }
}

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":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RervertSellFeesToOriginalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","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":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","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":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260075460065460055462000019919062000c90565b62000025919062000c90565b600855600b54600a546009546200003d919062000c90565b62000049919062000c90565b600c55612710601060006101000a81548161ffff021916908361ffff1602179055506000601260146101000a81548160ff0219169083151502179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506009600a620000cc919062000d48565b633b9aca00620000dd919062000e85565b6013556009600a620000f0919062000d48565b6298968062000100919062000e85565b6014556009600a62000113919062000d48565b6298968062000123919062000e85565b6015553480156200013357600080fd5b50620001546200014862000a7c60201b60201c565b62000a8460201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f557600080fd5b505afa1580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000230919062000b9f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029357600080fd5b505afa158015620002a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000b9f565b6040518363ffffffff1660e01b8152600401620002ed92919062000c19565b602060405180830381600087803b1580156200030857600080fd5b505af11580156200031d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000343919062000b9f565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ca57600080fd5b505afa158015620003df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000405919062000b9f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046857600080fd5b505afa1580156200047d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a3919062000b9f565b6040518363ffffffff1660e01b8152600401620004c292919062000c19565b60206040518083038186803b158015620004db57600080fd5b505afa158015620004f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000516919062000b9f565b601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736c4cbb4862252711dea50afd5a30cedc0430405c601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135460016000620005c262000b4860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006101f4905060008060008060006105dc90508560058190555084600681905550836007819055506007546006546005546200063e919062000c90565b6200064a919062000c90565b6008819055508260098190555081600a8190555080600b81905550600b54600a546009546200067a919062000c90565b62000686919062000c90565b600c81905550600160036000620006a262000b4860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620007db62000b4860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200090e62000b4860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6013546040516200096f919062000c73565b60405180910390a3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040162000a1892919062000c46565b602060405180830381600087803b15801562000a3357600080fd5b505af115801562000a48573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a6e919062000bcb565b505050505050505062000fad565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000b828162000f79565b92915050565b60008151905062000b998162000f93565b92915050565b60006020828403121562000bb257600080fd5b600062000bc28482850162000b71565b91505092915050565b60006020828403121562000bde57600080fd5b600062000bee8482850162000b88565b91505092915050565b62000c028162000ee6565b82525050565b62000c138162000f26565b82525050565b600060408201905062000c30600083018562000bf7565b62000c3f602083018462000bf7565b9392505050565b600060408201905062000c5d600083018562000bf7565b62000c6c602083018462000c08565b9392505050565b600060208201905062000c8a600083018462000c08565b92915050565b600062000c9d8262000f26565b915062000caa8362000f26565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ce25762000ce162000f3d565b5b828201905092915050565b6000808291508390505b600185111562000d3f5780860481111562000d175762000d1662000f3d565b5b600185161562000d275780820291505b808102905062000d378562000f6c565b945062000cf7565b94509492505050565b600062000d558262000f26565b915062000d628362000f30565b925062000d917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d99565b905092915050565b60008262000dab576001905062000e7e565b8162000dbb576000905062000e7e565b816001811462000dd4576002811462000ddf5762000e15565b600191505062000e7e565b60ff84111562000df45762000df362000f3d565b5b8360020a91508482111562000e0e5762000e0d62000f3d565b5b5062000e7e565b5060208310610133831016604e8410600b841016171562000e4f5782820a90508381111562000e495762000e4862000f3d565b5b62000e7e565b62000e5e848484600162000ced565b9250905081840481111562000e785762000e7762000f3d565b5b81810290505b9392505050565b600062000e928262000f26565b915062000e9f8362000f26565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000edb5762000eda62000f3d565b5b828202905092915050565b600062000ef38262000f06565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b62000f848162000ee6565b811462000f9057600080fd5b50565b62000f9e8162000efa565b811462000faa57600080fd5b50565b6134fb8062000fbd6000396000f3fe6080604052600436106102085760003560e01c806384d6c8c611610118578063c9567bf9116100a0578063dd62ed3e1161006f578063dd62ed3e14610724578063ea2f0b3714610761578063ebece9c91461078a578063f239eab8146107b3578063f2fde38b146107de5761020f565b8063c9567bf91461068c578063c99f2fed146106a3578063cc70acee146106ce578063d0a39814146106f95761020f565b80639740a946116100e75780639740a946146105a55780639f71146d146105d0578063a8b08982146105f9578063a9059cbb14610624578063b9e93700146106615761020f565b806384d6c8c6146104f95780638da5cb5b14610524578063921369131461054f57806395d89b411461057a5761020f565b8063313ce5671161019b57806347afcbfe1161016a57806347afcbfe146104245780636cce46fc1461044f57806370a082311461047a578063715018a6146104b75780637bce5a04146104ce5761020f565b8063313ce567146103905780633722355c146103bb5780633e0c23b8146103e4578063437823ec146103fb5761020f565b806318160ddd116101d757806318160ddd146102d25780631d6167ac146102fd5780631f3fed8f1461032857806323b872dd146103535761020f565b806303fd2a451461021457806306fdde031461023f578063095ea7b31461026a5780630fa604e4146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610807565b6040516102369190612a41565b60405180910390f35b34801561024b57600080fd5b5061025461080d565b6040516102619190612a77565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906126c7565b61084a565b60405161029e9190612a5c565b60405180910390f35b3480156102b357600080fd5b506102bc610868565b6040516102c99190612c74565b60405180910390f35b3480156102de57600080fd5b506102e7610872565b6040516102f49190612c74565b60405180910390f35b34801561030957600080fd5b5061031261087c565b60405161031f9190612c59565b60405180910390f35b34801561033457600080fd5b5061033d610890565b60405161034a9190612c74565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190612678565b610896565b6040516103879190612a5c565b60405180910390f35b34801561039c57600080fd5b506103a5610997565b6040516103b29190612ce9565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd91906125ea565b6109a0565b005b3480156103f057600080fd5b506103f9610a77565b005b34801561040757600080fd5b50610422600480360381019061041d91906125ea565b610b32565b005b34801561043057600080fd5b50610439610c09565b6040516104469190612c74565b60405180910390f35b34801561045b57600080fd5b50610464610c0f565b6040516104719190612c74565b60405180910390f35b34801561048657600080fd5b506104a1600480360381019061049c91906125ea565b610c15565b6040516104ae9190612c74565b60405180910390f35b3480156104c357600080fd5b506104cc610c5e565b005b3480156104da57600080fd5b506104e3610ce6565b6040516104f09190612c74565b60405180910390f35b34801561050557600080fd5b5061050e610cec565b60405161051b9190612c74565b60405180910390f35b34801561053057600080fd5b50610539610cf6565b6040516105469190612a41565b60405180910390f35b34801561055b57600080fd5b50610564610d1f565b6040516105719190612c74565b60405180910390f35b34801561058657600080fd5b5061058f610d25565b60405161059c9190612a77565b60405180910390f35b3480156105b157600080fd5b506105ba610d62565b6040516105c79190612c74565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f291906125ea565b610d68565b005b34801561060557600080fd5b5061060e610e3f565b60405161061b9190612a41565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906126c7565b610e65565b6040516106589190612a5c565b60405180910390f35b34801561066d57600080fd5b50610676610e83565b6040516106839190612c74565b60405180910390f35b34801561069857600080fd5b506106a1610e89565b005b3480156106af57600080fd5b506106b8610f8d565b6040516106c59190612c74565b60405180910390f35b3480156106da57600080fd5b506106e3610f93565b6040516106f09190612c74565b60405180910390f35b34801561070557600080fd5b5061070e610f99565b60405161071b9190612c74565b60405180910390f35b34801561073057600080fd5b5061074b6004803603810190610746919061263c565b610f9f565b6040516107589190612c74565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906125ea565b611026565b005b34801561079657600080fd5b506107b160048036038101906107ac9190612703565b6110fd565b005b3480156107bf57600080fd5b506107c86111bb565b6040516107d59190612c74565b60405180910390f35b3480156107ea57600080fd5b50610805600480360381019061080091906125ea565b6111c1565b005b61dead81565b60606040518060400160405280600981526020017f4d65676120426f6e6b0000000000000000000000000000000000000000000000815250905090565b600061085e6108576112b9565b84846112c1565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108a384848461148c565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108ee6112b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590612b59565b60405180910390fd5b61098b8561097a6112b9565b85846109869190612fab565b6112c1565b60019150509392505050565b60006009905090565b6109a86112b9565b73ffffffffffffffffffffffffffffffffffffffff166109c6610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390612b79565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a7f6112b9565b73ffffffffffffffffffffffffffffffffffffffff16610a9d610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea90612b79565b60405180910390fd5b6101f46009819055506000600a819055506101f4600b81905550600b54600a54600954610b209190612d59565b610b2a9190612d59565b600c81905550565b610b3a6112b9565b73ffffffffffffffffffffffffffffffffffffffff16610b58610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba590612b79565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c666112b9565b73ffffffffffffffffffffffffffffffffffffffff16610c84610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190612b79565b60405180910390fd5b610ce46000611b6b565b565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600681526020017f4b41424f4f4d0000000000000000000000000000000000000000000000000000815250905090565b600d5481565b610d706112b9565b73ffffffffffffffffffffffffffffffffffffffff16610d8e610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddb90612b79565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e79610e726112b9565b848461148c565b6001905092915050565b60085481565b610e916112b9565b73ffffffffffffffffffffffffffffffffffffffff16610eaf610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc90612b79565b60405180910390fd5b601260149054906101000a900460ff1615610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612c19565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61102e6112b9565b73ffffffffffffffffffffffffffffffffffffffff1661104c610cf6565b73ffffffffffffffffffffffffffffffffffffffff16146110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990612b79565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111056112b9565b73ffffffffffffffffffffffffffffffffffffffff16611123610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614611179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117090612b79565b60405180910390fd5b6009600a6111879190612e33565b826111929190612f51565b6015819055506009600a6111a69190612e33565b816111b19190612f51565b6014819055505050565b60055481565b6111c96112b9565b73ffffffffffffffffffffffffffffffffffffffff166111e7610cf6565b73ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490612b79565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612af9565b60405180910390fd5b6112b681611b6b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890612bf9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890612b19565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161147f9190612c74565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f390612bb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561156c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156390612a99565b60405180910390fd5b600081116115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690612b99565b60405180910390fd5b6115b883610c15565b8111156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f190612ad9565b60405180910390fd5b601260149054906101000a900460ff168061165e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116b25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e890612c39565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561179c5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117f25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118955760155481111561183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390612ab9565b60405180910390fd5b6014548161184984610c15565b6118539190612d59565b1115611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90612bd9565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119405750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119965750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119f4576014546119a783610c15565b826119b29190612d59565b11156119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea90612b39565b60405180910390fd5b5b60006119ff30610c15565b9050601260159054906101000a900460ff16158015611a6c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a845750601260169054906101000a900460ff165b8015611a905750600081115b15611ab857611a9e81611c2f565b60004790506000811115611ab657611ab547611f29565b5b505b611b65848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b5f5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f95565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c8d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611cbb5781602001602082028036833780820191505090505b5090503081600081518110611cf9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190612613565b81600181518110611e0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7430601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112c1565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ed8959493929190612c8f565b600060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f91573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fe49190612fab565b92505081905550600081611ff85782612004565b6120038585856120c8565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120559190612d59565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120b99190612c74565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561212957506000600854115b156121cc57601060009054906101000a900461ffff1661ffff16600554836121519190612f51565b61215b9190612daf565b600d81905550601060009054906101000a900461ffff1661ffff16600654836121849190612f51565b61218e9190612daf565b600e81905550601060009054906101000a900461ffff1661ffff16600754836121b79190612f51565b6121c19190612daf565b600f819055506122cb565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561222b57506000600c54115b156122ca57601060009054906101000a900461ffff1661ffff16600954836122539190612f51565b61225d9190612daf565b600d81905550601060009054906101000a900461ffff1661ffff16600a54836122869190612f51565b6122909190612daf565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836122b99190612f51565b6122c39190612daf565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461233e9190612d59565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516123c69190612c74565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124219190612d59565b92505081905550600e546013546124389190612fab565b601381905550612446610872565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516124ad9190612c74565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125069190612d59565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161256c9190612c74565b60405180910390a36000600f54600e54600d546125899190612d59565b6125939190612d59565b905080836125a19190612fab565b9150509392505050565b6000813590506125ba81613497565b92915050565b6000815190506125cf81613497565b92915050565b6000813590506125e4816134ae565b92915050565b6000602082840312156125fc57600080fd5b600061260a848285016125ab565b91505092915050565b60006020828403121561262557600080fd5b6000612633848285016125c0565b91505092915050565b6000806040838503121561264f57600080fd5b600061265d858286016125ab565b925050602061266e858286016125ab565b9150509250929050565b60008060006060848603121561268d57600080fd5b600061269b868287016125ab565b93505060206126ac868287016125ab565b92505060406126bd868287016125d5565b9150509250925092565b600080604083850312156126da57600080fd5b60006126e8858286016125ab565b92505060206126f9858286016125d5565b9150509250929050565b6000806040838503121561271657600080fd5b6000612724858286016125d5565b9250506020612735858286016125d5565b9150509250929050565b600061274b8383612757565b60208301905092915050565b61276081612fdf565b82525050565b61276f81612fdf565b82525050565b600061278082612d14565b61278a8185612d37565b935061279583612d04565b8060005b838110156127c65781516127ad888261273f565b97506127b883612d2a565b925050600181019050612799565b5085935050505092915050565b6127dc81612ff1565b82525050565b6127eb81613042565b82525050565b60006127fc82612d1f565b6128068185612d48565b9350612816818560208601613054565b61281f816130e5565b840191505092915050565b6000612837602383612d48565b915061284282613103565b604082019050919050565b600061285a601983612d48565b915061286582613152565b602082019050919050565b600061287d603183612d48565b91506128888261317b565b604082019050919050565b60006128a0602683612d48565b91506128ab826131ca565b604082019050919050565b60006128c3602283612d48565b91506128ce82613219565b604082019050919050565b60006128e6602283612d48565b91506128f182613268565b604082019050919050565b6000612909602883612d48565b9150612914826132b7565b604082019050919050565b600061292c602083612d48565b915061293782613306565b602082019050919050565b600061294f602983612d48565b915061295a8261332f565b604082019050919050565b6000612972602583612d48565b915061297d8261337e565b604082019050919050565b6000612995601a83612d48565b91506129a0826133cd565b602082019050919050565b60006129b8602483612d48565b91506129c3826133f6565b604082019050919050565b60006129db601783612d48565b91506129e682613445565b602082019050919050565b60006129fe601783612d48565b9150612a098261346e565b602082019050919050565b612a1d81612ffd565b82525050565b612a2c8161302b565b82525050565b612a3b81613035565b82525050565b6000602082019050612a566000830184612766565b92915050565b6000602082019050612a7160008301846127d3565b92915050565b60006020820190508181036000830152612a9181846127f1565b905092915050565b60006020820190508181036000830152612ab28161282a565b9050919050565b60006020820190508181036000830152612ad28161284d565b9050919050565b60006020820190508181036000830152612af281612870565b9050919050565b60006020820190508181036000830152612b1281612893565b9050919050565b60006020820190508181036000830152612b32816128b6565b9050919050565b60006020820190508181036000830152612b52816128d9565b9050919050565b60006020820190508181036000830152612b72816128fc565b9050919050565b60006020820190508181036000830152612b928161291f565b9050919050565b60006020820190508181036000830152612bb281612942565b9050919050565b60006020820190508181036000830152612bd281612965565b9050919050565b60006020820190508181036000830152612bf281612988565b9050919050565b60006020820190508181036000830152612c12816129ab565b9050919050565b60006020820190508181036000830152612c32816129ce565b9050919050565b60006020820190508181036000830152612c52816129f1565b9050919050565b6000602082019050612c6e6000830184612a14565b92915050565b6000602082019050612c896000830184612a23565b92915050565b600060a082019050612ca46000830188612a23565b612cb160208301876127e2565b8181036040830152612cc38186612775565b9050612cd26060830185612766565b612cdf6080830184612a23565b9695505050505050565b6000602082019050612cfe6000830184612a32565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d648261302b565b9150612d6f8361302b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612da457612da3613087565b5b828201905092915050565b6000612dba8261302b565b9150612dc58361302b565b925082612dd557612dd46130b6565b5b828204905092915050565b6000808291508390505b6001851115612e2a57808604811115612e0657612e05613087565b5b6001851615612e155780820291505b8081029050612e23856130f6565b9450612dea565b94509492505050565b6000612e3e8261302b565b9150612e4983613035565b9250612e767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e7e565b905092915050565b600082612e8e5760019050612f4a565b81612e9c5760009050612f4a565b8160018114612eb25760028114612ebc57612eeb565b6001915050612f4a565b60ff841115612ece57612ecd613087565b5b8360020a915084821115612ee557612ee4613087565b5b50612f4a565b5060208310610133831016604e8410600b8410161715612f205782820a905083811115612f1b57612f1a613087565b5b612f4a565b612f2d8484846001612de0565b92509050818404811115612f4457612f43613087565b5b81810290505b9392505050565b6000612f5c8261302b565b9150612f678361302b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fa057612f9f613087565b5b828202905092915050565b6000612fb68261302b565b9150612fc18361302b565b925082821015612fd457612fd3613087565b5b828203905092915050565b6000612fea8261300b565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061304d8261302b565b9050919050565b60005b83811015613072578082015181840152602081019050613057565b83811115613081576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6134a081612fdf565b81146134ab57600080fd5b50565b6134b78161302b565b81146134c257600080fd5b5056fea2646970667358221220c518d6b0b880c584fc44d595d0c48840369cf66f65a6a53dc8ecd7015509ddae64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806384d6c8c611610118578063c9567bf9116100a0578063dd62ed3e1161006f578063dd62ed3e14610724578063ea2f0b3714610761578063ebece9c91461078a578063f239eab8146107b3578063f2fde38b146107de5761020f565b8063c9567bf91461068c578063c99f2fed146106a3578063cc70acee146106ce578063d0a39814146106f95761020f565b80639740a946116100e75780639740a946146105a55780639f71146d146105d0578063a8b08982146105f9578063a9059cbb14610624578063b9e93700146106615761020f565b806384d6c8c6146104f95780638da5cb5b14610524578063921369131461054f57806395d89b411461057a5761020f565b8063313ce5671161019b57806347afcbfe1161016a57806347afcbfe146104245780636cce46fc1461044f57806370a082311461047a578063715018a6146104b75780637bce5a04146104ce5761020f565b8063313ce567146103905780633722355c146103bb5780633e0c23b8146103e4578063437823ec146103fb5761020f565b806318160ddd116101d757806318160ddd146102d25780631d6167ac146102fd5780631f3fed8f1461032857806323b872dd146103535761020f565b806303fd2a451461021457806306fdde031461023f578063095ea7b31461026a5780630fa604e4146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b50610229610807565b6040516102369190612a41565b60405180910390f35b34801561024b57600080fd5b5061025461080d565b6040516102619190612a77565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906126c7565b61084a565b60405161029e9190612a5c565b60405180910390f35b3480156102b357600080fd5b506102bc610868565b6040516102c99190612c74565b60405180910390f35b3480156102de57600080fd5b506102e7610872565b6040516102f49190612c74565b60405180910390f35b34801561030957600080fd5b5061031261087c565b60405161031f9190612c59565b60405180910390f35b34801561033457600080fd5b5061033d610890565b60405161034a9190612c74565b60405180910390f35b34801561035f57600080fd5b5061037a60048036038101906103759190612678565b610896565b6040516103879190612a5c565b60405180910390f35b34801561039c57600080fd5b506103a5610997565b6040516103b29190612ce9565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd91906125ea565b6109a0565b005b3480156103f057600080fd5b506103f9610a77565b005b34801561040757600080fd5b50610422600480360381019061041d91906125ea565b610b32565b005b34801561043057600080fd5b50610439610c09565b6040516104469190612c74565b60405180910390f35b34801561045b57600080fd5b50610464610c0f565b6040516104719190612c74565b60405180910390f35b34801561048657600080fd5b506104a1600480360381019061049c91906125ea565b610c15565b6040516104ae9190612c74565b60405180910390f35b3480156104c357600080fd5b506104cc610c5e565b005b3480156104da57600080fd5b506104e3610ce6565b6040516104f09190612c74565b60405180910390f35b34801561050557600080fd5b5061050e610cec565b60405161051b9190612c74565b60405180910390f35b34801561053057600080fd5b50610539610cf6565b6040516105469190612a41565b60405180910390f35b34801561055b57600080fd5b50610564610d1f565b6040516105719190612c74565b60405180910390f35b34801561058657600080fd5b5061058f610d25565b60405161059c9190612a77565b60405180910390f35b3480156105b157600080fd5b506105ba610d62565b6040516105c79190612c74565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f291906125ea565b610d68565b005b34801561060557600080fd5b5061060e610e3f565b60405161061b9190612a41565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906126c7565b610e65565b6040516106589190612a5c565b60405180910390f35b34801561066d57600080fd5b50610676610e83565b6040516106839190612c74565b60405180910390f35b34801561069857600080fd5b506106a1610e89565b005b3480156106af57600080fd5b506106b8610f8d565b6040516106c59190612c74565b60405180910390f35b3480156106da57600080fd5b506106e3610f93565b6040516106f09190612c74565b60405180910390f35b34801561070557600080fd5b5061070e610f99565b60405161071b9190612c74565b60405180910390f35b34801561073057600080fd5b5061074b6004803603810190610746919061263c565b610f9f565b6040516107589190612c74565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906125ea565b611026565b005b34801561079657600080fd5b506107b160048036038101906107ac9190612703565b6110fd565b005b3480156107bf57600080fd5b506107c86111bb565b6040516107d59190612c74565b60405180910390f35b3480156107ea57600080fd5b50610805600480360381019061080091906125ea565b6111c1565b005b61dead81565b60606040518060400160405280600981526020017f4d65676120426f6e6b0000000000000000000000000000000000000000000000815250905090565b600061085e6108576112b9565b84846112c1565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108a384848461148c565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108ee6112b9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590612b59565b60405180910390fd5b61098b8561097a6112b9565b85846109869190612fab565b6112c1565b60019150509392505050565b60006009905090565b6109a86112b9565b73ffffffffffffffffffffffffffffffffffffffff166109c6610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390612b79565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a7f6112b9565b73ffffffffffffffffffffffffffffffffffffffff16610a9d610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea90612b79565b60405180910390fd5b6101f46009819055506000600a819055506101f4600b81905550600b54600a54600954610b209190612d59565b610b2a9190612d59565b600c81905550565b610b3a6112b9565b73ffffffffffffffffffffffffffffffffffffffff16610b58610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba590612b79565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c666112b9565b73ffffffffffffffffffffffffffffffffffffffff16610c84610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190612b79565b60405180910390fd5b610ce46000611b6b565b565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600681526020017f4b41424f4f4d0000000000000000000000000000000000000000000000000000815250905090565b600d5481565b610d706112b9565b73ffffffffffffffffffffffffffffffffffffffff16610d8e610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddb90612b79565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e79610e726112b9565b848461148c565b6001905092915050565b60085481565b610e916112b9565b73ffffffffffffffffffffffffffffffffffffffff16610eaf610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efc90612b79565b60405180910390fd5b601260149054906101000a900460ff1615610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612c19565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61102e6112b9565b73ffffffffffffffffffffffffffffffffffffffff1661104c610cf6565b73ffffffffffffffffffffffffffffffffffffffff16146110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990612b79565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111056112b9565b73ffffffffffffffffffffffffffffffffffffffff16611123610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614611179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117090612b79565b60405180910390fd5b6009600a6111879190612e33565b826111929190612f51565b6015819055506009600a6111a69190612e33565b816111b19190612f51565b6014819055505050565b60055481565b6111c96112b9565b73ffffffffffffffffffffffffffffffffffffffff166111e7610cf6565b73ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490612b79565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612af9565b60405180910390fd5b6112b681611b6b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132890612bf9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890612b19565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161147f9190612c74565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f390612bb9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561156c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156390612a99565b60405180910390fd5b600081116115af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a690612b99565b60405180910390fd5b6115b883610c15565b8111156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f190612ad9565b60405180910390fd5b601260149054906101000a900460ff168061165e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116b25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e890612c39565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561179c5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117f25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118955760155481111561183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390612ab9565b60405180910390fd5b6014548161184984610c15565b6118539190612d59565b1115611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90612bd9565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119405750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119965750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119f4576014546119a783610c15565b826119b29190612d59565b11156119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea90612b39565b60405180910390fd5b5b60006119ff30610c15565b9050601260159054906101000a900460ff16158015611a6c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a845750601260169054906101000a900460ff165b8015611a905750600081115b15611ab857611a9e81611c2f565b60004790506000811115611ab657611ab547611f29565b5b505b611b65848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b5f5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f95565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c8d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611cbb5781602001602082028036833780820191505090505b5090503081600081518110611cf9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190612613565b81600181518110611e0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7430601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112c1565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ed8959493929190612c8f565b600060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f91573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fe49190612fab565b92505081905550600081611ff85782612004565b6120038585856120c8565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120559190612d59565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120b99190612c74565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561212957506000600854115b156121cc57601060009054906101000a900461ffff1661ffff16600554836121519190612f51565b61215b9190612daf565b600d81905550601060009054906101000a900461ffff1661ffff16600654836121849190612f51565b61218e9190612daf565b600e81905550601060009054906101000a900461ffff1661ffff16600754836121b79190612f51565b6121c19190612daf565b600f819055506122cb565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561222b57506000600c54115b156122ca57601060009054906101000a900461ffff1661ffff16600954836122539190612f51565b61225d9190612daf565b600d81905550601060009054906101000a900461ffff1661ffff16600a54836122869190612f51565b6122909190612daf565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836122b99190612f51565b6122c39190612daf565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461233e9190612d59565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516123c69190612c74565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124219190612d59565b92505081905550600e546013546124389190612fab565b601381905550612446610872565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516124ad9190612c74565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125069190612d59565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161256c9190612c74565b60405180910390a36000600f54600e54600d546125899190612d59565b6125939190612d59565b905080836125a19190612fab565b9150509392505050565b6000813590506125ba81613497565b92915050565b6000815190506125cf81613497565b92915050565b6000813590506125e4816134ae565b92915050565b6000602082840312156125fc57600080fd5b600061260a848285016125ab565b91505092915050565b60006020828403121561262557600080fd5b6000612633848285016125c0565b91505092915050565b6000806040838503121561264f57600080fd5b600061265d858286016125ab565b925050602061266e858286016125ab565b9150509250929050565b60008060006060848603121561268d57600080fd5b600061269b868287016125ab565b93505060206126ac868287016125ab565b92505060406126bd868287016125d5565b9150509250925092565b600080604083850312156126da57600080fd5b60006126e8858286016125ab565b92505060206126f9858286016125d5565b9150509250929050565b6000806040838503121561271657600080fd5b6000612724858286016125d5565b9250506020612735858286016125d5565b9150509250929050565b600061274b8383612757565b60208301905092915050565b61276081612fdf565b82525050565b61276f81612fdf565b82525050565b600061278082612d14565b61278a8185612d37565b935061279583612d04565b8060005b838110156127c65781516127ad888261273f565b97506127b883612d2a565b925050600181019050612799565b5085935050505092915050565b6127dc81612ff1565b82525050565b6127eb81613042565b82525050565b60006127fc82612d1f565b6128068185612d48565b9350612816818560208601613054565b61281f816130e5565b840191505092915050565b6000612837602383612d48565b915061284282613103565b604082019050919050565b600061285a601983612d48565b915061286582613152565b602082019050919050565b600061287d603183612d48565b91506128888261317b565b604082019050919050565b60006128a0602683612d48565b91506128ab826131ca565b604082019050919050565b60006128c3602283612d48565b91506128ce82613219565b604082019050919050565b60006128e6602283612d48565b91506128f182613268565b604082019050919050565b6000612909602883612d48565b9150612914826132b7565b604082019050919050565b600061292c602083612d48565b915061293782613306565b602082019050919050565b600061294f602983612d48565b915061295a8261332f565b604082019050919050565b6000612972602583612d48565b915061297d8261337e565b604082019050919050565b6000612995601a83612d48565b91506129a0826133cd565b602082019050919050565b60006129b8602483612d48565b91506129c3826133f6565b604082019050919050565b60006129db601783612d48565b91506129e682613445565b602082019050919050565b60006129fe601783612d48565b9150612a098261346e565b602082019050919050565b612a1d81612ffd565b82525050565b612a2c8161302b565b82525050565b612a3b81613035565b82525050565b6000602082019050612a566000830184612766565b92915050565b6000602082019050612a7160008301846127d3565b92915050565b60006020820190508181036000830152612a9181846127f1565b905092915050565b60006020820190508181036000830152612ab28161282a565b9050919050565b60006020820190508181036000830152612ad28161284d565b9050919050565b60006020820190508181036000830152612af281612870565b9050919050565b60006020820190508181036000830152612b1281612893565b9050919050565b60006020820190508181036000830152612b32816128b6565b9050919050565b60006020820190508181036000830152612b52816128d9565b9050919050565b60006020820190508181036000830152612b72816128fc565b9050919050565b60006020820190508181036000830152612b928161291f565b9050919050565b60006020820190508181036000830152612bb281612942565b9050919050565b60006020820190508181036000830152612bd281612965565b9050919050565b60006020820190508181036000830152612bf281612988565b9050919050565b60006020820190508181036000830152612c12816129ab565b9050919050565b60006020820190508181036000830152612c32816129ce565b9050919050565b60006020820190508181036000830152612c52816129f1565b9050919050565b6000602082019050612c6e6000830184612a14565b92915050565b6000602082019050612c896000830184612a23565b92915050565b600060a082019050612ca46000830188612a23565b612cb160208301876127e2565b8181036040830152612cc38186612775565b9050612cd26060830185612766565b612cdf6080830184612a23565b9695505050505050565b6000602082019050612cfe6000830184612a32565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d648261302b565b9150612d6f8361302b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612da457612da3613087565b5b828201905092915050565b6000612dba8261302b565b9150612dc58361302b565b925082612dd557612dd46130b6565b5b828204905092915050565b6000808291508390505b6001851115612e2a57808604811115612e0657612e05613087565b5b6001851615612e155780820291505b8081029050612e23856130f6565b9450612dea565b94509492505050565b6000612e3e8261302b565b9150612e4983613035565b9250612e767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e7e565b905092915050565b600082612e8e5760019050612f4a565b81612e9c5760009050612f4a565b8160018114612eb25760028114612ebc57612eeb565b6001915050612f4a565b60ff841115612ece57612ecd613087565b5b8360020a915084821115612ee557612ee4613087565b5b50612f4a565b5060208310610133831016604e8410600b8410161715612f205782820a905083811115612f1b57612f1a613087565b5b612f4a565b612f2d8484846001612de0565b92509050818404811115612f4457612f43613087565b5b81810290505b9392505050565b6000612f5c8261302b565b9150612f678361302b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fa057612f9f613087565b5b828202905092915050565b6000612fb68261302b565b9150612fc18361302b565b925082821015612fd457612fd3613087565b5b828203905092915050565b6000612fea8261300b565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061304d8261302b565b9050919050565b60005b83811015613072578082015181840152602081019050613057565b83811115613081576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6134a081612fdf565b81146134ab57600080fd5b50565b6134b78161302b565b81146134c257600080fd5b5056fea2646970667358221220c518d6b0b880c584fc44d595d0c48840369cf66f65a6a53dc8ecd7015509ddae64736f6c63430008040033

Deployed Bytecode Sourcemap

4227:10551:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8052:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8925:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8206:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8444:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5274:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5234:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9071:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8369:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13852:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14340:291;;;;;;;;;;;;;:::i;:::-;;13614:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4976:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4934:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8531:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2890:94;;;;;;;;;;;;;:::i;:::-;;4804:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8127:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2667:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5013:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8290:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5149:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13983:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5401:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8640:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4841:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7866:178;;;;;;;;;;;;;:::i;:::-;;4768:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5193:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5051:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8790:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13733:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14113:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4727:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2992:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5321:73;5352:42;5321:73;:::o;8052:69::-;8089:13;8113:5;;;;;;;;;;;;;;;;;8106:12;;8052:69;:::o;8925:138::-;9000:4;9008:39;9017:12;:10;:12::i;:::-;9031:7;9040:6;9008:8;:39::i;:::-;9056:4;9049:11;;8925:138;;;;:::o;8206:78::-;8250:7;8267:15;;8260:22;;8206:78;:::o;8444:81::-;8497:7;8515;;8508:14;;8444:81;:::o;5274:38::-;;;;;;;;;;;;;:::o;5234:33::-;;;;:::o;9071:420::-;9177:4;9194:36;9204:6;9212:9;9223:6;9194:9;:36::i;:::-;9243:24;9270:11;:19;9282:6;9270:19;;;;;;;;;;;;;;;:33;9290:12;:10;:12::i;:::-;9270:33;;;;;;;;;;;;;;;;9243:60;;9342:6;9322:16;:26;;9314:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9404:57;9413:6;9421:12;:10;:12::i;:::-;9454:6;9435:16;:25;;;;:::i;:::-;9404:8;:57::i;:::-;9479:4;9472:11;;;9071:420;;;;;:::o;8369:69::-;8410:5;4717:1;8419:16;;8369:69;:::o;13852:123::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13966:4:::1;13926:28;:37;13955:7;13926:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;13852:123:::0;:::o;14340:291::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14473:3:::1;14450:20;:26;;;;14505:1;14487:15;:19;;;;14536:3;14517:16;:22;;;;14607:16;;14589:15;;14566:20;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;14550:13;:73;;;;14340:291::o:0;13614:111::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13713:4:::1;13683:18;:27;13702:7;13683:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13614:111:::0;:::o;4976:30::-;;;;:::o;4934:35::-;;;;:::o;8531:103::-;8597:7;8615;:16;8623:7;8615:16;;;;;;;;;;;;;;;;8608:23;;8531:103;;;:::o;2890:94::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2955:21:::1;2973:1;2955:9;:21::i;:::-;2890:94::o:0;4804:30::-;;;;:::o;8127:73::-;8170:7;8187:11;;8180:18;;8127:73;:::o;2667:87::-;2713:7;2740:6;;;;;;;;;;;2733:13;;2667:87;:::o;5013:31::-;;;;:::o;8290:73::-;8329:13;8353:7;;;;;;;;;;;;;;;;;8346:14;;8290:73;:::o;5149:37::-;;;;:::o;13983:122::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14095:5:::1;14055:28;:37;14084:7;14055:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;13983:122:::0;:::o;5401:26::-;;;;;;;;;;;;;:::o;8640:144::-;8718:4;8726:42;8736:12;:10;:12::i;:::-;8750:9;8761:6;8726:9;:42::i;:::-;8777:4;8770:11;;8640:144;;;;:::o;4841:84::-;;;;:::o;7866:178::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7930:11:::1;;;;;;;;;;;7929:12;7921:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7993:4;7979:11;;:18;;;;;;;;;;;;;;;;;;8022:4;8008:11;;:18;;;;;;;;;;;;;;;;;;7866:178::o:0;4768:29::-;;;;:::o;5193:32::-;;;;:::o;5051:89::-;;;;:::o;8790:129::-;8871:7;8889:11;:18;8901:5;8889:18;;;;;;;;;;;;;;;:27;8908:7;8889:27;;;;;;;;;;;;;;;;8882:34;;8790:129;;;;:::o;13733:110::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13830:5:::1;13800:18;:27;13819:7;13800:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13733:110:::0;:::o;14113:217::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4717:1:::1;14248:2;:14;;;;:::i;:::-;14233:12;:29;;;;:::i;:::-;14219:11;:43;;;;4717:1;14308:2;:14;;;;:::i;:::-;14291;:31;;;;:::i;:::-;14273:15;:49;;;;14113:217:::0;;:::o;4727:34::-;;;;:::o;2992:192::-;2813:12;:10;:12::i;:::-;2802:23;;:7;:5;:7::i;:::-;:23;;;2794:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3101:1:::1;3081:22;;:8;:22;;;;3073:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3157:19;3167:8;3157:9;:19::i;:::-;2992:192:::0;:::o;2088:98::-;2141:7;2168:10;2161:17;;2088:98;:::o;9499:335::-;9609:1;9592:19;;:5;:19;;;;9584:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9690:1;9671:21;;:7;:21;;;;9663:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9772:6;9742:11;:18;9754:5;9742:18;;;;;;;;;;;;;;;:27;9761:7;9742:27;;;;;;;;;;;;;;;:36;;;;9810:7;9794:32;;9803:5;9794:32;;;9819:6;9794:32;;;;;;:::i;:::-;;;;;;;;9499:335;;;:::o;9842:1576::-;9946:1;9930:18;;:4;:18;;;;9922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10023:1;10009:16;;:2;:16;;;;10001:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10093:1;10084:6;:10;10076:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10169:15;10179:4;10169:9;:15::i;:::-;10159:6;:25;;10151:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10260:11;;;;;;;;;;;:39;;;;10275:18;:24;10294:4;10275:24;;;;;;;;;;;;;;;;;;;;;;;;;10260:39;:65;;;;10303:18;:22;10322:2;10303:22;;;;;;;;;;;;;;;;;;;;;;;;;10260:65;10252:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10378:13;;;;;;;;;;;10370:21;;:4;:21;;;:55;;;;;10409:15;;;;;;;;;;;10395:30;;:2;:30;;;;10370:55;:83;;;;;10431:18;:22;10450:2;10431:22;;;;;;;;;;;;;;;;;;;;;;;;;10429:24;10370:83;10366:278;;;10492:11;;10482:6;:21;;10474:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10586:15;;10576:6;10560:13;10570:2;10560:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10552:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10366:278;10666:13;;;;;;;;;;;10658:21;;:4;:21;;;:55;;;;;10697:15;;;;;;;;;;;10683:30;;:2;:30;;;;10658:55;:93;;;;;10719:28;:32;10748:2;10719:32;;;;;;;;;;;;;;;;;;;;;;;;;10717:34;10658:93;10654:231;;;10819:15;;10802:13;10812:2;10802:9;:13::i;:::-;10793:6;:22;;;;:::i;:::-;:41;;10785:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10654:231;10897:28;10928:24;10946:4;10928:9;:24::i;:::-;10897:55;;10972:6;;;;;;;;;;;10971:7;:32;;;;;10990:13;;;;;;;;;;;10982:21;;:4;:21;;;;10971:32;:47;;;;;11007:11;;;;;;;;;;;10971:47;:73;;;;;11043:1;11022:20;:22;10971:73;10967:344;;;11065:38;11082:20;11065:16;:38::i;:::-;11122:26;11151:21;11122:50;;11215:1;11194:18;:22;11191:105;;;11241:35;11254:21;11241:12;:35::i;:::-;11191:105;10967:344;;11323:87;11338:4;11344:2;11348:6;11358:18;:24;11377:4;11358:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11386:18;:22;11405:2;11386:22;;;;;;;;;;;;;;;;;;;;;;;;;11358:50;11356:53;11323:14;:87::i;:::-;9842:1576;;;;:::o;3192:173::-;3248:16;3267:6;;;;;;;;;;;3248:25;;3293:8;3284:6;;:17;;;;;;;;;;;;;;;;;;3348:8;3317:40;;3338:8;3317:40;;;;;;;;;;;;3192:173;;:::o;11426:483::-;5978:4;5969:6;;:13;;;;;;;;;;;;;;;;;;11504:21:::1;11542:1;11528:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11504:40;;11573:4;11555;11560:1;11555:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;11599:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11589:4;11594:1;11589:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;11632:62;11649:4;11664:15;;;;;;;;;;;11682:11;11632:8;:62::i;:::-;11705:15;;;;;;;;;;;:66;;;11786:11;11812:1;11828:4;11855;11875:15;11705:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5993:1;6014:5:::0;6005:6;;:14;;;;;;;;;;;;;;;;;;11426:483;:::o;14637:95::-;14694:13;;;;;;;;;;;:22;;:30;14717:6;14694:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14637:95;:::o;11917:340::-;12044:6;12025:7;:15;12033:6;12025:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;12061:22;12087:7;12086:57;;12137:6;12086:57;;;12098:36;12108:6;12116:9;12127:6;12098:9;:36::i;:::-;12086:57;12061:82;;12176:14;12154:7;:18;12162:9;12154:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12223:9;12206:43;;12215:6;12206:43;;;12234:14;12206:43;;;;;;:::i;:::-;;;;;;;;11917:340;;;;;:::o;12265:1341::-;12344:7;12375:13;;;;;;;;;;;12367:21;;:4;:21;;;:41;;;;;12407:1;12392:12;;:16;12367:41;12364:649;;;12485:16;;;;;;;;;;;12452:49;;12462:19;;12453:6;:28;;;;:::i;:::-;12452:49;;;;:::i;:::-;12427:22;:74;;;;12564:16;;;;;;;;;;;12536:44;;12546:14;;12537:6;:23;;;;:::i;:::-;12536:44;;;;:::i;:::-;12516:17;:64;;;;12654:16;;;;;;;;;;;12625:45;;12635:15;;12626:6;:24;;;;:::i;:::-;12625:45;;;;:::i;:::-;12604:18;:66;;;;12364:649;;;12702:13;;;;;;;;;;;12696:19;;:2;:19;;;:41;;;;;12736:1;12720:13;;:17;12696:41;12692:321;;;12815:16;;;;;;;;;;;12781:50;;12791:20;;12782:6;:29;;;;:::i;:::-;12781:50;;;;:::i;:::-;12756:22;:75;;;;12895:16;;;;;;;;;;;12866:45;;12876:15;;12867:6;:24;;;;:::i;:::-;12866:45;;;;:::i;:::-;12846:17;:65;;;;12977:16;;;;;;;;;;;12947:46;;12957:16;;12948:6;:25;;;;:::i;:::-;12947:46;;;;:::i;:::-;12926:18;:67;;;;12692:321;12364:649;13047:22;;13023:7;:20;13031:11;;;;;;;;;;;13023:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13100:11;;;;;;;;;;;13085:51;;13094:4;13085:51;;;13113:22;;13085:51;;;;;;:::i;:::-;;;;;;;;13174:17;;13157:7;:13;5352:42;13157:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13222:17;;13212:7;;:27;;;;:::i;:::-;13202:7;:37;;;;13260:13;:11;:13::i;:::-;13250:7;:23;;;;5352:42;13289:39;;13298:4;13289:39;;;13310:17;;13289:39;;;;;;:::i;:::-;;;;;;;;13383:18;;13357:7;:22;13373:4;13357:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;13440:4;13417:49;;13426:4;13417:49;;;13447:18;;13417:49;;;;;;:::i;:::-;;;;;;;;13479:17;13544:18;;13524:17;;13499:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13479:83;;13589:9;13580:6;:18;;;;:::i;:::-;13573:25;;;12265:1341;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;353:87;;;;:::o;446:262::-;505:6;554:2;542:9;533:7;529:23;525:32;522:2;;;570:1;567;560:12;522:2;613:1;638:53;683:7;674:6;663:9;659:22;638:53;:::i;:::-;628:63;;584:117;512:196;;;;:::o;714:284::-;784:6;833:2;821:9;812:7;808:23;804:32;801:2;;;849:1;846;839:12;801:2;892:1;917:64;973:7;964:6;953:9;949:22;917:64;:::i;:::-;907:74;;863:128;791:207;;;;:::o;1004:407::-;1072:6;1080;1129:2;1117:9;1108:7;1104:23;1100:32;1097:2;;;1145:1;1142;1135:12;1097:2;1188:1;1213:53;1258:7;1249:6;1238:9;1234:22;1213:53;:::i;:::-;1203:63;;1159:117;1315:2;1341:53;1386:7;1377:6;1366:9;1362:22;1341:53;:::i;:::-;1331:63;;1286:118;1087:324;;;;;:::o;1417:552::-;1494:6;1502;1510;1559:2;1547:9;1538:7;1534:23;1530:32;1527:2;;;1575:1;1572;1565:12;1527:2;1618:1;1643:53;1688:7;1679:6;1668:9;1664:22;1643:53;:::i;:::-;1633:63;;1589:117;1745:2;1771:53;1816:7;1807:6;1796:9;1792:22;1771:53;:::i;:::-;1761:63;;1716:118;1873:2;1899:53;1944:7;1935:6;1924:9;1920:22;1899:53;:::i;:::-;1889:63;;1844:118;1517:452;;;;;:::o;1975:407::-;2043:6;2051;2100:2;2088:9;2079:7;2075:23;2071:32;2068:2;;;2116:1;2113;2106:12;2068:2;2159:1;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2130:117;2286:2;2312:53;2357:7;2348:6;2337:9;2333:22;2312:53;:::i;:::-;2302:63;;2257:118;2058:324;;;;;:::o;2388:407::-;2456:6;2464;2513:2;2501:9;2492:7;2488:23;2484:32;2481:2;;;2529:1;2526;2519:12;2481:2;2572:1;2597:53;2642:7;2633:6;2622:9;2618:22;2597:53;:::i;:::-;2587:63;;2543:117;2699:2;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;:::i;:::-;2715:63;;2670:118;2471:324;;;;;:::o;2801:179::-;2870:10;2891:46;2933:3;2925:6;2891:46;:::i;:::-;2969:4;2964:3;2960:14;2946:28;;2881:99;;;;:::o;2986:108::-;3063:24;3081:5;3063:24;:::i;:::-;3058:3;3051:37;3041:53;;:::o;3100:118::-;3187:24;3205:5;3187:24;:::i;:::-;3182:3;3175:37;3165:53;;:::o;3254:732::-;3373:3;3402:54;3450:5;3402:54;:::i;:::-;3472:86;3551:6;3546:3;3472:86;:::i;:::-;3465:93;;3582:56;3632:5;3582:56;:::i;:::-;3661:7;3692:1;3677:284;3702:6;3699:1;3696:13;3677:284;;;3778:6;3772:13;3805:63;3864:3;3849:13;3805:63;:::i;:::-;3798:70;;3891:60;3944:6;3891:60;:::i;:::-;3881:70;;3737:224;3724:1;3721;3717:9;3712:14;;3677:284;;;3681:14;3977:3;3970:10;;3378:608;;;;;;;:::o;3992:109::-;4073:21;4088:5;4073:21;:::i;:::-;4068:3;4061:34;4051:50;;:::o;4107:147::-;4202:45;4241:5;4202:45;:::i;:::-;4197:3;4190:58;4180:74;;:::o;4260:364::-;4348:3;4376:39;4409:5;4376:39;:::i;:::-;4431:71;4495:6;4490:3;4431:71;:::i;:::-;4424:78;;4511:52;4556:6;4551:3;4544:4;4537:5;4533:16;4511:52;:::i;:::-;4588:29;4610:6;4588:29;:::i;:::-;4583:3;4579:39;4572:46;;4352:272;;;;;:::o;4630:366::-;4772:3;4793:67;4857:2;4852:3;4793:67;:::i;:::-;4786:74;;4869:93;4958:3;4869:93;:::i;:::-;4987:2;4982:3;4978:12;4971:19;;4776:220;;;:::o;5002:366::-;5144:3;5165:67;5229:2;5224:3;5165:67;:::i;:::-;5158:74;;5241:93;5330:3;5241:93;:::i;:::-;5359:2;5354:3;5350:12;5343:19;;5148:220;;;:::o;5374:366::-;5516:3;5537:67;5601:2;5596:3;5537:67;:::i;:::-;5530:74;;5613:93;5702:3;5613:93;:::i;:::-;5731:2;5726:3;5722:12;5715:19;;5520:220;;;:::o;5746:366::-;5888:3;5909:67;5973:2;5968:3;5909:67;:::i;:::-;5902:74;;5985:93;6074:3;5985:93;:::i;:::-;6103:2;6098:3;6094:12;6087:19;;5892:220;;;:::o;6118:366::-;6260:3;6281:67;6345:2;6340:3;6281:67;:::i;:::-;6274:74;;6357:93;6446:3;6357:93;:::i;:::-;6475:2;6470:3;6466:12;6459:19;;6264:220;;;:::o;6490:366::-;6632:3;6653:67;6717:2;6712:3;6653:67;:::i;:::-;6646:74;;6729:93;6818:3;6729:93;:::i;:::-;6847:2;6842:3;6838:12;6831:19;;6636:220;;;:::o;6862:366::-;7004:3;7025:67;7089:2;7084:3;7025:67;:::i;:::-;7018:74;;7101:93;7190:3;7101:93;:::i;:::-;7219:2;7214:3;7210:12;7203:19;;7008:220;;;:::o;7234:366::-;7376:3;7397:67;7461:2;7456:3;7397:67;:::i;:::-;7390:74;;7473:93;7562:3;7473:93;:::i;:::-;7591:2;7586:3;7582:12;7575:19;;7380:220;;;:::o;7606:366::-;7748:3;7769:67;7833:2;7828:3;7769:67;:::i;:::-;7762:74;;7845:93;7934:3;7845:93;:::i;:::-;7963:2;7958:3;7954:12;7947:19;;7752:220;;;:::o;7978:366::-;8120:3;8141:67;8205:2;8200:3;8141:67;:::i;:::-;8134:74;;8217:93;8306:3;8217:93;:::i;:::-;8335:2;8330:3;8326:12;8319:19;;8124:220;;;:::o;8350:366::-;8492:3;8513:67;8577:2;8572:3;8513:67;:::i;:::-;8506:74;;8589:93;8678:3;8589:93;:::i;:::-;8707:2;8702:3;8698:12;8691:19;;8496:220;;;:::o;8722:366::-;8864:3;8885:67;8949:2;8944:3;8885:67;:::i;:::-;8878:74;;8961:93;9050:3;8961:93;:::i;:::-;9079:2;9074:3;9070:12;9063:19;;8868:220;;;:::o;9094:366::-;9236:3;9257:67;9321:2;9316:3;9257:67;:::i;:::-;9250:74;;9333:93;9422:3;9333:93;:::i;:::-;9451:2;9446:3;9442:12;9435:19;;9240:220;;;:::o;9466:366::-;9608:3;9629:67;9693:2;9688:3;9629:67;:::i;:::-;9622:74;;9705:93;9794:3;9705:93;:::i;:::-;9823:2;9818:3;9814:12;9807:19;;9612:220;;;:::o;9838:115::-;9923:23;9940:5;9923:23;:::i;:::-;9918:3;9911:36;9901:52;;:::o;9959:118::-;10046:24;10064:5;10046:24;:::i;:::-;10041:3;10034:37;10024:53;;:::o;10083:112::-;10166:22;10182:5;10166:22;:::i;:::-;10161:3;10154:35;10144:51;;:::o;10201:222::-;10294:4;10332:2;10321:9;10317:18;10309:26;;10345:71;10413:1;10402:9;10398:17;10389:6;10345:71;:::i;:::-;10299:124;;;;:::o;10429:210::-;10516:4;10554:2;10543:9;10539:18;10531:26;;10567:65;10629:1;10618:9;10614:17;10605:6;10567:65;:::i;:::-;10521:118;;;;:::o;10645:313::-;10758:4;10796:2;10785:9;10781:18;10773:26;;10845:9;10839:4;10835:20;10831:1;10820:9;10816:17;10809:47;10873:78;10946:4;10937:6;10873:78;:::i;:::-;10865:86;;10763:195;;;;:::o;10964:419::-;11130:4;11168:2;11157:9;11153:18;11145:26;;11217:9;11211:4;11207:20;11203:1;11192:9;11188:17;11181:47;11245:131;11371:4;11245:131;:::i;:::-;11237:139;;11135:248;;;:::o;11389:419::-;11555:4;11593:2;11582:9;11578:18;11570:26;;11642:9;11636:4;11632:20;11628:1;11617:9;11613:17;11606:47;11670:131;11796:4;11670:131;:::i;:::-;11662:139;;11560:248;;;:::o;11814:419::-;11980:4;12018:2;12007:9;12003:18;11995:26;;12067:9;12061:4;12057:20;12053:1;12042:9;12038:17;12031:47;12095:131;12221:4;12095:131;:::i;:::-;12087:139;;11985:248;;;:::o;12239:419::-;12405:4;12443:2;12432:9;12428:18;12420:26;;12492:9;12486:4;12482:20;12478:1;12467:9;12463:17;12456:47;12520:131;12646:4;12520:131;:::i;:::-;12512:139;;12410:248;;;:::o;12664:419::-;12830:4;12868:2;12857:9;12853:18;12845:26;;12917:9;12911:4;12907:20;12903:1;12892:9;12888:17;12881:47;12945:131;13071:4;12945:131;:::i;:::-;12937:139;;12835:248;;;:::o;13089:419::-;13255:4;13293:2;13282:9;13278:18;13270:26;;13342:9;13336:4;13332:20;13328:1;13317:9;13313:17;13306:47;13370:131;13496:4;13370:131;:::i;:::-;13362:139;;13260:248;;;:::o;13514:419::-;13680:4;13718:2;13707:9;13703:18;13695:26;;13767:9;13761:4;13757:20;13753:1;13742:9;13738:17;13731:47;13795:131;13921:4;13795:131;:::i;:::-;13787:139;;13685:248;;;:::o;13939:419::-;14105:4;14143:2;14132:9;14128:18;14120:26;;14192:9;14186:4;14182:20;14178:1;14167:9;14163:17;14156:47;14220:131;14346:4;14220:131;:::i;:::-;14212:139;;14110:248;;;:::o;14364:419::-;14530:4;14568:2;14557:9;14553:18;14545:26;;14617:9;14611:4;14607:20;14603:1;14592:9;14588:17;14581:47;14645:131;14771:4;14645:131;:::i;:::-;14637:139;;14535:248;;;:::o;14789:419::-;14955:4;14993:2;14982:9;14978:18;14970:26;;15042:9;15036:4;15032:20;15028:1;15017:9;15013:17;15006:47;15070:131;15196:4;15070:131;:::i;:::-;15062:139;;14960:248;;;:::o;15214:419::-;15380:4;15418:2;15407:9;15403:18;15395:26;;15467:9;15461:4;15457:20;15453:1;15442:9;15438:17;15431:47;15495:131;15621:4;15495:131;:::i;:::-;15487:139;;15385:248;;;:::o;15639:419::-;15805:4;15843:2;15832:9;15828:18;15820:26;;15892:9;15886:4;15882:20;15878:1;15867:9;15863:17;15856:47;15920:131;16046:4;15920:131;:::i;:::-;15912:139;;15810:248;;;:::o;16064:419::-;16230:4;16268:2;16257:9;16253:18;16245:26;;16317:9;16311:4;16307:20;16303:1;16292:9;16288:17;16281:47;16345:131;16471:4;16345:131;:::i;:::-;16337:139;;16235:248;;;:::o;16489:419::-;16655:4;16693:2;16682:9;16678:18;16670:26;;16742:9;16736:4;16732:20;16728:1;16717:9;16713:17;16706:47;16770:131;16896:4;16770:131;:::i;:::-;16762:139;;16660:248;;;:::o;16914:218::-;17005:4;17043:2;17032:9;17028:18;17020:26;;17056:69;17122:1;17111:9;17107:17;17098:6;17056:69;:::i;:::-;17010:122;;;;:::o;17138:222::-;17231:4;17269:2;17258:9;17254:18;17246:26;;17282:71;17350:1;17339:9;17335:17;17326:6;17282:71;:::i;:::-;17236:124;;;;:::o;17366:831::-;17629:4;17667:3;17656:9;17652:19;17644:27;;17681:71;17749:1;17738:9;17734:17;17725:6;17681:71;:::i;:::-;17762:80;17838:2;17827:9;17823:18;17814:6;17762:80;:::i;:::-;17889:9;17883:4;17879:20;17874:2;17863:9;17859:18;17852:48;17917:108;18020:4;18011:6;17917:108;:::i;:::-;17909:116;;18035:72;18103:2;18092:9;18088:18;18079:6;18035:72;:::i;:::-;18117:73;18185:3;18174:9;18170:19;18161:6;18117:73;:::i;:::-;17634:563;;;;;;;;:::o;18203:214::-;18292:4;18330:2;18319:9;18315:18;18307:26;;18343:67;18407:1;18396:9;18392:17;18383:6;18343:67;:::i;:::-;18297:120;;;;:::o;18423:132::-;18490:4;18513:3;18505:11;;18543:4;18538:3;18534:14;18526:22;;18495:60;;;:::o;18561:114::-;18628:6;18662:5;18656:12;18646:22;;18635:40;;;:::o;18681:99::-;18733:6;18767:5;18761:12;18751:22;;18740:40;;;:::o;18786:113::-;18856:4;18888;18883:3;18879:14;18871:22;;18861:38;;;:::o;18905:184::-;19004:11;19038:6;19033:3;19026:19;19078:4;19073:3;19069:14;19054:29;;19016:73;;;;:::o;19095:169::-;19179:11;19213:6;19208:3;19201:19;19253:4;19248:3;19244:14;19229:29;;19191:73;;;;:::o;19270:305::-;19310:3;19329:20;19347:1;19329:20;:::i;:::-;19324:25;;19363:20;19381:1;19363:20;:::i;:::-;19358:25;;19517:1;19449:66;19445:74;19442:1;19439:81;19436:2;;;19523:18;;:::i;:::-;19436:2;19567:1;19564;19560:9;19553:16;;19314:261;;;;:::o;19581:185::-;19621:1;19638:20;19656:1;19638:20;:::i;:::-;19633:25;;19672:20;19690:1;19672:20;:::i;:::-;19667:25;;19711:1;19701:2;;19716:18;;:::i;:::-;19701:2;19758:1;19755;19751:9;19746:14;;19623:143;;;;:::o;19772:848::-;19833:5;19840:4;19864:6;19855:15;;19888:5;19879:14;;19902:712;19923:1;19913:8;19910:15;19902:712;;;20018:4;20013:3;20009:14;20003:4;20000:24;19997:2;;;20027:18;;:::i;:::-;19997:2;20077:1;20067:8;20063:16;20060:2;;;20492:4;20485:5;20481:16;20472:25;;20060:2;20542:4;20536;20532:15;20524:23;;20572:32;20595:8;20572:32;:::i;:::-;20560:44;;19902:712;;;19845:775;;;;;;;:::o;20626:281::-;20684:5;20708:23;20726:4;20708:23;:::i;:::-;20700:31;;20752:25;20768:8;20752:25;:::i;:::-;20740:37;;20796:104;20833:66;20823:8;20817:4;20796:104;:::i;:::-;20787:113;;20690:217;;;;:::o;20913:1073::-;20967:5;21158:8;21148:2;;21179:1;21170:10;;21181:5;;21148:2;21207:4;21197:2;;21224:1;21215:10;;21226:5;;21197:2;21293:4;21341:1;21336:27;;;;21377:1;21372:191;;;;21286:277;;21336:27;21354:1;21345:10;;21356:5;;;21372:191;21417:3;21407:8;21404:17;21401:2;;;21424:18;;:::i;:::-;21401:2;21473:8;21470:1;21466:16;21457:25;;21508:3;21501:5;21498:14;21495:2;;;21515:18;;:::i;:::-;21495:2;21548:5;;;21286:277;;21672:2;21662:8;21659:16;21653:3;21647:4;21644:13;21640:36;21622:2;21612:8;21609:16;21604:2;21598:4;21595:12;21591:35;21575:111;21572:2;;;21728:8;21722:4;21718:19;21709:28;;21763:3;21756:5;21753:14;21750:2;;;21770:18;;:::i;:::-;21750:2;21803:5;;21572:2;21843:42;21881:3;21871:8;21865:4;21862:1;21843:42;:::i;:::-;21828:57;;;;21917:4;21912:3;21908:14;21901:5;21898:25;21895:2;;;21926:18;;:::i;:::-;21895:2;21975:4;21968:5;21964:16;21955:25;;20973:1013;;;;;;:::o;21992:348::-;22032:7;22055:20;22073:1;22055:20;:::i;:::-;22050:25;;22089:20;22107:1;22089:20;:::i;:::-;22084:25;;22277:1;22209:66;22205:74;22202:1;22199:81;22194:1;22187:9;22180:17;22176:105;22173:2;;;22284:18;;:::i;:::-;22173:2;22332:1;22329;22325:9;22314:20;;22040:300;;;;:::o;22346:191::-;22386:4;22406:20;22424:1;22406:20;:::i;:::-;22401:25;;22440:20;22458:1;22440:20;:::i;:::-;22435:25;;22479:1;22476;22473:8;22470:2;;;22484:18;;:::i;:::-;22470:2;22529:1;22526;22522:9;22514:17;;22391:146;;;;:::o;22543:96::-;22580:7;22609:24;22627:5;22609:24;:::i;:::-;22598:35;;22588:51;;;:::o;22645:90::-;22679:7;22722:5;22715:13;22708:21;22697:32;;22687:48;;;:::o;22741:89::-;22777:7;22817:6;22810:5;22806:18;22795:29;;22785:45;;;:::o;22836:126::-;22873:7;22913:42;22906:5;22902:54;22891:65;;22881:81;;;:::o;22968:77::-;23005:7;23034:5;23023:16;;23013:32;;;:::o;23051:86::-;23086:7;23126:4;23119:5;23115:16;23104:27;;23094:43;;;:::o;23143:121::-;23201:9;23234:24;23252:5;23234:24;:::i;:::-;23221:37;;23211:53;;;:::o;23270:307::-;23338:1;23348:113;23362:6;23359:1;23356:13;23348:113;;;23447:1;23442:3;23438:11;23432:18;23428:1;23423:3;23419:11;23412:39;23384:2;23381:1;23377:10;23372:15;;23348:113;;;23479:6;23476:1;23473:13;23470:2;;;23559:1;23550:6;23545:3;23541:16;23534:27;23470:2;23319:258;;;;:::o;23583:180::-;23631:77;23628:1;23621:88;23728:4;23725:1;23718:15;23752:4;23749:1;23742:15;23769:180;23817:77;23814:1;23807:88;23914:4;23911:1;23904:15;23938:4;23935:1;23928:15;23955:102;23996:6;24047:2;24043:7;24038:2;24031:5;24027:14;24023:28;24013:38;;24003:54;;;:::o;24063:102::-;24105:8;24152:5;24149:1;24145:13;24124:34;;24114:51;;;:::o;24171:222::-;24311:34;24307:1;24299:6;24295:14;24288:58;24380:5;24375:2;24367:6;24363:15;24356:30;24277:116;:::o;24399:175::-;24539:27;24535:1;24527:6;24523:14;24516:51;24505:69;:::o;24580:236::-;24720:34;24716:1;24708:6;24704:14;24697:58;24789:19;24784:2;24776:6;24772:15;24765:44;24686:130;:::o;24822:225::-;24962:34;24958:1;24950:6;24946:14;24939:58;25031:8;25026:2;25018:6;25014:15;25007:33;24928:119;:::o;25053:221::-;25193:34;25189:1;25181:6;25177:14;25170:58;25262:4;25257:2;25249:6;25245:15;25238:29;25159:115;:::o;25280:221::-;25420:34;25416:1;25408:6;25404:14;25397:58;25489:4;25484:2;25476:6;25472:15;25465:29;25386:115;:::o;25507:227::-;25647:34;25643:1;25635:6;25631:14;25624:58;25716:10;25711:2;25703:6;25699:15;25692:35;25613:121;:::o;25740:182::-;25880:34;25876:1;25868:6;25864:14;25857:58;25846:76;:::o;25928:228::-;26068:34;26064:1;26056:6;26052:14;26045:58;26137:11;26132:2;26124:6;26120:15;26113:36;26034:122;:::o;26162:224::-;26302:34;26298:1;26290:6;26286:14;26279:58;26371:7;26366:2;26358:6;26354:15;26347:32;26268:118;:::o;26392:176::-;26532:28;26528:1;26520:6;26516:14;26509:52;26498:70;:::o;26574:223::-;26714:34;26710:1;26702:6;26698:14;26691:58;26783:6;26778:2;26770:6;26766:15;26759:31;26680:117;:::o;26803:173::-;26943:25;26939:1;26931:6;26927:14;26920:49;26909:67;:::o;26982:173::-;27122:25;27118:1;27110:6;27106:14;27099:49;27088:67;:::o;27161:122::-;27234:24;27252:5;27234:24;:::i;:::-;27227:5;27224:35;27214:2;;27273:1;27270;27263:12;27214:2;27204:79;:::o;27289:122::-;27362:24;27380:5;27362:24;:::i;:::-;27355:5;27352:35;27342:2;;27401:1;27398;27391:12;27342:2;27332:79;:::o

Swarm Source

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