ETH Price: $3,691.05 (+3.62%)

Token

ERC-20: Lightning Chain (Voltz)
 

Overview

Max Total Supply

1,000,000,000 Voltz

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
14,620,131.97 Voltz

Value
$0.00
0x49a7ebd400fb6ab8f59a56375c03d7e9cff059ff
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:
MainContract

Compiler Version
v0.8.15+commit.e14f2714

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-13
*/

// SPDX-License-Identifier: MIT

/*

Token Name: Lightning Chain
Symbol: Voltz
Supply: 1,000,000,000
initial buy 1% 10,000,000
max wallet 3% 30,000,000

Tax: 3/3 (3/8 initial tax will be reverted after bots are kicked)

1% LP
2% Market

socials:
    telegram: https://t.me/LightningChainETH
    twitter: updates at telegram...
    website: updates at telegram...
*/

pragma solidity 0.8.15;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function 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);  }

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {return msg.sender;}
    function _msgData() internal view virtual returns (bytes calldata) {this; 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 MainContract 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 = "Lightning Chain";
    string private constant _symbol = "Voltz";
    uint8 private constant _decimals = 9;

    uint256 public buyLiquidityFee=1;
    uint256 public buyBurnFee=0;
    uint256 public buyMarketingFee=2;
    uint256 public totalBuyFees = buyLiquidityFee + buyBurnFee + buyMarketingFee;
    bool private _true = false;
    uint256 public sellLiquidityFee=4;
    uint256 public sellBurnFee=0;
    uint256 public sellMarketingFee= 4;
    uint256 public totalSellFees =  sellLiquidityFee + sellBurnFee + sellMarketingFee;
   
    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForAutoBurn;  
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 100;
    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

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

    uint256 private _tTotal = 1000000000 * 10**9;
    uint256 private maxWalletAmount = 10000001 * 10**9;  
    uint256 private maxTxAmount = 10000001 * 10**9;      
    address payable private MarketAddrWallet;
    event MaxWalletAmountUpdated(uint maxWalletAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;    }

    constructor () {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        MarketAddrWallet = payable(0xd4592d21D479eC5320ddf1ec1796639B47709420); 
        _tOwned[owner()] = _tTotal;

        uint256 _buyLiquidityFee = 1;
        uint256 _buyBurnFee = 0;
        uint256 _buyMarketingFee = 2;

        uint256 _sellLiquidityFee = 4;
        uint256 _sellBurnFee = 0; 
        uint256 _sellMarketingFee = 4;       
        
        sellLiquidityFee = _sellLiquidityFee;
        sellBurnFee = _sellBurnFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellLiquidityFee + sellBurnFee + sellMarketingFee;

        buyLiquidityFee = _buyLiquidityFee;
        buyBurnFee = _buyBurnFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyLiquidityFee + buyBurnFee + buyMarketingFee;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketAddrWallet] = true;
        _isExcludedFromMaxWalletSize[owner()] = true;
        _isExcludedFromMaxWalletSize[address(this)] = true;
        _isExcludedFromMaxWalletSize[MarketAddrWallet] = true;  
        swapEnabled = true;
        tradingOpen = true;

        maxTxAmount = 10000001 * 10**9;
        maxWalletAmount = 10000001 * 10**9;          
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        emit Transfer(address(0), owner(), _tTotal);    }

    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 renuonceOwnership() public virtual onlyOwner {}
    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 openTrading() public onlyOwner {
            swapEnabled = true; tradingOpen = _true;}
    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 * buyLiquidityFee / masterTaxDivisor;
            tokensForAutoBurn = amount * buyBurnFee / masterTaxDivisor;         
            tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor;        } 
        else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoLiquidity = amount * sellLiquidityFee / masterTaxDivisor;
            tokensForAutoBurn = amount * sellBurnFee / 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 SetWalletand( uint256 _maxWalletSize) external onlyOwner{
        maxWalletAmount = _maxWalletSize * 10 **_decimals;   
    }

    function sendETHToFee(uint256 amount) private {
        MarketAddrWallet.transfer(amount);    
    } 

    function RervertTax() external onlyOwner{
        sellLiquidityFee = 1;
        sellBurnFee = 0;
        sellMarketingFee = 2;
       totalSellFees = sellLiquidityFee + sellBurnFee + sellMarketingFee;    
    }

    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":"RervertTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletand","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":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","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":"renuonceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","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"}]

