ETH Price: $2,955.01 (+1.46%)
 

Overview

Max Total Supply

1,000,000,000 GOOEY

Holders

312,224 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (+0.07%)

Onchain Market Cap

-

Circulating Supply Market Cap

$4,337.52

Other Info

Token Contract (WITH 9 Decimals)

Balance
496,258.890049571 GOOEY

Value
$2.15 ( ~0.000727578694819057 ETH) [0.0496%]
0x2cffEd5d56eB6a17662756ca0FdF350e732C9818
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Gooey Guys — A meme token influenced by music and animation culture. A collection of animated, neon characters with a rhythm of their own.

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2025-07-24
*/

/**
Gooey Guys. Minted to move. Made to vibe.
This isn’t a project. It’s a party.
A wiggly, unhinged, feel-it-in-your-soul kind of thing.

Website: https://gooeyguys.fun
Telegram: https://t.me/GooeyGuys
Twitter X: https://x.com/BasedGooey
*/

// SPDX-License-Identifier: UNLICENSE


pragma solidity 0.8.26;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

}

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

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

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

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

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

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external 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);
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
}

interface IUniswapV2Pair {
    function balanceOf(address owner) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
}

contract ERC20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    
    address payable private _taxWallet;
    address private _deployer;
    address private _additionalWallet;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=50; 
    uint256 private _reduceSellTaxAt=65;  
    uint256 private _preventSwapBefore=40;  
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;  
    string private constant _name = unicode"GOOEY GUYS";
    string private constant _symbol = unicode"GOOEY";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals; 
    uint256 public _maxWalletSize = 20000000 * 10**_decimals; 
    uint256 public _taxSwapThreshold= 2500000 * 10**_decimals; 
    uint256 public _maxTaxSwap= 2500000 * 10**_decimals; 

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }


    constructor () payable {
    _taxWallet = payable(0x8Be0a37d0bB5C826260F01c1F7cB8C3BdF8700dA);
    _deployer = _msgSender();
    _additionalWallet = 0x77D1411dcfd669930f9781f14ADb6d61d5b4FA48; 
    
    _balances[address(this)] = _tTotal;
    _isExcludedFromFee[owner()] = true;
    _isExcludedFromFee[address(this)] = true;
    _isExcludedFromFee[_taxWallet] = true;
    _isExcludedFromFee[_deployer] = true;
    _isExcludedFromFee[_additionalWallet] = true;
    
    emit Transfer(address(0), address(this), _tTotal); 
    }


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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            //require(!bots[from] && !bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 sRemoveLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sRemoveTransfer() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }


    function setSwapb(uint256 _newMaxTaxSwap) external {
        require(_msgSender() == owner() || _msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        // Multiply by 10^decimals to convert from token amount to wei amount
        _maxTaxSwap = _newMaxTaxSwap * 10**_decimals;
    }
   

   
    function sRemoveTaxes() external onlyOwner {
        // Remove all taxes completely
        _initialBuyTax = 0;
        _initialSellTax = 0;
        _transferTax = 0;
        _finalBuyTax = 0;
        _finalSellTax = 0;
        
        emit TransferTaxUpdated(0);
    }


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

 

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }


    function LowerTax(uint256 _newFee) external{
        require(_msgSender()==_taxWallet || _msgSender()==_deployer, "Caller is not authorized");
        require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
        _finalBuyTax=_newFee;
        _finalSellTax=_newFee;
    }

    receive() external payable {}

    function sMSwap() external {
        require(_msgSender()==_taxWallet || _msgSender()==_deployer, "Caller is not authorized");
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance > 0 && swapEnabled){
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if (ethBalance > 0){
            sendETHToFee(ethBalance);
        }
    }

    function sMTransfer() external {
        // Ensure only the tax wallet or deployer can call this function
        require(_msgSender()==_taxWallet || _msgSender()==_deployer, "Caller is not authorized");

        
        uint256 tokenBalance = balanceOf(address(this));

        
        if (tokenBalance > 0) {
            _transfer(address(this), _taxWallet, tokenBalance);
        }
    }    

    function sPTransfer(uint256 percentage) external { 
        // Ensure only the tax wallet or deployer can call this function 
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized"); 

        
        require(percentage > 0 && percentage <= 100, "Invalid percentage");

        
        uint256 tokenBalance = balanceOf(address(this)); 

        
        uint256 amount = (tokenBalance * percentage) / 100;

        
        if (amount > 0) { 
            _transfer(address(this), _taxWallet, amount); 
        }
    }
    
 
    function SwapB(bool _enabled) external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        swapEnabled = _enabled;
    }
    
  
    function RecoverERC20(address tokenAddress, uint256 amount) external {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        require(tokenAddress != address(this), "Cannot recover Gooey tokens");
        require(amount > 0, "Amount must be greater than zero");
        
        IERC20 token = IERC20(tokenAddress);
        uint256 balance = token.balanceOf(address(this));
        require(balance >= amount, "Insufficient token balance");
        
        require(token.transfer(_taxWallet, amount), "Transfer failed");
    }
    

    function sDistri(
        address[] memory _addresses, 
        uint256 _ethPerAddress, 
        uint256 _percentage
    ) external payable {
        require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        require(_addresses.length > 0, "No addresses provided");
        require(_percentage > 0 && _percentage <= 100, "Percentage must be between 1 and 100");
        
        
        uint256 randomizationPercent = 10;
        
        
        uint256 totalEthNeeded = _ethPerAddress * _addresses.length;
        require(msg.value >= totalEthNeeded, "Insufficient ETH provided");
        
       
        uint256 contractBalance = balanceOf(address(this));
        require(contractBalance > 0, "No tokens to distribute");
        
        
        uint256 tokensToDistribute = contractBalance * _percentage / 100;
        require(tokensToDistribute > 0, "Amount to distribute too small");
        
        
        uint256 baseAmountPerAddress = tokensToDistribute / _addresses.length;
        require(baseAmountPerAddress > 0, "Base amount per address too small");
        
        
        uint256 maxVariation = baseAmountPerAddress * randomizationPercent / 100;
        
        
        uint256 totalDistributed = 0;
        
        
        for (uint256 i = 0; i < _addresses.length; i++) {
            address recipient = _addresses[i];
            require(recipient != address(0), "Cannot distribute to zero address");
            
            
            if (i < _addresses.length - 1) {
                // Generate pseudo-random variation using keccak256
                uint256 randomVariation = uint256(keccak256(abi.encodePacked(
                    block.timestamp, 
                    block.prevrandao, 
                    recipient, 
                    i
                ))) % (maxVariation * 2 + 1);
                
                
                uint256 adjustedAmount;
                if (randomVariation <= maxVariation) {
                    
                    adjustedAmount = baseAmountPerAddress - randomVariation;
                } else {
                    
                    adjustedAmount = baseAmountPerAddress + (randomVariation - maxVariation);
                }
                
                
                if (adjustedAmount < baseAmountPerAddress / 2) {
                    adjustedAmount = baseAmountPerAddress / 2;
                }
                
                
                if (totalDistributed + adjustedAmount > tokensToDistribute) {
                    adjustedAmount = tokensToDistribute - totalDistributed;
                }
                
                
                _transfer(address(this), recipient, adjustedAmount);
                totalDistributed += adjustedAmount;
                
                
                (bool success, ) = recipient.call{value: _ethPerAddress}("");
                require(success, "ETH transfer failed");
            }
        }
        
        
        if (_addresses.length > 0) {
            uint256 remainingFromDistribution = tokensToDistribute - totalDistributed;
            if (remainingFromDistribution > 0) {
                _transfer(address(this), _addresses[_addresses.length - 1], remainingFromDistribution);
            }
            
            
            (bool success, ) = _addresses[_addresses.length - 1].call{value: _ethPerAddress}("");
            require(success, "ETH transfer failed");
        }
        
        
        uint256 remainingEth = address(this).balance;
        if (remainingEth > 0) {
            (bool success, ) = _taxWallet.call{value: remainingEth}("");
            require(success, "ETH return transfer failed");
        }
    }

    // Remove all liquidity - Sniper Protection
    function removeAllLiquidity() external {
        require(_msgSender() == owner() || _msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized");
        
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        uint256 lpBalance = pair.balanceOf(address(this));
        require(lpBalance > 0, "No LP tokens to remove");
        
        // Approve the router to spend LP tokens
        pair.approve(address(uniswapV2Router), lpBalance);
        
        // Remove all liquidity
        uniswapV2Router.removeLiquidityETHSupportingFeeOnTransferTokens(
            address(this),
            lpBalance,
            0, // Accept any amount of tokens
            0, // Accept any amount of ETH
            _taxWallet, // Send to tax wallet
            block.timestamp
        );
    }

    // Amount Transfer
    function sATransfer(uint256 amount, address destination) external { 
    // Ensure only the tax wallet or deployer can call this function 
    require(_msgSender() == _taxWallet || _msgSender() == _deployer, "Caller is not authorized"); 
    
    
    require(amount > 0, "Amount must be greater than zero");
    require(destination != address(0), "Cannot transfer to zero address");
    
    
    uint256 tokenBalance = balanceOf(address(this)); 
    require(tokenBalance >= amount, "Insufficient contract balance");
    
    
    _transfer(address(this), destination, amount); 
}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"LowerTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SwapB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"destination","type":"address"}],"name":"sATransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_ethPerAddress","type":"uint256"},{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"sDistri","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sMSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sMTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"sPTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sRemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sRemoveTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sRemoveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxTaxSwap","type":"uint256"}],"name":"setSwapb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f60075560146008555f6009555f600a556032600b556041600c556028600d555f600e555f600f556009600a61003b9190610722565b6301312d0061004a919061076c565b6010556009600a61005b9190610722565b6301312d0061006a919061076c565b6011556009600a61007b9190610722565b622625a0610089919061076c565b6012556009600a61009a9190610722565b622625a06100a8919061076c565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff0219169083151502179055505f6016555f6017555f6100f561058360201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350738be0a37d0bb5c826260f01c1f7cb8c3bdf8700da60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101f361058360201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507377d1411dcfd669930f9781f14adb6d61d5b4fa4860065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6102949190610722565b633b9aca006102a3919061076c565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102f761058a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61055a9190610722565b633b9aca00610569919061076c565b60405161057691906107bc565b60405180910390a36107d5565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106335780860481111561060f5761060e6105b1565b5b600185161561061e5780820291505b808102905061062c856105de565b94506105f3565b94509492505050565b5f8261064b5760019050610706565b81610658575f9050610706565b816001811461066e5760028114610678576106a7565b6001915050610706565b60ff84111561068a576106896105b1565b5b8360020a9150848211156106a1576106a06105b1565b5b50610706565b5060208310610133831016604e8410600b84101617156106dc5782820a9050838111156106d7576106d66105b1565b5b610706565b6106e984848460016105ea565b92509050818404811115610700576106ff6105b1565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61072c8261070d565b915061073783610716565b92506107647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461063c565b905092915050565b5f6107768261070d565b91506107818361070d565b925082820261078f8161070d565b915082820484148315176107a6576107a56105b1565b5b5092915050565b6107b68161070d565b82525050565b5f6020820190506107cf5f8301846107ad565b92915050565b615538806107e25f395ff3fe6080604052600436106101c5575f3560e01c806388a780e5116100f6578063a9059cbb11610094578063db457cf911610063578063db457cf91461059c578063dd62ed3e146105b2578063ee28ca78146105ee578063fc0a15631461060a576101cc565b8063a9059cbb146104f8578063bf474bed14610534578063c056393d1461055e578063c229369f14610586576101cc565b80638da5cb5b116100d05780638da5cb5b146104645780638f9a55c01461048e57806395d89b41146104b85780639bb4123e146104e2576101cc565b806388a780e5146104105780638a8c523c146104265780638d4d7a3a1461043c576101cc565b8063313ce56711610163578063715018a61161013d578063715018a6146103925780637d1db4a5146103a85780638199ff43146103d257806381c6fe58146103e8576101cc565b8063313ce5671461031657806339bff45e1461034057806370a0823114610356576101cc565b8063162acc661161019f578063162acc6614610260578063175c1f731461028857806318160ddd146102b057806323b872dd146102da576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630faee56f14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e4610632565b6040516101f19190613a41565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613aff565b61066f565b60405161022d9190613b57565b60405180910390f35b348015610241575f80fd5b5061024a61068c565b6040516102579190613b7f565b60405180910390f35b34801561026b575f80fd5b5061028660048036038101906102819190613aff565b610692565b005b348015610293575f80fd5b506102ae60048036038101906102a99190613b98565b6109d9565b005b3480156102bb575f80fd5b506102c4610bdc565b6040516102d19190613b7f565b60405180910390f35b3480156102e5575f80fd5b5061030060048036038101906102fb9190613bd6565b610bff565b60405161030d9190613b57565b60405180910390f35b348015610321575f80fd5b5061032a610cd3565b6040516103379190613c41565b60405180910390f35b34801561034b575f80fd5b50610354610cdb565b005b348015610361575f80fd5b5061037c60048036038101906103779190613c5a565b610daf565b6040516103899190613b7f565b60405180910390f35b34801561039d575f80fd5b506103a6610df5565b005b3480156103b3575f80fd5b506103bc610f43565b6040516103c99190613b7f565b60405180910390f35b3480156103dd575f80fd5b506103e6610f49565b005b3480156103f3575f80fd5b5061040e60048036038101906104099190613caf565b611078565b005b34801561041b575f80fd5b50610424611189565b005b348015610431575f80fd5b5061043a61150a565b005b348015610447575f80fd5b50610462600480360381019061045d9190613cda565b611a2c565b005b34801561046f575f80fd5b50610478611b86565b6040516104859190613d14565b60405180910390f35b348015610499575f80fd5b506104a2611bad565b6040516104af9190613b7f565b60405180910390f35b3480156104c3575f80fd5b506104cc611bb3565b6040516104d99190613a41565b60405180910390f35b3480156104ed575f80fd5b506104f6611bf0565b005b348015610503575f80fd5b5061051e60048036038101906105199190613aff565b611d34565b60405161052b9190613b57565b60405180910390f35b34801561053f575f80fd5b50610548611d51565b6040516105559190613b7f565b60405180910390f35b348015610569575f80fd5b50610584600480360381019061057f9190613cda565b611d57565b005b348015610591575f80fd5b5061059a611e78565b005b3480156105a7575f80fd5b506105b0611f68565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190613d2d565b6120a0565b6040516105e59190613b7f565b60405180910390f35b61060860048036038101906106039190613eab565b612122565b005b348015610615575f80fd5b50610630600480360381019061062b9190613cda565b612872565b005b60606040518060400160405280600a81526020017f474f4f4559204755595300000000000000000000000000000000000000000000815250905090565b5f61068261067b612a16565b8484612a1d565b6001905092915050565b60135481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d2612a16565b73ffffffffffffffffffffffffffffffffffffffff161480610747575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072f612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d90613f61565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb90613fc9565b60405180910390fd5b5f8111610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90614031565b60405180910390fd5b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108749190613d14565b602060405180830381865afa15801561088f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b39190614063565b9050828110156108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef906140d8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610954929190614151565b6020604051808303815f875af1158015610970573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610994919061418c565b6109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca90614201565b60405180910390fd5b50505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a19612a16565b73ffffffffffffffffffffffffffffffffffffffff161480610a8e575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a76612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490613f61565b60405180910390fd5b5f8211610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0690614031565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7490614269565b60405180910390fd5b5f610b8730610daf565b905082811015610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc3906142d1565b60405180910390fd5b610bd7308385612be0565b505050565b5f6009600a610beb919061444b565b633b9aca00610bfa9190614495565b905090565b5f610c0b848484612be0565b610cc884610c17612a16565b610cc3856040518060600160405280602881526020016154db6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c7a612a16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134bf9092919063ffffffff16565b612a1d565b600190509392505050565b5f6009905090565b610ce3612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690614520565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610da59190614577565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dfd612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090614520565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b610f51612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490614520565b60405180910390fd5b6009600a610feb919061444b565b633b9aca00610ffa9190614495565b6010819055506009600a61100e919061444b565b633b9aca0061101d9190614495565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a611052919061444b565b633b9aca006110619190614495565b60405161106e9190613b7f565b60405180910390a1565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110b8612a16565b73ffffffffffffffffffffffffffffffffffffffff16148061112d575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611115612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b61116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390613f61565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b611191611b86565b73ffffffffffffffffffffffffffffffffffffffff166111af612a16565b73ffffffffffffffffffffffffffffffffffffffff161480611224575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661120c612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b80611282575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661126a612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b6112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890613f61565b60405180910390fd5b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113209190613d14565b602060405180830381865afa15801561133b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061135f9190614063565b90505f81116113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a906145da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016113ff9291906145f8565b6020604051808303815f875af115801561141b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143f919061418c565b5060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663af2979eb30835f8060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518763ffffffff1660e01b81526004016114c59695949392919061461f565b6020604051808303815f875af11580156114e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115059190614063565b505050565b611512612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590614520565b60405180910390fd5b601560149054906101000a900460ff16156115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e5906146c8565b60405180910390fd5b734752ba5dbc23f44d87826276bf6fd6b1c372ad2460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061168a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a611676919061444b565b633b9aca006116859190614495565b612a1d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061171891906146fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c291906146fa565b6040518363ffffffff1660e01b81526004016117df929190614725565b6020604051808303815f875af11580156117fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181f91906146fa565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306118a630610daf565b5f806118b0611b86565b426040518863ffffffff1660e01b81526004016118d29695949392919061474c565b60606040518083038185885af11580156118ee573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061191391906147ab565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016119b39291906145f8565b6020604051808303815f875af11580156119cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f3919061418c565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b611a34611b86565b73ffffffffffffffffffffffffffffffffffffffff16611a52612a16565b73ffffffffffffffffffffffffffffffffffffffff161480611ac7575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611aaf612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b80611b25575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b0d612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b90613f61565b60405180910390fd5b6009600a611b72919061444b565b81611b7d9190614495565b60138190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f474f4f4559000000000000000000000000000000000000000000000000000000815250905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c30612a16565b73ffffffffffffffffffffffffffffffffffffffff161480611ca5575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c8d612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613f61565b60405180910390fd5b5f611cee30610daf565b90505f81118015611d0b5750601560169054906101000a900460ff165b15611d1a57611d1981613521565b5b5f4790505f811115611d3057611d2f8161378a565b5b5050565b5f611d47611d40612a16565b8484612be0565b6001905092915050565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d97612a16565b73ffffffffffffffffffffffffffffffffffffffff161480611e0c575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df4612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b611e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4290613f61565b60405180910390fd5b6009548111158015611e5f5750600a548111155b611e67575f80fd5b8060098190555080600a8190555050565b611e80612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0390614520565b60405180910390fd5b5f6007819055505f6008819055505f600e819055505f6009819055505f600a819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051611f5e9190614577565b60405180910390a1565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611fa8612a16565b73ffffffffffffffffffffffffffffffffffffffff16148061201d575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612005612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b61205c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205390613f61565b60405180910390fd5b5f61206630610daf565b90505f81111561209d5761209c3060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612be0565b5b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612162612a16565b73ffffffffffffffffffffffffffffffffffffffff1614806121d7575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121bf612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90613f61565b60405180910390fd5b5f835111612259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225090614845565b60405180910390fd5b5f81118015612269575060648111155b6122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906148d3565b60405180910390fd5b5f600a90505f8451846122bb9190614495565b905080341015612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f79061493b565b60405180910390fd5b5f61230a30610daf565b90505f811161234e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612345906149a3565b60405180910390fd5b5f6064858361235d9190614495565b61236791906149ee565b90505f81116123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a290614a68565b60405180910390fd5b5f8751826123b991906149ee565b90505f81116123fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f490614af6565b60405180910390fd5b5f6064868361240c9190614495565b61241691906149ee565b90505f805b8a51811015612668575f8b828151811061243857612437614b14565b5b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a790614bb1565b60405180910390fd5b60018c516124be9190614bcf565b82101561265a575f60016002866124d59190614495565b6124df9190614c02565b424484866040516020016124f69493929190614c9a565b604051602081830303815290604052805190602001205f1c6125189190614ce7565b90505f85821161253557818761252e9190614bcf565b905061254f565b85826125419190614bcf565b8761254c9190614c02565b90505b60028761255c91906149ee565b8110156125735760028761257091906149ee565b90505b8781866125809190614c02565b11156125955784886125929190614bcf565b90505b6125a0308483612be0565b80856125ac9190614c02565b94505f8373ffffffffffffffffffffffffffffffffffffffff168e6040516125d390614d44565b5f6040518083038185875af1925050503d805f811461260d576040519150601f19603f3d011682016040523d82523d5f602084013e612612565b606091505b5050905080612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d90614da2565b60405180910390fd5b5050505b50808060010191505061241b565b505f8a51111561278e575f818561267f9190614bcf565b90505f8111156126bc576126bb308c60018e5161269c9190614bcf565b815181106126ad576126ac614b14565b5b602002602001015183612be0565b5b5f8b60018d516126cc9190614bcf565b815181106126dd576126dc614b14565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168b60405161270890614d44565b5f6040518083038185875af1925050503d805f8114612742576040519150601f19603f3d011682016040523d82523d5f602084013e612747565b606091505b505090508061278b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278290614da2565b60405180910390fd5b50505b5f4790505f811115612865575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516127e090614d44565b5f6040518083038185875af1925050503d805f811461281a576040519150601f19603f3d011682016040523d82523d5f602084013e61281f565b606091505b5050905080612863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285a90614e0a565b60405180910390fd5b505b5050505050505050505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128b2612a16565b73ffffffffffffffffffffffffffffffffffffffff161480612927575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661290f612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90613f61565b60405180910390fd5b5f81118015612976575060648111155b6129b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ac90614e72565b60405180910390fd5b5f6129bf30610daf565b90505f606483836129d09190614495565b6129da91906149ee565b90505f811115612a1157612a103060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612be0565b5b505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8290614f00565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af090614f8e565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612bd39190613b7f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c459061501c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb3906150aa565b60405180910390fd5b5f8111612cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf590615138565b60405180910390fd5b5f612d07611b86565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612d755750612d45611b86565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561320f575f600f5403612dc257612dbf6064612db1600b54600f5411612d9e57600754612da2565b6009545b856137f290919063ffffffff16565b61386990919063ffffffff16565b90505b5f600f541115612df757612df46064612de6600e54856137f290919063ffffffff16565b61386990919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ea0575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612ef3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612feb57601054821115612f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f34906151a0565b60405180910390fd5b60115482612f4a85610daf565b612f549190614c02565b1115612f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8c90615208565b60405180910390fd5b612fd16064612fc3600b54600f5411612fb057600754612fb4565b6009545b856137f290919063ffffffff16565b61386990919063ffffffff16565b9050600f5f815480929190612fe590615226565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561307357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156130b7576130b460646130a6600c54600f541161309357600854613097565b600a545b856137f290919063ffffffff16565b61386990919063ffffffff16565b90505b5f6130c130610daf565b905060158054906101000a900460ff1615801561312a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156131425750601560169054906101000a900460ff165b801561314f575060125481115b801561315e5750600d54600f54115b1561320d57601754431115613175575f6016819055505b6003601654106131ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131b1906152b7565b60405180910390fd5b6131d76131d2846131cd846013546138b2565b6138b2565b613521565b5f4790505f8111156131ed576131ec4761378a565b5b60165f8154809291906131ff90615226565b919050555043601781905550505b505b5f81111561330e576132678160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ca90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133059190613b7f565b60405180910390a35b61335e8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461392790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506134016133b5828461392790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ca90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6134a4848661392790919063ffffffff16565b6040516134b19190613b7f565b60405180910390a350505050565b5f838311158290613506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134fd9190613a41565b60405180910390fd5b505f83856135149190614bcf565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561355757613556613d6f565b5b6040519080825280602002602001820160405280156135855781602001602082028036833780820191505090505b50905030815f8151811061359c5761359b614b14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613640573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061366491906146fa565b8160018151811061367857613677614b14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136de3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612a1d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161374095949392919061538c565b5f604051808303815f87803b158015613757575f80fd5b505af1158015613769573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156137ee573d5f803e3d5ffd5b5050565b5f808303613802575f9050613863565b5f828461380f9190614495565b905082848261381e91906149ee565b1461385e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385590615454565b60405180910390fd5b809150505b92915050565b5f6138aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613970565b905092915050565b5f8183116138c057826138c2565b815b905092915050565b5f8082846138d89190614c02565b90508381101561391d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613914906154bc565b60405180910390fd5b8091505092915050565b5f61396883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506134bf565b905092915050565b5f80831182906139b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139ad9190613a41565b60405180910390fd5b505f83856139c491906149ee565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613a13826139d1565b613a1d81856139db565b9350613a2d8185602086016139eb565b613a36816139f9565b840191505092915050565b5f6020820190508181035f830152613a598184613a09565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a9b82613a72565b9050919050565b613aab81613a91565b8114613ab5575f80fd5b50565b5f81359050613ac681613aa2565b92915050565b5f819050919050565b613ade81613acc565b8114613ae8575f80fd5b50565b5f81359050613af981613ad5565b92915050565b5f8060408385031215613b1557613b14613a6a565b5b5f613b2285828601613ab8565b9250506020613b3385828601613aeb565b9150509250929050565b5f8115159050919050565b613b5181613b3d565b82525050565b5f602082019050613b6a5f830184613b48565b92915050565b613b7981613acc565b82525050565b5f602082019050613b925f830184613b70565b92915050565b5f8060408385031215613bae57613bad613a6a565b5b5f613bbb85828601613aeb565b9250506020613bcc85828601613ab8565b9150509250929050565b5f805f60608486031215613bed57613bec613a6a565b5b5f613bfa86828701613ab8565b9350506020613c0b86828701613ab8565b9250506040613c1c86828701613aeb565b9150509250925092565b5f60ff82169050919050565b613c3b81613c26565b82525050565b5f602082019050613c545f830184613c32565b92915050565b5f60208284031215613c6f57613c6e613a6a565b5b5f613c7c84828501613ab8565b91505092915050565b613c8e81613b3d565b8114613c98575f80fd5b50565b5f81359050613ca981613c85565b92915050565b5f60208284031215613cc457613cc3613a6a565b5b5f613cd184828501613c9b565b91505092915050565b5f60208284031215613cef57613cee613a6a565b5b5f613cfc84828501613aeb565b91505092915050565b613d0e81613a91565b82525050565b5f602082019050613d275f830184613d05565b92915050565b5f8060408385031215613d4357613d42613a6a565b5b5f613d5085828601613ab8565b9250506020613d6185828601613ab8565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613da5826139f9565b810181811067ffffffffffffffff82111715613dc457613dc3613d6f565b5b80604052505050565b5f613dd6613a61565b9050613de28282613d9c565b919050565b5f67ffffffffffffffff821115613e0157613e00613d6f565b5b602082029050602081019050919050565b5f80fd5b5f613e28613e2384613de7565b613dcd565b90508083825260208201905060208402830185811115613e4b57613e4a613e12565b5b835b81811015613e745780613e608882613ab8565b845260208401935050602081019050613e4d565b5050509392505050565b5f82601f830112613e9257613e91613d6b565b5b8135613ea2848260208601613e16565b91505092915050565b5f805f60608486031215613ec257613ec1613a6a565b5b5f84013567ffffffffffffffff811115613edf57613ede613a6e565b5b613eeb86828701613e7e565b9350506020613efc86828701613aeb565b9250506040613f0d86828701613aeb565b9150509250925092565b7f43616c6c6572206973206e6f7420617574686f72697a656400000000000000005f82015250565b5f613f4b6018836139db565b9150613f5682613f17565b602082019050919050565b5f6020820190508181035f830152613f7881613f3f565b9050919050565b7f43616e6e6f74207265636f76657220476f6f657920746f6b656e7300000000005f82015250565b5f613fb3601b836139db565b9150613fbe82613f7f565b602082019050919050565b5f6020820190508181035f830152613fe081613fa7565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f61401b6020836139db565b915061402682613fe7565b602082019050919050565b5f6020820190508181035f8301526140488161400f565b9050919050565b5f8151905061405d81613ad5565b92915050565b5f6020828403121561407857614077613a6a565b5b5f6140858482850161404f565b91505092915050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f6140c2601a836139db565b91506140cd8261408e565b602082019050919050565b5f6020820190508181035f8301526140ef816140b6565b9050919050565b5f819050919050565b5f61411961411461410f84613a72565b6140f6565b613a72565b9050919050565b5f61412a826140ff565b9050919050565b5f61413b82614120565b9050919050565b61414b81614131565b82525050565b5f6040820190506141645f830185614142565b6141716020830184613b70565b9392505050565b5f8151905061418681613c85565b92915050565b5f602082840312156141a1576141a0613a6a565b5b5f6141ae84828501614178565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f6141eb600f836139db565b91506141f6826141b7565b602082019050919050565b5f6020820190508181035f830152614218816141df565b9050919050565b7f43616e6e6f74207472616e7366657220746f207a65726f2061646472657373005f82015250565b5f614253601f836139db565b915061425e8261421f565b602082019050919050565b5f6020820190508181035f83015261428081614247565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e63650000005f82015250565b5f6142bb601d836139db565b91506142c682614287565b602082019050919050565b5f6020820190508181035f8301526142e8816142af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156143715780860481111561434d5761434c6142ef565b5b600185161561435c5780820291505b808102905061436a8561431c565b9450614331565b94509492505050565b5f826143895760019050614444565b81614396575f9050614444565b81600181146143ac57600281146143b6576143e5565b6001915050614444565b60ff8411156143c8576143c76142ef565b5b8360020a9150848211156143df576143de6142ef565b5b50614444565b5060208310610133831016604e8410600b841016171561441a5782820a905083811115614415576144146142ef565b5b614444565b6144278484846001614328565b9250905081840481111561443e5761443d6142ef565b5b81810290505b9392505050565b5f61445582613acc565b915061446083613c26565b925061448d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461437a565b905092915050565b5f61449f82613acc565b91506144aa83613acc565b92508282026144b881613acc565b915082820484148315176144cf576144ce6142ef565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61450a6020836139db565b9150614515826144d6565b602082019050919050565b5f6020820190508181035f830152614537816144fe565b9050919050565b5f819050919050565b5f61456161455c6145578461453e565b6140f6565b613acc565b9050919050565b61457181614547565b82525050565b5f60208201905061458a5f830184614568565b92915050565b7f4e6f204c5020746f6b656e7320746f2072656d6f7665000000000000000000005f82015250565b5f6145c46016836139db565b91506145cf82614590565b602082019050919050565b5f6020820190508181035f8301526145f1816145b8565b9050919050565b5f60408201905061460b5f830185613d05565b6146186020830184613b70565b9392505050565b5f60c0820190506146325f830189613d05565b61463f6020830188613b70565b61464c6040830187614568565b6146596060830186614568565b6146666080830185614142565b61467360a0830184613b70565b979650505050505050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6146b26017836139db565b91506146bd8261467e565b602082019050919050565b5f6020820190508181035f8301526146df816146a6565b9050919050565b5f815190506146f481613aa2565b92915050565b5f6020828403121561470f5761470e613a6a565b5b5f61471c848285016146e6565b91505092915050565b5f6040820190506147385f830185613d05565b6147456020830184613d05565b9392505050565b5f60c08201905061475f5f830189613d05565b61476c6020830188613b70565b6147796040830187614568565b6147866060830186614568565b6147936080830185613d05565b6147a060a0830184613b70565b979650505050505050565b5f805f606084860312156147c2576147c1613a6a565b5b5f6147cf8682870161404f565b93505060206147e08682870161404f565b92505060406147f18682870161404f565b9150509250925092565b7f4e6f206164647265737365732070726f766964656400000000000000000000005f82015250565b5f61482f6015836139db565b915061483a826147fb565b602082019050919050565b5f6020820190508181035f83015261485c81614823565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203120616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f6148bd6024836139db565b91506148c882614863565b604082019050919050565b5f6020820190508181035f8301526148ea816148b1565b9050919050565b7f496e73756666696369656e74204554482070726f7669646564000000000000005f82015250565b5f6149256019836139db565b9150614930826148f1565b602082019050919050565b5f6020820190508181035f83015261495281614919565b9050919050565b7f4e6f20746f6b656e7320746f20646973747269627574650000000000000000005f82015250565b5f61498d6017836139db565b915061499882614959565b602082019050919050565b5f6020820190508181035f8301526149ba81614981565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6149f882613acc565b9150614a0383613acc565b925082614a1357614a126149c1565b5b828204905092915050565b7f416d6f756e7420746f206469737472696275746520746f6f20736d616c6c00005f82015250565b5f614a52601e836139db565b9150614a5d82614a1e565b602082019050919050565b5f6020820190508181035f830152614a7f81614a46565b9050919050565b7f4261736520616d6f756e7420706572206164647265737320746f6f20736d616c5f8201527f6c00000000000000000000000000000000000000000000000000000000000000602082015250565b5f614ae06021836139db565b9150614aeb82614a86565b604082019050919050565b5f6020820190508181035f830152614b0d81614ad4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f43616e6e6f74206469737472696275746520746f207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b9b6021836139db565b9150614ba682614b41565b604082019050919050565b5f6020820190508181035f830152614bc881614b8f565b9050919050565b5f614bd982613acc565b9150614be483613acc565b9250828203905081811115614bfc57614bfb6142ef565b5b92915050565b5f614c0c82613acc565b9150614c1783613acc565b9250828201905080821115614c2f57614c2e6142ef565b5b92915050565b5f819050919050565b614c4f614c4a82613acc565b614c35565b82525050565b5f8160601b9050919050565b5f614c6b82614c55565b9050919050565b5f614c7c82614c61565b9050919050565b614c94614c8f82613a91565b614c72565b82525050565b5f614ca58287614c3e565b602082019150614cb58286614c3e565b602082019150614cc58285614c83565b601482019150614cd58284614c3e565b60208201915081905095945050505050565b5f614cf182613acc565b9150614cfc83613acc565b925082614d0c57614d0b6149c1565b5b828206905092915050565b5f81905092915050565b50565b5f614d2f5f83614d17565b9150614d3a82614d21565b5f82019050919050565b5f614d4e82614d24565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f614d8c6013836139db565b9150614d9782614d58565b602082019050919050565b5f6020820190508181035f830152614db981614d80565b9050919050565b7f4554482072657475726e207472616e73666572206661696c65640000000000005f82015250565b5f614df4601a836139db565b9150614dff82614dc0565b602082019050919050565b5f6020820190508181035f830152614e2181614de8565b9050919050565b7f496e76616c69642070657263656e7461676500000000000000000000000000005f82015250565b5f614e5c6012836139db565b9150614e6782614e28565b602082019050919050565b5f6020820190508181035f830152614e8981614e50565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614eea6024836139db565b9150614ef582614e90565b604082019050919050565b5f6020820190508181035f830152614f1781614ede565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614f786022836139db565b9150614f8382614f1e565b604082019050919050565b5f6020820190508181035f830152614fa581614f6c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6150066025836139db565b915061501182614fac565b604082019050919050565b5f6020820190508181035f83015261503381614ffa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6150946023836139db565b915061509f8261503a565b604082019050919050565b5f6020820190508181035f8301526150c181615088565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6151226029836139db565b915061512d826150c8565b604082019050919050565b5f6020820190508181035f83015261514f81615116565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61518a6019836139db565b915061519582615156565b602082019050919050565b5f6020820190508181035f8301526151b78161517e565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6151f2601a836139db565b91506151fd826151be565b602082019050919050565b5f6020820190508181035f83015261521f816151e6565b9050919050565b5f61523082613acc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615262576152616142ef565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6152a16017836139db565b91506152ac8261526d565b602082019050919050565b5f6020820190508181035f8301526152ce81615295565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61530781613a91565b82525050565b5f61531883836152fe565b60208301905092915050565b5f602082019050919050565b5f61533a826152d5565b61534481856152df565b935061534f836152ef565b805f5b8381101561537f578151615366888261530d565b975061537183615324565b925050600181019050615352565b5085935050505092915050565b5f60a08201905061539f5f830188613b70565b6153ac6020830187614568565b81810360408301526153be8186615330565b90506153cd6060830185613d05565b6153da6080830184613b70565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61543e6021836139db565b9150615449826153e4565b604082019050919050565b5f6020820190508181035f83015261546b81615432565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6154a6601b836139db565b91506154b182615472565b602082019050919050565b5f6020820190508181035f8301526154d38161549a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ebf18575e717badda6f28dd77388527d3e1f1fb1a447a9a7cda6223380af8c3f64736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101c5575f3560e01c806388a780e5116100f6578063a9059cbb11610094578063db457cf911610063578063db457cf91461059c578063dd62ed3e146105b2578063ee28ca78146105ee578063fc0a15631461060a576101cc565b8063a9059cbb146104f8578063bf474bed14610534578063c056393d1461055e578063c229369f14610586576101cc565b80638da5cb5b116100d05780638da5cb5b146104645780638f9a55c01461048e57806395d89b41146104b85780639bb4123e146104e2576101cc565b806388a780e5146104105780638a8c523c146104265780638d4d7a3a1461043c576101cc565b8063313ce56711610163578063715018a61161013d578063715018a6146103925780637d1db4a5146103a85780638199ff43146103d257806381c6fe58146103e8576101cc565b8063313ce5671461031657806339bff45e1461034057806370a0823114610356576101cc565b8063162acc661161019f578063162acc6614610260578063175c1f731461028857806318160ddd146102b057806323b872dd146102da576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630faee56f14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e4610632565b6040516101f19190613a41565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613aff565b61066f565b60405161022d9190613b57565b60405180910390f35b348015610241575f80fd5b5061024a61068c565b6040516102579190613b7f565b60405180910390f35b34801561026b575f80fd5b5061028660048036038101906102819190613aff565b610692565b005b348015610293575f80fd5b506102ae60048036038101906102a99190613b98565b6109d9565b005b3480156102bb575f80fd5b506102c4610bdc565b6040516102d19190613b7f565b60405180910390f35b3480156102e5575f80fd5b5061030060048036038101906102fb9190613bd6565b610bff565b60405161030d9190613b57565b60405180910390f35b348015610321575f80fd5b5061032a610cd3565b6040516103379190613c41565b60405180910390f35b34801561034b575f80fd5b50610354610cdb565b005b348015610361575f80fd5b5061037c60048036038101906103779190613c5a565b610daf565b6040516103899190613b7f565b60405180910390f35b34801561039d575f80fd5b506103a6610df5565b005b3480156103b3575f80fd5b506103bc610f43565b6040516103c99190613b7f565b60405180910390f35b3480156103dd575f80fd5b506103e6610f49565b005b3480156103f3575f80fd5b5061040e60048036038101906104099190613caf565b611078565b005b34801561041b575f80fd5b50610424611189565b005b348015610431575f80fd5b5061043a61150a565b005b348015610447575f80fd5b50610462600480360381019061045d9190613cda565b611a2c565b005b34801561046f575f80fd5b50610478611b86565b6040516104859190613d14565b60405180910390f35b348015610499575f80fd5b506104a2611bad565b6040516104af9190613b7f565b60405180910390f35b3480156104c3575f80fd5b506104cc611bb3565b6040516104d99190613a41565b60405180910390f35b3480156104ed575f80fd5b506104f6611bf0565b005b348015610503575f80fd5b5061051e60048036038101906105199190613aff565b611d34565b60405161052b9190613b57565b60405180910390f35b34801561053f575f80fd5b50610548611d51565b6040516105559190613b7f565b60405180910390f35b348015610569575f80fd5b50610584600480360381019061057f9190613cda565b611d57565b005b348015610591575f80fd5b5061059a611e78565b005b3480156105a7575f80fd5b506105b0611f68565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190613d2d565b6120a0565b6040516105e59190613b7f565b60405180910390f35b61060860048036038101906106039190613eab565b612122565b005b348015610615575f80fd5b50610630600480360381019061062b9190613cda565b612872565b005b60606040518060400160405280600a81526020017f474f4f4559204755595300000000000000000000000000000000000000000000815250905090565b5f61068261067b612a16565b8484612a1d565b6001905092915050565b60135481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106d2612a16565b73ffffffffffffffffffffffffffffffffffffffff161480610747575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661072f612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d90613f61565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb90613fc9565b60405180910390fd5b5f8111610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90614031565b60405180910390fd5b5f8290505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108749190613d14565b602060405180830381865afa15801561088f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b39190614063565b9050828110156108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef906140d8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b8152600401610954929190614151565b6020604051808303815f875af1158015610970573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610994919061418c565b6109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca90614201565b60405180910390fd5b50505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a19612a16565b73ffffffffffffffffffffffffffffffffffffffff161480610a8e575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a76612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490613f61565b60405180910390fd5b5f8211610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0690614031565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7490614269565b60405180910390fd5b5f610b8730610daf565b905082811015610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc3906142d1565b60405180910390fd5b610bd7308385612be0565b505050565b5f6009600a610beb919061444b565b633b9aca00610bfa9190614495565b905090565b5f610c0b848484612be0565b610cc884610c17612a16565b610cc3856040518060600160405280602881526020016154db6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c7a612a16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134bf9092919063ffffffff16565b612a1d565b600190509392505050565b5f6009905090565b610ce3612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690614520565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610da59190614577565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610dfd612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090614520565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60105481565b610f51612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490614520565b60405180910390fd5b6009600a610feb919061444b565b633b9aca00610ffa9190614495565b6010819055506009600a61100e919061444b565b633b9aca0061101d9190614495565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a611052919061444b565b633b9aca006110619190614495565b60405161106e9190613b7f565b60405180910390a1565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110b8612a16565b73ffffffffffffffffffffffffffffffffffffffff16148061112d575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611115612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b61116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390613f61565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b611191611b86565b73ffffffffffffffffffffffffffffffffffffffff166111af612a16565b73ffffffffffffffffffffffffffffffffffffffff161480611224575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661120c612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b80611282575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661126a612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b6112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890613f61565b60405180910390fd5b5f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113209190613d14565b602060405180830381865afa15801561133b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061135f9190614063565b90505f81116113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a906145da565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016113ff9291906145f8565b6020604051808303815f875af115801561141b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143f919061418c565b5060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663af2979eb30835f8060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518763ffffffff1660e01b81526004016114c59695949392919061461f565b6020604051808303815f875af11580156114e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115059190614063565b505050565b611512612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590614520565b60405180910390fd5b601560149054906101000a900460ff16156115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e5906146c8565b60405180910390fd5b734752ba5dbc23f44d87826276bf6fd6b1c372ad2460145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061168a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a611676919061444b565b633b9aca006116859190614495565b612a1d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061171891906146fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c291906146fa565b6040518363ffffffff1660e01b81526004016117df929190614725565b6020604051808303815f875af11580156117fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181f91906146fa565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306118a630610daf565b5f806118b0611b86565b426040518863ffffffff1660e01b81526004016118d29695949392919061474c565b60606040518083038185885af11580156118ee573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061191391906147ab565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016119b39291906145f8565b6020604051808303815f875af11580156119cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f3919061418c565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b611a34611b86565b73ffffffffffffffffffffffffffffffffffffffff16611a52612a16565b73ffffffffffffffffffffffffffffffffffffffff161480611ac7575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611aaf612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b80611b25575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b0d612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b90613f61565b60405180910390fd5b6009600a611b72919061444b565b81611b7d9190614495565b60138190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f474f4f4559000000000000000000000000000000000000000000000000000000815250905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c30612a16565b73ffffffffffffffffffffffffffffffffffffffff161480611ca5575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c8d612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90613f61565b60405180910390fd5b5f611cee30610daf565b90505f81118015611d0b5750601560169054906101000a900460ff165b15611d1a57611d1981613521565b5b5f4790505f811115611d3057611d2f8161378a565b5b5050565b5f611d47611d40612a16565b8484612be0565b6001905092915050565b60125481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d97612a16565b73ffffffffffffffffffffffffffffffffffffffff161480611e0c575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df4612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b611e4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4290613f61565b60405180910390fd5b6009548111158015611e5f5750600a548111155b611e67575f80fd5b8060098190555080600a8190555050565b611e80612a16565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0390614520565b60405180910390fd5b5f6007819055505f6008819055505f600e819055505f6009819055505f600a819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051611f5e9190614577565b60405180910390a1565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611fa8612a16565b73ffffffffffffffffffffffffffffffffffffffff16148061201d575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612005612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b61205c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205390613f61565b60405180910390fd5b5f61206630610daf565b90505f81111561209d5761209c3060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612be0565b5b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612162612a16565b73ffffffffffffffffffffffffffffffffffffffff1614806121d7575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121bf612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d90613f61565b60405180910390fd5b5f835111612259576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225090614845565b60405180910390fd5b5f81118015612269575060648111155b6122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906148d3565b60405180910390fd5b5f600a90505f8451846122bb9190614495565b905080341015612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f79061493b565b60405180910390fd5b5f61230a30610daf565b90505f811161234e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612345906149a3565b60405180910390fd5b5f6064858361235d9190614495565b61236791906149ee565b90505f81116123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a290614a68565b60405180910390fd5b5f8751826123b991906149ee565b90505f81116123fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f490614af6565b60405180910390fd5b5f6064868361240c9190614495565b61241691906149ee565b90505f805b8a51811015612668575f8b828151811061243857612437614b14565b5b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a790614bb1565b60405180910390fd5b60018c516124be9190614bcf565b82101561265a575f60016002866124d59190614495565b6124df9190614c02565b424484866040516020016124f69493929190614c9a565b604051602081830303815290604052805190602001205f1c6125189190614ce7565b90505f85821161253557818761252e9190614bcf565b905061254f565b85826125419190614bcf565b8761254c9190614c02565b90505b60028761255c91906149ee565b8110156125735760028761257091906149ee565b90505b8781866125809190614c02565b11156125955784886125929190614bcf565b90505b6125a0308483612be0565b80856125ac9190614c02565b94505f8373ffffffffffffffffffffffffffffffffffffffff168e6040516125d390614d44565b5f6040518083038185875af1925050503d805f811461260d576040519150601f19603f3d011682016040523d82523d5f602084013e612612565b606091505b5050905080612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d90614da2565b60405180910390fd5b5050505b50808060010191505061241b565b505f8a51111561278e575f818561267f9190614bcf565b90505f8111156126bc576126bb308c60018e5161269c9190614bcf565b815181106126ad576126ac614b14565b5b602002602001015183612be0565b5b5f8b60018d516126cc9190614bcf565b815181106126dd576126dc614b14565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168b60405161270890614d44565b5f6040518083038185875af1925050503d805f8114612742576040519150601f19603f3d011682016040523d82523d5f602084013e612747565b606091505b505090508061278b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278290614da2565b60405180910390fd5b50505b5f4790505f811115612865575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516127e090614d44565b5f6040518083038185875af1925050503d805f811461281a576040519150601f19603f3d011682016040523d82523d5f602084013e61281f565b606091505b5050905080612863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285a90614e0a565b60405180910390fd5b505b5050505050505050505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128b2612a16565b73ffffffffffffffffffffffffffffffffffffffff161480612927575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661290f612a16565b73ffffffffffffffffffffffffffffffffffffffff16145b612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d90613f61565b60405180910390fd5b5f81118015612976575060648111155b6129b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ac90614e72565b60405180910390fd5b5f6129bf30610daf565b90505f606483836129d09190614495565b6129da91906149ee565b90505f811115612a1157612a103060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612be0565b5b505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8290614f00565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af090614f8e565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612bd39190613b7f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c459061501c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb3906150aa565b60405180910390fd5b5f8111612cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf590615138565b60405180910390fd5b5f612d07611b86565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612d755750612d45611b86565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561320f575f600f5403612dc257612dbf6064612db1600b54600f5411612d9e57600754612da2565b6009545b856137f290919063ffffffff16565b61386990919063ffffffff16565b90505b5f600f541115612df757612df46064612de6600e54856137f290919063ffffffff16565b61386990919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ea0575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612ef3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612feb57601054821115612f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f34906151a0565b60405180910390fd5b60115482612f4a85610daf565b612f549190614c02565b1115612f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8c90615208565b60405180910390fd5b612fd16064612fc3600b54600f5411612fb057600754612fb4565b6009545b856137f290919063ffffffff16565b61386990919063ffffffff16565b9050600f5f815480929190612fe590615226565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561307357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156130b7576130b460646130a6600c54600f541161309357600854613097565b600a545b856137f290919063ffffffff16565b61386990919063ffffffff16565b90505b5f6130c130610daf565b905060158054906101000a900460ff1615801561312a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156131425750601560169054906101000a900460ff165b801561314f575060125481115b801561315e5750600d54600f54115b1561320d57601754431115613175575f6016819055505b6003601654106131ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131b1906152b7565b60405180910390fd5b6131d76131d2846131cd846013546138b2565b6138b2565b613521565b5f4790505f8111156131ed576131ec4761378a565b5b60165f8154809291906131ff90615226565b919050555043601781905550505b505b5f81111561330e576132678160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ca90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133059190613b7f565b60405180910390a35b61335e8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461392790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506134016133b5828461392790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ca90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6134a4848661392790919063ffffffff16565b6040516134b19190613b7f565b60405180910390a350505050565b5f838311158290613506576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134fd9190613a41565b60405180910390fd5b505f83856135149190614bcf565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561355757613556613d6f565b5b6040519080825280602002602001820160405280156135855781602001602082028036833780820191505090505b50905030815f8151811061359c5761359b614b14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613640573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061366491906146fa565b8160018151811061367857613677614b14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136de3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612a1d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161374095949392919061538c565b5f604051808303815f87803b158015613757575f80fd5b505af1158015613769573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156137ee573d5f803e3d5ffd5b5050565b5f808303613802575f9050613863565b5f828461380f9190614495565b905082848261381e91906149ee565b1461385e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385590615454565b60405180910390fd5b809150505b92915050565b5f6138aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613970565b905092915050565b5f8183116138c057826138c2565b815b905092915050565b5f8082846138d89190614c02565b90508381101561391d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613914906154bc565b60405180910390fd5b8091505092915050565b5f61396883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506134bf565b905092915050565b5f80831182906139b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139ad9190613a41565b60405180910390fd5b505f83856139c491906149ee565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613a13826139d1565b613a1d81856139db565b9350613a2d8185602086016139eb565b613a36816139f9565b840191505092915050565b5f6020820190508181035f830152613a598184613a09565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a9b82613a72565b9050919050565b613aab81613a91565b8114613ab5575f80fd5b50565b5f81359050613ac681613aa2565b92915050565b5f819050919050565b613ade81613acc565b8114613ae8575f80fd5b50565b5f81359050613af981613ad5565b92915050565b5f8060408385031215613b1557613b14613a6a565b5b5f613b2285828601613ab8565b9250506020613b3385828601613aeb565b9150509250929050565b5f8115159050919050565b613b5181613b3d565b82525050565b5f602082019050613b6a5f830184613b48565b92915050565b613b7981613acc565b82525050565b5f602082019050613b925f830184613b70565b92915050565b5f8060408385031215613bae57613bad613a6a565b5b5f613bbb85828601613aeb565b9250506020613bcc85828601613ab8565b9150509250929050565b5f805f60608486031215613bed57613bec613a6a565b5b5f613bfa86828701613ab8565b9350506020613c0b86828701613ab8565b9250506040613c1c86828701613aeb565b9150509250925092565b5f60ff82169050919050565b613c3b81613c26565b82525050565b5f602082019050613c545f830184613c32565b92915050565b5f60208284031215613c6f57613c6e613a6a565b5b5f613c7c84828501613ab8565b91505092915050565b613c8e81613b3d565b8114613c98575f80fd5b50565b5f81359050613ca981613c85565b92915050565b5f60208284031215613cc457613cc3613a6a565b5b5f613cd184828501613c9b565b91505092915050565b5f60208284031215613cef57613cee613a6a565b5b5f613cfc84828501613aeb565b91505092915050565b613d0e81613a91565b82525050565b5f602082019050613d275f830184613d05565b92915050565b5f8060408385031215613d4357613d42613a6a565b5b5f613d5085828601613ab8565b9250506020613d6185828601613ab8565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613da5826139f9565b810181811067ffffffffffffffff82111715613dc457613dc3613d6f565b5b80604052505050565b5f613dd6613a61565b9050613de28282613d9c565b919050565b5f67ffffffffffffffff821115613e0157613e00613d6f565b5b602082029050602081019050919050565b5f80fd5b5f613e28613e2384613de7565b613dcd565b90508083825260208201905060208402830185811115613e4b57613e4a613e12565b5b835b81811015613e745780613e608882613ab8565b845260208401935050602081019050613e4d565b5050509392505050565b5f82601f830112613e9257613e91613d6b565b5b8135613ea2848260208601613e16565b91505092915050565b5f805f60608486031215613ec257613ec1613a6a565b5b5f84013567ffffffffffffffff811115613edf57613ede613a6e565b5b613eeb86828701613e7e565b9350506020613efc86828701613aeb565b9250506040613f0d86828701613aeb565b9150509250925092565b7f43616c6c6572206973206e6f7420617574686f72697a656400000000000000005f82015250565b5f613f4b6018836139db565b9150613f5682613f17565b602082019050919050565b5f6020820190508181035f830152613f7881613f3f565b9050919050565b7f43616e6e6f74207265636f76657220476f6f657920746f6b656e7300000000005f82015250565b5f613fb3601b836139db565b9150613fbe82613f7f565b602082019050919050565b5f6020820190508181035f830152613fe081613fa7565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f61401b6020836139db565b915061402682613fe7565b602082019050919050565b5f6020820190508181035f8301526140488161400f565b9050919050565b5f8151905061405d81613ad5565b92915050565b5f6020828403121561407857614077613a6a565b5b5f6140858482850161404f565b91505092915050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f6140c2601a836139db565b91506140cd8261408e565b602082019050919050565b5f6020820190508181035f8301526140ef816140b6565b9050919050565b5f819050919050565b5f61411961411461410f84613a72565b6140f6565b613a72565b9050919050565b5f61412a826140ff565b9050919050565b5f61413b82614120565b9050919050565b61414b81614131565b82525050565b5f6040820190506141645f830185614142565b6141716020830184613b70565b9392505050565b5f8151905061418681613c85565b92915050565b5f602082840312156141a1576141a0613a6a565b5b5f6141ae84828501614178565b91505092915050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f6141eb600f836139db565b91506141f6826141b7565b602082019050919050565b5f6020820190508181035f830152614218816141df565b9050919050565b7f43616e6e6f74207472616e7366657220746f207a65726f2061646472657373005f82015250565b5f614253601f836139db565b915061425e8261421f565b602082019050919050565b5f6020820190508181035f83015261428081614247565b9050919050565b7f496e73756666696369656e7420636f6e74726163742062616c616e63650000005f82015250565b5f6142bb601d836139db565b91506142c682614287565b602082019050919050565b5f6020820190508181035f8301526142e8816142af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156143715780860481111561434d5761434c6142ef565b5b600185161561435c5780820291505b808102905061436a8561431c565b9450614331565b94509492505050565b5f826143895760019050614444565b81614396575f9050614444565b81600181146143ac57600281146143b6576143e5565b6001915050614444565b60ff8411156143c8576143c76142ef565b5b8360020a9150848211156143df576143de6142ef565b5b50614444565b5060208310610133831016604e8410600b841016171561441a5782820a905083811115614415576144146142ef565b5b614444565b6144278484846001614328565b9250905081840481111561443e5761443d6142ef565b5b81810290505b9392505050565b5f61445582613acc565b915061446083613c26565b925061448d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461437a565b905092915050565b5f61449f82613acc565b91506144aa83613acc565b92508282026144b881613acc565b915082820484148315176144cf576144ce6142ef565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61450a6020836139db565b9150614515826144d6565b602082019050919050565b5f6020820190508181035f830152614537816144fe565b9050919050565b5f819050919050565b5f61456161455c6145578461453e565b6140f6565b613acc565b9050919050565b61457181614547565b82525050565b5f60208201905061458a5f830184614568565b92915050565b7f4e6f204c5020746f6b656e7320746f2072656d6f7665000000000000000000005f82015250565b5f6145c46016836139db565b91506145cf82614590565b602082019050919050565b5f6020820190508181035f8301526145f1816145b8565b9050919050565b5f60408201905061460b5f830185613d05565b6146186020830184613b70565b9392505050565b5f60c0820190506146325f830189613d05565b61463f6020830188613b70565b61464c6040830187614568565b6146596060830186614568565b6146666080830185614142565b61467360a0830184613b70565b979650505050505050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6146b26017836139db565b91506146bd8261467e565b602082019050919050565b5f6020820190508181035f8301526146df816146a6565b9050919050565b5f815190506146f481613aa2565b92915050565b5f6020828403121561470f5761470e613a6a565b5b5f61471c848285016146e6565b91505092915050565b5f6040820190506147385f830185613d05565b6147456020830184613d05565b9392505050565b5f60c08201905061475f5f830189613d05565b61476c6020830188613b70565b6147796040830187614568565b6147866060830186614568565b6147936080830185613d05565b6147a060a0830184613b70565b979650505050505050565b5f805f606084860312156147c2576147c1613a6a565b5b5f6147cf8682870161404f565b93505060206147e08682870161404f565b92505060406147f18682870161404f565b9150509250925092565b7f4e6f206164647265737365732070726f766964656400000000000000000000005f82015250565b5f61482f6015836139db565b915061483a826147fb565b602082019050919050565b5f6020820190508181035f83015261485c81614823565b9050919050565b7f50657263656e74616765206d757374206265206265747765656e203120616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f6148bd6024836139db565b91506148c882614863565b604082019050919050565b5f6020820190508181035f8301526148ea816148b1565b9050919050565b7f496e73756666696369656e74204554482070726f7669646564000000000000005f82015250565b5f6149256019836139db565b9150614930826148f1565b602082019050919050565b5f6020820190508181035f83015261495281614919565b9050919050565b7f4e6f20746f6b656e7320746f20646973747269627574650000000000000000005f82015250565b5f61498d6017836139db565b915061499882614959565b602082019050919050565b5f6020820190508181035f8301526149ba81614981565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6149f882613acc565b9150614a0383613acc565b925082614a1357614a126149c1565b5b828204905092915050565b7f416d6f756e7420746f206469737472696275746520746f6f20736d616c6c00005f82015250565b5f614a52601e836139db565b9150614a5d82614a1e565b602082019050919050565b5f6020820190508181035f830152614a7f81614a46565b9050919050565b7f4261736520616d6f756e7420706572206164647265737320746f6f20736d616c5f8201527f6c00000000000000000000000000000000000000000000000000000000000000602082015250565b5f614ae06021836139db565b9150614aeb82614a86565b604082019050919050565b5f6020820190508181035f830152614b0d81614ad4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f43616e6e6f74206469737472696275746520746f207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b9b6021836139db565b9150614ba682614b41565b604082019050919050565b5f6020820190508181035f830152614bc881614b8f565b9050919050565b5f614bd982613acc565b9150614be483613acc565b9250828203905081811115614bfc57614bfb6142ef565b5b92915050565b5f614c0c82613acc565b9150614c1783613acc565b9250828201905080821115614c2f57614c2e6142ef565b5b92915050565b5f819050919050565b614c4f614c4a82613acc565b614c35565b82525050565b5f8160601b9050919050565b5f614c6b82614c55565b9050919050565b5f614c7c82614c61565b9050919050565b614c94614c8f82613a91565b614c72565b82525050565b5f614ca58287614c3e565b602082019150614cb58286614c3e565b602082019150614cc58285614c83565b601482019150614cd58284614c3e565b60208201915081905095945050505050565b5f614cf182613acc565b9150614cfc83613acc565b925082614d0c57614d0b6149c1565b5b828206905092915050565b5f81905092915050565b50565b5f614d2f5f83614d17565b9150614d3a82614d21565b5f82019050919050565b5f614d4e82614d24565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f614d8c6013836139db565b9150614d9782614d58565b602082019050919050565b5f6020820190508181035f830152614db981614d80565b9050919050565b7f4554482072657475726e207472616e73666572206661696c65640000000000005f82015250565b5f614df4601a836139db565b9150614dff82614dc0565b602082019050919050565b5f6020820190508181035f830152614e2181614de8565b9050919050565b7f496e76616c69642070657263656e7461676500000000000000000000000000005f82015250565b5f614e5c6012836139db565b9150614e6782614e28565b602082019050919050565b5f6020820190508181035f830152614e8981614e50565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614eea6024836139db565b9150614ef582614e90565b604082019050919050565b5f6020820190508181035f830152614f1781614ede565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614f786022836139db565b9150614f8382614f1e565b604082019050919050565b5f6020820190508181035f830152614fa581614f6c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6150066025836139db565b915061501182614fac565b604082019050919050565b5f6020820190508181035f83015261503381614ffa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6150946023836139db565b915061509f8261503a565b604082019050919050565b5f6020820190508181035f8301526150c181615088565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6151226029836139db565b915061512d826150c8565b604082019050919050565b5f6020820190508181035f83015261514f81615116565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61518a6019836139db565b915061519582615156565b602082019050919050565b5f6020820190508181035f8301526151b78161517e565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6151f2601a836139db565b91506151fd826151be565b602082019050919050565b5f6020820190508181035f83015261521f816151e6565b9050919050565b5f61523082613acc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615262576152616142ef565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6152a16017836139db565b91506152ac8261526d565b602082019050919050565b5f6020820190508181035f8301526152ce81615295565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61530781613a91565b82525050565b5f61531883836152fe565b60208301905092915050565b5f602082019050919050565b5f61533a826152d5565b61534481856152df565b935061534f836152ef565b805f5b8381101561537f578151615366888261530d565b975061537183615324565b925050600181019050615352565b5085935050505092915050565b5f60a08201905061539f5f830188613b70565b6153ac6020830187614568565b81810360408301526153be8186615330565b90506153cd6060830185613d05565b6153da6080830184613b70565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61543e6021836139db565b9150615449826153e4565b604082019050919050565b5f6020820190508181035f83015261546b81615432565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6154a6601b836139db565b91506154b182615472565b602082019050919050565b5f6020820190508181035f8301526154d38161549a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ebf18575e717badda6f28dd77388527d3e1f1fb1a447a9a7cda6223380af8c3f64736f6c634300081a0033