608060405260016005556000600655600260075560075460065460055462000028919062000bba565b62000034919062000bba565b6008556000600960006101000a81548160ff0219169083151502179055506004600a556000600b556004600c55600c54600b54600a5462000076919062000bba565b62000082919062000bba565b600d556064601160006101000a81548161ffff021916908361ffff1602179055506000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550670de0b6b3a7640000601455662386f2ab5bca00601555662386f2ab5bca006016553480156200010857600080fd5b50620001296200011d62000a8c60201b60201c565b62000a9460201b60201c565b601360149054906101000a900460ff16156200017c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001739062000c78565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000222573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000248919062000d04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d6919062000d04565b6040518363ffffffff1660e01b8152600401620002f592919062000d47565b6020604051808303816000875af115801562000315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033b919062000d04565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ed919062000d04565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000455573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047b919062000d04565b6040518363ffffffff1660e01b81526004016200049a92919062000d47565b602060405180830381865afa158015620004b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004de919062000d04565b601160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d4592d21d479ec5320ddf1ec1796639b47709420601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601454600160006200058a62000b5860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060019050600080600290506000600490506000806004905082600a8190555081600b8190555080600c81905550600c54600b54600a546200060c919062000bba565b62000618919062000bba565b600d8190555085600581905550846006819055508360078190555060075460065460055462000648919062000bba565b62000654919062000bba565b6008819055506001600360006200067062000b5860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620007a962000b5860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550662386f2ab5bca00601681905550662386f2ab5bca00601581905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620009bf92919062000d85565b6020604051808303816000875af1158015620009df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a05919062000def565b5062000a1662000b5860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60145460405162000a77919062000e21565b60405180910390a35050505050505062000e3e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bc78262000b81565b915062000bd48362000b81565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c0c5762000c0b62000b8b565b5b828201905092915050565b600082825260208201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600062000c6060178362000c17565b915062000c6d8262000c28565b602082019050919050565b6000602082019050818103600083015262000c938162000c51565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ccc8262000c9f565b9050919050565b62000cde8162000cbf565b811462000cea57600080fd5b50565b60008151905062000cfe8162000cd3565b92915050565b60006020828403121562000d1d5762000d1c62000c9a565b5b600062000d2d8482850162000ced565b91505092915050565b62000d418162000cbf565b82525050565b600060408201905062000d5e600083018562000d36565b62000d6d602083018462000d36565b9392505050565b62000d7f8162000b81565b82525050565b600060408201905062000d9c600083018562000d36565b62000dab602083018462000d74565b9392505050565b60008115159050919050565b62000dc98162000db2565b811462000dd557600080fd5b50565b60008151905062000de98162000dbe565b92915050565b60006020828403121562000e085762000e0762000c9a565b5b600062000e188482850162000dd8565b91505092915050565b600060208201905062000e38600083018462000d74565b92915050565b6136038062000e4e6000396000f3fe60806040526004361061021e5760003560e01c80639213691311610123578063cc70acee116100ab578063ebc4b90d1161006f578063ebc4b90d1461078c578063ebece9c9146107b5578063f11a24d3146107de578063f2fde38b14610809578063f63743421461083257610225565b8063cc70acee146106a5578063d0a39814146106d0578063dd62ed3e146106fb578063e71dc3f514610738578063ea2f0b371461076357610225565b8063a8b08982116100f2578063a8b08982146105d0578063a9059cbb146105fb578063adb873bd14610638578063b9e9370014610663578063c9567bf91461068e57610225565b8063921369131461052657806395d89b41146105515780639740a9461461057c5780639f71146d146105a757610225565b8063313ce567116101a657806370a082311161017557806370a0823114610451578063715018a61461048e5780637bce5a04146104a557806384d6c8c6146104d05780638da5cb5b146104fb57610225565b8063313ce567146103bd5780633722355c146103e8578063437823ec146104115780635ae2fdbf1461043a57610225565b806312f3b2e0116101ed57806312f3b2e0146102e857806318160ddd146102ff5780631d6167ac1461032a5780631f3fed8f1461035557806323b872dd1461038057610225565b806303fd2a451461022a57806306fdde0314610255578063095ea7b3146102805780630fa604e4146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61085d565b60405161024c9190612694565b60405180910390f35b34801561026157600080fd5b5061026a610863565b6040516102779190612748565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a291906127d1565b6108a0565b6040516102b4919061282c565b60405180910390f35b3480156102c957600080fd5b506102d26108be565b6040516102df9190612856565b60405180910390f35b3480156102f457600080fd5b506102fd6108c8565b005b34801561030b57600080fd5b50610314610981565b6040516103219190612856565b60405180910390f35b34801561033657600080fd5b5061033f61098b565b60405161034c919061288e565b60405180910390f35b34801561036157600080fd5b5061036a61099f565b6040516103779190612856565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a291906128a9565b6109a5565b6040516103b4919061282c565b60405180910390f35b3480156103c957600080fd5b506103d2610aa6565b6040516103df9190612918565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190612933565b610aaf565b005b34801561041d57600080fd5b5061043860048036038101906104339190612933565b610b86565b005b34801561044657600080fd5b5061044f610c5d565b005b34801561045d57600080fd5b5061047860048036038101906104739190612933565b610cdb565b6040516104859190612856565b60405180910390f35b34801561049a57600080fd5b506104a3610d24565b005b3480156104b157600080fd5b506104ba610dac565b6040516104c79190612856565b60405180910390f35b3480156104dc57600080fd5b506104e5610db2565b6040516104f29190612856565b60405180910390f35b34801561050757600080fd5b50610510610dbc565b60405161051d9190612694565b60405180910390f35b34801561053257600080fd5b5061053b610de5565b6040516105489190612856565b60405180910390f35b34801561055d57600080fd5b50610566610deb565b6040516105739190612748565b60405180910390f35b34801561058857600080fd5b50610591610e28565b60405161059e9190612856565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190612933565b610e2e565b005b3480156105dc57600080fd5b506105e5610f05565b6040516105f29190612694565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d91906127d1565b610f2b565b60405161062f919061282c565b60405180910390f35b34801561064457600080fd5b5061064d610f49565b60405161065a9190612856565b60405180910390f35b34801561066f57600080fd5b50610678610f4f565b6040516106859190612856565b60405180910390f35b34801561069a57600080fd5b506106a3610f55565b005b3480156106b157600080fd5b506106ba611017565b6040516106c79190612856565b60405180910390f35b3480156106dc57600080fd5b506106e561101d565b6040516106f29190612856565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d9190612960565b611023565b60405161072f9190612856565b60405180910390f35b34801561074457600080fd5b5061074d6110aa565b60405161075a9190612856565b60405180910390f35b34801561076f57600080fd5b5061078a60048036038101906107859190612933565b6110b0565b005b34801561079857600080fd5b506107b360048036038101906107ae91906129a0565b611187565b005b3480156107c157600080fd5b506107dc60048036038101906107d791906129cd565b611225565b005b3480156107ea57600080fd5b506107f36112e3565b6040516108009190612856565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b9190612933565b6112e9565b005b34801561083e57600080fd5b506108476113e0565b6040516108549190612856565b60405180910390f35b61dead81565b60606040518060400160405280600f81526020017f4c696768746e696e6720436861696e0000000000000000000000000000000000815250905090565b60006108b46108ad6113e6565b84846113ee565b6001905092915050565b6000601554905090565b6108d06113e6565b73ffffffffffffffffffffffffffffffffffffffff166108ee610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90612a59565b60405180910390fd5b6001600a819055506000600b819055506002600c81905550600c54600b54600a5461096f9190612aa8565b6109799190612aa8565b600d81905550565b6000601454905090565b601160009054906101000a900461ffff1681565b60105481565b60006109b28484846115b7565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109fd6113e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7490612b70565b60405180910390fd5b610a9a85610a896113e6565b8584610a959190612b90565b6113ee565b60019150509392505050565b60006009905090565b610ab76113e6565b73ffffffffffffffffffffffffffffffffffffffff16610ad5610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2290612a59565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b8e6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610bac610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf990612a59565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c656113e6565b73ffffffffffffffffffffffffffffffffffffffff16610c83610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090612a59565b60405180910390fd5b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d2c6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610d4a610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9790612a59565b60405180910390fd5b610daa6000611c94565b565b60075481565b6000601654905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600581526020017f566f6c747a000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b610e366113e6565b73ffffffffffffffffffffffffffffffffffffffff16610e54610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190612a59565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f3f610f386113e6565b84846115b7565b6001905092915050565b600b5481565b60085481565b610f5d6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610f7b610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890612a59565b60405180910390fd5b6001601360166101000a81548160ff021916908315150217905550600960009054906101000a900460ff16601360146101000a81548160ff021916908315150217905550565b600f5481565b600d5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60065481565b6110b86113e6565b73ffffffffffffffffffffffffffffffffffffffff166110d6610dbc565b73ffffffffffffffffffffffffffffffffffffffff161461112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390612a59565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61118f6113e6565b73ffffffffffffffffffffffffffffffffffffffff166111ad610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90612a59565b60405180910390fd5b6009600a6112119190612cf7565b8161121c9190612d42565b60158190555050565b61122d6113e6565b73ffffffffffffffffffffffffffffffffffffffff1661124b610dbc565b73ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612a59565b60405180910390fd5b6009600a6112af9190612cf7565b826112ba9190612d42565b6016819055506009600a6112ce9190612cf7565b816112d99190612d42565b6015819055505050565b60055481565b6112f16113e6565b73ffffffffffffffffffffffffffffffffffffffff1661130f610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90612a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90612e0e565b60405180910390fd5b6113dd81611c94565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490612ea0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c390612f32565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115aa9190612856565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d90612fc4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90613056565b60405180910390fd5b600081116116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf906130e8565b60405180910390fd5b6116e183610cdb565b811115611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a9061317a565b60405180910390fd5b601360149054906101000a900460ff16806117875750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117db5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811906131e6565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118c55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561191b5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119be57601654811115611965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195c90613252565b60405180910390fd5b6015548161197284610cdb565b61197c9190612aa8565b11156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906132be565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a695750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611abf5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b1d57601554611ad083610cdb565b82611adb9190612aa8565b1115611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1390613350565b60405180910390fd5b5b6000611b2830610cdb565b9050601360159054906101000a900460ff16158015611b955750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bad5750601360169054906101000a900460ff165b8015611bb95750600081115b15611be157611bc781611d58565b60004790506000811115611bdf57611bde47611fd1565b5b505b611c8e848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c885750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561203d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d9057611d8f613370565b5b604051908082528060200260200182016040528015611dbe5781602001602082028036833780820191505090505b5090503081600081518110611dd657611dd561339f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea191906133e3565b81600181518110611eb557611eb461339f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f1c30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ee565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f80959493929190613513565b600060405180830381600087803b158015611f9a57600080fd5b505af1158015611fae573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612039573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461208c9190612b90565b925050819055506000816120a057826120ac565b6120ab858585612170565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120fd9190612aa8565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121619190612856565b60405180910390a35050505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121d157506000600854115b1561227457601160009054906101000a900461ffff1661ffff16600554836121f99190612d42565b612203919061359c565b600e81905550601160009054906101000a900461ffff1661ffff166006548361222c9190612d42565b612236919061359c565b600f81905550601160009054906101000a900461ffff1661ffff166007548361225f9190612d42565b612269919061359c565b601081905550612373565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122d357506000600d54115b1561237257601160009054906101000a900461ffff1661ffff16600a54836122fb9190612d42565b612305919061359c565b600e81905550601160009054906101000a900461ffff1661ffff16600b548361232e9190612d42565b612338919061359c565b600f81905550601160009054906101000a900461ffff1661ffff16600c54836123619190612d42565b61236b919061359c565b6010819055505b5b600e5460016000601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123e69190612aa8565b92505081905550601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405161246e9190612856565b60405180910390a3600f546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124c99190612aa8565b92505081905550600f546014546124e09190612b90565b6014819055506124ee610981565b60148190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516125559190612856565b60405180910390a3601054600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125ae9190612aa8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516126149190612856565b60405180910390a36000601054600f54600e546126319190612aa8565b61263b9190612aa8565b905080836126499190612b90565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061267e82612653565b9050919050565b61268e81612673565b82525050565b60006020820190506126a96000830184612685565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126e95780820151818401526020810190506126ce565b838111156126f8576000848401525b50505050565b6000601f19601f8301169050919050565b600061271a826126af565b61272481856126ba565b93506127348185602086016126cb565b61273d816126fe565b840191505092915050565b60006020820190508181036000830152612762818461270f565b905092915050565b600080fd5b61277881612673565b811461278357600080fd5b50565b6000813590506127958161276f565b92915050565b6000819050919050565b6127ae8161279b565b81146127b957600080fd5b50565b6000813590506127cb816127a5565b92915050565b600080604083850312156127e8576127e761276a565b5b60006127f685828601612786565b9250506020612807858286016127bc565b9150509250929050565b60008115159050919050565b61282681612811565b82525050565b6000602082019050612841600083018461281d565b92915050565b6128508161279b565b82525050565b600060208201905061286b6000830184612847565b92915050565b600061ffff82169050919050565b61288881612871565b82525050565b60006020820190506128a3600083018461287f565b92915050565b6000806000606084860312156128c2576128c161276a565b5b60006128d086828701612786565b93505060206128e186828701612786565b92505060406128f2868287016127bc565b9150509250925092565b600060ff82169050919050565b612912816128fc565b82525050565b600060208201905061292d6000830184612909565b92915050565b6000602082840312156129495761294861276a565b5b600061295784828501612786565b91505092915050565b600080604083850312156129775761297661276a565b5b600061298585828601612786565b925050602061299685828601612786565b9150509250929050565b6000602082840312156129b6576129b561276a565b5b60006129c4848285016127bc565b91505092915050565b600080604083850312156129e4576129e361276a565b5b60006129f2858286016127bc565b9250506020612a03858286016127bc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a436020836126ba565b9150612a4e82612a0d565b602082019050919050565b60006020820190508181036000830152612a7281612a36565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ab38261279b565b9150612abe8361279b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612af357612af2612a79565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612b5a6028836126ba565b9150612b6582612afe565b604082019050919050565b60006020820190508181036000830152612b8981612b4d565b9050919050565b6000612b9b8261279b565b9150612ba68361279b565b925082821015612bb957612bb8612a79565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b6001851115612c1b57808604811115612bf757612bf6612a79565b5b6001851615612c065780820291505b8081029050612c1485612bc4565b9450612bdb565b94509492505050565b600082612c345760019050612cf0565b81612c425760009050612cf0565b8160018114612c585760028114612c6257612c91565b6001915050612cf0565b60ff841115612c7457612c73612a79565b5b8360020a915084821115612c8b57612c8a612a79565b5b50612cf0565b5060208310610133831016604e8410600b8410161715612cc65782820a905083811115612cc157612cc0612a79565b5b612cf0565b612cd38484846001612bd1565b92509050818404811115612cea57612ce9612a79565b5b81810290505b9392505050565b6000612d028261279b565b9150612d0d836128fc565b9250612d3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c24565b905092915050565b6000612d4d8261279b565b9150612d588361279b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d9157612d90612a79565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612df86026836126ba565b9150612e0382612d9c565b604082019050919050565b60006020820190508181036000830152612e2781612deb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e8a6024836126ba565b9150612e9582612e2e565b604082019050919050565b60006020820190508181036000830152612eb981612e7d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1c6022836126ba565b9150612f2782612ec0565b604082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fae6025836126ba565b9150612fb982612f52565b604082019050919050565b60006020820190508181036000830152612fdd81612fa1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130406023836126ba565b915061304b82612fe4565b604082019050919050565b6000602082019050818103600083015261306f81613033565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130d26029836126ba565b91506130dd82613076565b604082019050919050565b60006020820190508181036000830152613101816130c5565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006131646031836126ba565b915061316f82613108565b604082019050919050565b6000602082019050818103600083015261319381613157565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b60006131d06017836126ba565b91506131db8261319a565b602082019050919050565b600060208201905081810360008301526131ff816131c3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061323c6019836126ba565b915061324782613206565b602082019050919050565b6000602082019050818103600083015261326b8161322f565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006132a8601a836126ba565b91506132b382613272565b602082019050919050565b600060208201905081810360008301526132d78161329b565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061333a6022836126ba565b9150613345826132de565b604082019050919050565b600060208201905081810360008301526133698161332d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506133dd8161276f565b92915050565b6000602082840312156133f9576133f861276a565b5b6000613407848285016133ce565b91505092915050565b6000819050919050565b6000819050919050565b600061343f61343a61343584613410565b61341a565b61279b565b9050919050565b61344f81613424565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61348a81612673565b82525050565b600061349c8383613481565b60208301905092915050565b6000602082019050919050565b60006134c082613455565b6134ca8185613460565b93506134d583613471565b8060005b838110156135065781516134ed8882613490565b97506134f8836134a8565b9250506001810190506134d9565b5085935050505092915050565b600060a0820190506135286000830188612847565b6135356020830187613446565b818103604083015261354781866134b5565b90506135566060830185612685565b6135636080830184612847565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135a78261279b565b91506135b28361279b565b9250826135c2576135c161356d565b5b82820490509291505056fea2646970667358221220bdafec08c8a2d42311e301fdaf0569a378865fac7d68f359b3ddc8816315302f64736f6c634300080f0033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80639213691311610123578063cc70acee116100ab578063ebc4b90d1161006f578063ebc4b90d1461078c578063ebece9c9146107b5578063f11a24d3146107de578063f2fde38b14610809578063f63743421461083257610225565b8063cc70acee146106a5578063d0a39814146106d0578063dd62ed3e146106fb578063e71dc3f514610738578063ea2f0b371461076357610225565b8063a8b08982116100f2578063a8b08982146105d0578063a9059cbb146105fb578063adb873bd14610638578063b9e9370014610663578063c9567bf91461068e57610225565b8063921369131461052657806395d89b41146105515780639740a9461461057c5780639f71146d146105a757610225565b8063313ce567116101a657806370a082311161017557806370a0823114610451578063715018a61461048e5780637bce5a04146104a557806384d6c8c6146104d05780638da5cb5b146104fb57610225565b8063313ce567146103bd5780633722355c146103e8578063437823ec146104115780635ae2fdbf1461043a57610225565b806312f3b2e0116101ed57806312f3b2e0146102e857806318160ddd146102ff5780631d6167ac1461032a5780631f3fed8f1461035557806323b872dd1461038057610225565b806303fd2a451461022a57806306fdde0314610255578063095ea7b3146102805780630fa604e4146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61085d565b60405161024c9190612694565b60405180910390f35b34801561026157600080fd5b5061026a610863565b6040516102779190612748565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a291906127d1565b6108a0565b6040516102b4919061282c565b60405180910390f35b3480156102c957600080fd5b506102d26108be565b6040516102df9190612856565b60405180910390f35b3480156102f457600080fd5b506102fd6108c8565b005b34801561030b57600080fd5b50610314610981565b6040516103219190612856565b60405180910390f35b34801561033657600080fd5b5061033f61098b565b60405161034c919061288e565b60405180910390f35b34801561036157600080fd5b5061036a61099f565b6040516103779190612856565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a291906128a9565b6109a5565b6040516103b4919061282c565b60405180910390f35b3480156103c957600080fd5b506103d2610aa6565b6040516103df9190612918565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190612933565b610aaf565b005b34801561041d57600080fd5b5061043860048036038101906104339190612933565b610b86565b005b34801561044657600080fd5b5061044f610c5d565b005b34801561045d57600080fd5b5061047860048036038101906104739190612933565b610cdb565b6040516104859190612856565b60405180910390f35b34801561049a57600080fd5b506104a3610d24565b005b3480156104b157600080fd5b506104ba610dac565b6040516104c79190612856565b60405180910390f35b3480156104dc57600080fd5b506104e5610db2565b6040516104f29190612856565b60405180910390f35b34801561050757600080fd5b50610510610dbc565b60405161051d9190612694565b60405180910390f35b34801561053257600080fd5b5061053b610de5565b6040516105489190612856565b60405180910390f35b34801561055d57600080fd5b50610566610deb565b6040516105739190612748565b60405180910390f35b34801561058857600080fd5b50610591610e28565b60405161059e9190612856565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190612933565b610e2e565b005b3480156105dc57600080fd5b506105e5610f05565b6040516105f29190612694565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d91906127d1565b610f2b565b60405161062f919061282c565b60405180910390f35b34801561064457600080fd5b5061064d610f49565b60405161065a9190612856565b60405180910390f35b34801561066f57600080fd5b50610678610f4f565b6040516106859190612856565b60405180910390f35b34801561069a57600080fd5b506106a3610f55565b005b3480156106b157600080fd5b506106ba611017565b6040516106c79190612856565b60405180910390f35b3480156106dc57600080fd5b506106e561101d565b6040516106f29190612856565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d9190612960565b611023565b60405161072f9190612856565b60405180910390f35b34801561074457600080fd5b5061074d6110aa565b60405161075a9190612856565b60405180910390f35b34801561076f57600080fd5b5061078a60048036038101906107859190612933565b6110b0565b005b34801561079857600080fd5b506107b360048036038101906107ae91906129a0565b611187565b005b3480156107c157600080fd5b506107dc60048036038101906107d791906129cd565b611225565b005b3480156107ea57600080fd5b506107f36112e3565b6040516108009190612856565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b9190612933565b6112e9565b005b34801561083e57600080fd5b506108476113e0565b6040516108549190612856565b60405180910390f35b61dead81565b60606040518060400160405280600f81526020017f4c696768746e696e6720436861696e0000000000000000000000000000000000815250905090565b60006108b46108ad6113e6565b84846113ee565b6001905092915050565b6000601554905090565b6108d06113e6565b73ffffffffffffffffffffffffffffffffffffffff166108ee610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90612a59565b60405180910390fd5b6001600a819055506000600b819055506002600c81905550600c54600b54600a5461096f9190612aa8565b6109799190612aa8565b600d81905550565b6000601454905090565b601160009054906101000a900461ffff1681565b60105481565b60006109b28484846115b7565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109fd6113e6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7490612b70565b60405180910390fd5b610a9a85610a896113e6565b8584610a959190612b90565b6113ee565b60019150509392505050565b60006009905090565b610ab76113e6565b73ffffffffffffffffffffffffffffffffffffffff16610ad5610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2290612a59565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b8e6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610bac610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf990612a59565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c656113e6565b73ffffffffffffffffffffffffffffffffffffffff16610c83610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090612a59565b60405180910390fd5b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d2c6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610d4a610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9790612a59565b60405180910390fd5b610daa6000611c94565b565b60075481565b6000601654905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600581526020017f566f6c747a000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b610e366113e6565b73ffffffffffffffffffffffffffffffffffffffff16610e54610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190612a59565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f3f610f386113e6565b84846115b7565b6001905092915050565b600b5481565b60085481565b610f5d6113e6565b73ffffffffffffffffffffffffffffffffffffffff16610f7b610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890612a59565b60405180910390fd5b6001601360166101000a81548160ff021916908315150217905550600960009054906101000a900460ff16601360146101000a81548160ff021916908315150217905550565b600f5481565b600d5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60065481565b6110b86113e6565b73ffffffffffffffffffffffffffffffffffffffff166110d6610dbc565b73ffffffffffffffffffffffffffffffffffffffff161461112c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112390612a59565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61118f6113e6565b73ffffffffffffffffffffffffffffffffffffffff166111ad610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90612a59565b60405180910390fd5b6009600a6112119190612cf7565b8161121c9190612d42565b60158190555050565b61122d6113e6565b73ffffffffffffffffffffffffffffffffffffffff1661124b610dbc565b73ffffffffffffffffffffffffffffffffffffffff16146112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612a59565b60405180910390fd5b6009600a6112af9190612cf7565b826112ba9190612d42565b6016819055506009600a6112ce9190612cf7565b816112d99190612d42565b6015819055505050565b60055481565b6112f16113e6565b73ffffffffffffffffffffffffffffffffffffffff1661130f610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90612a59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90612e0e565b60405180910390fd5b6113dd81611c94565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490612ea0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c390612f32565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115aa9190612856565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d90612fc4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90613056565b60405180910390fd5b600081116116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf906130e8565b60405180910390fd5b6116e183610cdb565b811115611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a9061317a565b60405180910390fd5b601360149054906101000a900460ff16806117875750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117db5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811906131e6565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118c55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561191b5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119be57601654811115611965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195c90613252565b60405180910390fd5b6015548161197284610cdb565b61197c9190612aa8565b11156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906132be565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a695750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611abf5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b1d57601554611ad083610cdb565b82611adb9190612aa8565b1115611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1390613350565b60405180910390fd5b5b6000611b2830610cdb565b9050601360159054906101000a900460ff16158015611b955750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bad5750601360169054906101000a900460ff165b8015611bb95750600081115b15611be157611bc781611d58565b60004790506000811115611bdf57611bde47611fd1565b5b505b611c8e848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c885750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561203d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d9057611d8f613370565b5b604051908082528060200260200182016040528015611dbe5781602001602082028036833780820191505090505b5090503081600081518110611dd657611dd561339f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea191906133e3565b81600181518110611eb557611eb461339f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f1c30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ee565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f80959493929190613513565b600060405180830381600087803b158015611f9a57600080fd5b505af1158015611fae573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612039573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461208c9190612b90565b925050819055506000816120a057826120ac565b6120ab858585612170565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120fd9190612aa8565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121619190612856565b60405180910390a35050505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121d157506000600854115b1561227457601160009054906101000a900461ffff1661ffff16600554836121f99190612d42565b612203919061359c565b600e81905550601160009054906101000a900461ffff1661ffff166006548361222c9190612d42565b612236919061359c565b600f81905550601160009054906101000a900461ffff1661ffff166007548361225f9190612d42565b612269919061359c565b601081905550612373565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122d357506000600d54115b1561237257601160009054906101000a900461ffff1661ffff16600a54836122fb9190612d42565b612305919061359c565b600e81905550601160009054906101000a900461ffff1661ffff16600b548361232e9190612d42565b612338919061359c565b600f81905550601160009054906101000a900461ffff1661ffff16600c54836123619190612d42565b61236b919061359c565b6010819055505b5b600e5460016000601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123e69190612aa8565b92505081905550601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405161246e9190612856565b60405180910390a3600f546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124c99190612aa8565b92505081905550600f546014546124e09190612b90565b6014819055506124ee610981565b60148190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516125559190612856565b60405180910390a3601054600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125ae9190612aa8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516126149190612856565b60405180910390a36000601054600f54600e546126319190612aa8565b61263b9190612aa8565b905080836126499190612b90565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061267e82612653565b9050919050565b61268e81612673565b82525050565b60006020820190506126a96000830184612685565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126e95780820151818401526020810190506126ce565b838111156126f8576000848401525b50505050565b6000601f19601f8301169050919050565b600061271a826126af565b61272481856126ba565b93506127348185602086016126cb565b61273d816126fe565b840191505092915050565b60006020820190508181036000830152612762818461270f565b905092915050565b600080fd5b61277881612673565b811461278357600080fd5b50565b6000813590506127958161276f565b92915050565b6000819050919050565b6127ae8161279b565b81146127b957600080fd5b50565b6000813590506127cb816127a5565b92915050565b600080604083850312156127e8576127e761276a565b5b60006127f685828601612786565b9250506020612807858286016127bc565b9150509250929050565b60008115159050919050565b61282681612811565b82525050565b6000602082019050612841600083018461281d565b92915050565b6128508161279b565b82525050565b600060208201905061286b6000830184612847565b92915050565b600061ffff82169050919050565b61288881612871565b82525050565b60006020820190506128a3600083018461287f565b92915050565b6000806000606084860312156128c2576128c161276a565b5b60006128d086828701612786565b93505060206128e186828701612786565b92505060406128f2868287016127bc565b9150509250925092565b600060ff82169050919050565b612912816128fc565b82525050565b600060208201905061292d6000830184612909565b92915050565b6000602082840312156129495761294861276a565b5b600061295784828501612786565b91505092915050565b600080604083850312156129775761297661276a565b5b600061298585828601612786565b925050602061299685828601612786565b9150509250929050565b6000602082840312156129b6576129b561276a565b5b60006129c4848285016127bc565b91505092915050565b600080604083850312156129e4576129e361276a565b5b60006129f2858286016127bc565b9250506020612a03858286016127bc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a436020836126ba565b9150612a4e82612a0d565b602082019050919050565b60006020820190508181036000830152612a7281612a36565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ab38261279b565b9150612abe8361279b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612af357612af2612a79565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612b5a6028836126ba565b9150612b6582612afe565b604082019050919050565b60006020820190508181036000830152612b8981612b4d565b9050919050565b6000612b9b8261279b565b9150612ba68361279b565b925082821015612bb957612bb8612a79565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b6001851115612c1b57808604811115612bf757612bf6612a79565b5b6001851615612c065780820291505b8081029050612c1485612bc4565b9450612bdb565b94509492505050565b600082612c345760019050612cf0565b81612c425760009050612cf0565b8160018114612c585760028114612c6257612c91565b6001915050612cf0565b60ff841115612c7457612c73612a79565b5b8360020a915084821115612c8b57612c8a612a79565b5b50612cf0565b5060208310610133831016604e8410600b8410161715612cc65782820a905083811115612cc157612cc0612a79565b5b612cf0565b612cd38484846001612bd1565b92509050818404811115612cea57612ce9612a79565b5b81810290505b9392505050565b6000612d028261279b565b9150612d0d836128fc565b9250612d3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c24565b905092915050565b6000612d4d8261279b565b9150612d588361279b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d9157612d90612a79565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612df86026836126ba565b9150612e0382612d9c565b604082019050919050565b60006020820190508181036000830152612e2781612deb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e8a6024836126ba565b9150612e9582612e2e565b604082019050919050565b60006020820190508181036000830152612eb981612e7d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1c6022836126ba565b9150612f2782612ec0565b604082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fae6025836126ba565b9150612fb982612f52565b604082019050919050565b60006020820190508181036000830152612fdd81612fa1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130406023836126ba565b915061304b82612fe4565b604082019050919050565b6000602082019050818103600083015261306f81613033565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130d26029836126ba565b91506130dd82613076565b604082019050919050565b60006020820190508181036000830152613101816130c5565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006131646031836126ba565b915061316f82613108565b604082019050919050565b6000602082019050818103600083015261319381613157565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b60006131d06017836126ba565b91506131db8261319a565b602082019050919050565b600060208201905081810360008301526131ff816131c3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061323c6019836126ba565b915061324782613206565b602082019050919050565b6000602082019050818103600083015261326b8161322f565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006132a8601a836126ba565b91506132b382613272565b602082019050919050565b600060208201905081810360008301526132d78161329b565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061333a6022836126ba565b9150613345826132de565b604082019050919050565b600060208201905081810360008301526133698161332d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506133dd8161276f565b92915050565b6000602082840312156133f9576133f861276a565b5b6000613407848285016133ce565b91505092915050565b6000819050919050565b6000819050919050565b600061343f61343a61343584613410565b61341a565b61279b565b9050919050565b61344f81613424565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61348a81612673565b82525050565b600061349c8383613481565b60208301905092915050565b6000602082019050919050565b60006134c082613455565b6134ca8185613460565b93506134d583613471565b8060005b838110156135065781516134ed8882613490565b97506134f8836134a8565b9250506001810190506134d9565b5085935050505092915050565b600060a0820190506135286000830188612847565b6135356020830187613446565b818103604083015261354781866134b5565b90506135566060830185612685565b6135636080830184612847565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135a78261279b565b91506135b28361279b565b9250826135c2576135c161356d565b5b82820490509291505056fea2646970667358221220bdafec08c8a2d42311e301fdaf0569a378865fac7d68f359b3ddc8816315302f64736f6c634300080f0033