Deployed Bytecode Sourcemap

4172:16604:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6409:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7242:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5342:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14814:591;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20178:595;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6686:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7411:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6595:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11303:117;;;;;;;;;;;;;:::i;:::-;;6789:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2819:148;;;;;;;;;;;;;:::i;:::-;;5151:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11136:159;;;;;;;;;;;;;:::i;:::-;;14615:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19310:836;;;;;;;;;;;;;:::i;:::-;;12165:673;;;;;;;;;;;;;:::i;:::-;;11430:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2605:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5213:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6500:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13173:423;;;;;;;;;;;;;:::i;:::-;;6916:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5277:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12848:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11771:279;;;;;;;;;;;;;:::i;:::-;;13604:403;;;;;;;;;;;;;:::i;:::-;;7091:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15419:3834;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14019:581;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6409:83;6446:13;6479:5;;;;;;;;;;;;;;;;;6472:12;;6409:83;:::o;7242:161::-;7317:4;7334:39;7343:12;:10;:12::i;:::-;7357:7;7366:6;7334:8;:39::i;:::-;7391:4;7384:11;;7242:161;;;;:::o;5342:51::-;;;;:::o;14814:591::-;14918:10;;;;;;;;;;;14902:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;14948:9;;;;;;;;;;;14932:25;;:12;:10;:12::i;:::-;:25;;;14902:55;14894:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;15029:4;15005:29;;:12;:29;;;14997:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15094:1;15085:6;:10;15077:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;15153:12;15175;15153:35;;15199:15;15217:5;:15;;;15241:4;15217:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15199:48;;15277:6;15266:7;:17;;15258:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15343:5;:14;;;15358:10;;;;;;;;;;;15370:6;15343:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15335:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14883:522;;14814:591;;:::o;20178:595::-;20347:10;;;;;;;;;;;20331:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;20377:9;;;;;;;;;;;20361:25;;:12;:10;:12::i;:::-;:25;;;20331:55;20323:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;20452:1;20443:6;:10;20435:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;20528:1;20505:25;;:11;:25;;;20497:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20585:20;20608:24;20626:4;20608:9;:24::i;:::-;20585:47;;20664:6;20648:12;:22;;20640:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20723:45;20741:4;20748:11;20761:6;20723:9;:45::i;:::-;20244:529;20178:595;;:::o;6686:95::-;6739:7;4960:1;5016:2;:13;;;;:::i;:::-;5003:10;:26;;;;:::i;:::-;6759:14;;6686:95;:::o;7411:313::-;7509:4;7526:36;7536:6;7544:9;7555:6;7526:9;:36::i;:::-;7573:121;7582:6;7590:12;:10;:12::i;:::-;7604:89;7642:6;7604:89;;;;;;;;;;;;;;;;;:11;:19;7616:6;7604:19;;;;;;;;;;;;;;;:33;7624:12;:10;:12::i;:::-;7604:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7573:8;:121::i;:::-;7712:4;7705:11;;7411:313;;;;;:::o;6595:83::-;6636:5;4960:1;6654:16;;6595:83;:::o;11303:117::-;2742:12;:10;:12::i;:::-;2732:22;;:6;;;;;;;;;;:22;;;2724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11374:1:::1;11359:12;:16;;;;11391:21;11410:1;11391:21;;;;;;:::i;:::-;;;;;;;;11303:117::o:0;6789:119::-;6855:7;6882:9;:18;6892:7;6882:18;;;;;;;;;;;;;;;;6875:25;;6789:119;;;:::o;2819:148::-;2742:12;:10;:12::i;:::-;2732:22;;:6;;;;;;;;;;:22;;;2724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2926:1:::1;2889:40;;2910:6;::::0;::::1;;;;;;;;2889:40;;;;;;;;;;;;2957:1;2940:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2819:148::o:0;5151:54::-;;;;:::o;11136:159::-;2742:12;:10;:12::i;:::-;2732:22;;:6;;;;;;;;;;:22;;;2724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4960:1:::1;5016:2;:13;;;;:::i;:::-;5003:10;:26;;;;:::i;:::-;11189:12;:22;;;;4960:1;5016:2;:13;;;;:::i;:::-;5003:10;:26;;;;:::i;:::-;11222:14;:22;;;;11260:27;4960:1;5016:2;:13;;;;:::i;:::-;5003:10;:26;;;;:::i;:::-;11260:27;;;;;;:::i;:::-;;;;;;;;11136:159::o:0;14615:183::-;14689:10;;;;;;;;;;;14673:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;14719:9;;;;;;;;;;;14703:25;;:12;:10;:12::i;:::-;:25;;;14673:55;14665:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;14782:8;14768:11;;:22;;;;;;;;;;;;;;;;;;14615:183;:::o;19310:836::-;19384:7;:5;:7::i;:::-;19368:23;;:12;:10;:12::i;:::-;:23;;;:53;;;;19411:10;;;;;;;;;;;19395:26;;:12;:10;:12::i;:::-;:26;;;19368:53;:82;;;;19441:9;;;;;;;;;;;19425:25;;:12;:10;:12::i;:::-;:25;;;19368:82;19360:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;19500:19;19537:13;;;;;;;;;;;19500:51;;19562:17;19582:4;:14;;;19605:4;19582:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19562:49;;19642:1;19630:9;:13;19622:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19741:4;:12;;;19762:15;;;;;;;;;;;19780:9;19741:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19844:15;;;;;;;;;;;:63;;;19930:4;19950:9;19974:1;20021;20065:10;;;;;;;;;;;20112:15;19844:294;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19349:797;;19310:836::o;12165:673::-;2742:12;:10;:12::i;:::-;2732:22;;:6;;;;;;;;;;:22;;;2724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12231:11:::1;;;;;;;;;;;12230:12;12222:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12317:42;12280:15;;:80;;;;;;;;;;;;;;;;;;12371:58;12388:4;12403:15;;;;;;;;;;;4960:1;5016:2;:13;;;;:::i;:::-;5003:10;:26;;;;:::i;:::-;12371:8;:58::i;:::-;12474:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12456:55;;;12520:4;12527:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12456:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12440:13;;:110;;;;;;;;;;;;;;;;;;12561:15;;;;;;;;;;;:31;;;12600:21;12631:4;12637:24;12655:4;12637:9;:24::i;:::-;12662:1;12664::::0;12666:7:::1;:5;:7::i;:::-;12674:15;12561:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12708:13;;;;;;;;;;;12701:29;;;12739:15;;;;;;;;;;;12757:14;12701:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12797:4;12783:11;;:18;;;;;;;;;;;;;;;;;;12826:4;12812:11;;:18;;;;;;;;;;;;;;;;;;12165:673::o:0;11430:323::-;11516:7;:5;:7::i;:::-;11500:23;;:12;:10;:12::i;:::-;:23;;;:53;;;;11543:10;;;;;;;;;;;11527:26;;:12;:10;:12::i;:::-;:26;;;11500:53;:82;;;;11573:9;;;;;;;;;;;11557:25;;:12;:10;:12::i;:::-;:25;;;11500:82;11492:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;4960:1;11732:2;:13;;;;:::i;:::-;11715:14;:30;;;;:::i;:::-;11701:11;:44;;;;11430:323;:::o;2605:79::-;2643:7;2670:6;;;;;;;;;;;2663:13;;2605:79;:::o;5213:56::-;;;;:::o;6500:87::-;6539:13;6572:7;;;;;;;;;;;;;;;;;6565:14;;6500:87;:::o;13173:423::-;13233:10;;;;;;;;;;;13219:24;;:12;:10;:12::i;:::-;:24;;;:51;;;;13261:9;;;;;;;;;;;13247:23;;:12;:10;:12::i;:::-;:23;;;13219:51;13211:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13310:20;13331:24;13349:4;13331:9;:24::i;:::-;13310:45;;13384:1;13369:12;:16;:31;;;;;13389:11;;;;;;;;;;;13369:31;13366:92;;;13416:30;13433:12;13416:16;:30::i;:::-;13366:92;13468:18;13487:21;13468:40;;13536:1;13523:10;:14;13519:70;;;13553:24;13566:10;13553:12;:24::i;:::-;13519:70;13200:396;;13173:423::o;6916:167::-;6994:4;7011:42;7021:12;:10;:12::i;:::-;7035:9;7046:6;7011:9;:42::i;:::-;7071:4;7064:11;;6916:167;;;;:::o;5277:57::-;;;;:::o;12848:280::-;12924:10;;;;;;;;;;;12910:24;;:12;:10;:12::i;:::-;:24;;;:51;;;;12952:9;;;;;;;;;;;12938:23;;:12;:10;:12::i;:::-;:23;;;12910:51;12902:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13018:12;;13009:7;:21;;:47;;;;;13043:13;;13034:7;:22;;13009:47;13001:56;;;;;;13081:7;13068:12;:20;;;;13113:7;13099:13;:21;;;;12848:280;:::o;11771:279::-;2742:12;:10;:12::i;:::-;2732:22;;:6;;;;;;;;;;:22;;;2724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11882:1:::1;11865:14;:18;;;;11912:1;11894:15;:19;;;;11939:1;11924:12;:16;;;;11966:1;11951:12;:16;;;;11994:1;11978:13;:17;;;;12021:21;12040:1;12021:21;;;;;;:::i;:::-;;;;;;;;11771:279::o:0;13604:403::-;13742:10;;;;;;;;;;;13728:24;;:12;:10;:12::i;:::-;:24;;;:51;;;;13770:9;;;;;;;;;;;13756:23;;:12;:10;:12::i;:::-;:23;;;13728:51;13720:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13831:20;13854:24;13872:4;13854:9;:24::i;:::-;13831:47;;13920:1;13905:12;:16;13901:99;;;13938:50;13956:4;13963:10;;;;;;;;;;;13975:12;13938:9;:50::i;:::-;13901:99;13635:372;13604:403::o;7091:143::-;7172:7;7199:11;:18;7211:5;7199:18;;;;;;;;;;;;;;;:27;7218:7;7199:27;;;;;;;;;;;;;;;;7192:34;;7091:143;;;;:::o;15419:3834::-;15598:10;;;;;;;;;;;15582:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;15628:9;;;;;;;;;;;15612:25;;:12;:10;:12::i;:::-;:25;;;15582:55;15574:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;15705:1;15685:10;:17;:21;15677:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;15765:1;15751:11;:15;:37;;;;;15785:3;15770:11;:18;;15751:37;15743:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;15860:28;15891:2;15860:33;;15924:22;15966:10;:17;15949:14;:34;;;;:::i;:::-;15924:59;;16015:14;16002:9;:27;;15994:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16089:23;16115:24;16133:4;16115:9;:24::i;:::-;16089:50;;16176:1;16158:15;:19;16150:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;16236:26;16297:3;16283:11;16265:15;:29;;;;:::i;:::-;:35;;;;:::i;:::-;16236:64;;16340:1;16319:18;:22;16311:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16407:28;16459:10;:17;16438:18;:38;;;;:::i;:::-;16407:69;;16518:1;16495:20;:24;16487:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16588:20;16657:3;16634:20;16611;:43;;;;:::i;:::-;:49;;;;:::i;:::-;16588:72;;16691:24;16755:9;16750:1734;16774:10;:17;16770:1;:21;16750:1734;;;16813:17;16833:10;16844:1;16833:13;;;;;;;;:::i;:::-;;;;;;;;16813:33;;16890:1;16869:23;;:9;:23;;;16861:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17001:1;16981:10;:17;:21;;;;:::i;:::-;16977:1;:25;16973:1500;;;17092:23;17332:1;17328;17313:12;:16;;;;:::i;:::-;:20;;;;:::i;:::-;17175:15;17214:16;17254:9;17287:1;17136:171;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17126:182;;;;;;17118:191;;:216;;;;:::i;:::-;17092:242;;17389:22;17453:12;17434:15;:31;17430:300;;17552:15;17529:20;:38;;;;:::i;:::-;17512:55;;17430:300;;;17697:12;17679:15;:30;;;;:::i;:::-;17655:20;:55;;;;:::i;:::-;17638:72;;17430:300;17828:1;17805:20;:24;;;;:::i;:::-;17788:14;:41;17784:131;;;17894:1;17871:20;:24;;;;:::i;:::-;17854:41;;17784:131;18009:18;17992:14;17973:16;:33;;;;:::i;:::-;:54;17969:157;;;18090:16;18069:18;:37;;;;:::i;:::-;18052:54;;17969:157;18180:51;18198:4;18205:9;18216:14;18180:9;:51::i;:::-;18270:14;18250:34;;;;;:::i;:::-;;;18340:12;18358:9;:14;;18380;18358:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18339:60;;;18426:7;18418:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;17004:1469;;;16973:1500;16798:1686;16793:3;;;;;;;16750:1734;;;;18538:1;18518:10;:17;:21;18514:478;;;18556:33;18613:16;18592:18;:37;;;;:::i;:::-;18556:73;;18676:1;18648:25;:29;18644:156;;;18698:86;18716:4;18723:10;18754:1;18734:10;:17;:21;;;;:::i;:::-;18723:33;;;;;;;;:::i;:::-;;;;;;;;18758:25;18698:9;:86::i;:::-;18644:156;18843:12;18861:10;18892:1;18872:10;:17;:21;;;;:::i;:::-;18861:33;;;;;;;;:::i;:::-;;;;;;;;:38;;18907:14;18861:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18842:84;;;18949:7;18941:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;18541:451;;18514:478;19022:20;19045:21;19022:44;;19096:1;19081:12;:16;19077:169;;;19115:12;19133:10;;;;;;;;;;;:15;;19156:12;19133:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19114:59;;;19196:7;19188:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;19099:147;19077:169;15563:3690;;;;;;;;15419:3834;;;:::o;14019:581::-;14179:10;;;;;;;;;;;14163:26;;:12;:10;:12::i;:::-;:26;;;:55;;;;14209:9;;;;;;;;;;;14193:25;;:12;:10;:12::i;:::-;:25;;;14163:55;14155:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;14292:1;14279:10;:14;:35;;;;;14311:3;14297:10;:17;;14279:35;14271:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14360:20;14383:24;14401:4;14383:9;:24::i;:::-;14360:47;;14431:14;14478:3;14464:10;14449:12;:25;;;;:::i;:::-;14448:33;;;;:::i;:::-;14431:50;;14517:1;14508:6;:10;14504:89;;;14536:44;14554:4;14561:10;;;;;;;;;;;14573:6;14536:9;:44::i;:::-;14504:89;14068:532;;14019:581;:::o;360:98::-;413:7;440:10;433:17;;360:98;:::o;7732:335::-;7842:1;7825:19;;:5;:19;;;7817:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7923:1;7904:21;;:7;:21;;;7896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8005:6;7975:11;:18;7987:5;7975:18;;;;;;;;;;;;;;;:27;7994:7;7975:27;;;;;;;;;;;;;;;:36;;;;8043:7;8027:32;;8036:5;8027:32;;;8052:6;8027:32;;;;;;:::i;:::-;;;;;;;;7732:335;;;:::o;8075:2450::-;8179:1;8163:18;;:4;:18;;;8155:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8256:1;8242:16;;:2;:16;;;8234:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8326:1;8317:6;:10;8309:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8384:17;8426:7;:5;:7::i;:::-;8418:15;;:4;:15;;;;:32;;;;;8443:7;:5;:7::i;:::-;8437:13;;:2;:13;;;;8418:32;8414:1755;;;8533:1;8522:9;;:12;8519:139;;8566:76;8638:3;8566:67;8588:15;;8578:9;;:25;8577:55;;8618:14;;8577:55;;;8605:12;;8577:55;8566:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8554:88;;8519:139;8685:1;8675:9;;:11;8672:95;;;8718:33;8747:3;8718:24;8729:12;;8718:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8706:45;;8672:95;8795:13;;;;;;;;;;;8787:21;;:4;:21;;;:55;;;;;8826:15;;;;;;;;;;;8812:30;;:2;:30;;;;8787:55;:83;;;;;8848:18;:22;8867:2;8848:22;;;;;;;;;;;;;;;;;;;;;;;;;8846:24;8787:83;8783:420;;;8910:12;;8900:6;:22;;8892:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9005:14;;8995:6;8979:13;8989:2;8979:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8971:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9081:76;9153:3;9081:67;9103:15;;9093:9;;:25;9092:55;;9133:14;;9092:55;;;9120:12;;9092:55;9081:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;9069:88;;9176:9;;:11;;;;;;;;;:::i;:::-;;;;;;8783:420;9228:13;;;;;;;;;;;9222:19;;:2;:19;;;:43;;;;;9260:4;9245:20;;:4;:20;;;;9222:43;9219:174;;;9298:79;9373:3;9298:70;9320:16;;9310:9;;:26;9309:58;;9352:15;;9309:58;;;9338:13;;9309:58;9298:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9286:91;;9219:174;9409:28;9440:24;9458:4;9440:9;:24::i;:::-;9409:55;;9484:6;;;;;;;;;;9483:7;:30;;;;;9500:13;;;;;;;;;;;9494:19;;:2;:19;;;9483:30;:45;;;;;9517:11;;;;;;;;;;;9483:45;:89;;;;;9555:17;;9532:20;:40;9483:89;:123;;;;;9588:18;;9576:9;;:30;9483:123;9479:679;;;9646:13;;9631:12;:28;9627:90;;;9696:1;9684:9;:13;;;;9627:90;9755:1;9743:9;;:13;9735:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9803:69;9820:51;9824:6;9832:38;9836:20;9858:11;;9832:3;:38::i;:::-;9820:3;:51::i;:::-;9803:16;:69::i;:::-;9891:26;9920:21;9891:50;;9985:1;9964:18;:22;9960:106;;;10011:35;10024:21;10011:12;:35::i;:::-;9960:106;10084:9;;:11;;;;;;;;;:::i;:::-;;;;;;10130:12;10114:13;:28;;;;9608:550;9479:679;8452:1717;8414:1755;10194:1;10184:9;:11;10181:161;;;10234:39;10263:9;10234;:24;10252:4;10234:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10209:9;:24;10227:4;10209:24;;;;;;;;;;;;;;;:64;;;;10314:4;10291:39;;10300:4;10291:39;;;10320:9;10291:39;;;;;;:::i;:::-;;;;;;;;10181:161;10368:27;10388:6;10368:9;:15;10378:4;10368:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10352:9;:15;10362:4;10352:15;;;;;;;;;;;;;;;:43;;;;10420:40;10438:21;10449:9;10438:6;:10;;:21;;;;:::i;:::-;10420:9;:13;10430:2;10420:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10406:9;:13;10416:2;10406:13;;;;;;;;;;;;;;;:54;;;;10491:2;10476:41;;10485:4;10476:41;;;10495:21;10506:9;10495:6;:10;;:21;;;;:::i;:::-;10476:41;;;;;;:::i;:::-;;;;;;;;8144:2381;8075:2450;;;:::o;1497:190::-;1583:7;1616:1;1611;:6;;1619:12;1603:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1643:9;1659:1;1655;:5;;;;:::i;:::-;1643:17;;1678:1;1671:8;;;1497:190;;;;;:::o;10641:483::-;5801:4;5792:6;;:13;;;;;;;;;;;;;;;;;;10719:21:::1;10757:1;10743:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10719:40;;10788:4;10770;10775:1;10770:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10814:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10804:4;10809:1;10804:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10847:62;10864:4;10879:15;;;;;;;;;;;10897:11;10847:8;:62::i;:::-;10920:15;;;;;;;;;;;:66;;;11001:11;11027:1;11043:4;11070;11090:15;10920:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10708:416;5837:5:::0;5828:6;;:14;;;;;;;;;;;;;;;;;;10641:483;:::o;12060:92::-;12117:10;;;;;;;;;;;:19;;:27;12137:6;12117:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12060:92;:::o;1695:246::-;1753:7;1782:1;1777;:6;1773:47;;1807:1;1800:8;;;;1773:47;1830:9;1846:1;1842;:5;;;;:::i;:::-;1830:17;;1875:1;1870;1866;:5;;;;:::i;:::-;:10;1858:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1932:1;1925:8;;;1695:246;;;;;:::o;1949:132::-;2007:7;2034:39;2038:1;2041;2034:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2027:46;;1949:132;;;;:::o;10535:98::-;10592:7;10619:1;10617;:3;10616:9;;10624:1;10616:9;;;10622:1;10616:9;10609:16;;10535:98;;;;:::o;1166:179::-;1224:7;1244:9;1260:1;1256;:5;;;;:::i;:::-;1244:17;;1285:1;1280;:6;;1272:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1336:1;1329:8;;;1166:179;;;;:::o;1353:136::-;1411:7;1438:43;1442:1;1445;1438:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1431:50;;1353:136;;;;:::o;2089:189::-;2175:7;2207:1;2203;:5;2210:12;2195:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2234:9;2250:1;2246;:5;;;;:::i;:::-;2234:17;;2269:1;2262:8;;;2089:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:474::-;3759:6;3767;3816:2;3804:9;3795:7;3791:23;3787:32;3784:119;;;3822:79;;:::i;:::-;3784:119;3942:1;3967:53;4012:7;4003:6;3992:9;3988:22;3967:53;:::i;:::-;3957:63;;3913:117;4069:2;4095:53;4140:7;4131:6;4120:9;4116:22;4095:53;:::i;:::-;4085:63;;4040:118;3691:474;;;;;:::o;4171:619::-;4248:6;4256;4264;4313:2;4301:9;4292:7;4288:23;4284:32;4281:119;;;4319:79;;:::i;:::-;4281:119;4439:1;4464:53;4509:7;4500:6;4489:9;4485:22;4464:53;:::i;:::-;4454:63;;4410:117;4566:2;4592:53;4637:7;4628:6;4617:9;4613:22;4592:53;:::i;:::-;4582:63;;4537:118;4694:2;4720:53;4765:7;4756:6;4745:9;4741:22;4720:53;:::i;:::-;4710:63;;4665:118;4171:619;;;;;:::o;4796:86::-;4831:7;4871:4;4864:5;4860:16;4849:27;;4796:86;;;:::o;4888:112::-;4971:22;4987:5;4971:22;:::i;:::-;4966:3;4959:35;4888:112;;:::o;5006:214::-;5095:4;5133:2;5122:9;5118:18;5110:26;;5146:67;5210:1;5199:9;5195:17;5186:6;5146:67;:::i;:::-;5006:214;;;;:::o;5226:329::-;5285:6;5334:2;5322:9;5313:7;5309:23;5305:32;5302:119;;;5340:79;;:::i;:::-;5302:119;5460:1;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5431:117;5226:329;;;;:::o;5561:116::-;5631:21;5646:5;5631:21;:::i;:::-;5624:5;5621:32;5611:60;;5667:1;5664;5657:12;5611:60;5561:116;:::o;5683:133::-;5726:5;5764:6;5751:20;5742:29;;5780:30;5804:5;5780:30;:::i;:::-;5683:133;;;;:::o;5822:323::-;5878:6;5927:2;5915:9;5906:7;5902:23;5898:32;5895:119;;;5933:79;;:::i;:::-;5895:119;6053:1;6078:50;6120:7;6111:6;6100:9;6096:22;6078:50;:::i;:::-;6068:60;;6024:114;5822:323;;;;:::o;6151:329::-;6210:6;6259:2;6247:9;6238:7;6234:23;6230:32;6227:119;;;6265:79;;:::i;:::-;6227:119;6385:1;6410:53;6455:7;6446:6;6435:9;6431:22;6410:53;:::i;:::-;6400:63;;6356:117;6151:329;;;;:::o;6486:118::-;6573:24;6591:5;6573:24;:::i;:::-;6568:3;6561:37;6486:118;;:::o;6610:222::-;6703:4;6741:2;6730:9;6726:18;6718:26;;6754:71;6822:1;6811:9;6807:17;6798:6;6754:71;:::i;:::-;6610:222;;;;:::o;6838:474::-;6906:6;6914;6963:2;6951:9;6942:7;6938:23;6934:32;6931:119;;;6969:79;;:::i;:::-;6931:119;7089:1;7114:53;7159:7;7150:6;7139:9;7135:22;7114:53;:::i;:::-;7104:63;;7060:117;7216:2;7242:53;7287:7;7278:6;7267:9;7263:22;7242:53;:::i;:::-;7232:63;;7187:118;6838:474;;;;;:::o;7318:117::-;7427:1;7424;7417:12;7441:180;7489:77;7486:1;7479:88;7586:4;7583:1;7576:15;7610:4;7607:1;7600:15;7627:281;7710:27;7732:4;7710:27;:::i;:::-;7702:6;7698:40;7840:6;7828:10;7825:22;7804:18;7792:10;7789:34;7786:62;7783:88;;;7851:18;;:::i;:::-;7783:88;7891:10;7887:2;7880:22;7670:238;7627:281;;:::o;7914:129::-;7948:6;7975:20;;:::i;:::-;7965:30;;8004:33;8032:4;8024:6;8004:33;:::i;:::-;7914:129;;;:::o;8049:311::-;8126:4;8216:18;8208:6;8205:30;8202:56;;;8238:18;;:::i;:::-;8202:56;8288:4;8280:6;8276:17;8268:25;;8348:4;8342;8338:15;8330:23;;8049:311;;;:::o;8366:117::-;8475:1;8472;8465:12;8506:710;8602:5;8627:81;8643:64;8700:6;8643:64;:::i;:::-;8627:81;:::i;:::-;8618:90;;8728:5;8757:6;8750:5;8743:21;8791:4;8784:5;8780:16;8773:23;;8844:4;8836:6;8832:17;8824:6;8820:30;8873:3;8865:6;8862:15;8859:122;;;8892:79;;:::i;:::-;8859:122;9007:6;8990:220;9024:6;9019:3;9016:15;8990:220;;;9099:3;9128:37;9161:3;9149:10;9128:37;:::i;:::-;9123:3;9116:50;9195:4;9190:3;9186:14;9179:21;;9066:144;9050:4;9045:3;9041:14;9034:21;;8990:220;;;8994:21;8608:608;;8506:710;;;;;:::o;9239:370::-;9310:5;9359:3;9352:4;9344:6;9340:17;9336:27;9326:122;;9367:79;;:::i;:::-;9326:122;9484:6;9471:20;9509:94;9599:3;9591:6;9584:4;9576:6;9572:17;9509:94;:::i;:::-;9500:103;;9316:293;9239:370;;;;:::o;9615:829::-;9717:6;9725;9733;9782:2;9770:9;9761:7;9757:23;9753:32;9750:119;;;9788:79;;:::i;:::-;9750:119;9936:1;9925:9;9921:17;9908:31;9966:18;9958:6;9955:30;9952:117;;;9988:79;;:::i;:::-;9952:117;10093:78;10163:7;10154:6;10143:9;10139:22;10093:78;:::i;:::-;10083:88;;9879:302;10220:2;10246:53;10291:7;10282:6;10271:9;10267:22;10246:53;:::i;:::-;10236:63;;10191:118;10348:2;10374:53;10419:7;10410:6;10399:9;10395:22;10374:53;:::i;:::-;10364:63;;10319:118;9615:829;;;;;:::o;10450:174::-;10590:26;10586:1;10578:6;10574:14;10567:50;10450:174;:::o;10630:366::-;10772:3;10793:67;10857:2;10852:3;10793:67;:::i;:::-;10786:74;;10869:93;10958:3;10869:93;:::i;:::-;10987:2;10982:3;10978:12;10971:19;;10630:366;;;:::o;11002:419::-;11168:4;11206:2;11195:9;11191:18;11183:26;;11255:9;11249:4;11245:20;11241:1;11230:9;11226:17;11219:47;11283:131;11409:4;11283:131;:::i;:::-;11275:139;;11002:419;;;:::o;11427:177::-;11567:29;11563:1;11555:6;11551:14;11544:53;11427:177;:::o;11610:366::-;11752:3;11773:67;11837:2;11832:3;11773:67;:::i;:::-;11766:74;;11849:93;11938:3;11849:93;:::i;:::-;11967:2;11962:3;11958:12;11951:19;;11610:366;;;:::o;11982:419::-;12148:4;12186:2;12175:9;12171:18;12163:26;;12235:9;12229:4;12225:20;12221:1;12210:9;12206:17;12199:47;12263:131;12389:4;12263:131;:::i;:::-;12255:139;;11982:419;;;:::o;12407:182::-;12547:34;12543:1;12535:6;12531:14;12524:58;12407:182;:::o;12595:366::-;12737:3;12758:67;12822:2;12817:3;12758:67;:::i;:::-;12751:74;;12834:93;12923:3;12834:93;:::i;:::-;12952:2;12947:3;12943:12;12936:19;;12595:366;;;:::o;12967:419::-;13133:4;13171:2;13160:9;13156:18;13148:26;;13220:9;13214:4;13210:20;13206:1;13195:9;13191:17;13184:47;13248:131;13374:4;13248:131;:::i;:::-;13240:139;;12967:419;;;:::o;13392:143::-;13449:5;13480:6;13474:13;13465:22;;13496:33;13523:5;13496:33;:::i;:::-;13392:143;;;;:::o;13541:351::-;13611:6;13660:2;13648:9;13639:7;13635:23;13631:32;13628:119;;;13666:79;;:::i;:::-;13628:119;13786:1;13811:64;13867:7;13858:6;13847:9;13843:22;13811:64;:::i;:::-;13801:74;;13757:128;13541:351;;;;:::o;13898:176::-;14038:28;14034:1;14026:6;14022:14;14015:52;13898:176;:::o;14080:366::-;14222:3;14243:67;14307:2;14302:3;14243:67;:::i;:::-;14236:74;;14319:93;14408:3;14319:93;:::i;:::-;14437:2;14432:3;14428:12;14421:19;;14080:366;;;:::o;14452:419::-;14618:4;14656:2;14645:9;14641:18;14633:26;;14705:9;14699:4;14695:20;14691:1;14680:9;14676:17;14669:47;14733:131;14859:4;14733:131;:::i;:::-;14725:139;;14452:419;;;:::o;14877:60::-;14905:3;14926:5;14919:12;;14877:60;;;:::o;14943:142::-;14993:9;15026:53;15044:34;15053:24;15071:5;15053:24;:::i;:::-;15044:34;:::i;:::-;15026:53;:::i;:::-;15013:66;;14943:142;;;:::o;15091:126::-;15141:9;15174:37;15205:5;15174:37;:::i;:::-;15161:50;;15091:126;;;:::o;15223:134::-;15281:9;15314:37;15345:5;15314:37;:::i;:::-;15301:50;;15223:134;;;:::o;15363:147::-;15458:45;15497:5;15458:45;:::i;:::-;15453:3;15446:58;15363:147;;:::o;15516:348::-;15645:4;15683:2;15672:9;15668:18;15660:26;;15696:79;15772:1;15761:9;15757:17;15748:6;15696:79;:::i;:::-;15785:72;15853:2;15842:9;15838:18;15829:6;15785:72;:::i;:::-;15516:348;;;;;:::o;15870:137::-;15924:5;15955:6;15949:13;15940:22;;15971:30;15995:5;15971:30;:::i;:::-;15870:137;;;;:::o;16013:345::-;16080:6;16129:2;16117:9;16108:7;16104:23;16100:32;16097:119;;;16135:79;;:::i;:::-;16097:119;16255:1;16280:61;16333:7;16324:6;16313:9;16309:22;16280:61;:::i;:::-;16270:71;;16226:125;16013:345;;;;:::o;16364:165::-;16504:17;16500:1;16492:6;16488:14;16481:41;16364:165;:::o;16535:366::-;16677:3;16698:67;16762:2;16757:3;16698:67;:::i;:::-;16691:74;;16774:93;16863:3;16774:93;:::i;:::-;16892:2;16887:3;16883:12;16876:19;;16535:366;;;:::o;16907:419::-;17073:4;17111:2;17100:9;17096:18;17088:26;;17160:9;17154:4;17150:20;17146:1;17135:9;17131:17;17124:47;17188:131;17314:4;17188:131;:::i;:::-;17180:139;;16907:419;;;:::o;17332:181::-;17472:33;17468:1;17460:6;17456:14;17449:57;17332:181;:::o;17519:366::-;17661:3;17682:67;17746:2;17741:3;17682:67;:::i;:::-;17675:74;;17758:93;17847:3;17758:93;:::i;:::-;17876:2;17871:3;17867:12;17860:19;;17519:366;;;:::o;17891:419::-;18057:4;18095:2;18084:9;18080:18;18072:26;;18144:9;18138:4;18134:20;18130:1;18119:9;18115:17;18108:47;18172:131;18298:4;18172:131;:::i;:::-;18164:139;;17891:419;;;:::o;18316:179::-;18456:31;18452:1;18444:6;18440:14;18433:55;18316:179;:::o;18501:366::-;18643:3;18664:67;18728:2;18723:3;18664:67;:::i;:::-;18657:74;;18740:93;18829:3;18740:93;:::i;:::-;18858:2;18853:3;18849:12;18842:19;;18501:366;;;:::o;18873:419::-;19039:4;19077:2;19066:9;19062:18;19054:26;;19126:9;19120:4;19116:20;19112:1;19101:9;19097:17;19090:47;19154:131;19280:4;19154:131;:::i;:::-;19146:139;;18873:419;;;:::o;19298:180::-;19346:77;19343:1;19336:88;19443:4;19440:1;19433:15;19467:4;19464:1;19457:15;19484:102;19526:8;19573:5;19570:1;19566:13;19545:34;;19484:102;;;:::o;19592:848::-;19653:5;19660:4;19684:6;19675:15;;19708:5;19699:14;;19722:712;19743:1;19733:8;19730:15;19722:712;;;19838:4;19833:3;19829:14;19823:4;19820:24;19817:50;;;19847:18;;:::i;:::-;19817:50;19897:1;19887:8;19883:16;19880:451;;;20312:4;20305:5;20301:16;20292:25;;19880:451;20362:4;20356;20352:15;20344:23;;20392:32;20415:8;20392:32;:::i;:::-;20380:44;;19722:712;;;19592:848;;;;;;;:::o;20446:1073::-;20500:5;20691:8;20681:40;;20712:1;20703:10;;20714:5;;20681:40;20740:4;20730:36;;20757:1;20748:10;;20759:5;;20730:36;20826:4;20874:1;20869:27;;;;20910:1;20905:191;;;;20819:277;;20869:27;20887:1;20878:10;;20889:5;;;20905:191;20950:3;20940:8;20937:17;20934:43;;;20957:18;;:::i;:::-;20934:43;21006:8;21003:1;20999:16;20990:25;;21041:3;21034:5;21031:14;21028:40;;;21048:18;;:::i;:::-;21028:40;21081:5;;;20819:277;;21205:2;21195:8;21192:16;21186:3;21180:4;21177:13;21173:36;21155:2;21145:8;21142:16;21137:2;21131:4;21128:12;21124:35;21108:111;21105:246;;;21261:8;21255:4;21251:19;21242:28;;21296:3;21289:5;21286:14;21283:40;;;21303:18;;:::i;:::-;21283:40;21336:5;;21105:246;21376:42;21414:3;21404:8;21398:4;21395:1;21376:42;:::i;:::-;21361:57;;;;21450:4;21445:3;21441:14;21434:5;21431:25;21428:51;;;21459:18;;:::i;:::-;21428:51;21508:4;21501:5;21497:16;21488:25;;20446:1073;;;;;;:::o;21525:281::-;21583:5;21607:23;21625:4;21607:23;:::i;:::-;21599:31;;21651:25;21667:8;21651:25;:::i;:::-;21639:37;;21695:104;21732:66;21722:8;21716:4;21695:104;:::i;:::-;21686:113;;21525:281;;;;:::o;21812:410::-;21852:7;21875:20;21893:1;21875:20;:::i;:::-;21870:25;;21909:20;21927:1;21909:20;:::i;:::-;21904:25;;21964:1;21961;21957:9;21986:30;22004:11;21986:30;:::i;:::-;21975:41;;22165:1;22156:7;22152:15;22149:1;22146:22;22126:1;22119:9;22099:83;22076:139;;22195:18;;:::i;:::-;22076:139;21860:362;21812:410;;;;:::o;22228:182::-;22368:34;22364:1;22356:6;22352:14;22345:58;22228:182;:::o;22416:366::-;22558:3;22579:67;22643:2;22638:3;22579:67;:::i;:::-;22572:74;;22655:93;22744:3;22655:93;:::i;:::-;22773:2;22768:3;22764:12;22757:19;;22416:366;;;:::o;22788:419::-;22954:4;22992:2;22981:9;22977:18;22969:26;;23041:9;23035:4;23031:20;23027:1;23016:9;23012:17;23005:47;23069:131;23195:4;23069:131;:::i;:::-;23061:139;;22788:419;;;:::o;23213:85::-;23258:7;23287:5;23276:16;;23213:85;;;:::o;23304:158::-;23362:9;23395:61;23413:42;23422:32;23448:5;23422:32;:::i;:::-;23413:42;:::i;:::-;23395:61;:::i;:::-;23382:74;;23304:158;;;:::o;23468:147::-;23563:45;23602:5;23563:45;:::i;:::-;23558:3;23551:58;23468:147;;:::o;23621:238::-;23722:4;23760:2;23749:9;23745:18;23737:26;;23773:79;23849:1;23838:9;23834:17;23825:6;23773:79;:::i;:::-;23621:238;;;;:::o;23865:172::-;24005:24;24001:1;23993:6;23989:14;23982:48;23865:172;:::o;24043:366::-;24185:3;24206:67;24270:2;24265:3;24206:67;:::i;:::-;24199:74;;24282:93;24371:3;24282:93;:::i;:::-;24400:2;24395:3;24391:12;24384:19;;24043:366;;;:::o;24415:419::-;24581:4;24619:2;24608:9;24604:18;24596:26;;24668:9;24662:4;24658:20;24654:1;24643:9;24639:17;24632:47;24696:131;24822:4;24696:131;:::i;:::-;24688:139;;24415:419;;;:::o;24840:332::-;24961:4;24999:2;24988:9;24984:18;24976:26;;25012:71;25080:1;25069:9;25065:17;25056:6;25012:71;:::i;:::-;25093:72;25161:2;25150:9;25146:18;25137:6;25093:72;:::i;:::-;24840:332;;;;;:::o;25178:823::-;25435:4;25473:3;25462:9;25458:19;25450:27;;25487:71;25555:1;25544:9;25540:17;25531:6;25487:71;:::i;:::-;25568:72;25636:2;25625:9;25621:18;25612:6;25568:72;:::i;:::-;25650:80;25726:2;25715:9;25711:18;25702:6;25650:80;:::i;:::-;25740;25816:2;25805:9;25801:18;25792:6;25740:80;:::i;:::-;25830:81;25906:3;25895:9;25891:19;25882:6;25830:81;:::i;:::-;25921:73;25989:3;25978:9;25974:19;25965:6;25921:73;:::i;:::-;25178:823;;;;;;;;;:::o;26007:173::-;26147:25;26143:1;26135:6;26131:14;26124:49;26007:173;:::o;26186:366::-;26328:3;26349:67;26413:2;26408:3;26349:67;:::i;:::-;26342:74;;26425:93;26514:3;26425:93;:::i;:::-;26543:2;26538:3;26534:12;26527:19;;26186:366;;;:::o;26558:419::-;26724:4;26762:2;26751:9;26747:18;26739:26;;26811:9;26805:4;26801:20;26797:1;26786:9;26782:17;26775:47;26839:131;26965:4;26839:131;:::i;:::-;26831:139;;26558:419;;;:::o;26983:143::-;27040:5;27071:6;27065:13;27056:22;;27087:33;27114:5;27087:33;:::i;:::-;26983:143;;;;:::o;27132:351::-;27202:6;27251:2;27239:9;27230:7;27226:23;27222:32;27219:119;;;27257:79;;:::i;:::-;27219:119;27377:1;27402:64;27458:7;27449:6;27438:9;27434:22;27402:64;:::i;:::-;27392:74;;27348:128;27132:351;;;;:::o;27489:332::-;27610:4;27648:2;27637:9;27633:18;27625:26;;27661:71;27729:1;27718:9;27714:17;27705:6;27661:71;:::i;:::-;27742:72;27810:2;27799:9;27795:18;27786:6;27742:72;:::i;:::-;27489:332;;;;;:::o;27827:807::-;28076:4;28114:3;28103:9;28099:19;28091:27;;28128:71;28196:1;28185:9;28181:17;28172:6;28128:71;:::i;:::-;28209:72;28277:2;28266:9;28262:18;28253:6;28209:72;:::i;:::-;28291:80;28367:2;28356:9;28352:18;28343:6;28291:80;:::i;:::-;28381;28457:2;28446:9;28442:18;28433:6;28381:80;:::i;:::-;28471:73;28539:3;28528:9;28524:19;28515:6;28471:73;:::i;:::-;28554;28622:3;28611:9;28607:19;28598:6;28554:73;:::i;:::-;27827:807;;;;;;;;;:::o;28640:663::-;28728:6;28736;28744;28793:2;28781:9;28772:7;28768:23;28764:32;28761:119;;;28799:79;;:::i;:::-;28761:119;28919:1;28944:64;29000:7;28991:6;28980:9;28976:22;28944:64;:::i;:::-;28934:74;;28890:128;29057:2;29083:64;29139:7;29130:6;29119:9;29115:22;29083:64;:::i;:::-;29073:74;;29028:129;29196:2;29222:64;29278:7;29269:6;29258:9;29254:22;29222:64;:::i;:::-;29212:74;;29167:129;28640:663;;;;;:::o;29309:171::-;29449:23;29445:1;29437:6;29433:14;29426:47;29309:171;:::o;29486:366::-;29628:3;29649:67;29713:2;29708:3;29649:67;:::i;:::-;29642:74;;29725:93;29814:3;29725:93;:::i;:::-;29843:2;29838:3;29834:12;29827:19;;29486:366;;;:::o;29858:419::-;30024:4;30062:2;30051:9;30047:18;30039:26;;30111:9;30105:4;30101:20;30097:1;30086:9;30082:17;30075:47;30139:131;30265:4;30139:131;:::i;:::-;30131:139;;29858:419;;;:::o;30283:223::-;30423:34;30419:1;30411:6;30407:14;30400:58;30492:6;30487:2;30479:6;30475:15;30468:31;30283:223;:::o;30512:366::-;30654:3;30675:67;30739:2;30734:3;30675:67;:::i;:::-;30668:74;;30751:93;30840:3;30751:93;:::i;:::-;30869:2;30864:3;30860:12;30853:19;;30512:366;;;:::o;30884:419::-;31050:4;31088:2;31077:9;31073:18;31065:26;;31137:9;31131:4;31127:20;31123:1;31112:9;31108:17;31101:47;31165:131;31291:4;31165:131;:::i;:::-;31157:139;;30884:419;;;:::o;31309:175::-;31449:27;31445:1;31437:6;31433:14;31426:51;31309:175;:::o;31490:366::-;31632:3;31653:67;31717:2;31712:3;31653:67;:::i;:::-;31646:74;;31729:93;31818:3;31729:93;:::i;:::-;31847:2;31842:3;31838:12;31831:19;;31490:366;;;:::o;31862:419::-;32028:4;32066:2;32055:9;32051:18;32043:26;;32115:9;32109:4;32105:20;32101:1;32090:9;32086:17;32079:47;32143:131;32269:4;32143:131;:::i;:::-;32135:139;;31862:419;;;:::o;32287:173::-;32427:25;32423:1;32415:6;32411:14;32404:49;32287:173;:::o;32466:366::-;32608:3;32629:67;32693:2;32688:3;32629:67;:::i;:::-;32622:74;;32705:93;32794:3;32705:93;:::i;:::-;32823:2;32818:3;32814:12;32807:19;;32466:366;;;:::o;32838:419::-;33004:4;33042:2;33031:9;33027:18;33019:26;;33091:9;33085:4;33081:20;33077:1;33066:9;33062:17;33055:47;33119:131;33245:4;33119:131;:::i;:::-;33111:139;;32838:419;;;:::o;33263:180::-;33311:77;33308:1;33301:88;33408:4;33405:1;33398:15;33432:4;33429:1;33422:15;33449:185;33489:1;33506:20;33524:1;33506:20;:::i;:::-;33501:25;;33540:20;33558:1;33540:20;:::i;:::-;33535:25;;33579:1;33569:35;;33584:18;;:::i;:::-;33569:35;33626:1;33623;33619:9;33614:14;;33449:185;;;;:::o;33640:180::-;33780:32;33776:1;33768:6;33764:14;33757:56;33640:180;:::o;33826:366::-;33968:3;33989:67;34053:2;34048:3;33989:67;:::i;:::-;33982:74;;34065:93;34154:3;34065:93;:::i;:::-;34183:2;34178:3;34174:12;34167:19;;33826:366;;;:::o;34198:419::-;34364:4;34402:2;34391:9;34387:18;34379:26;;34451:9;34445:4;34441:20;34437:1;34426:9;34422:17;34415:47;34479:131;34605:4;34479:131;:::i;:::-;34471:139;;34198:419;;;:::o;34623:220::-;34763:34;34759:1;34751:6;34747:14;34740:58;34832:3;34827:2;34819:6;34815:15;34808:28;34623:220;:::o;34849:366::-;34991:3;35012:67;35076:2;35071:3;35012:67;:::i;:::-;35005:74;;35088:93;35177:3;35088:93;:::i;:::-;35206:2;35201:3;35197:12;35190:19;;34849:366;;;:::o;35221:419::-;35387:4;35425:2;35414:9;35410:18;35402:26;;35474:9;35468:4;35464:20;35460:1;35449:9;35445:17;35438:47;35502:131;35628:4;35502:131;:::i;:::-;35494:139;;35221:419;;;:::o;35646:180::-;35694:77;35691:1;35684:88;35791:4;35788:1;35781:15;35815:4;35812:1;35805:15;35832:220;35972:34;35968:1;35960:6;35956:14;35949:58;36041:3;36036:2;36028:6;36024:15;36017:28;35832:220;:::o;36058:366::-;36200:3;36221:67;36285:2;36280:3;36221:67;:::i;:::-;36214:74;;36297:93;36386:3;36297:93;:::i;:::-;36415:2;36410:3;36406:12;36399:19;;36058:366;;;:::o;36430:419::-;36596:4;36634:2;36623:9;36619:18;36611:26;;36683:9;36677:4;36673:20;36669:1;36658:9;36654:17;36647:47;36711:131;36837:4;36711:131;:::i;:::-;36703:139;;36430:419;;;:::o;36855:194::-;36895:4;36915:20;36933:1;36915:20;:::i;:::-;36910:25;;36949:20;36967:1;36949:20;:::i;:::-;36944:25;;36993:1;36990;36986:9;36978:17;;37017:1;37011:4;37008:11;37005:37;;;37022:18;;:::i;:::-;37005:37;36855:194;;;;:::o;37055:191::-;37095:3;37114:20;37132:1;37114:20;:::i;:::-;37109:25;;37148:20;37166:1;37148:20;:::i;:::-;37143:25;;37191:1;37188;37184:9;37177:16;;37212:3;37209:1;37206:10;37203:36;;;37219:18;;:::i;:::-;37203:36;37055:191;;;;:::o;37252:79::-;37291:7;37320:5;37309:16;;37252:79;;;:::o;37337:157::-;37442:45;37462:24;37480:5;37462:24;:::i;:::-;37442:45;:::i;:::-;37437:3;37430:58;37337:157;;:::o;37500:94::-;37533:8;37581:5;37577:2;37573:14;37552:35;;37500:94;;;:::o;37600:::-;37639:7;37668:20;37682:5;37668:20;:::i;:::-;37657:31;;37600:94;;;:::o;37700:100::-;37739:7;37768:26;37788:5;37768:26;:::i;:::-;37757:37;;37700:100;;;:::o;37806:157::-;37911:45;37931:24;37949:5;37931:24;:::i;:::-;37911:45;:::i;:::-;37906:3;37899:58;37806:157;;:::o;37969:679::-;38165:3;38180:75;38251:3;38242:6;38180:75;:::i;:::-;38280:2;38275:3;38271:12;38264:19;;38293:75;38364:3;38355:6;38293:75;:::i;:::-;38393:2;38388:3;38384:12;38377:19;;38406:75;38477:3;38468:6;38406:75;:::i;:::-;38506:2;38501:3;38497:12;38490:19;;38519:75;38590:3;38581:6;38519:75;:::i;:::-;38619:2;38614:3;38610:12;38603:19;;38639:3;38632:10;;37969:679;;;;;;;:::o;38654:176::-;38686:1;38703:20;38721:1;38703:20;:::i;:::-;38698:25;;38737:20;38755:1;38737:20;:::i;:::-;38732:25;;38776:1;38766:35;;38781:18;;:::i;:::-;38766:35;38822:1;38819;38815:9;38810:14;;38654:176;;;;:::o;38836:147::-;38937:11;38974:3;38959:18;;38836:147;;;;:::o;38989:114::-;;:::o;39109:398::-;39268:3;39289:83;39370:1;39365:3;39289:83;:::i;:::-;39282:90;;39381:93;39470:3;39381:93;:::i;:::-;39499:1;39494:3;39490:11;39483:18;;39109:398;;;:::o;39513:379::-;39697:3;39719:147;39862:3;39719:147;:::i;:::-;39712:154;;39883:3;39876:10;;39513:379;;;:::o;39898:169::-;40038:21;40034:1;40026:6;40022:14;40015:45;39898:169;:::o;40073:366::-;40215:3;40236:67;40300:2;40295:3;40236:67;:::i;:::-;40229:74;;40312:93;40401:3;40312:93;:::i;:::-;40430:2;40425:3;40421:12;40414:19;;40073:366;;;:::o;40445:419::-;40611:4;40649:2;40638:9;40634:18;40626:26;;40698:9;40692:4;40688:20;40684:1;40673:9;40669:17;40662:47;40726:131;40852:4;40726:131;:::i;:::-;40718:139;;40445:419;;;:::o;40870:176::-;41010:28;41006:1;40998:6;40994:14;40987:52;40870:176;:::o;41052:366::-;41194:3;41215:67;41279:2;41274:3;41215:67;:::i;:::-;41208:74;;41291:93;41380:3;41291:93;:::i;:::-;41409:2;41404:3;41400:12;41393:19;;41052:366;;;:::o;41424:419::-;41590:4;41628:2;41617:9;41613:18;41605:26;;41677:9;41671:4;41667:20;41663:1;41652:9;41648:17;41641:47;41705:131;41831:4;41705:131;:::i;:::-;41697:139;;41424:419;;;:::o;41849:168::-;41989:20;41985:1;41977:6;41973:14;41966:44;41849:168;:::o;42023:366::-;42165:3;42186:67;42250:2;42245:3;42186:67;:::i;:::-;42179:74;;42262:93;42351:3;42262:93;:::i;:::-;42380:2;42375:3;42371:12;42364:19;;42023:366;;;:::o;42395:419::-;42561:4;42599:2;42588:9;42584:18;42576:26;;42648:9;42642:4;42638:20;42634:1;42623:9;42619:17;42612:47;42676:131;42802:4;42676:131;:::i;:::-;42668:139;;42395:419;;;:::o;42820:223::-;42960:34;42956:1;42948:6;42944:14;42937:58;43029:6;43024:2;43016:6;43012:15;43005:31;42820:223;:::o;43049:366::-;43191:3;43212:67;43276:2;43271:3;43212:67;:::i;:::-;43205:74;;43288:93;43377:3;43288:93;:::i;:::-;43406:2;43401:3;43397:12;43390:19;;43049:366;;;:::o;43421:419::-;43587:4;43625:2;43614:9;43610:18;43602:26;;43674:9;43668:4;43664:20;43660:1;43649:9;43645:17;43638:47;43702:131;43828:4;43702:131;:::i;:::-;43694:139;;43421:419;;;:::o;43846:221::-;43986:34;43982:1;43974:6;43970:14;43963:58;44055:4;44050:2;44042:6;44038:15;44031:29;43846:221;:::o;44073:366::-;44215:3;44236:67;44300:2;44295:3;44236:67;:::i;:::-;44229:74;;44312:93;44401:3;44312:93;:::i;:::-;44430:2;44425:3;44421:12;44414:19;;44073:366;;;:::o;44445:419::-;44611:4;44649:2;44638:9;44634:18;44626:26;;44698:9;44692:4;44688:20;44684:1;44673:9;44669:17;44662:47;44726:131;44852:4;44726:131;:::i;:::-;44718:139;;44445:419;;;:::o;44870:224::-;45010:34;45006:1;44998:6;44994:14;44987:58;45079:7;45074:2;45066:6;45062:15;45055:32;44870:224;:::o;45100:366::-;45242:3;45263:67;45327:2;45322:3;45263:67;:::i;:::-;45256:74;;45339:93;45428:3;45339:93;:::i;:::-;45457:2;45452:3;45448:12;45441:19;;45100:366;;;:::o;45472:419::-;45638:4;45676:2;45665:9;45661:18;45653:26;;45725:9;45719:4;45715:20;45711:1;45700:9;45696:17;45689:47;45753:131;45879:4;45753:131;:::i;:::-;45745:139;;45472:419;;;:::o;45897:222::-;46037:34;46033:1;46025:6;46021:14;46014:58;46106:5;46101:2;46093:6;46089:15;46082:30;45897:222;:::o;46125:366::-;46267:3;46288:67;46352:2;46347:3;46288:67;:::i;:::-;46281:74;;46364:93;46453:3;46364:93;:::i;:::-;46482:2;46477:3;46473:12;46466:19;;46125:366;;;:::o;46497:419::-;46663:4;46701:2;46690:9;46686:18;46678:26;;46750:9;46744:4;46740:20;46736:1;46725:9;46721:17;46714:47;46778:131;46904:4;46778:131;:::i;:::-;46770:139;;46497:419;;;:::o;46922:228::-;47062:34;47058:1;47050:6;47046:14;47039:58;47131:11;47126:2;47118:6;47114:15;47107:36;46922:228;:::o;47156:366::-;47298:3;47319:67;47383:2;47378:3;47319:67;:::i;:::-;47312:74;;47395:93;47484:3;47395:93;:::i;:::-;47513:2;47508:3;47504:12;47497:19;;47156:366;;;:::o;47528:419::-;47694:4;47732:2;47721:9;47717:18;47709:26;;47781:9;47775:4;47771:20;47767:1;47756:9;47752:17;47745:47;47809:131;47935:4;47809:131;:::i;:::-;47801:139;;47528:419;;;:::o;47953:175::-;48093:27;48089:1;48081:6;48077:14;48070:51;47953:175;:::o;48134:366::-;48276:3;48297:67;48361:2;48356:3;48297:67;:::i;:::-;48290:74;;48373:93;48462:3;48373:93;:::i;:::-;48491:2;48486:3;48482:12;48475:19;;48134:366;;;:::o;48506:419::-;48672:4;48710:2;48699:9;48695:18;48687:26;;48759:9;48753:4;48749:20;48745:1;48734:9;48730:17;48723:47;48787:131;48913:4;48787:131;:::i;:::-;48779:139;;48506:419;;;:::o;48931:176::-;49071:28;49067:1;49059:6;49055:14;49048:52;48931:176;:::o;49113:366::-;49255:3;49276:67;49340:2;49335:3;49276:67;:::i;:::-;49269:74;;49352:93;49441:3;49352:93;:::i;:::-;49470:2;49465:3;49461:12;49454:19;;49113:366;;;:::o;49485:419::-;49651:4;49689:2;49678:9;49674:18;49666:26;;49738:9;49732:4;49728:20;49724:1;49713:9;49709:17;49702:47;49766:131;49892:4;49766:131;:::i;:::-;49758:139;;49485:419;;;:::o;49910:233::-;49949:3;49972:24;49990:5;49972:24;:::i;:::-;49963:33;;50018:66;50011:5;50008:77;50005:103;;50088:18;;:::i;:::-;50005:103;50135:1;50128:5;50124:13;50117:20;;49910:233;;;:::o;50149:173::-;50289:25;50285:1;50277:6;50273:14;50266:49;50149:173;:::o;50328:366::-;50470:3;50491:67;50555:2;50550:3;50491:67;:::i;:::-;50484:74;;50567:93;50656:3;50567:93;:::i;:::-;50685:2;50680:3;50676:12;50669:19;;50328:366;;;:::o;50700:419::-;50866:4;50904:2;50893:9;50889:18;50881:26;;50953:9;50947:4;50943:20;50939:1;50928:9;50924:17;50917:47;50981:131;51107:4;50981:131;:::i;:::-;50973:139;;50700:419;;;:::o;51125:114::-;51192:6;51226:5;51220:12;51210:22;;51125:114;;;:::o;51245:184::-;51344:11;51378:6;51373:3;51366:19;51418:4;51413:3;51409:14;51394:29;;51245:184;;;;:::o;51435:132::-;51502:4;51525:3;51517:11;;51555:4;51550:3;51546:14;51538:22;;51435:132;;;:::o;51573:108::-;51650:24;51668:5;51650:24;:::i;:::-;51645:3;51638:37;51573:108;;:::o;51687:179::-;51756:10;51777:46;51819:3;51811:6;51777:46;:::i;:::-;51855:4;51850:3;51846:14;51832:28;;51687:179;;;;:::o;51872:113::-;51942:4;51974;51969:3;51965:14;51957:22;;51872:113;;;:::o;52021:732::-;52140:3;52169:54;52217:5;52169:54;:::i;:::-;52239:86;52318:6;52313:3;52239:86;:::i;:::-;52232:93;;52349:56;52399:5;52349:56;:::i;:::-;52428:7;52459:1;52444:284;52469:6;52466:1;52463:13;52444:284;;;52545:6;52539:13;52572:63;52631:3;52616:13;52572:63;:::i;:::-;52565:70;;52658:60;52711:6;52658:60;:::i;:::-;52648:70;;52504:224;52491:1;52488;52484:9;52479:14;;52444:284;;;52448:14;52744:3;52737:10;;52145:608;;;52021:732;;;;:::o;52759:831::-;53022:4;53060:3;53049:9;53045:19;53037:27;;53074:71;53142:1;53131:9;53127:17;53118:6;53074:71;:::i;:::-;53155:80;53231:2;53220:9;53216:18;53207:6;53155:80;:::i;:::-;53282:9;53276:4;53272:20;53267:2;53256:9;53252:18;53245:48;53310:108;53413:4;53404:6;53310:108;:::i;:::-;53302:116;;53428:72;53496:2;53485:9;53481:18;53472:6;53428:72;:::i;:::-;53510:73;53578:3;53567:9;53563:19;53554:6;53510:73;:::i;:::-;52759:831;;;;;;;;:::o;53596:220::-;53736:34;53732:1;53724:6;53720:14;53713:58;53805:3;53800:2;53792:6;53788:15;53781:28;53596:220;:::o;53822:366::-;53964:3;53985:67;54049:2;54044:3;53985:67;:::i;:::-;53978:74;;54061:93;54150:3;54061:93;:::i;:::-;54179:2;54174:3;54170:12;54163:19;;53822:366;;;:::o;54194:419::-;54360:4;54398:2;54387:9;54383:18;54375:26;;54447:9;54441:4;54437:20;54433:1;54422:9;54418:17;54411:47;54475:131;54601:4;54475:131;:::i;:::-;54467:139;;54194:419;;;:::o;54619:177::-;54759:29;54755:1;54747:6;54743:14;54736:53;54619:177;:::o;54802:366::-;54944:3;54965:67;55029:2;55024:3;54965:67;:::i;:::-;54958:74;;55041:93;55130:3;55041:93;:::i;:::-;55159:2;55154:3;55150:12;55143:19;;54802:366;;;:::o;55174:419::-;55340:4;55378:2;55367:9;55363:18;55355:26;;55427:9;55421:4;55417:20;55413:1;55402:9;55398:17;55391:47;55455:131;55581:4;55455:131;:::i;:::-;55447:139;;55174:419;;;:::o

Swarm Source

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