Deployed Bytecode Sourcemap

4103:10534:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5208:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7767:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8640:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7921:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14371:215;;;;;;;;;;;;;:::i;:::-;;8159:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5165:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5125:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8784:416;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8084:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13625:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13388:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9545:56;;;;;;;;;;;;;:::i;:::-;;8246:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2799:89;;;;;;;;;;;;;:::i;:::-;;4676:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7842:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2604:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4906:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8005:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5040:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13759:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5288:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8355:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4871:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4715:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11149:96;;;;;;;;;;;;;:::i;:::-;;5084:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4947:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8505:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4642:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13507:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14116:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13891:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4603:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2896:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4831:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5208:73;5239:42;5208:73;:::o;7767:69::-;7804:13;7828:5;;;;;;;;;;;;;;;;;7821:12;;7767:69;:::o;8640:138::-;8715:4;8723:39;8732:12;:10;:12::i;:::-;8746:7;8755:6;8723:8;:39::i;:::-;8771:4;8764:11;;8640:138;;;;:::o;7921:78::-;7965:7;7982:15;;7975:22;;7921:78;:::o;14371:215::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14441:1:::1;14422:16;:20;;;;14467:1;14453:11;:15;;;;14498:1;14479:16;:20;;;;14558:16;;14544:11;;14525:16;;:30;;;;:::i;:::-;:49;;;;:::i;:::-;14509:13;:65;;;;14371:215::o:0;8159:81::-;8212:7;8230;;8223:14;;8159:81;:::o;5165:36::-;;;;;;;;;;;;;:::o;5125:33::-;;;;:::o;8784:416::-;8890:4;8907:36;8917:6;8925:9;8936:6;8907:9;:36::i;:::-;8954:24;8981:11;:19;8993:6;8981:19;;;;;;;;;;;;;;;:33;9001:12;:10;:12::i;:::-;8981:33;;;;;;;;;;;;;;;;8954:60;;9053:6;9033:16;:26;;9025:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9115:57;9124:6;9132:12;:10;:12::i;:::-;9165:6;9146:16;:25;;;;:::i;:::-;9115:8;:57::i;:::-;9190:4;9183:11;;;8784:416;;;;;:::o;8084:69::-;8125:5;4593:1;8134:16;;8084:69;:::o;13625:126::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13739:4:::1;13699:28;:37;13728:7;13699:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;13625:126:::0;:::o;13388:111::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13487:4:::1;13457:18;:27;13476:7;13457:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13388:111:::0;:::o;9545:56::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9545:56::o;8246:103::-;8312:7;8330;:16;8338:7;8330:16;;;;;;;;;;;;;;;;8323:23;;8246:103;;;:::o;2799:89::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2862:21:::1;2880:1;2862:9;:21::i;:::-;2799:89::o:0;4676:32::-;;;;:::o;7842:73::-;7885:7;7902:11;;7895:18;;7842:73;:::o;2604:71::-;2650:7;2667:6;;;;;;;;;;;2660:13;;2604:71;:::o;4906:34::-;;;;:::o;8005:73::-;8044:13;8068:7;;;;;;;;;;;;;;;;;8061:14;;8005:73;:::o;5040:37::-;;;;:::o;13759:125::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13871:5:::1;13831:28;:37;13860:7;13831:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;13759:125:::0;:::o;5288:26::-;;;;;;;;;;;;;:::o;8355:144::-;8433:4;8441:42;8451:12;:10;:12::i;:::-;8465:9;8476:6;8441:9;:42::i;:::-;8492:4;8485:11;;8355:144;;;;:::o;4871:28::-;;;;:::o;4715:76::-;;;;:::o;11149:96::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11218:4:::1;11204:11;;:18;;;;;;;;;;;;;;;;;;11238:5;;;;;;;;;;;11224:11;;:19;;;;;;;;;;;;;;;;;;11149:96::o:0;5084:32::-;;;;:::o;4947:81::-;;;;:::o;8505:129::-;8586:7;8604:11;:18;8616:5;8604:18;;;;;;;;;;;;;;;:27;8623:7;8604:27;;;;;;;;;;;;;;;;8597:34;;8505:129;;;;:::o;4642:27::-;;;;:::o;13507:110::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13604:5:::1;13574:18;:27;13593:7;13574:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13507:110:::0;:::o;14116:136::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4593:1:::1;14227:2;:14;;;;:::i;:::-;14210;:31;;;;:::i;:::-;14192:15;:49;;;;14116:136:::0;:::o;13891:217::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4593:1:::1;14026:2;:14;;;;:::i;:::-;14011:12;:29;;;;:::i;:::-;13997:11;:43;;;;4593:1;14086:2;:14;;;;:::i;:::-;14069;:31;;;;:::i;:::-;14051:15;:49;;;;13891:217:::0;;:::o;4603:32::-;;;;:::o;2896:190::-;2732:12;:10;:12::i;:::-;2721:23;;:7;:5;:7::i;:::-;:23;;;2713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3005:1:::1;2985:22;;:8;:22;;::::0;2977:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3061:19;3071:8;3061:9;:19::i;:::-;2896:190:::0;:::o;4831:33::-;;;;:::o;2205:82::-;2258:7;2275:10;2268:17;;2205:82;:::o;9208:331::-;9318:1;9301:19;;:5;:19;;;9293:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9399:1;9380:21;;:7;:21;;;9372:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9481:6;9451:11;:18;9463:5;9451:18;;;;;;;;;;;;;;;:27;9470:7;9451:27;;;;;;;;;;;;;;;:36;;;;9519:7;9503:32;;9512:5;9503:32;;;9528:6;9503:32;;;;;;:::i;:::-;;;;;;;;9208:331;;;:::o;9607:1535::-;9711:1;9695:18;;:4;:18;;;9687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9788:1;9774:16;;:2;:16;;;9766:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9858:1;9849:6;:10;9841:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9934:15;9944:4;9934:9;:15::i;:::-;9924:6;:25;;9916:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10025:11;;;;;;;;;;;:39;;;;10040:18;:24;10059:4;10040:24;;;;;;;;;;;;;;;;;;;;;;;;;10025:39;:65;;;;10068:18;:22;10087:2;10068:22;;;;;;;;;;;;;;;;;;;;;;;;;10025:65;10017:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10141:13;;;;;;;;;;;10133:21;;:4;:21;;;:55;;;;;10172:15;;;;;;;;;;;10158:30;;:2;:30;;;;10133:55;:83;;;;;10194:18;:22;10213:2;10194:22;;;;;;;;;;;;;;;;;;;;;;;;;10192:24;10133:83;10129:271;;;10255:11;;10245:6;:21;;10237:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10349:15;;10339:6;10323:13;10333:2;10323:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10315:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10129:271;10422:13;;;;;;;;;;;10414:21;;:4;:21;;;:55;;;;;10453:15;;;;;;;;;;;10439:30;;:2;:30;;;;10414:55;:93;;;;;10475:28;:32;10504:2;10475:32;;;;;;;;;;;;;;;;;;;;;;;;;10473:34;10414:93;10410:224;;;10575:15;;10558:13;10568:2;10558:9;:13::i;:::-;10549:6;:22;;;;:::i;:::-;:41;;10541:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10410:224;10644:28;10675:24;10693:4;10675:9;:24::i;:::-;10644:55;;10719:6;;;;;;;;;;;10718:7;:32;;;;;10737:13;;;;;;;;;;;10729:21;;:4;:21;;;;10718:32;:47;;;;;10754:11;;;;;;;;;;;10718:47;:73;;;;;10790:1;10769:20;:22;10718:73;10714:319;;;10812:38;10829:20;10812:16;:38::i;:::-;10869:26;10898:21;10869:50;;10962:1;10941:18;:22;10938:91;;;10988:35;11001:21;10988:12;:35::i;:::-;10938:91;10793:240;10714:319;11043:87;11058:4;11064:2;11068:6;11078:18;:24;11097:4;11078:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11106:18;:22;11125:2;11106:22;;;;;;;;;;;;;;;;;;;;;;;;;11078:50;11076:53;11043:14;:87::i;:::-;9676:1466;9607:1535;;;:::o;3088:169::-;3144:16;3163:6;;;;;;;;;;;3144:25;;3189:8;3180:6;;:17;;;;;;;;;;;;;;;;;;3244:8;3213:40;;3234:8;3213:40;;;;;;;;;;;;3133:124;3088:169;:::o;11251:487::-;5828:4;5819:6;;:13;;;;;;;;;;;;;;;;;;11329:21:::1;11367:1;11353:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11329:40;;11398:4;11380;11385:1;11380:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11424:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11414:4;11419:1;11414:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11457:62;11474:4;11489:15;;;;;;;;;;;11507:11;11457:8;:62::i;:::-;11530:15;;;;;;;;;;;:66;;;11611:11;11637:1;11653:4;11680;11700:15;11530:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11318:420;5864:5:::0;5855:6;;:14;;;;;;;;;;;;;;;;;;11251:487;:::o;14260:102::-;14317:16;;;;;;;;;;;:25;;:33;14343:6;14317:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14260:102;:::o;11750:344::-;11877:6;11858:7;:15;11866:6;11858:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;11894:22;11920:7;11919:57;;11970:6;11919:57;;;11931:36;11941:6;11949:9;11960:6;11931:9;:36::i;:::-;11919:57;11894:82;;12009:14;11987:7;:18;11995:9;11987:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12056:9;12039:43;;12048:6;12039:43;;;12067:14;12039:43;;;;;;:::i;:::-;;;;;;;;11847:247;11750:344;;;;:::o;12102:1278::-;12181:7;12212:13;;;;;;;;;;;12204:21;;:4;:21;;;:41;;;;;12244:1;12229:12;;:16;12204:41;12201:615;;;12316:16;;;;;;;;;;;12289:43;;12298:15;;12289:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12264:22;:68;;;;12389:16;;;;;;;;;;;12367:38;;12376:10;;12367:6;:19;;;;:::i;:::-;:38;;;;:::i;:::-;12347:17;:58;;;;12477:16;;;;;;;;;;;12450:43;;12459:15;;12450:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12429:18;:64;;;;12201:615;;;12529:13;;;;;;;;;;;12523:19;;:2;:19;;;:41;;;;;12563:1;12547:13;;:17;12523:41;12519:297;;;12636:16;;;;;;;;;;;12608:44;;12617:16;;12608:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12583:22;:69;;;;12710:16;;;;;;;;;;;12687:39;;12696:11;;12687:6;:20;;;;:::i;:::-;:39;;;;:::i;:::-;12667:17;:59;;;;12790:16;;;;;;;;;;;12762:44;;12771:16;;12762:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12741:18;:65;;;;12519:297;12201:615;12850:22;;12826:7;:20;12834:11;;;;;;;;;;;12826:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;12903:11;;;;;;;;;;;12888:51;;12897:4;12888:51;;;12916:22;;12888:51;;;;;;:::i;:::-;;;;;;;;12967:17;;12950:7;:13;5239:42;12950:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13015:17;;13005:7;;:27;;;;:::i;:::-;12995:7;:37;;;;13053:13;:11;:13::i;:::-;13043:7;:23;;;;5239:42;13082:39;;13091:4;13082:39;;;13103:17;;13082:39;;;;;;:::i;:::-;;;;;;;;13159:18;;13133:7;:22;13149:4;13133:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;13216:4;13193:49;;13202:4;13193:49;;;13223:18;;13193:49;;;;;;:::i;:::-;;;;;;;;13253:17;13318:18;;13298:17;;13273:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13253:83;;13363:9;13354:6;:18;;;;:::i;:::-;13347:25;;;12102:1278;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:307::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1050:1;1045:3;1041:11;1035:18;1031:1;1026:3;1022:11;1015:39;987:2;984:1;980:10;975:15;;951:113;;;1082:6;1079:1;1076:13;1073:101;;;1162:1;1153:6;1148:3;1144:16;1137:27;1073:101;922:258;873:307;;;:::o;1186:102::-;1227:6;1278:2;1274:7;1269:2;1262:5;1258:14;1254:28;1244:38;;1186:102;;;:::o;1294:364::-;1382:3;1410:39;1443:5;1410:39;:::i;:::-;1465:71;1529:6;1524:3;1465:71;:::i;:::-;1458:78;;1545:52;1590:6;1585:3;1578:4;1571:5;1567:16;1545:52;:::i;:::-;1622:29;1644:6;1622:29;:::i;:::-;1617:3;1613:39;1606:46;;1386:272;1294:364;;;;:::o;1664:313::-;1777:4;1815:2;1804:9;1800:18;1792:26;;1864:9;1858:4;1854:20;1850:1;1839:9;1835:17;1828:47;1892:78;1965:4;1956:6;1892:78;:::i;:::-;1884:86;;1664:313;;;;:::o;2064:117::-;2173:1;2170;2163:12;2310:122;2383:24;2401:5;2383:24;:::i;:::-;2376:5;2373:35;2363:63;;2422:1;2419;2412:12;2363:63;2310:122;:::o;2438:139::-;2484:5;2522:6;2509:20;2500:29;;2538:33;2565:5;2538:33;:::i;:::-;2438:139;;;;:::o;2583:77::-;2620:7;2649:5;2638:16;;2583:77;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:89::-;4234:7;4274:6;4267:5;4263:18;4252:29;;4198:89;;;:::o;4293:115::-;4378:23;4395:5;4378:23;:::i;:::-;4373:3;4366:36;4293:115;;:::o;4414:218::-;4505:4;4543:2;4532:9;4528:18;4520:26;;4556:69;4622:1;4611:9;4607:17;4598:6;4556:69;:::i;:::-;4414:218;;;;:::o;4638:619::-;4715:6;4723;4731;4780:2;4768:9;4759:7;4755:23;4751:32;4748:119;;;4786:79;;:::i;:::-;4748:119;4906:1;4931:53;4976:7;4967:6;4956:9;4952:22;4931:53;:::i;:::-;4921:63;;4877:117;5033:2;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5004:118;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;4638:619;;;;;:::o;5263:86::-;5298:7;5338:4;5331:5;5327:16;5316:27;;5263:86;;;:::o;5355:112::-;5438:22;5454:5;5438:22;:::i;:::-;5433:3;5426:35;5355:112;;:::o;5473:214::-;5562:4;5600:2;5589:9;5585:18;5577:26;;5613:67;5677:1;5666:9;5662:17;5653:6;5613:67;:::i;:::-;5473:214;;;;:::o;5693:329::-;5752:6;5801:2;5789:9;5780:7;5776:23;5772:32;5769:119;;;5807:79;;:::i;:::-;5769:119;5927:1;5952:53;5997:7;5988:6;5977:9;5973:22;5952:53;:::i;:::-;5942:63;;5898:117;5693:329;;;;:::o;6028:474::-;6096:6;6104;6153:2;6141:9;6132:7;6128:23;6124:32;6121:119;;;6159:79;;:::i;:::-;6121:119;6279:1;6304:53;6349:7;6340:6;6329:9;6325:22;6304:53;:::i;:::-;6294:63;;6250:117;6406:2;6432:53;6477:7;6468:6;6457:9;6453:22;6432:53;:::i;:::-;6422:63;;6377:118;6028:474;;;;;:::o;6508:329::-;6567:6;6616:2;6604:9;6595:7;6591:23;6587:32;6584:119;;;6622:79;;:::i;:::-;6584:119;6742:1;6767:53;6812:7;6803:6;6792:9;6788:22;6767:53;:::i;:::-;6757:63;;6713:117;6508:329;;;;:::o;6843:474::-;6911:6;6919;6968:2;6956:9;6947:7;6943:23;6939:32;6936:119;;;6974:79;;:::i;:::-;6936:119;7094:1;7119:53;7164:7;7155:6;7144:9;7140:22;7119:53;:::i;:::-;7109:63;;7065:117;7221:2;7247:53;7292:7;7283:6;7272:9;7268:22;7247:53;:::i;:::-;7237:63;;7192:118;6843:474;;;;;:::o;7323:182::-;7463:34;7459:1;7451:6;7447:14;7440:58;7323:182;:::o;7511:366::-;7653:3;7674:67;7738:2;7733:3;7674:67;:::i;:::-;7667:74;;7750:93;7839:3;7750:93;:::i;:::-;7868:2;7863:3;7859:12;7852:19;;7511:366;;;:::o;7883:419::-;8049:4;8087:2;8076:9;8072:18;8064:26;;8136:9;8130:4;8126:20;8122:1;8111:9;8107:17;8100:47;8164:131;8290:4;8164:131;:::i;:::-;8156:139;;7883:419;;;:::o;8308:180::-;8356:77;8353:1;8346:88;8453:4;8450:1;8443:15;8477:4;8474:1;8467:15;8494:305;8534:3;8553:20;8571:1;8553:20;:::i;:::-;8548:25;;8587:20;8605:1;8587:20;:::i;:::-;8582:25;;8741:1;8673:66;8669:74;8666:1;8663:81;8660:107;;;8747:18;;:::i;:::-;8660:107;8791:1;8788;8784:9;8777:16;;8494:305;;;;:::o;8805:227::-;8945:34;8941:1;8933:6;8929:14;8922:58;9014:10;9009:2;9001:6;8997:15;8990:35;8805:227;:::o;9038:366::-;9180:3;9201:67;9265:2;9260:3;9201:67;:::i;:::-;9194:74;;9277:93;9366:3;9277:93;:::i;:::-;9395:2;9390:3;9386:12;9379:19;;9038:366;;;:::o;9410:419::-;9576:4;9614:2;9603:9;9599:18;9591:26;;9663:9;9657:4;9653:20;9649:1;9638:9;9634:17;9627:47;9691:131;9817:4;9691:131;:::i;:::-;9683:139;;9410:419;;;:::o;9835:191::-;9875:4;9895:20;9913:1;9895:20;:::i;:::-;9890:25;;9929:20;9947:1;9929:20;:::i;:::-;9924:25;;9968:1;9965;9962:8;9959:34;;;9973:18;;:::i;:::-;9959:34;10018:1;10015;10011:9;10003:17;;9835:191;;;;:::o;10032:102::-;10074:8;10121:5;10118:1;10114:13;10093:34;;10032:102;;;:::o;10140:848::-;10201:5;10208:4;10232:6;10223:15;;10256:5;10247:14;;10270:712;10291:1;10281:8;10278:15;10270:712;;;10386:4;10381:3;10377:14;10371:4;10368:24;10365:50;;;10395:18;;:::i;:::-;10365:50;10445:1;10435:8;10431:16;10428:451;;;10860:4;10853:5;10849:16;10840:25;;10428:451;10910:4;10904;10900:15;10892:23;;10940:32;10963:8;10940:32;:::i;:::-;10928:44;;10270:712;;;10140:848;;;;;;;:::o;10994:1073::-;11048:5;11239:8;11229:40;;11260:1;11251:10;;11262:5;;11229:40;11288:4;11278:36;;11305:1;11296:10;;11307:5;;11278:36;11374:4;11422:1;11417:27;;;;11458:1;11453:191;;;;11367:277;;11417:27;11435:1;11426:10;;11437:5;;;11453:191;11498:3;11488:8;11485:17;11482:43;;;11505:18;;:::i;:::-;11482:43;11554:8;11551:1;11547:16;11538:25;;11589:3;11582:5;11579:14;11576:40;;;11596:18;;:::i;:::-;11576:40;11629:5;;;11367:277;;11753:2;11743:8;11740:16;11734:3;11728:4;11725:13;11721:36;11703:2;11693:8;11690:16;11685:2;11679:4;11676:12;11672:35;11656:111;11653:246;;;11809:8;11803:4;11799:19;11790:28;;11844:3;11837:5;11834:14;11831:40;;;11851:18;;:::i;:::-;11831:40;11884:5;;11653:246;11924:42;11962:3;11952:8;11946:4;11943:1;11924:42;:::i;:::-;11909:57;;;;11998:4;11993:3;11989:14;11982:5;11979:25;11976:51;;;12007:18;;:::i;:::-;11976:51;12056:4;12049:5;12045:16;12036:25;;10994:1073;;;;;;:::o;12073:281::-;12131:5;12155:23;12173:4;12155:23;:::i;:::-;12147:31;;12199:25;12215:8;12199:25;:::i;:::-;12187:37;;12243:104;12280:66;12270:8;12264:4;12243:104;:::i;:::-;12234:113;;12073:281;;;;:::o;12360:348::-;12400:7;12423:20;12441:1;12423:20;:::i;:::-;12418:25;;12457:20;12475:1;12457:20;:::i;:::-;12452:25;;12645:1;12577:66;12573:74;12570:1;12567:81;12562:1;12555:9;12548:17;12544:105;12541:131;;;12652:18;;:::i;:::-;12541:131;12700:1;12697;12693:9;12682:20;;12360:348;;;;:::o;12714:225::-;12854:34;12850:1;12842:6;12838:14;12831:58;12923:8;12918:2;12910:6;12906:15;12899:33;12714:225;:::o;12945:366::-;13087:3;13108:67;13172:2;13167:3;13108:67;:::i;:::-;13101:74;;13184:93;13273:3;13184:93;:::i;:::-;13302:2;13297:3;13293:12;13286:19;;12945:366;;;:::o;13317:419::-;13483:4;13521:2;13510:9;13506:18;13498:26;;13570:9;13564:4;13560:20;13556:1;13545:9;13541:17;13534:47;13598:131;13724:4;13598:131;:::i;:::-;13590:139;;13317:419;;;:::o;13742:223::-;13882:34;13878:1;13870:6;13866:14;13859:58;13951:6;13946:2;13938:6;13934:15;13927:31;13742:223;:::o;13971:366::-;14113:3;14134:67;14198:2;14193:3;14134:67;:::i;:::-;14127:74;;14210:93;14299:3;14210:93;:::i;:::-;14328:2;14323:3;14319:12;14312:19;;13971:366;;;:::o;14343:419::-;14509:4;14547:2;14536:9;14532:18;14524:26;;14596:9;14590:4;14586:20;14582:1;14571:9;14567:17;14560:47;14624:131;14750:4;14624:131;:::i;:::-;14616:139;;14343:419;;;:::o;14768:221::-;14908:34;14904:1;14896:6;14892:14;14885:58;14977:4;14972:2;14964:6;14960:15;14953:29;14768:221;:::o;14995:366::-;15137:3;15158:67;15222:2;15217:3;15158:67;:::i;:::-;15151:74;;15234:93;15323:3;15234:93;:::i;:::-;15352:2;15347:3;15343:12;15336:19;;14995:366;;;:::o;15367:419::-;15533:4;15571:2;15560:9;15556:18;15548:26;;15620:9;15614:4;15610:20;15606:1;15595:9;15591:17;15584:47;15648:131;15774:4;15648:131;:::i;:::-;15640:139;;15367:419;;;:::o;15792:224::-;15932:34;15928:1;15920:6;15916:14;15909:58;16001:7;15996:2;15988:6;15984:15;15977:32;15792:224;:::o;16022:366::-;16164:3;16185:67;16249:2;16244:3;16185:67;:::i;:::-;16178:74;;16261:93;16350:3;16261:93;:::i;:::-;16379:2;16374:3;16370:12;16363:19;;16022:366;;;:::o;16394:419::-;16560:4;16598:2;16587:9;16583:18;16575:26;;16647:9;16641:4;16637:20;16633:1;16622:9;16618:17;16611:47;16675:131;16801:4;16675:131;:::i;:::-;16667:139;;16394:419;;;:::o;16819:222::-;16959:34;16955:1;16947:6;16943:14;16936:58;17028:5;17023:2;17015:6;17011:15;17004:30;16819:222;:::o;17047:366::-;17189:3;17210:67;17274:2;17269:3;17210:67;:::i;:::-;17203:74;;17286:93;17375:3;17286:93;:::i;:::-;17404:2;17399:3;17395:12;17388:19;;17047:366;;;:::o;17419:419::-;17585:4;17623:2;17612:9;17608:18;17600:26;;17672:9;17666:4;17662:20;17658:1;17647:9;17643:17;17636:47;17700:131;17826:4;17700:131;:::i;:::-;17692:139;;17419:419;;;:::o;17844:228::-;17984:34;17980:1;17972:6;17968:14;17961:58;18053:11;18048:2;18040:6;18036:15;18029:36;17844:228;:::o;18078:366::-;18220:3;18241:67;18305:2;18300:3;18241:67;:::i;:::-;18234:74;;18317:93;18406:3;18317:93;:::i;:::-;18435:2;18430:3;18426:12;18419:19;;18078:366;;;:::o;18450:419::-;18616:4;18654:2;18643:9;18639:18;18631:26;;18703:9;18697:4;18693:20;18689:1;18678:9;18674:17;18667:47;18731:131;18857:4;18731:131;:::i;:::-;18723:139;;18450:419;;;:::o;18875:236::-;19015:34;19011:1;19003:6;18999:14;18992:58;19084:19;19079:2;19071:6;19067:15;19060:44;18875:236;:::o;19117:366::-;19259:3;19280:67;19344:2;19339:3;19280:67;:::i;:::-;19273:74;;19356:93;19445:3;19356:93;:::i;:::-;19474:2;19469:3;19465:12;19458:19;;19117:366;;;:::o;19489:419::-;19655:4;19693:2;19682:9;19678:18;19670:26;;19742:9;19736:4;19732:20;19728:1;19717:9;19713:17;19706:47;19770:131;19896:4;19770:131;:::i;:::-;19762:139;;19489:419;;;:::o;19914:173::-;20054:25;20050:1;20042:6;20038:14;20031:49;19914:173;:::o;20093:366::-;20235:3;20256:67;20320:2;20315:3;20256:67;:::i;:::-;20249:74;;20332:93;20421:3;20332:93;:::i;:::-;20450:2;20445:3;20441:12;20434:19;;20093:366;;;:::o;20465:419::-;20631:4;20669:2;20658:9;20654:18;20646:26;;20718:9;20712:4;20708:20;20704:1;20693:9;20689:17;20682:47;20746:131;20872:4;20746:131;:::i;:::-;20738:139;;20465:419;;;:::o;20890:175::-;21030:27;21026:1;21018:6;21014:14;21007:51;20890:175;:::o;21071:366::-;21213:3;21234:67;21298:2;21293:3;21234:67;:::i;:::-;21227:74;;21310:93;21399:3;21310:93;:::i;:::-;21428:2;21423:3;21419:12;21412:19;;21071:366;;;:::o;21443:419::-;21609:4;21647:2;21636:9;21632:18;21624:26;;21696:9;21690:4;21686:20;21682:1;21671:9;21667:17;21660:47;21724:131;21850:4;21724:131;:::i;:::-;21716:139;;21443:419;;;:::o;21868:176::-;22008:28;22004:1;21996:6;21992:14;21985:52;21868:176;:::o;22050:366::-;22192:3;22213:67;22277:2;22272:3;22213:67;:::i;:::-;22206:74;;22289:93;22378:3;22289:93;:::i;:::-;22407:2;22402:3;22398:12;22391:19;;22050:366;;;:::o;22422:419::-;22588:4;22626:2;22615:9;22611:18;22603:26;;22675:9;22669:4;22665:20;22661:1;22650:9;22646:17;22639:47;22703:131;22829:4;22703:131;:::i;:::-;22695:139;;22422:419;;;:::o;22847:221::-;22987:34;22983:1;22975:6;22971:14;22964:58;23056:4;23051:2;23043:6;23039:15;23032:29;22847:221;:::o;23074:366::-;23216:3;23237:67;23301:2;23296:3;23237:67;:::i;:::-;23230:74;;23313:93;23402:3;23313:93;:::i;:::-;23431:2;23426:3;23422:12;23415:19;;23074:366;;;:::o;23446:419::-;23612:4;23650:2;23639:9;23635:18;23627:26;;23699:9;23693:4;23689:20;23685:1;23674:9;23670:17;23663:47;23727:131;23853:4;23727:131;:::i;:::-;23719:139;;23446:419;;;:::o;23871:180::-;23919:77;23916:1;23909:88;24016:4;24013:1;24006:15;24040:4;24037:1;24030:15;24057:180;24105:77;24102:1;24095:88;24202:4;24199:1;24192:15;24226:4;24223:1;24216:15;24243:143;24300:5;24331:6;24325:13;24316:22;;24347:33;24374:5;24347:33;:::i;:::-;24243:143;;;;:::o;24392:351::-;24462:6;24511:2;24499:9;24490:7;24486:23;24482:32;24479:119;;;24517:79;;:::i;:::-;24479:119;24637:1;24662:64;24718:7;24709:6;24698:9;24694:22;24662:64;:::i;:::-;24652:74;;24608:128;24392:351;;;;:::o;24749:85::-;24794:7;24823:5;24812:16;;24749:85;;;:::o;24840:60::-;24868:3;24889:5;24882:12;;24840:60;;;:::o;24906:158::-;24964:9;24997:61;25015:42;25024:32;25050:5;25024:32;:::i;:::-;25015:42;:::i;:::-;24997:61;:::i;:::-;24984:74;;24906:158;;;:::o;25070:147::-;25165:45;25204:5;25165:45;:::i;:::-;25160:3;25153:58;25070:147;;:::o;25223:114::-;25290:6;25324:5;25318:12;25308:22;;25223:114;;;:::o;25343:184::-;25442:11;25476:6;25471:3;25464:19;25516:4;25511:3;25507:14;25492:29;;25343:184;;;;:::o;25533:132::-;25600:4;25623:3;25615:11;;25653:4;25648:3;25644:14;25636:22;;25533:132;;;:::o;25671:108::-;25748:24;25766:5;25748:24;:::i;:::-;25743:3;25736:37;25671:108;;:::o;25785:179::-;25854:10;25875:46;25917:3;25909:6;25875:46;:::i;:::-;25953:4;25948:3;25944:14;25930:28;;25785:179;;;;:::o;25970:113::-;26040:4;26072;26067:3;26063:14;26055:22;;25970:113;;;:::o;26119:732::-;26238:3;26267:54;26315:5;26267:54;:::i;:::-;26337:86;26416:6;26411:3;26337:86;:::i;:::-;26330:93;;26447:56;26497:5;26447:56;:::i;:::-;26526:7;26557:1;26542:284;26567:6;26564:1;26561:13;26542:284;;;26643:6;26637:13;26670:63;26729:3;26714:13;26670:63;:::i;:::-;26663:70;;26756:60;26809:6;26756:60;:::i;:::-;26746:70;;26602:224;26589:1;26586;26582:9;26577:14;;26542:284;;;26546:14;26842:3;26835:10;;26243:608;;;26119:732;;;;:::o;26857:831::-;27120:4;27158:3;27147:9;27143:19;27135:27;;27172:71;27240:1;27229:9;27225:17;27216:6;27172:71;:::i;:::-;27253:80;27329:2;27318:9;27314:18;27305:6;27253:80;:::i;:::-;27380:9;27374:4;27370:20;27365:2;27354:9;27350:18;27343:48;27408:108;27511:4;27502:6;27408:108;:::i;:::-;27400:116;;27526:72;27594:2;27583:9;27579:18;27570:6;27526:72;:::i;:::-;27608:73;27676:3;27665:9;27661:19;27652:6;27608:73;:::i;:::-;26857:831;;;;;;;;:::o;27694:180::-;27742:77;27739:1;27732:88;27839:4;27836:1;27829:15;27863:4;27860:1;27853:15;27880:185;27920:1;27937:20;27955:1;27937:20;:::i;:::-;27932:25;;27971:20;27989:1;27971:20;:::i;:::-;27966:25;;28010:1;28000:35;;28015:18;;:::i;:::-;28000:35;28057:1;28054;28050:9;28045:14;;27880:185;;;;:::o

Swarm Source

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