ETH Price: $2,328.03 (-6.57%)

Token

JFC (JFC)
 

Overview

Max Total Supply

1,000,000,000 JFC

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
23,983,836.527285997 JFC

Value
$0.00
0x6687f2afcbe8fd2a30aec2af103cd7fde1a1368d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
JFC

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-11
*/

/**
 *Submitted for verification at Etherscan.io on 2021-11-02
*/

/**
  Telegram: https://t.me/JFC_ETH
  JFC this shit mooned ! 

  
░░░▒█ ▒█▀▀▀ ▒█▀▀█ 
░▄░▒█ ▒█▀▀▀ ▒█░░░ 
▒█▄▄█ ▒█░░░ ▒█▄▄█


*/

// SPDX-License-Identifier: Unlicensed



pragma solidity ^0.8.7;



library Address {

   

    function isContract(address account) internal view returns (bool) {

        bytes32 codehash;

        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;

        assembly { codehash := extcodehash(account) }

        return (codehash != accountHash && codehash != 0x0);

    }

    function sendValue(address payable recipient, uint256 amount) internal {

        require(address(this).balance >= amount, "Address: insufficient balance");



        (bool success, ) = recipient.call{ value: amount }("");

        require(success, "Address: unable to send value, recipient may have reverted");

    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {

      return functionCall(target, data, "Address: low-level call failed");

    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {

        return _functionCallWithValue(target, data, 0, errorMessage);

    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {

        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");

    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {

        require(address(this).balance >= value, "Address: insufficient balance for call");

        return _functionCallWithValue(target, data, value, errorMessage);

    }



    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {

        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);

        if (success) {

            return returndata;

        } else {

            if (returndata.length > 0) {

                assembly {

                    let returndata_size := mload(returndata)

                    revert(add(32, returndata), returndata_size)

                }

            } else {

                revert(errorMessage);

            }

        }

    }

}

abstract contract Context {

    function _msgSender() internal view returns (address payable) {

        return payable(msg.sender);

    }



    function _msgData() internal view returns (bytes memory) {

        this;

        return msg.data;

    }

}



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

}



interface IDEXFactory {

    function createPair(address tokenA, address tokenB) external returns (address pair);

}



interface IDEXRouter {

    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 swapExactTokensForETHSupportingFeeOnTransferTokens(

        uint amountIn,

        uint amountOutMin,

        address[] calldata path,

        address to,

        uint deadline

    ) external;

}



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 ContractCreator() public view returns (address) {

        return _owner;

    }

    modifier onlyOwner() {

        require(_owner == _msgSender(), "Ownable: caller is not the owner");

        _;

  

    }

}



contract JFC is IERC20, Ownable {

    using Address for address;

    

    address DEAD = 0x000000000000000000000000000000000000dEaD;

    address ZERO = 0x0000000000000000000000000000000000000000;



    string constant _name = "JFC";

    string constant _symbol = "JFC";

    uint8 constant _decimals = 9;



    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);

    uint256 _maxBuyTxAmount = (_totalSupply * 1) / 100;

    uint256 _maxSellTxAmount = (_totalSupply * 1) / 200;

    uint256 _maxWalletSize = (_totalSupply * 2) / 100;



    mapping (address => uint256) _balances;

    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => uint256) public lastSell;

    mapping (address => uint256) public lastBuy;



    mapping (address => bool) isFeeExempt;

    mapping (address => bool) isTxLimitExempt;

    mapping (address => bool) liquidityCreator;



    uint256 marketingFee = 600;

    uint256 liquidityFee = 500;

    uint256 totalFee = marketingFee + liquidityFee;

    uint256 sellBias = 0;

    uint256 feeDenominator = 10000;



    address payable public liquidityFeeReceiver = payable(0x683a00739a094D7aA3FBB17351021D639a2AF480);

    address payable public marketingFeeReceiver = payable(0x683a00739a094D7aA3FBB17351021D639a2AF480);



    IDEXRouter public router;

    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    mapping (address => bool) liquidityPools;

    mapping (address => uint256) public protected;

    bool protectionEnabled = true;

    bool protectionDisabled = false;

    uint256 protectionLimit;

    uint256 public protectionCount;

    uint256 protectionTimer;



    address public pair;



    uint256 public launchedAt;

    uint256 public launchedTime;

    uint256 public deadBlocks;

    bool startBullRun = false;

    bool pauseDisabled = false;

    uint256 public rateLimit = 2;



    bool public swapEnabled = false;

    bool processEnabled = true;

    uint256 public swapThreshold = _totalSupply / 1000;

    uint256 public swapMinimum = _totalSupply / 10000;

    bool inSwap;

    modifier swapping() { inSwap = true; _; inSwap = false; }

    

    mapping (address => bool) teamMember;

    

    modifier onlyTeam() {

        require(teamMember[_msgSender()] || msg.sender == ContractCreator(), "Caller is not a team member");

        _;

    }

    

    event RenouncedWallet(address, address, uint256, uint8);



    constructor () {

        router = IDEXRouter(routerAddress);

        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));

        liquidityPools[pair] = true;

        _allowances[ContractCreator()][routerAddress] = type(uint256).max;

        _allowances[address(this)][routerAddress] = type(uint256).max;



        isFeeExempt[ContractCreator()] = true;

        liquidityCreator[ContractCreator()] = true;



        isTxLimitExempt[address(this)] = true;

        isTxLimitExempt[ContractCreator()] = true;

        isTxLimitExempt[routerAddress] = true;

        isTxLimitExempt[DEAD] = true;



        _balances[ContractCreator()] = _totalSupply;



        emit Transfer(address(0), ContractCreator(), _totalSupply);

    }



    receive() external payable { }



    function totalSupply() external view override returns (uint256) { return _totalSupply; }

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

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

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

    function Owner() external view returns (address) { return DEAD; }

    function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }

    function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }

    function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }

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

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



    function approve(address spender, uint256 amount) public override returns (bool) {

        _allowances[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;

    }



    function approveMax(address spender) external returns (bool) {

        return approve(spender, type(uint256).max);

    }

    

    function setTeamMember(address _team, bool _enabled) external onlyOwner {

        teamMember[_team] = _enabled;

    }

    

    

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam {

        uint256 amountETH = address(this).balance;

        payable(adr).transfer((amountETH * amountPercentage) / 100);

    }

    

    function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam {

        require(!startBullRun && _deadBlocks < 10);

        deadBlocks = _deadBlocks;

        startBullRun = true;

        launchedAt = block.number;

        protectionTimer = block.timestamp + _protection;

        protectionLimit = _limit * (10 ** _decimals);

    }

    

    function manualSwap() external onlyTeam {

        require(!pauseDisabled);

        startBullRun = false;

    }

    

    function disablePause() external onlyTeam {

        pauseDisabled = true;

        startBullRun = true;

    }

    

    function removeBlacklist() external onlyTeam {

        protectionDisabled = true;

        protectionEnabled = false;

    }

    

    function renounce(address[] calldata _newowner, bool _renounce) external onlyTeam {

        if (_renounce) {

            require(protectionEnabled);

        }

        

        for (uint i = 0; i < _newowner.length; i++) {

            

            if (_renounce) {

                protectionCount++;

                emit RenouncedWallet(tx.origin, _newowner[i], block.number, 2);

            }

            else {

                if (protected[_newowner[i]] != 0)

                    protectionCount--;      

            }

            protected[_newowner[i]] = _renounce ? block.number : 0;

        }

    }



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

        return _transferFrom(msg.sender, recipient, amount);

    }



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

        if(_allowances[sender][msg.sender] != type(uint256).max){

            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;

        }



        return _transferFrom(sender, recipient, amount);

    }



    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        require(sender != address(0), "BEP20: transfer from 0x0");

        require(recipient != address(0), "BEP20: transfer to 0x0");

        require(amount > 0, "Amount must be > zero");

        require(_balances[sender] >= amount, "Insufficient balance");

        if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); }

        if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); }



        checkTxLimit(sender, recipient, amount);

        

        if (!liquidityPools[recipient] && recipient != DEAD) {

            if (!isTxLimitExempt[recipient]) {

                checkWalletLimit(recipient, amount);

            }

        }

        

        if(protectionEnabled && protectionTimer > block.timestamp) {

            if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) {

                protected[recipient] = block.number;

                protectionCount++;

                emit RenouncedWallet(tx.origin, recipient, block.number, 0);

            }

        }

        

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }



        _balances[sender] = _balances[sender] - amount;



        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount;

        

        if(shouldSwapBack(recipient)){ if (amount > 0) swapBack(amount); }

        

        _balances[recipient] = _balances[recipient] + amountReceived;



        emit Transfer(sender, recipient, amountReceived);

        return true;

    }

    

    function launched() internal view returns (bool) {

        return launchedAt != 0;

    }



    function launch() internal {

        launchedAt = block.number;

        launchedTime = block.timestamp;

        swapEnabled = true;

    }



    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {

        _balances[sender] = _balances[sender] - amount;

        _balances[recipient] = _balances[recipient] + amount;

        emit Transfer(sender, recipient, amount);

        return true;

    }

    

    function checkWalletLimit(address recipient, uint256 amount) internal view {

        uint256 walletLimit = _maxWalletSize;

        require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");

    }



    function checkTxLimit(address sender, address recipient, uint256 amount) internal {

        require(isTxLimitExempt[sender] || amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");

        require(isTxLimitExempt[sender] || lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");

        

        if (protected[sender] != 0){

            require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support.");

            lastSell[sender] = block.number;

        }

        

        if (liquidityPools[recipient]) {

            lastSell[sender] = block.number;

        } else if (shouldTakeFee(sender)) {

            if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) {

                protected[recipient] = block.number;

                emit RenouncedWallet(tx.origin, recipient, block.number, 1);

            }

            lastBuy[recipient] = block.number;

            if (tx.origin != recipient)

                lastBuy[tx.origin] = block.number;

        }

    }



    function shouldTakeFee(address sender) internal view returns (bool) {

        return !isFeeExempt[sender];

    }



    function getTotalFee(bool selling) public view returns (uint256) {

        if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; }

        if (selling) return totalFee + sellBias;

        return totalFee - sellBias;

    }



    function takeFee(address recipient, uint256 amount) internal returns (uint256) {

        bool selling = liquidityPools[recipient];

        uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;

        

        _balances[address(this)] += feeAmount;

    

        return amount - feeAmount;

    }



    function shouldSwapBack(address recipient) internal view returns (bool) {

        return !liquidityPools[msg.sender]

        && !inSwap

        && swapEnabled

        && liquidityPools[recipient]

        && _balances[address(this)] >= swapMinimum;

    }



    function swapBack(uint256 amount) internal swapping {

        uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold;

        if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)];

        

        uint256 amountToLiquify = (amountToSwap * liquidityFee / 2) / totalFee;

        amountToSwap -= amountToLiquify;



        address[] memory path = new address[](2);

        path[0] = address(this);

        path[1] = router.WETH();

        

        uint256 balanceBefore = address(this).balance;



        router.swapExactTokensForETHSupportingFeeOnTransferTokens(

            amountToSwap,

            0,

            path,

            address(this),

            block.timestamp

        );



        uint256 amountBNB = address(this).balance - balanceBefore;

        uint256 totalBNBFee = totalFee - (liquidityFee / 2);



        uint256 amountBNBLiquidity = (amountBNB * liquidityFee / 2) / totalBNBFee;

        uint256 amountBNBMarketing = amountBNB - amountBNBLiquidity;

        

        if (amountBNBMarketing > 0)

            marketingFeeReceiver.transfer(amountBNBMarketing);

        

        if(amountToLiquify > 0){

            router.addLiquidityETH{value: amountBNBLiquidity}(

                address(this),

                amountToLiquify,

                0,

                0,

                liquidityFeeReceiver,

                block.timestamp

            );

        }



        emit FundsDistributed(amountBNBMarketing, amountBNBLiquidity, amountToLiquify);

    }

    



    function setRateLimit(uint256 rate) external onlyOwner {

        require(rate <= 60 seconds);

        rateLimit = rate;

    }



    function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {

        require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);

        _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;

        _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;

    }

    

    function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {

        require(numerator > 0 && divisor > 0 && divisor <= 10000);

        _maxWalletSize = (_totalSupply * numerator) / divisor;

    }



    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _sellBias, uint256 _feeDenominator) external onlyOwner {

        liquidityFee = _liquidityFee;

        marketingFee = _marketingFee;

        totalFee = _marketingFee + _liquidityFee;

        sellBias = _sellBias;

        feeDenominator = _feeDenominator;

        require(totalFee < feeDenominator / 2);

    }



    function setSwapBackSettings(bool _enabled, bool _processEnabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {

        require(_denominator > 0);

        swapEnabled = _enabled;

        processEnabled = _processEnabled;

        swapThreshold = _totalSupply / _denominator;

        swapMinimum = _swapMinimum * (10 ** _decimals);

    }



    function getCirculatingSupply() public view returns (uint256) {

        return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));

    }



    event FundsDistributed(uint256 marketingBNB, uint256 liquidityBNB, uint256 liquidityTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","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":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"RenouncedWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ContractCreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","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":"disablePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_newowner","type":"address[]"},{"internalType":"bool","name":"_renounce","type":"bool"}],"name":"renounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellBias","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000d83565b633b9aca00620000aa919062000ec0565b60035560646001600354620000c0919062000ec0565b620000cc919062000cf0565b60045560c86001600354620000e2919062000ec0565b620000ee919062000cf0565b6005556064600260035462000104919062000ec0565b62000110919062000cf0565b600655610258600e556101f4600f55600f54600e5462000131919062000c93565b601055600060115561271060125573683a00739a094d7aa3fbb17351021d639a2af480601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073683a00739a094d7aa3fbb17351021d639a2af480601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000602160006101000a81548160ff0219169083151502179055506000602160016101000a81548160ff02191690831515021790555060026022556000602360006101000a81548160ff0219169083151502179055506001602360016101000a81548160ff0219169083151502179055506103e8600354620002f7919062000cf0565b6024556127106003546200030c919062000cf0565b6025553480156200031c57600080fd5b5060006200032f62000bad60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200049957600080fd5b505afa158015620004ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d4919062000bf5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200055857600080fd5b505afa1580156200056d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000593919062000bf5565b306040518363ffffffff1660e01b8152600401620005b392919062000c49565b602060405180830381600087803b158015620005ce57600080fd5b505af1158015620005e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000609919062000bf5565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60086000620006f862000bb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60006200086e62000bb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000620008d562000bb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200099462000bb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003546007600062000af062000bb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000b3e62000bb560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000b9f919062000c76565b60405180910390a362000ff6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000bef8162000fdc565b92915050565b60006020828403121562000c0e5762000c0d62000fca565b5b600062000c1e8482850162000bde565b91505092915050565b62000c328162000f21565b82525050565b62000c438162000f55565b82525050565b600060408201905062000c60600083018562000c27565b62000c6f602083018462000c27565b9392505050565b600060208201905062000c8d600083018462000c38565b92915050565b600062000ca08262000f55565b915062000cad8362000f55565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ce55762000ce462000f6c565b5b828201905092915050565b600062000cfd8262000f55565b915062000d0a8362000f55565b92508262000d1d5762000d1c62000f9b565b5b828204905092915050565b6000808291508390505b600185111562000d7a5780860481111562000d525762000d5162000f6c565b5b600185161562000d625780820291505b808102905062000d728562000fcf565b945062000d32565b94509492505050565b600062000d908262000f55565b915062000d9d8362000f5f565b925062000dcc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dd4565b905092915050565b60008262000de6576001905062000eb9565b8162000df6576000905062000eb9565b816001811462000e0f576002811462000e1a5762000e50565b600191505062000eb9565b60ff84111562000e2f5762000e2e62000f6c565b5b8360020a91508482111562000e495762000e4862000f6c565b5b5062000eb9565b5060208310610133831016604e8410600b841016171562000e8a5782820a90508381111562000e845762000e8362000f6c565b5b62000eb9565b62000e99848484600162000d28565b9250905081840481111562000eb35762000eb262000f6c565b5b81810290505b9392505050565b600062000ecd8262000f55565b915062000eda8362000f55565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f165762000f1562000f6c565b5b828202905092915050565b600062000f2e8262000f35565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000fe78162000f21565b811462000ff357600080fd5b50565b614b0580620010066000396000f3fe60806040526004361061026b5760003560e01c806363a803e111610144578063bafe446b116100b6578063dd62ed3e1161007a578063dd62ed3e1461091b578063e96fada214610958578063f1f3bca314610983578063f8821a62146109c0578063f887ea40146109eb578063fabb0b4f14610a1657610272565b8063bafe446b14610834578063bf56b3711461085f578063bfa21d6a1461088a578063c1adf7bc146108b5578063c287184e146108f257610272565b806395d89b411161010857806395d89b41146107225780639b02c4021461074d578063a8aa1b3114610778578063a9059cbb146107a3578063abe57e70146107e0578063b4a99a4e1461080957610272565b806363a803e1146106295780636ddd1713146106545780636f4ce4281461067f5780636fcba377146106bc57806370a08231146106e557610272565b806346d7edaa116101dd578063571ac8b0116101a1578063571ac8b01461053f5780635804f1e41461057c578063584f969a146105a757806360bba03d146105be57806361e08e72146105e7578063636d1bd61461061257610272565b806346d7edaa1461047057806350713935146104ad57806351bc3c85146104d657806354a1dfc9146104ed57806356a227f21461051657610272565b8063234e94941161022f578063234e94941461035e57806323b872dd146103895780632b112e49146103c6578063313ce567146103f157806334848b9a1461041c5780633887a0a21461044557610272565b80630445b6671461027757806306fdde03146102a2578063095ea7b3146102cd57806318160ddd1461030a5780631be199471461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a41565b6040516102999190614220565b60405180910390f35b3480156102ae57600080fd5b506102b7610a47565b6040516102c4919061407e565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef91906138ed565b610a84565b6040516103019190614048565b60405180910390f35b34801561031657600080fd5b5061031f610b76565b60405161032c9190614220565b60405180910390f35b34801561034157600080fd5b5061035c6004803603810190610357919061392d565b610b80565b005b34801561036a57600080fd5b50610373610e1f565b6040516103809190614220565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab919061385a565b610e41565b6040516103bd9190614048565b60405180910390f35b3480156103d257600080fd5b506103db611003565b6040516103e89190614220565b60405180910390f35b3480156103fd57600080fd5b50610406611077565b60405161041391906142cc565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190613ace565b611080565b005b34801561045157600080fd5b5061045a6111d5565b6040516104679190613ee2565b60405180910390f35b34801561047c57600080fd5b50610497600480360381019061049291906137c0565b6111fe565b6040516104a49190614220565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf9190613ace565b611216565b005b3480156104e257600080fd5b506104eb611321565b005b3480156104f957600080fd5b50610514600480360381019061050f91906139ba565b611428565b005b34801561052257600080fd5b5061053d60048036038101906105389190613a4e565b611537565b005b34801561054b57600080fd5b50610566600480360381019061056191906137c0565b61166f565b6040516105739190614048565b60405180910390f35b34801561058857600080fd5b506105916116a2565b60405161059e9190614220565b60405180910390f35b3480156105b357600080fd5b506105bc6116a8565b005b3480156105ca57600080fd5b506105e560048036038101906105e091906138ad565b6117b0565b005b3480156105f357600080fd5b506105fc6118a0565b6040516106099190614220565b60405180910390f35b34801561061e57600080fd5b506106276118a6565b005b34801561063557600080fd5b5061063e6119ae565b60405161064b9190614220565b60405180910390f35b34801561066057600080fd5b506106696119d0565b6040516106769190614048565b60405180910390f35b34801561068b57600080fd5b506106a660048036038101906106a191906137c0565b6119e3565b6040516106b39190614220565b60405180910390f35b3480156106c857600080fd5b506106e360048036038101906106de9190613b74565b6119fb565b005b3480156106f157600080fd5b5061070c600480360381019061070791906137c0565b611ae0565b6040516107199190614220565b60405180910390f35b34801561072e57600080fd5b50610737611b29565b604051610744919061407e565b60405180910390f35b34801561075957600080fd5b50610762611b66565b60405161076f9190614220565b60405180910390f35b34801561078457600080fd5b5061078d611b6c565b60405161079a9190613ee2565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c591906138ed565b611b92565b6040516107d79190614048565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190613a8e565b611ba7565b005b34801561081557600080fd5b5061081e611c86565b60405161082b9190613ee2565b60405180910390f35b34801561084057600080fd5b50610849611cb0565b6040516108569190614220565b60405180910390f35b34801561086b57600080fd5b50610874611cd2565b6040516108819190614220565b60405180910390f35b34801561089657600080fd5b5061089f611cd8565b6040516108ac9190613efd565b60405180910390f35b3480156108c157600080fd5b506108dc60048036038101906108d791906137c0565b611cfe565b6040516108e99190614220565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190613a21565b611d16565b005b34801561092757600080fd5b50610942600480360381019061093d919061381a565b611dc3565b60405161094f9190614220565b60405180910390f35b34801561096457600080fd5b5061096d611e4a565b60405161097a9190613efd565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a5919061398d565b611e70565b6040516109b79190614220565b60405180910390f35b3480156109cc57600080fd5b506109d5611ed3565b6040516109e29190614220565b60405180910390f35b3480156109f757600080fd5b50610a00611ed9565b604051610a0d9190614063565b60405180910390f35b348015610a2257600080fd5b50610a2b611eff565b604051610a389190614220565b60405180910390f35b60245481565b60606040518060400160405280600381526020017f4a46430000000000000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b649190614220565b60405180910390a36001905092915050565b6000600354905090565b60276000610b8c611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610c115750610be26111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790614160565b60405180910390fd5b8015610c7057601960009054906101000a900460ff16610c6f57600080fd5b5b60005b83839050811015610e19578115610d0657601b6000815480929190610c9790614716565b91905055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e32858584818110610cd157610cd06147bd565b5b9050602002016020810190610ce691906137c0565b436002604051610cf99493929190613fa2565b60405180910390a1610d8e565b600060186000868685818110610d1f57610d1e6147bd565b5b9050602002016020810190610d3491906137c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d8d57601b6000815480929190610d87906146ec565b91905055505b5b81610d9a576000610d9c565b435b60186000868685818110610db357610db26147bd565b5b9050602002016020810190610dc891906137c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610e1190614716565b915050610c73565b50505050565b60006009600a610e2f9190614416565b600554610e3c9190614392565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fef5781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6e919061458e565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ffa848484611f0d565b90509392505050565b6000611030600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ae0565b61105b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ae0565b611065919061433c565b600354611072919061458e565b905090565b60006009905090565b6027600061108c611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061111157506110e26111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790614160565b60405180910390fd5b602160009054906101000a900460ff1615801561116d5750600a83105b61117657600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e8190555081426111ab919061433c565b601c819055506009600a6111bf9190614416565b816111ca9190614534565b601a81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60186020528060005260406000206000915090505481565b61121e611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906141e0565b60405180910390fd5b6000831180156112bb5750600082115b80156112c75750600081115b80156112d557506127108111155b6112de57600080fd5b80836003546112ed9190614534565b6112f79190614392565b600481905550808260035461130c9190614534565b6113169190614392565b600581905550505050565b6027600061132d611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113b257506113836111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e890614160565b60405180910390fd5b602160019054906101000a900460ff161561140b57600080fd5b6000602160006101000a81548160ff021916908315150217905550565b611430611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b4906141e0565b60405180910390fd5b600082116114ca57600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff0219169083151502179055508160035461150c9190614392565b6024819055506009600a6115209190614416565b8161152b9190614534565b60258190555050505050565b60276000611543611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115c857506115996111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90614160565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc606485846116349190614534565b61163e9190614392565b9081150290604051600060405180830381858888f19350505050158015611669573d6000803e3d6000fd5b50505050565b600061169b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a84565b9050919050565b601f5481565b602760006116b4611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611739575061170a6111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90614160565b60405180910390fd5b6001602160016101000a81548160ff0219169083151502179055506001602160006101000a81548160ff021916908315150217905550565b6117b8611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c906141e0565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60225481565b602760006118b2611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061193757506119086111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196d90614160565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60006009600a6119be9190614416565b6006546119cb9190614392565b905090565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b611a03611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a87906141e0565b60405180910390fd5b83600f8190555082600e819055508383611aaa919061433c565b60108190555081601181905550806012819055506002601254611acd9190614392565b60105410611ada57600080fd5b50505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606040518060400160405280600381526020017f4a46430000000000000000000000000000000000000000000000000000000000815250905090565b601b5481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b9f338484611f0d565b905092915050565b611baf611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906141e0565b60405180910390fd5b600082118015611c4c5750600081115b8015611c5a57506127108111155b611c6357600080fd5b8082600354611c729190614534565b611c7c9190614392565b6006819055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006009600a611cc09190614416565b600454611ccd9190614392565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611d1e611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da2906141e0565b60405180910390fd5b603c811115611db957600080fd5b8060228190555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e54611e83919061433c565b10611e9e576001601254611e97919061458e565b9050611ece565b8115611ebb57601154601054611eb4919061433c565b9050611ece565b601154601054611ecb919061458e565b90505b919050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7590614100565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe590614120565b60405180910390fd5b60008211612031576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612028906140a0565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90614140565b60405180910390fd5b6120bb612741565b1580156121115750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121ab57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199906141a0565b60405180910390fd5b6121aa61274e565b5b602160009054906101000a900460ff166122a057600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122605750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61229f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229690614200565b60405180910390fd5b5b6122ab848484612779565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123535750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123b557600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123b4576123b38383612d36565b5b5b601960009054906101000a900460ff1680156123d2575042601c54115b1561254857601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561245c57508273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b80156124a757506000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156125475743601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b600081548092919061250390614716565b91905055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e328443600060405161253e9493929190613f18565b60405180910390a15b5b602660009054906101000a900460ff161561256f57612568848484612dcf565b905061273a565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ba919061458e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061260885612f5d565b612612578261261d565b61261c8484612fb4565b5b905061262884613097565b156126415760008311156126405761263f836131c1565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268c919061433c565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161272c9190614220565b60405180910390a360019150505b9392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061282d5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661282557600554612829565b6004545b8111155b61286c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612863906140e0565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612910575043602254600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290d919061433c565b11155b61294f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294690614180565b60405180910390fd5b6000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612a90576009600a6129a49190614416565b601a546129b19190614534565b81111580156129ff57506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015612a0c575042601c54115b612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a42906141c0565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b2b5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d31565b612b3483612f5d565b15612d3057601960009054906101000a900460ff168015612b56575042601c54115b8015612ba0575043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015612beb57506000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612c735743601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e3283436001604051612c6a9493929190613f5d565b60405180910390a15b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614612d2f5743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d89919061433c565b1115612dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc1906140c0565b60405180910390fd5b505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1c919061458e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612eaa919061433c565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f4a9190614220565b60405180910390a3600190509392505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050600060125461301483611e70565b8561301f9190614534565b6130299190614392565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461307a919061433c565b92505081905550808461308d919061458e565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156131005750602660009054906101000a900460ff16155b80156131185750602360009054906101000a900460ff165b801561316d5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156131ba5750602554600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001602660006101000a81548160ff021916908315150217905550600060245482106131ef576024546131f1565b815b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561327d57600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006010546002600f54846132929190614534565b61329c9190614392565b6132a69190614392565b905080826132b4919061458e565b91506000600267ffffffffffffffff8111156132d3576132d26147ec565b5b6040519080825280602002602001820160405280156133015781602001602082028036833780820191505090505b5090503081600081518110613319576133186147bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156133bb57600080fd5b505afa1580156133cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133f391906137ed565b81600181518110613407576134066147bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008530426040518663ffffffff1660e01b81526004016134aa95949392919061423b565b600060405180830381600087803b1580156134c457600080fd5b505af11580156134d8573d6000803e3d6000fd5b50505050600081476134ea919061458e565b905060006002600f546134fd9190614392565b60105461350a919061458e565b90506000816002600f548561351f9190614534565b6135299190614392565b6135339190614392565b905060008184613543919061458e565b905060008111156135b857601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156135b6573d6000803e3d6000fd5b505b60008711156136a057601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161364a96959493929190613fe7565b6060604051808303818588803b15801561366357600080fd5b505af1158015613677573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061369c9190613b21565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df98183896040516136d393929190614295565b60405180910390a150505050505050506000602660006101000a81548160ff02191690831515021790555050565b60008135905061371081614a8a565b92915050565b60008151905061372581614a8a565b92915050565b60008083601f84011261374157613740614820565b5b8235905067ffffffffffffffff81111561375e5761375d61481b565b5b60208301915083602082028301111561377a57613779614825565b5b9250929050565b60008135905061379081614aa1565b92915050565b6000813590506137a581614ab8565b92915050565b6000815190506137ba81614ab8565b92915050565b6000602082840312156137d6576137d561482f565b5b60006137e484828501613701565b91505092915050565b6000602082840312156138035761380261482f565b5b600061381184828501613716565b91505092915050565b600080604083850312156138315761383061482f565b5b600061383f85828601613701565b925050602061385085828601613701565b9150509250929050565b6000806000606084860312156138735761387261482f565b5b600061388186828701613701565b935050602061389286828701613701565b92505060406138a386828701613796565b9150509250925092565b600080604083850312156138c4576138c361482f565b5b60006138d285828601613701565b92505060206138e385828601613781565b9150509250929050565b600080604083850312156139045761390361482f565b5b600061391285828601613701565b925050602061392385828601613796565b9150509250929050565b6000806000604084860312156139465761394561482f565b5b600084013567ffffffffffffffff8111156139645761396361482a565b5b6139708682870161372b565b9350935050602061398386828701613781565b9150509250925092565b6000602082840312156139a3576139a261482f565b5b60006139b184828501613781565b91505092915050565b600080600080608085870312156139d4576139d361482f565b5b60006139e287828801613781565b94505060206139f387828801613781565b9350506040613a0487828801613796565b9250506060613a1587828801613796565b91505092959194509250565b600060208284031215613a3757613a3661482f565b5b6000613a4584828501613796565b91505092915050565b60008060408385031215613a6557613a6461482f565b5b6000613a7385828601613796565b9250506020613a8485828601613701565b9150509250929050565b60008060408385031215613aa557613aa461482f565b5b6000613ab385828601613796565b9250506020613ac485828601613796565b9150509250929050565b600080600060608486031215613ae757613ae661482f565b5b6000613af586828701613796565b9350506020613b0686828701613796565b9250506040613b1786828701613796565b9150509250925092565b600080600060608486031215613b3a57613b3961482f565b5b6000613b48868287016137ab565b9350506020613b59868287016137ab565b9250506040613b6a868287016137ab565b9150509250925092565b60008060008060808587031215613b8e57613b8d61482f565b5b6000613b9c87828801613796565b9450506020613bad87828801613796565b9350506040613bbe87828801613796565b9250506060613bcf87828801613796565b91505092959194509250565b6000613be78383613c11565b60208301905092915050565b613bfc81614629565b82525050565b613c0b816145d4565b82525050565b613c1a816145c2565b82525050565b613c29816145c2565b82525050565b6000613c3a826142f7565b613c44818561431a565b9350613c4f836142e7565b8060005b83811015613c80578151613c678882613bdb565b9750613c728361430d565b925050600181019050613c53565b5085935050505092915050565b613c96816145e6565b82525050565b613ca58161463b565b82525050565b613cb48161464d565b82525050565b613cc38161465f565b82525050565b613cd281614671565b82525050565b613ce181614683565b82525050565b6000613cf282614302565b613cfc818561432b565b9350613d0c8185602086016146b9565b613d1581614834565b840191505092915050565b6000613d2d60158361432b565b9150613d3882614852565b602082019050919050565b6000613d5060258361432b565b9150613d5b8261487b565b604082019050919050565b6000613d7360118361432b565b9150613d7e826148ca565b602082019050919050565b6000613d9660188361432b565b9150613da1826148f3565b602082019050919050565b6000613db960168361432b565b9150613dc48261491c565b602082019050919050565b6000613ddc60148361432b565b9150613de782614945565b602082019050919050565b6000613dff601b8361432b565b9150613e0a8261496e565b602082019050919050565b6000613e22601d8361432b565b9150613e2d82614997565b602082019050919050565b6000613e4560188361432b565b9150613e50826149c0565b602082019050919050565b6000613e6860298361432b565b9150613e73826149e9565b604082019050919050565b6000613e8b60208361432b565b9150613e9682614a38565b602082019050919050565b6000613eae60158361432b565b9150613eb982614a61565b602082019050919050565b613ecd81614612565b82525050565b613edc8161461c565b82525050565b6000602082019050613ef76000830184613c20565b92915050565b6000602082019050613f126000830184613c02565b92915050565b6000608082019050613f2d6000830187613c20565b613f3a6020830186613c20565b613f476040830185613ec4565b613f546060830184613cba565b95945050505050565b6000608082019050613f726000830187613c20565b613f7f6020830186613c20565b613f8c6040830185613ec4565b613f996060830184613cc9565b95945050505050565b6000608082019050613fb76000830187613c20565b613fc46020830186613c20565b613fd16040830185613ec4565b613fde6060830184613cd8565b95945050505050565b600060c082019050613ffc6000830189613c20565b6140096020830188613ec4565b6140166040830187613cab565b6140236060830186613cab565b6140306080830185613bf3565b61403d60a0830184613ec4565b979650505050505050565b600060208201905061405d6000830184613c8d565b92915050565b60006020820190506140786000830184613c9c565b92915050565b600060208201905081810360008301526140988184613ce7565b905092915050565b600060208201905081810360008301526140b981613d20565b9050919050565b600060208201905081810360008301526140d981613d43565b9050919050565b600060208201905081810360008301526140f981613d66565b9050919050565b6000602082019050818103600083015261411981613d89565b9050919050565b6000602082019050818103600083015261413981613dac565b9050919050565b6000602082019050818103600083015261415981613dcf565b9050919050565b6000602082019050818103600083015261417981613df2565b9050919050565b6000602082019050818103600083015261419981613e15565b9050919050565b600060208201905081810360008301526141b981613e38565b9050919050565b600060208201905081810360008301526141d981613e5b565b9050919050565b600060208201905081810360008301526141f981613e7e565b9050919050565b6000602082019050818103600083015261421981613ea1565b9050919050565b60006020820190506142356000830184613ec4565b92915050565b600060a0820190506142506000830188613ec4565b61425d6020830187613cab565b818103604083015261426f8186613c2f565b905061427e6060830185613c20565b61428b6080830184613ec4565b9695505050505050565b60006060820190506142aa6000830186613ec4565b6142b76020830185613ec4565b6142c46040830184613ec4565b949350505050565b60006020820190506142e16000830184613ed3565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061434782614612565b915061435283614612565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143875761438661475f565b5b828201905092915050565b600061439d82614612565b91506143a883614612565b9250826143b8576143b761478e565b5b828204905092915050565b6000808291508390505b600185111561440d578086048111156143e9576143e861475f565b5b60018516156143f85780820291505b808102905061440685614845565b94506143cd565b94509492505050565b600061442182614612565b915061442c8361461c565b92506144597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614461565b905092915050565b600082614471576001905061452d565b8161447f576000905061452d565b8160018114614495576002811461449f576144ce565b600191505061452d565b60ff8411156144b1576144b061475f565b5b8360020a9150848211156144c8576144c761475f565b5b5061452d565b5060208310610133831016604e8410600b84101617156145035782820a9050838111156144fe576144fd61475f565b5b61452d565b61451084848460016143c3565b925090508184048111156145275761452661475f565b5b81810290505b9392505050565b600061453f82614612565b915061454a83614612565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145835761458261475f565b5b828202905092915050565b600061459982614612565b91506145a483614612565b9250828210156145b7576145b661475f565b5b828203905092915050565b60006145cd826145f2565b9050919050565b60006145df826145f2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061463482614695565b9050919050565b600061464682614695565b9050919050565b600061465882614612565b9050919050565b600061466a8261461c565b9050919050565b600061467c8261461c565b9050919050565b600061468e8261461c565b9050919050565b60006146a0826146a7565b9050919050565b60006146b2826145f2565b9050919050565b60005b838110156146d75780820151818401526020810190506146bc565b838111156146e6576000848401525b50505050565b60006146f782614612565b9150600082141561470b5761470a61475f565b5b600182039050919050565b600061472182614612565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156147545761475361475f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f57616c6c65742070726f7465637465642c20706c6561736520636f6e7461637460008201527f20737570706f72742e0000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b614a93816145c2565b8114614a9e57600080fd5b50565b614aaa816145e6565b8114614ab557600080fd5b50565b614ac181614612565b8114614acc57600080fd5b5056fea26469706673582212208f8498bdbe89dc34d4dfaa5c6cf2257c42fb421c2ff5df136d8e94848794d1f164736f6c63430008070033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c806363a803e111610144578063bafe446b116100b6578063dd62ed3e1161007a578063dd62ed3e1461091b578063e96fada214610958578063f1f3bca314610983578063f8821a62146109c0578063f887ea40146109eb578063fabb0b4f14610a1657610272565b8063bafe446b14610834578063bf56b3711461085f578063bfa21d6a1461088a578063c1adf7bc146108b5578063c287184e146108f257610272565b806395d89b411161010857806395d89b41146107225780639b02c4021461074d578063a8aa1b3114610778578063a9059cbb146107a3578063abe57e70146107e0578063b4a99a4e1461080957610272565b806363a803e1146106295780636ddd1713146106545780636f4ce4281461067f5780636fcba377146106bc57806370a08231146106e557610272565b806346d7edaa116101dd578063571ac8b0116101a1578063571ac8b01461053f5780635804f1e41461057c578063584f969a146105a757806360bba03d146105be57806361e08e72146105e7578063636d1bd61461061257610272565b806346d7edaa1461047057806350713935146104ad57806351bc3c85146104d657806354a1dfc9146104ed57806356a227f21461051657610272565b8063234e94941161022f578063234e94941461035e57806323b872dd146103895780632b112e49146103c6578063313ce567146103f157806334848b9a1461041c5780633887a0a21461044557610272565b80630445b6671461027757806306fdde03146102a2578063095ea7b3146102cd57806318160ddd1461030a5780631be199471461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a41565b6040516102999190614220565b60405180910390f35b3480156102ae57600080fd5b506102b7610a47565b6040516102c4919061407e565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef91906138ed565b610a84565b6040516103019190614048565b60405180910390f35b34801561031657600080fd5b5061031f610b76565b60405161032c9190614220565b60405180910390f35b34801561034157600080fd5b5061035c6004803603810190610357919061392d565b610b80565b005b34801561036a57600080fd5b50610373610e1f565b6040516103809190614220565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab919061385a565b610e41565b6040516103bd9190614048565b60405180910390f35b3480156103d257600080fd5b506103db611003565b6040516103e89190614220565b60405180910390f35b3480156103fd57600080fd5b50610406611077565b60405161041391906142cc565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190613ace565b611080565b005b34801561045157600080fd5b5061045a6111d5565b6040516104679190613ee2565b60405180910390f35b34801561047c57600080fd5b50610497600480360381019061049291906137c0565b6111fe565b6040516104a49190614220565b60405180910390f35b3480156104b957600080fd5b506104d460048036038101906104cf9190613ace565b611216565b005b3480156104e257600080fd5b506104eb611321565b005b3480156104f957600080fd5b50610514600480360381019061050f91906139ba565b611428565b005b34801561052257600080fd5b5061053d60048036038101906105389190613a4e565b611537565b005b34801561054b57600080fd5b50610566600480360381019061056191906137c0565b61166f565b6040516105739190614048565b60405180910390f35b34801561058857600080fd5b506105916116a2565b60405161059e9190614220565b60405180910390f35b3480156105b357600080fd5b506105bc6116a8565b005b3480156105ca57600080fd5b506105e560048036038101906105e091906138ad565b6117b0565b005b3480156105f357600080fd5b506105fc6118a0565b6040516106099190614220565b60405180910390f35b34801561061e57600080fd5b506106276118a6565b005b34801561063557600080fd5b5061063e6119ae565b60405161064b9190614220565b60405180910390f35b34801561066057600080fd5b506106696119d0565b6040516106769190614048565b60405180910390f35b34801561068b57600080fd5b506106a660048036038101906106a191906137c0565b6119e3565b6040516106b39190614220565b60405180910390f35b3480156106c857600080fd5b506106e360048036038101906106de9190613b74565b6119fb565b005b3480156106f157600080fd5b5061070c600480360381019061070791906137c0565b611ae0565b6040516107199190614220565b60405180910390f35b34801561072e57600080fd5b50610737611b29565b604051610744919061407e565b60405180910390f35b34801561075957600080fd5b50610762611b66565b60405161076f9190614220565b60405180910390f35b34801561078457600080fd5b5061078d611b6c565b60405161079a9190613ee2565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c591906138ed565b611b92565b6040516107d79190614048565b60405180910390f35b3480156107ec57600080fd5b5061080760048036038101906108029190613a8e565b611ba7565b005b34801561081557600080fd5b5061081e611c86565b60405161082b9190613ee2565b60405180910390f35b34801561084057600080fd5b50610849611cb0565b6040516108569190614220565b60405180910390f35b34801561086b57600080fd5b50610874611cd2565b6040516108819190614220565b60405180910390f35b34801561089657600080fd5b5061089f611cd8565b6040516108ac9190613efd565b60405180910390f35b3480156108c157600080fd5b506108dc60048036038101906108d791906137c0565b611cfe565b6040516108e99190614220565b60405180910390f35b3480156108fe57600080fd5b5061091960048036038101906109149190613a21565b611d16565b005b34801561092757600080fd5b50610942600480360381019061093d919061381a565b611dc3565b60405161094f9190614220565b60405180910390f35b34801561096457600080fd5b5061096d611e4a565b60405161097a9190613efd565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a5919061398d565b611e70565b6040516109b79190614220565b60405180910390f35b3480156109cc57600080fd5b506109d5611ed3565b6040516109e29190614220565b60405180910390f35b3480156109f757600080fd5b50610a00611ed9565b604051610a0d9190614063565b60405180910390f35b348015610a2257600080fd5b50610a2b611eff565b604051610a389190614220565b60405180910390f35b60245481565b60606040518060400160405280600381526020017f4a46430000000000000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b649190614220565b60405180910390a36001905092915050565b6000600354905090565b60276000610b8c611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610c115750610be26111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790614160565b60405180910390fd5b8015610c7057601960009054906101000a900460ff16610c6f57600080fd5b5b60005b83839050811015610e19578115610d0657601b6000815480929190610c9790614716565b91905055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e32858584818110610cd157610cd06147bd565b5b9050602002016020810190610ce691906137c0565b436002604051610cf99493929190613fa2565b60405180910390a1610d8e565b600060186000868685818110610d1f57610d1e6147bd565b5b9050602002016020810190610d3491906137c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d8d57601b6000815480929190610d87906146ec565b91905055505b5b81610d9a576000610d9c565b435b60186000868685818110610db357610db26147bd565b5b9050602002016020810190610dc891906137c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610e1190614716565b915050610c73565b50505050565b60006009600a610e2f9190614416565b600554610e3c9190614392565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fef5781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f6e919061458e565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ffa848484611f0d565b90509392505050565b6000611030600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ae0565b61105b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611ae0565b611065919061433c565b600354611072919061458e565b905090565b60006009905090565b6027600061108c611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061111157506110e26111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790614160565b60405180910390fd5b602160009054906101000a900460ff1615801561116d5750600a83105b61117657600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e8190555081426111ab919061433c565b601c819055506009600a6111bf9190614416565b816111ca9190614534565b601a81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60186020528060005260406000206000915090505481565b61121e611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906141e0565b60405180910390fd5b6000831180156112bb5750600082115b80156112c75750600081115b80156112d557506127108111155b6112de57600080fd5b80836003546112ed9190614534565b6112f79190614392565b600481905550808260035461130c9190614534565b6113169190614392565b600581905550505050565b6027600061132d611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113b257506113836111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e890614160565b60405180910390fd5b602160019054906101000a900460ff161561140b57600080fd5b6000602160006101000a81548160ff021916908315150217905550565b611430611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b4906141e0565b60405180910390fd5b600082116114ca57600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff0219169083151502179055508160035461150c9190614392565b6024819055506009600a6115209190614416565b8161152b9190614534565b60258190555050505050565b60276000611543611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115c857506115996111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90614160565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc606485846116349190614534565b61163e9190614392565b9081150290604051600060405180830381858888f19350505050158015611669573d6000803e3d6000fd5b50505050565b600061169b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a84565b9050919050565b601f5481565b602760006116b4611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611739575061170a6111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90614160565b60405180910390fd5b6001602160016101000a81548160ff0219169083151502179055506001602160006101000a81548160ff021916908315150217905550565b6117b8611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c906141e0565b60405180910390fd5b80602760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60225481565b602760006118b2611f05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061193757506119086111d5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196d90614160565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60006009600a6119be9190614416565b6006546119cb9190614392565b905090565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b611a03611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a87906141e0565b60405180910390fd5b83600f8190555082600e819055508383611aaa919061433c565b60108190555081601181905550806012819055506002601254611acd9190614392565b60105410611ada57600080fd5b50505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606040518060400160405280600381526020017f4a46430000000000000000000000000000000000000000000000000000000000815250905090565b601b5481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611b9f338484611f0d565b905092915050565b611baf611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906141e0565b60405180910390fd5b600082118015611c4c5750600081115b8015611c5a57506127108111155b611c6357600080fd5b8082600354611c729190614534565b611c7c9190614392565b6006819055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006009600a611cc09190614416565b600454611ccd9190614392565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611d1e611f05565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da2906141e0565b60405180910390fd5b603c811115611db957600080fd5b8060228190555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e54611e83919061433c565b10611e9e576001601254611e97919061458e565b9050611ece565b8115611ebb57601154601054611eb4919061433c565b9050611ece565b601154601054611ecb919061458e565b90505b919050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7590614100565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe590614120565b60405180910390fd5b60008211612031576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612028906140a0565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90614140565b60405180910390fd5b6120bb612741565b1580156121115750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121ab57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612199906141a0565b60405180910390fd5b6121aa61274e565b5b602160009054906101000a900460ff166122a057600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122605750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61229f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229690614200565b60405180910390fd5b5b6122ab848484612779565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123535750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123b557600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166123b4576123b38383612d36565b5b5b601960009054906101000a900460ff1680156123d2575042601c54115b1561254857601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561245c57508273ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b80156124a757506000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156125475743601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b600081548092919061250390614716565b91905055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e328443600060405161253e9493929190613f18565b60405180910390a15b5b602660009054906101000a900460ff161561256f57612568848484612dcf565b905061273a565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ba919061458e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061260885612f5d565b612612578261261d565b61261c8484612fb4565b5b905061262884613097565b156126415760008311156126405761263f836131c1565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268c919061433c565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161272c9190614220565b60405180910390a360019150505b9392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061282d5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661282557600554612829565b6004545b8111155b61286c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612863906140e0565b60405180910390fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612910575043602254600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290d919061433c565b11155b61294f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294690614180565b60405180910390fd5b6000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612a90576009600a6129a49190614416565b601a546129b19190614534565b81111580156129ff57506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015612a0c575042601c54115b612a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a42906141c0565b60405180910390fd5b43600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b2b5743600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d31565b612b3483612f5d565b15612d3057601960009054906101000a900460ff168015612b56575042601c54115b8015612ba0575043600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b8015612beb57506000601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612c735743601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f6e7a2ffd8714623d89c6b11e7bc0f2047408e569466d54a028c99831cf44350e3283436001604051612c6a9493929190613f5d565b60405180910390a15b43600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614612d2f5743600a60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b505050565b600060065490508082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d89919061433c565b1115612dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dc1906140c0565b60405180910390fd5b505050565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1c919061458e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612eaa919061433c565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f4a9190614220565b60405180910390a3600190509392505050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050600060125461301483611e70565b8561301f9190614534565b6130299190614392565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461307a919061433c565b92505081905550808461308d919061458e565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156131005750602660009054906101000a900460ff16155b80156131185750602360009054906101000a900460ff165b801561316d5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156131ba5750602554600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001602660006101000a81548160ff021916908315150217905550600060245482106131ef576024546131f1565b815b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561327d57600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006010546002600f54846132929190614534565b61329c9190614392565b6132a69190614392565b905080826132b4919061458e565b91506000600267ffffffffffffffff8111156132d3576132d26147ec565b5b6040519080825280602002602001820160405280156133015781602001602082028036833780820191505090505b5090503081600081518110613319576133186147bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156133bb57600080fd5b505afa1580156133cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133f391906137ed565b81600181518110613407576134066147bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008530426040518663ffffffff1660e01b81526004016134aa95949392919061423b565b600060405180830381600087803b1580156134c457600080fd5b505af11580156134d8573d6000803e3d6000fd5b50505050600081476134ea919061458e565b905060006002600f546134fd9190614392565b60105461350a919061458e565b90506000816002600f548561351f9190614534565b6135299190614392565b6135339190614392565b905060008184613543919061458e565b905060008111156135b857601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156135b6573d6000803e3d6000fd5b505b60008711156136a057601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161364a96959493929190613fe7565b6060604051808303818588803b15801561366357600080fd5b505af1158015613677573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061369c9190613b21565b5050505b7fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df98183896040516136d393929190614295565b60405180910390a150505050505050506000602660006101000a81548160ff02191690831515021790555050565b60008135905061371081614a8a565b92915050565b60008151905061372581614a8a565b92915050565b60008083601f84011261374157613740614820565b5b8235905067ffffffffffffffff81111561375e5761375d61481b565b5b60208301915083602082028301111561377a57613779614825565b5b9250929050565b60008135905061379081614aa1565b92915050565b6000813590506137a581614ab8565b92915050565b6000815190506137ba81614ab8565b92915050565b6000602082840312156137d6576137d561482f565b5b60006137e484828501613701565b91505092915050565b6000602082840312156138035761380261482f565b5b600061381184828501613716565b91505092915050565b600080604083850312156138315761383061482f565b5b600061383f85828601613701565b925050602061385085828601613701565b9150509250929050565b6000806000606084860312156138735761387261482f565b5b600061388186828701613701565b935050602061389286828701613701565b92505060406138a386828701613796565b9150509250925092565b600080604083850312156138c4576138c361482f565b5b60006138d285828601613701565b92505060206138e385828601613781565b9150509250929050565b600080604083850312156139045761390361482f565b5b600061391285828601613701565b925050602061392385828601613796565b9150509250929050565b6000806000604084860312156139465761394561482f565b5b600084013567ffffffffffffffff8111156139645761396361482a565b5b6139708682870161372b565b9350935050602061398386828701613781565b9150509250925092565b6000602082840312156139a3576139a261482f565b5b60006139b184828501613781565b91505092915050565b600080600080608085870312156139d4576139d361482f565b5b60006139e287828801613781565b94505060206139f387828801613781565b9350506040613a0487828801613796565b9250506060613a1587828801613796565b91505092959194509250565b600060208284031215613a3757613a3661482f565b5b6000613a4584828501613796565b91505092915050565b60008060408385031215613a6557613a6461482f565b5b6000613a7385828601613796565b9250506020613a8485828601613701565b9150509250929050565b60008060408385031215613aa557613aa461482f565b5b6000613ab385828601613796565b9250506020613ac485828601613796565b9150509250929050565b600080600060608486031215613ae757613ae661482f565b5b6000613af586828701613796565b9350506020613b0686828701613796565b9250506040613b1786828701613796565b9150509250925092565b600080600060608486031215613b3a57613b3961482f565b5b6000613b48868287016137ab565b9350506020613b59868287016137ab565b9250506040613b6a868287016137ab565b9150509250925092565b60008060008060808587031215613b8e57613b8d61482f565b5b6000613b9c87828801613796565b9450506020613bad87828801613796565b9350506040613bbe87828801613796565b9250506060613bcf87828801613796565b91505092959194509250565b6000613be78383613c11565b60208301905092915050565b613bfc81614629565b82525050565b613c0b816145d4565b82525050565b613c1a816145c2565b82525050565b613c29816145c2565b82525050565b6000613c3a826142f7565b613c44818561431a565b9350613c4f836142e7565b8060005b83811015613c80578151613c678882613bdb565b9750613c728361430d565b925050600181019050613c53565b5085935050505092915050565b613c96816145e6565b82525050565b613ca58161463b565b82525050565b613cb48161464d565b82525050565b613cc38161465f565b82525050565b613cd281614671565b82525050565b613ce181614683565b82525050565b6000613cf282614302565b613cfc818561432b565b9350613d0c8185602086016146b9565b613d1581614834565b840191505092915050565b6000613d2d60158361432b565b9150613d3882614852565b602082019050919050565b6000613d5060258361432b565b9150613d5b8261487b565b604082019050919050565b6000613d7360118361432b565b9150613d7e826148ca565b602082019050919050565b6000613d9660188361432b565b9150613da1826148f3565b602082019050919050565b6000613db960168361432b565b9150613dc48261491c565b602082019050919050565b6000613ddc60148361432b565b9150613de782614945565b602082019050919050565b6000613dff601b8361432b565b9150613e0a8261496e565b602082019050919050565b6000613e22601d8361432b565b9150613e2d82614997565b602082019050919050565b6000613e4560188361432b565b9150613e50826149c0565b602082019050919050565b6000613e6860298361432b565b9150613e73826149e9565b604082019050919050565b6000613e8b60208361432b565b9150613e9682614a38565b602082019050919050565b6000613eae60158361432b565b9150613eb982614a61565b602082019050919050565b613ecd81614612565b82525050565b613edc8161461c565b82525050565b6000602082019050613ef76000830184613c20565b92915050565b6000602082019050613f126000830184613c02565b92915050565b6000608082019050613f2d6000830187613c20565b613f3a6020830186613c20565b613f476040830185613ec4565b613f546060830184613cba565b95945050505050565b6000608082019050613f726000830187613c20565b613f7f6020830186613c20565b613f8c6040830185613ec4565b613f996060830184613cc9565b95945050505050565b6000608082019050613fb76000830187613c20565b613fc46020830186613c20565b613fd16040830185613ec4565b613fde6060830184613cd8565b95945050505050565b600060c082019050613ffc6000830189613c20565b6140096020830188613ec4565b6140166040830187613cab565b6140236060830186613cab565b6140306080830185613bf3565b61403d60a0830184613ec4565b979650505050505050565b600060208201905061405d6000830184613c8d565b92915050565b60006020820190506140786000830184613c9c565b92915050565b600060208201905081810360008301526140988184613ce7565b905092915050565b600060208201905081810360008301526140b981613d20565b9050919050565b600060208201905081810360008301526140d981613d43565b9050919050565b600060208201905081810360008301526140f981613d66565b9050919050565b6000602082019050818103600083015261411981613d89565b9050919050565b6000602082019050818103600083015261413981613dac565b9050919050565b6000602082019050818103600083015261415981613dcf565b9050919050565b6000602082019050818103600083015261417981613df2565b9050919050565b6000602082019050818103600083015261419981613e15565b9050919050565b600060208201905081810360008301526141b981613e38565b9050919050565b600060208201905081810360008301526141d981613e5b565b9050919050565b600060208201905081810360008301526141f981613e7e565b9050919050565b6000602082019050818103600083015261421981613ea1565b9050919050565b60006020820190506142356000830184613ec4565b92915050565b600060a0820190506142506000830188613ec4565b61425d6020830187613cab565b818103604083015261426f8186613c2f565b905061427e6060830185613c20565b61428b6080830184613ec4565b9695505050505050565b60006060820190506142aa6000830186613ec4565b6142b76020830185613ec4565b6142c46040830184613ec4565b949350505050565b60006020820190506142e16000830184613ed3565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061434782614612565b915061435283614612565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143875761438661475f565b5b828201905092915050565b600061439d82614612565b91506143a883614612565b9250826143b8576143b761478e565b5b828204905092915050565b6000808291508390505b600185111561440d578086048111156143e9576143e861475f565b5b60018516156143f85780820291505b808102905061440685614845565b94506143cd565b94509492505050565b600061442182614612565b915061442c8361461c565b92506144597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614461565b905092915050565b600082614471576001905061452d565b8161447f576000905061452d565b8160018114614495576002811461449f576144ce565b600191505061452d565b60ff8411156144b1576144b061475f565b5b8360020a9150848211156144c8576144c761475f565b5b5061452d565b5060208310610133831016604e8410600b84101617156145035782820a9050838111156144fe576144fd61475f565b5b61452d565b61451084848460016143c3565b925090508184048111156145275761452661475f565b5b81810290505b9392505050565b600061453f82614612565b915061454a83614612565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145835761458261475f565b5b828202905092915050565b600061459982614612565b91506145a483614612565b9250828210156145b7576145b661475f565b5b828203905092915050565b60006145cd826145f2565b9050919050565b60006145df826145f2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061463482614695565b9050919050565b600061464682614695565b9050919050565b600061465882614612565b9050919050565b600061466a8261461c565b9050919050565b600061467c8261461c565b9050919050565b600061468e8261461c565b9050919050565b60006146a0826146a7565b9050919050565b60006146b2826145f2565b9050919050565b60005b838110156146d75780820151818401526020810190506146bc565b838111156146e6576000848401525b50505050565b60006146f782614612565b9150600082141561470b5761470a61475f565b5b600182039050919050565b600061472182614612565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156147545761475361475f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b7f5472616e736665722072617465206c696d69742065786365656465642e000000600082015250565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b7f57616c6c65742070726f7465637465642c20706c6561736520636f6e7461637460008201527f20737570706f72742e0000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b614a93816145c2565b8114614a9e57600080fd5b50565b614aaa816145e6565b8114614ab557600080fd5b50565b614ac181614612565b8114614acc57600080fd5b5056fea26469706673582212208f8498bdbe89dc34d4dfaa5c6cf2257c42fb421c2ff5df136d8e94848794d1f164736f6c63430008070033

Deployed Bytecode Sourcemap

5142:15652:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7233:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8845:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9596:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8587:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11174:655;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9110:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12013:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20543:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8683:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10357:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4897:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6673:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19147:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10759:119;;;;;;;;;;;;;:::i;:::-;;20159:372;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10121:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9832:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6978:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10894:117;;;;;;;;;;;;;:::i;:::-;;9974:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7117:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11027:131;;;;;;;;;;;;;:::i;:::-;;9225:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7158:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5843:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19747:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9338:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6837:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6912:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11841:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19510:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8924:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8997:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6944:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6300:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5896:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19001:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9451:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6406:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16448:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7292:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6516:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7014:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7233:50;;;;:::o;8845:71::-;8884:13;8908:5;;;;;;;;;;;;;;;;;8901:12;;8845:71;:::o;9596:224::-;9671:4;9725:6;9690:11;:23;9702:10;9690:23;;;;;;;;;;;;;;;:32;9714:7;9690:32;;;;;;;;;;;;;;;:41;;;;9770:7;9749:37;;9758:10;9749:37;;;9779:6;9749:37;;;;;;:::i;:::-;;;;;;;;9806:4;9799:11;;9596:224;;;;:::o;8587:88::-;8642:7;8660:12;;8653:19;;8587:88;:::o;11174:655::-;7537:10;:24;7548:12;:10;:12::i;:::-;7537:24;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;7579:17;:15;:17::i;:::-;7565:31;;:10;:31;;;7537:59;7529:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;11273:9:::1;11269:72;;;11309:17;;;;;;;;;;;11301:26;;;::::0;::::1;;11269:72;11370:6;11365:455;11386:9;;:16;;11382:1;:20;11365:455;;;11446:9;11442:294;;;11478:15;;:17;;;;;;;;;:::i;:::-;;;;;;11521:57;11537:9;11548;;11558:1;11548:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11562;11576:1;11521:57;;;;;;;;;:::i;:::-;;;;;;;;11442:294;;;11669:1;11642:9;:23;11652:9;;11662:1;11652:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11642:23;;;;;;;;;;;;;;;;:28;11638:74;;11695:15;;:17;;;;;;;;;:::i;:::-;;;;;;11638:74;11442:294;11778:9;:28;;11805:1;11778:28;;;11790:12;11778:28;11752:9;:23;11762:9;;11772:1;11762:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11752:23;;;;;;;;;;;;;;;:54;;;;11404:3;;;;;:::i;:::-;;;;11365:455;;;;11174:655:::0;;;:::o;9110:107::-;9160:7;5466:1;9198:2;:15;;;;:::i;:::-;9178:16;;:36;;;;:::i;:::-;9171:43;;9110:107;:::o;12013:353::-;12113:4;12170:17;12135:11;:19;12147:6;12135:19;;;;;;;;;;;;;;;:31;12155:10;12135:31;;;;;;;;;;;;;;;;:52;12132:161;;12273:6;12239:11;:19;12251:6;12239:19;;;;;;;;;;;;;;;:31;12259:10;12239:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;12205:11;:19;12217:6;12205:19;;;;;;;;;;;;;;;:31;12225:10;12205:31;;;;;;;;;;;;;;;:74;;;;12132:161;12316:40;12330:6;12338:9;12349:6;12316:13;:40::i;:::-;12309:47;;12013:353;;;;;:::o;20543:142::-;20596:7;20659:15;20669:4;;;;;;;;;;;20659:9;:15::i;:::-;20641;20651:4;;;;;;;;;;;20641:9;:15::i;:::-;:33;;;;:::i;:::-;20625:12;;:50;;;;:::i;:::-;20618:57;;20543:142;:::o;8683:71::-;8726:5;5466:1;8735:16;;8683:71;:::o;10357:386::-;7537:10;:24;7548:12;:10;:12::i;:::-;7537:24;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;7579:17;:15;:17::i;:::-;7565:31;;:10;:31;;;7537:59;7529:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;10476:12:::1;;;;;;;;;;;10475:13;:33;;;;;10506:2;10492:11;:16;10475:33;10467:42;;;::::0;::::1;;10535:11;10522:10;:24;;;;10574:4;10559:12;;:19;;;;;;;;;;;;;;;;;;10604:12;10591:10;:25;;;;10665:11;10647:15;:29;;;;:::i;:::-;10629:15;:47;;;;5466:1;10717:2;:15;;;;:::i;:::-;10707:6;:26;;;;:::i;:::-;10689:15;:44;;;;10357:386:::0;;;:::o;4897:93::-;4945:7;4974:6;;;;;;;;;;;4967:13;;4897:93;:::o;6673:45::-;;;;;;;;;;;;;;;;;:::o;19147:347::-;5050:12;:10;:12::i;:::-;5040:22;;:6;;;;;;;;;;:22;;;5032:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19284:1:::1;19269:12;:16;:37;;;;;19305:1;19289:13;:17;19269:37;:52;;;;;19320:1;19310:7;:11;19269:52;:72;;;;;19336:5;19325:7;:16;;19269:72;19261:81;;;::::0;::::1;;19405:7;19389:12;19374;;:27;;;;:::i;:::-;19373:39;;;;:::i;:::-;19355:15;:57;;;;19477:7;19460:13;19445:12;;:28;;;;:::i;:::-;19444:40;;;;:::i;:::-;19425:16;:59;;;;19147:347:::0;;;:::o;10759:119::-;7537:10;:24;7548:12;:10;:12::i;:::-;7537:24;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;7579:17;:15;:17::i;:::-;7565:31;;:10;:31;;;7537:59;7529:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;10821:13:::1;;;;;;;;;;;10820:14;10812:23;;;::::0;::::1;;10863:5;10848:12;;:20;;;;;;;;;;;;;;;;;;10759:119::o:0;20159:372::-;5050:12;:10;:12::i;:::-;5040:22;;:6;;;;;;;;;;:22;;;5032:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20324:1:::1;20309:12;:16;20301:25;;;::::0;::::1;;20353:8;20339:11;;:22;;;;;;;;;;;;;;;;;;20391:15;20374:14;;:32;;;;;;;;;;;;;;;;;;20450:12;20435;;:27;;;;:::i;:::-;20419:13;:43;;;;5466:1;20505:2;:15;;;;:::i;:::-;20489:12;:32;;;;:::i;:::-;20475:11;:46;;;;20159:372:::0;;;;:::o;10121:220::-;7537:10;:24;7548:12;:10;:12::i;:::-;7537:24;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;7579:17;:15;:17::i;:::-;7565:31;;:10;:31;;;7537:59;7529:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;10218:17:::1;10238:21;10218:41;;10280:3;10272:21;;:59;10327:3;10307:16;10295:9;:28;;;;:::i;:::-;10294:36;;;;:::i;:::-;10272:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10205:136;10121:220:::0;;:::o;9832:126::-;9887:4;9913:35;9921:7;9930:17;9913:7;:35::i;:::-;9906:42;;9832:126;;;:::o;6978:27::-;;;;:::o;10894:117::-;7537:10;:24;7548:12;:10;:12::i;:::-;7537:24;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;7579:17;:15;:17::i;:::-;7565:31;;:10;:31;;;7537:59;7529:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;10965:4:::1;10949:13;;:20;;;;;;;;;;;;;;;;;;10997:4;10982:12;;:19;;;;;;;;;;;;;;;;;;10894:117::o:0;9974:123::-;5050:12;:10;:12::i;:::-;5040:22;;:6;;;;;;;;;;:22;;;5032:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10079:8:::1;10059:10;:17;10070:5;10059:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;9974:123:::0;;:::o;7117:28::-;;;;:::o;11027:131::-;7537:10;:24;7548:12;:10;:12::i;:::-;7537:24;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;7579:17;:15;:17::i;:::-;7565:31;;:10;:31;;;7537:59;7529:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;11106:4:::1;11085:18;;:25;;;;;;;;;;;;;;;;;;11143:5;11123:17;;:25;;;;;;;;;;;;;;;;;;11027:131::o:0;9225:105::-;9275:7;5466:1;9311:2;:15;;;;:::i;:::-;9293:14;;:34;;;;:::i;:::-;9286:41;;9225:105;:::o;7158:31::-;;;;;;;;;;;;;:::o;5843:44::-;;;;;;;;;;;;;;;;;:::o;19747:400::-;5050:12;:10;:12::i;:::-;5040:22;;:6;;;;;;;;;;:22;;;5032:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19901:13:::1;19886:12;:28;;;;19942:13;19927:12;:28;;;;19995:13;19979;:29;;;;:::i;:::-;19968:8;:40;;;;20032:9;20021:8;:20;;;;20071:15;20054:14;:32;;;;20135:1;20118:14;;:18;;;;:::i;:::-;20107:8;;:29;20099:38;;;::::0;::::1;;19747:400:::0;;;;:::o;9338:105::-;9404:7;9422:9;:18;9432:7;9422:18;;;;;;;;;;;;;;;;9415:25;;9338:105;;;:::o;8762:75::-;8803:13;8827:7;;;;;;;;;;;;;;;;;8820:14;;8762:75;:::o;6837:30::-;;;;:::o;6912:19::-;;;;;;;;;;;;;:::o;11841:160::-;11921:4;11947:44;11961:10;11973:9;11984:6;11947:13;:44::i;:::-;11940:51;;11841:160;;;;:::o;19510:225::-;5050:12;:10;:12::i;:::-;5040:22;;:6;;;;;;;;;;:22;;;5032:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19622:1:::1;19610:9;:13;:28;;;;;19637:1;19627:7;:11;19610:28;:48;;;;;19653:5;19642:7;:16;;19610:48;19602:57;;;::::0;::::1;;19718:7;19705:9;19690:12;;:24;;;;:::i;:::-;19689:36;;;;:::i;:::-;19672:14;:53;;;;19510:225:::0;;:::o;8924:65::-;8964:7;8982:4;;;;;;;;;;;8975:11;;8924:65;:::o;8997:105::-;9046:7;5466:1;9083:2;:15;;;;:::i;:::-;9064;;:35;;;;:::i;:::-;9057:42;;8997:105;:::o;6944:25::-;;;;:::o;6300:97::-;;;;;;;;;;;;;:::o;5896:43::-;;;;;;;;;;;;;;;;;:::o;19001:134::-;5050:12;:10;:12::i;:::-;5040:22;;:6;;;;;;;;;;:22;;;5032:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19085:10:::1;19077:4;:18;;19069:27;;;::::0;::::1;;19121:4;19109:9;:16;;;;19001:134:::0;:::o;9451:133::-;9535:7;9553:11;:19;9565:6;9553:19;;;;;;;;;;;;;;;:28;9573:7;9553:28;;;;;;;;;;;;;;;;9546:35;;9451:133;;;;:::o;6406:97::-;;;;;;;;;;;;;:::o;16448:251::-;16504:7;16556:12;16542:10;;16529;;:23;;;;:::i;:::-;:39;16526:73;;16595:1;16578:14;;:18;;;;:::i;:::-;16571:25;;;;16526:73;16615:7;16611:39;;;16642:8;;16631;;:19;;;;:::i;:::-;16624:26;;;;16611:39;16681:8;;16670;;:19;;;;:::i;:::-;16663:26;;16448:251;;;;:::o;7292:49::-;;;;:::o;6516:24::-;;;;;;;;;;;;;:::o;7014:25::-;;;;:::o;2812:111::-;2857:15;2902:10;2887:26;;2812:111;:::o;12378:1806::-;12470:4;12515:1;12497:20;;:6;:20;;;;12489:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12588:1;12567:23;;:9;:23;;;;12559:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12647:1;12638:6;:10;12630:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12716:6;12695:9;:17;12705:6;12695:17;;;;;;;;;;;;;;;;:27;;12687:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12764:10;:8;:10::i;:::-;12763:11;:40;;;;;12778:14;:25;12793:9;12778:25;;;;;;;;;;;;;;;;;;;;;;;;;12763:40;12760:120;;;12814:16;:24;12831:6;12814:24;;;;;;;;;;;;;;;;;;;;;;;;;12806:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12869:8;:6;:8::i;:::-;12760:120;12896:12;;;;;;;;;;;12892:111;;12919:16;:24;12936:6;12919:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;12947:16;:27;12964:9;12947:27;;;;;;;;;;;;;;;;;;;;;;;;;12919:55;12911:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;12892:111;13019:39;13032:6;13040:9;13051:6;13019:12;:39::i;:::-;13088:14;:25;13103:9;13088:25;;;;;;;;;;;;;;;;;;;;;;;;;13087:26;:47;;;;;13130:4;;;;;;;;;;;13117:17;;:9;:17;;;;13087:47;13083:190;;;13158:15;:26;13174:9;13158:26;;;;;;;;;;;;;;;;;;;;;;;;;13153:107;;13207:35;13224:9;13235:6;13207:16;:35::i;:::-;13153:107;13083:190;13300:17;;;;;;;;;;;:54;;;;;13339:15;13321;;:33;13300:54;13297:363;;;13376:14;:22;13391:6;13376:22;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;13415:9;13402:22;;:9;:22;;;;13376:48;:77;;;;;13452:1;13428:9;:20;13438:9;13428:20;;;;;;;;;;;;;;;;:25;13376:77;13373:274;;;13499:12;13476:9;:20;13486:9;13476:20;;;;;;;;;;;;;;;:35;;;;13532:15;;:17;;;;;;;;;:::i;:::-;;;;;;13575:54;13591:9;13602;13613:12;13627:1;13575:54;;;;;;;;;:::i;:::-;;;;;;;;13373:274;13297:363;13687:6;;;;;;;;;;;13684:63;;;13703:41;13718:6;13726:9;13737:6;13703:14;:41::i;:::-;13696:48;;;;13684:63;13803:6;13783:9;:17;13793:6;13783:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;13763:9;:17;13773:6;13763:17;;;;;;;;;;;;;;;:46;;;;13826:22;13851:21;13865:6;13851:13;:21::i;:::-;:59;;13904:6;13851:59;;;13875:26;13883:9;13894:6;13875:7;:26::i;:::-;13851:59;13826:84;;13938:25;13953:9;13938:14;:25::i;:::-;13935:66;;;13979:1;13970:6;:10;13966:32;;;13982:16;13991:6;13982:8;:16::i;:::-;13966:32;13935:66;14071:14;14048:9;:20;14058:9;14048:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;14025:9;:20;14035:9;14025:20;;;;;;;;;;;;;;;:60;;;;14124:9;14107:43;;14116:6;14107:43;;;14135:14;14107:43;;;;;;:::i;:::-;;;;;;;;14170:4;14163:11;;;12378:1806;;;;;;:::o;14200:94::-;14243:4;14283:1;14269:10;;:15;;14262:22;;14200:94;:::o;14306:149::-;14359:12;14346:10;:25;;;;14399:15;14384:12;:30;;;;14441:4;14427:11;;:18;;;;;;;;;;;;;;;;;;14306:149::o;15046:1260::-;15149:15;:23;15165:6;15149:23;;;;;;;;;;;;;;;;;;;;;;;;;:98;;;;15187:14;:22;15202:6;15187:22;;;;;;;;;;;;;;;;;;;;;;;;;:59;;15230:16;;15187:59;;;15212:15;;15187:59;15176:6;:71;;15149:98;15141:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;15290:15;:23;15306:6;15290:23;;;;;;;;;;;;;;;;;;;;;;;;;:73;;;;15351:12;15338:9;;15317:7;:18;15325:9;15317:18;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:46;;15290:73;15282:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;15447:1;15426:9;:17;15436:6;15426:17;;;;;;;;;;;;;;;;:22;15422:267;;5466:1;15503:2;:15;;;;:::i;:::-;15484;;:35;;;;:::i;:::-;15474:6;:45;;:70;;;;;15543:1;15523:8;:16;15532:6;15523:16;;;;;;;;;;;;;;;;:21;15474:70;:107;;;;;15566:15;15548;;:33;15474:107;15466:161;;;;;;;;;;;;:::i;:::-;;;;;;;;;15663:12;15644:8;:16;15653:6;15644:16;;;;;;;;;;;;;;;:31;;;;15422:267;15717:14;:25;15732:9;15717:25;;;;;;;;;;;;;;;;;;;;;;;;;15713:584;;;15780:12;15761:8;:16;15770:6;15761:16;;;;;;;;;;;;;;;:31;;;;15713:584;;;15816:21;15830:6;15816:13;:21::i;:::-;15812:485;;;15860:17;;;;;;;;;;;:54;;;;;15899:15;15881;;:33;15860:54;:92;;;;;15940:12;15918:7;:18;15926:9;15918:18;;;;;;;;;;;;;;;;:34;15860:92;:121;;;;;15980:1;15956:9;:20;15966:9;15956:20;;;;;;;;;;;;;;;;:25;15860:121;15856:281;;;16027:12;16004:9;:20;16014:9;16004:20;;;;;;;;;;;;;;;:35;;;;16065:54;16081:9;16092;16103:12;16117:1;16065:54;;;;;;;;;:::i;:::-;;;;;;;;15856:281;16174:12;16153:7;:18;16161:9;16153:18;;;;;;;;;;;;;;;:33;;;;16220:9;16207:22;;:9;:22;;;16203:80;;16271:12;16250:7;:18;16258:9;16250:18;;;;;;;;;;;;;;;:33;;;;16203:80;15812:485;15713:584;15046:1260;;;:::o;14793:241::-;14881:19;14903:14;;14881:36;;14971:11;14961:6;14938:9;:20;14948:9;14938:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:44;;14930:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;14868:166;14793:241;;:::o;14467:310::-;14560:4;14619:6;14599:9;:17;14609:6;14599:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;14579:9;:17;14589:6;14579:17;;;;;;;;;;;;;;;:46;;;;14684:6;14661:9;:20;14671:9;14661:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;14638:9;:20;14648:9;14638:20;;;;;;;;;;;;;;;:52;;;;14725:9;14708:35;;14717:6;14708:35;;;14736:6;14708:35;;;;;;:::i;:::-;;;;;;;;14763:4;14756:11;;14467:310;;;;;:::o;16318:118::-;16380:4;16407:11;:19;16419:6;16407:19;;;;;;;;;;;;;;;;;;;;;;;;;16406:20;16399:27;;16318:118;;;:::o;16711:331::-;16781:7;16803:12;16818:14;:25;16833:9;16818:25;;;;;;;;;;;;;;;;;;;;;;;;;16803:40;;16856:17;16910:14;;16886:20;16898:7;16886:11;:20::i;:::-;16877:6;:29;;;;:::i;:::-;16876:48;;;;:::i;:::-;16856:68;;16977:9;16949;:24;16967:4;16949:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;17023:9;17014:6;:18;;;;:::i;:::-;17007:25;;;;16711:331;;;;:::o;17054:271::-;17120:4;17147:14;:26;17162:10;17147:26;;;;;;;;;;;;;;;;;;;;;;;;;17146:27;:49;;;;;17189:6;;;;;;;;;;;17188:7;17146:49;:75;;;;;17210:11;;;;;;;;;;;17146:75;:115;;;;;17236:14;:25;17251:9;17236:25;;;;;;;;;;;;;;;;;;;;;;;;;17146:115;:169;;;;;17304:11;;17276:9;:24;17294:4;17276:24;;;;;;;;;;;;;;;;:39;;17146:169;17139:176;;17054:271;;;:::o;17337:1644::-;7401:4;7392:6;;:13;;;;;;;;;;;;;;;;;;17402:20:::1;17434:13;;17425:6;:22;:47;;17459:13;;17425:47;;;17450:6;17425:47;17402:70;;17516:12;17489:9;:24;17507:4;17489:24;;;;;;;;;;;;;;;;:39;17485:84;;;17545:9;:24;17563:4;17545:24;;;;;;;;;;;;;;;;17530:39;;17485:84;17594:23;17656:8;;17651:1;17636:12;;17621;:27;;;;:::i;:::-;:31;;;;:::i;:::-;17620:44;;;;:::i;:::-;17594:70;;17693:15;17677:31;;;;;:::i;:::-;;;17725:21;17763:1;17749:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17725:40;;17796:4;17778;17783:1;17778:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17824:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17814:4;17819:1;17814:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17862:21;17886;17862:45;;17924:6;;;;;;;;;;;:57;;;17998:12;18027:1;18045:4;18074;18096:15;17924:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18141:17;18185:13;18161:21;:37;;;;:::i;:::-;18141:57;;18211:19;18260:1;18245:12;;:16;;;;:::i;:::-;18233:8;;:29;;;;:::i;:::-;18211:51;;18279:26;18341:11;18336:1;18321:12;;18309:9;:24;;;;:::i;:::-;:28;;;;:::i;:::-;18308:44;;;;:::i;:::-;18279:73;;18365:26;18406:18;18394:9;:30;;;;:::i;:::-;18365:59;;18474:1;18453:18;:22;18449:92;;;18492:20;;;;;;;;;;;:29;;:49;18522:18;18492:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18449:92;18587:1;18569:15;:19;18566:311;;;18606:6;;;;;;;;;;;:22;;;18636:18;18684:4;18710:15;18746:1;18768::::0;18790:20:::1;;;;;;;;;;;18831:15;18606:257;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18566:311;18898:73;18915:18;18935;18955:15;18898:73;;;;;;;;:::i;:::-;;;;;;;;17389:1592;;;;;;;;7419:5:::0;7410:6;;:14;;;;;;;;;;;;;;;;;;17337:1644;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:143::-;1233:5;1264:6;1258:13;1249:22;;1280:33;1307:5;1280:33;:::i;:::-;1176:143;;;;:::o;1325:329::-;1384:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:119;;;1439:79;;:::i;:::-;1401:119;1559:1;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1530:117;1325:329;;;;:::o;1660:351::-;1730:6;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:64;1986:7;1977:6;1966:9;1962:22;1930:64;:::i;:::-;1920:74;;1876:128;1660:351;;;;:::o;2017:474::-;2085:6;2093;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:53;2338:7;2329:6;2318:9;2314:22;2293:53;:::i;:::-;2283:63;;2239:117;2395:2;2421:53;2466:7;2457:6;2446:9;2442:22;2421:53;:::i;:::-;2411:63;;2366:118;2017:474;;;;;:::o;2497:619::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2991:118;2497:619;;;;;:::o;3122:468::-;3187:6;3195;3244:2;3232:9;3223:7;3219:23;3215:32;3212:119;;;3250:79;;:::i;:::-;3212:119;3370:1;3395:53;3440:7;3431:6;3420:9;3416:22;3395:53;:::i;:::-;3385:63;;3341:117;3497:2;3523:50;3565:7;3556:6;3545:9;3541:22;3523:50;:::i;:::-;3513:60;;3468:115;3122:468;;;;;:::o;3596:474::-;3664:6;3672;3721:2;3709:9;3700:7;3696:23;3692:32;3689:119;;;3727:79;;:::i;:::-;3689:119;3847:1;3872:53;3917:7;3908:6;3897:9;3893:22;3872:53;:::i;:::-;3862:63;;3818:117;3974:2;4000:53;4045:7;4036:6;4025:9;4021:22;4000:53;:::i;:::-;3990:63;;3945:118;3596:474;;;;;:::o;4076:698::-;4168:6;4176;4184;4233:2;4221:9;4212:7;4208:23;4204:32;4201:119;;;4239:79;;:::i;:::-;4201:119;4387:1;4376:9;4372:17;4359:31;4417:18;4409:6;4406:30;4403:117;;;4439:79;;:::i;:::-;4403:117;4552:80;4624:7;4615:6;4604:9;4600:22;4552:80;:::i;:::-;4534:98;;;;4330:312;4681:2;4707:50;4749:7;4740:6;4729:9;4725:22;4707:50;:::i;:::-;4697:60;;4652:115;4076:698;;;;;:::o;4780:323::-;4836:6;4885:2;4873:9;4864:7;4860:23;4856:32;4853:119;;;4891:79;;:::i;:::-;4853:119;5011:1;5036:50;5078:7;5069:6;5058:9;5054:22;5036:50;:::i;:::-;5026:60;;4982:114;4780:323;;;;:::o;5109:753::-;5189:6;5197;5205;5213;5262:3;5250:9;5241:7;5237:23;5233:33;5230:120;;;5269:79;;:::i;:::-;5230:120;5389:1;5414:50;5456:7;5447:6;5436:9;5432:22;5414:50;:::i;:::-;5404:60;;5360:114;5513:2;5539:50;5581:7;5572:6;5561:9;5557:22;5539:50;:::i;:::-;5529:60;;5484:115;5638:2;5664:53;5709:7;5700:6;5689:9;5685:22;5664:53;:::i;:::-;5654:63;;5609:118;5766:2;5792:53;5837:7;5828:6;5817:9;5813:22;5792:53;:::i;:::-;5782:63;;5737:118;5109:753;;;;;;;:::o;5868:329::-;5927:6;5976:2;5964:9;5955:7;5951:23;5947:32;5944:119;;;5982:79;;:::i;:::-;5944:119;6102:1;6127:53;6172:7;6163:6;6152:9;6148:22;6127:53;:::i;:::-;6117:63;;6073:117;5868:329;;;;:::o;6203:474::-;6271:6;6279;6328:2;6316:9;6307:7;6303:23;6299:32;6296:119;;;6334:79;;:::i;:::-;6296:119;6454:1;6479:53;6524:7;6515:6;6504:9;6500:22;6479:53;:::i;:::-;6469:63;;6425:117;6581:2;6607:53;6652:7;6643:6;6632:9;6628:22;6607:53;:::i;:::-;6597:63;;6552:118;6203:474;;;;;:::o;6683:::-;6751:6;6759;6808:2;6796:9;6787:7;6783:23;6779:32;6776:119;;;6814:79;;:::i;:::-;6776:119;6934:1;6959:53;7004:7;6995:6;6984:9;6980:22;6959:53;:::i;:::-;6949:63;;6905:117;7061:2;7087:53;7132:7;7123:6;7112:9;7108:22;7087:53;:::i;:::-;7077:63;;7032:118;6683:474;;;;;:::o;7163:619::-;7240:6;7248;7256;7305:2;7293:9;7284:7;7280:23;7276:32;7273:119;;;7311:79;;:::i;:::-;7273:119;7431:1;7456:53;7501:7;7492:6;7481:9;7477:22;7456:53;:::i;:::-;7446:63;;7402:117;7558:2;7584:53;7629:7;7620:6;7609:9;7605:22;7584:53;:::i;:::-;7574:63;;7529:118;7686:2;7712:53;7757:7;7748:6;7737:9;7733:22;7712:53;:::i;:::-;7702:63;;7657:118;7163:619;;;;;:::o;7788:663::-;7876:6;7884;7892;7941:2;7929:9;7920:7;7916:23;7912:32;7909:119;;;7947:79;;:::i;:::-;7909:119;8067:1;8092:64;8148:7;8139:6;8128:9;8124:22;8092:64;:::i;:::-;8082:74;;8038:128;8205:2;8231:64;8287:7;8278:6;8267:9;8263:22;8231:64;:::i;:::-;8221:74;;8176:129;8344:2;8370:64;8426:7;8417:6;8406:9;8402:22;8370:64;:::i;:::-;8360:74;;8315:129;7788:663;;;;;:::o;8457:765::-;8543:6;8551;8559;8567;8616:3;8604:9;8595:7;8591:23;8587:33;8584:120;;;8623:79;;:::i;:::-;8584:120;8743:1;8768:53;8813:7;8804:6;8793:9;8789:22;8768:53;:::i;:::-;8758:63;;8714:117;8870:2;8896:53;8941:7;8932:6;8921:9;8917:22;8896:53;:::i;:::-;8886:63;;8841:118;8998:2;9024:53;9069:7;9060:6;9049:9;9045:22;9024:53;:::i;:::-;9014:63;;8969:118;9126:2;9152:53;9197:7;9188:6;9177:9;9173:22;9152:53;:::i;:::-;9142:63;;9097:118;8457:765;;;;;;;:::o;9228:179::-;9297:10;9318:46;9360:3;9352:6;9318:46;:::i;:::-;9396:4;9391:3;9387:14;9373:28;;9228:179;;;;:::o;9413:147::-;9508:45;9547:5;9508:45;:::i;:::-;9503:3;9496:58;9413:147;;:::o;9566:142::-;9669:32;9695:5;9669:32;:::i;:::-;9664:3;9657:45;9566:142;;:::o;9714:108::-;9791:24;9809:5;9791:24;:::i;:::-;9786:3;9779:37;9714:108;;:::o;9828:118::-;9915:24;9933:5;9915:24;:::i;:::-;9910:3;9903:37;9828:118;;:::o;9982:732::-;10101:3;10130:54;10178:5;10130:54;:::i;:::-;10200:86;10279:6;10274:3;10200:86;:::i;:::-;10193:93;;10310:56;10360:5;10310:56;:::i;:::-;10389:7;10420:1;10405:284;10430:6;10427:1;10424:13;10405:284;;;10506:6;10500:13;10533:63;10592:3;10577:13;10533:63;:::i;:::-;10526:70;;10619:60;10672:6;10619:60;:::i;:::-;10609:70;;10465:224;10452:1;10449;10445:9;10440:14;;10405:284;;;10409:14;10705:3;10698:10;;10106:608;;;9982:732;;;;:::o;10720:109::-;10801:21;10816:5;10801:21;:::i;:::-;10796:3;10789:34;10720:109;;:::o;10835:167::-;10940:55;10989:5;10940:55;:::i;:::-;10935:3;10928:68;10835:167;;:::o;11008:147::-;11103:45;11142:5;11103:45;:::i;:::-;11098:3;11091:58;11008:147;;:::o;11161:143::-;11254:43;11291:5;11254:43;:::i;:::-;11249:3;11242:56;11161:143;;:::o;11310:::-;11403:43;11440:5;11403:43;:::i;:::-;11398:3;11391:56;11310:143;;:::o;11459:::-;11552:43;11589:5;11552:43;:::i;:::-;11547:3;11540:56;11459:143;;:::o;11608:364::-;11696:3;11724:39;11757:5;11724:39;:::i;:::-;11779:71;11843:6;11838:3;11779:71;:::i;:::-;11772:78;;11859:52;11904:6;11899:3;11892:4;11885:5;11881:16;11859:52;:::i;:::-;11936:29;11958:6;11936:29;:::i;:::-;11931:3;11927:39;11920:46;;11700:272;11608:364;;;;:::o;11978:366::-;12120:3;12141:67;12205:2;12200:3;12141:67;:::i;:::-;12134:74;;12217:93;12306:3;12217:93;:::i;:::-;12335:2;12330:3;12326:12;12319:19;;11978:366;;;:::o;12350:::-;12492:3;12513:67;12577:2;12572:3;12513:67;:::i;:::-;12506:74;;12589:93;12678:3;12589:93;:::i;:::-;12707:2;12702:3;12698:12;12691:19;;12350:366;;;:::o;12722:::-;12864:3;12885:67;12949:2;12944:3;12885:67;:::i;:::-;12878:74;;12961:93;13050:3;12961:93;:::i;:::-;13079:2;13074:3;13070:12;13063:19;;12722:366;;;:::o;13094:::-;13236:3;13257:67;13321:2;13316:3;13257:67;:::i;:::-;13250:74;;13333:93;13422:3;13333:93;:::i;:::-;13451:2;13446:3;13442:12;13435:19;;13094:366;;;:::o;13466:::-;13608:3;13629:67;13693:2;13688:3;13629:67;:::i;:::-;13622:74;;13705:93;13794:3;13705:93;:::i;:::-;13823:2;13818:3;13814:12;13807:19;;13466:366;;;:::o;13838:::-;13980:3;14001:67;14065:2;14060:3;14001:67;:::i;:::-;13994:74;;14077:93;14166:3;14077:93;:::i;:::-;14195:2;14190:3;14186:12;14179:19;;13838:366;;;:::o;14210:::-;14352:3;14373:67;14437:2;14432:3;14373:67;:::i;:::-;14366:74;;14449:93;14538:3;14449:93;:::i;:::-;14567:2;14562:3;14558:12;14551:19;;14210:366;;;:::o;14582:::-;14724:3;14745:67;14809:2;14804:3;14745:67;:::i;:::-;14738:74;;14821:93;14910:3;14821:93;:::i;:::-;14939:2;14934:3;14930:12;14923:19;;14582:366;;;:::o;14954:::-;15096:3;15117:67;15181:2;15176:3;15117:67;:::i;:::-;15110:74;;15193:93;15282:3;15193:93;:::i;:::-;15311:2;15306:3;15302:12;15295:19;;14954:366;;;:::o;15326:::-;15468:3;15489:67;15553:2;15548:3;15489:67;:::i;:::-;15482:74;;15565:93;15654:3;15565:93;:::i;:::-;15683:2;15678:3;15674:12;15667:19;;15326:366;;;:::o;15698:::-;15840:3;15861:67;15925:2;15920:3;15861:67;:::i;:::-;15854:74;;15937:93;16026:3;15937:93;:::i;:::-;16055:2;16050:3;16046:12;16039:19;;15698:366;;;:::o;16070:::-;16212:3;16233:67;16297:2;16292:3;16233:67;:::i;:::-;16226:74;;16309:93;16398:3;16309:93;:::i;:::-;16427:2;16422:3;16418:12;16411:19;;16070:366;;;:::o;16442:118::-;16529:24;16547:5;16529:24;:::i;:::-;16524:3;16517:37;16442:118;;:::o;16566:112::-;16649:22;16665:5;16649:22;:::i;:::-;16644:3;16637:35;16566:112;;:::o;16684:222::-;16777:4;16815:2;16804:9;16800:18;16792:26;;16828:71;16896:1;16885:9;16881:17;16872:6;16828:71;:::i;:::-;16684:222;;;;:::o;16912:254::-;17021:4;17059:2;17048:9;17044:18;17036:26;;17072:87;17156:1;17145:9;17141:17;17132:6;17072:87;:::i;:::-;16912:254;;;;:::o;17172:565::-;17355:4;17393:3;17382:9;17378:19;17370:27;;17407:71;17475:1;17464:9;17460:17;17451:6;17407:71;:::i;:::-;17488:72;17556:2;17545:9;17541:18;17532:6;17488:72;:::i;:::-;17570;17638:2;17627:9;17623:18;17614:6;17570:72;:::i;:::-;17652:78;17726:2;17715:9;17711:18;17702:6;17652:78;:::i;:::-;17172:565;;;;;;;:::o;17743:::-;17926:4;17964:3;17953:9;17949:19;17941:27;;17978:71;18046:1;18035:9;18031:17;18022:6;17978:71;:::i;:::-;18059:72;18127:2;18116:9;18112:18;18103:6;18059:72;:::i;:::-;18141;18209:2;18198:9;18194:18;18185:6;18141:72;:::i;:::-;18223:78;18297:2;18286:9;18282:18;18273:6;18223:78;:::i;:::-;17743:565;;;;;;;:::o;18314:::-;18497:4;18535:3;18524:9;18520:19;18512:27;;18549:71;18617:1;18606:9;18602:17;18593:6;18549:71;:::i;:::-;18630:72;18698:2;18687:9;18683:18;18674:6;18630:72;:::i;:::-;18712;18780:2;18769:9;18765:18;18756:6;18712:72;:::i;:::-;18794:78;18868:2;18857:9;18853:18;18844:6;18794:78;:::i;:::-;18314:565;;;;;;;:::o;18885:823::-;19142:4;19180:3;19169:9;19165:19;19157:27;;19194:71;19262:1;19251:9;19247:17;19238:6;19194:71;:::i;:::-;19275:72;19343:2;19332:9;19328:18;19319:6;19275:72;:::i;:::-;19357:80;19433:2;19422:9;19418:18;19409:6;19357:80;:::i;:::-;19447;19523:2;19512:9;19508:18;19499:6;19447:80;:::i;:::-;19537:81;19613:3;19602:9;19598:19;19589:6;19537:81;:::i;:::-;19628:73;19696:3;19685:9;19681:19;19672:6;19628:73;:::i;:::-;18885:823;;;;;;;;;:::o;19714:210::-;19801:4;19839:2;19828:9;19824:18;19816:26;;19852:65;19914:1;19903:9;19899:17;19890:6;19852:65;:::i;:::-;19714:210;;;;:::o;19930:258::-;20041:4;20079:2;20068:9;20064:18;20056:26;;20092:89;20178:1;20167:9;20163:17;20154:6;20092:89;:::i;:::-;19930:258;;;;:::o;20194:313::-;20307:4;20345:2;20334:9;20330:18;20322:26;;20394:9;20388:4;20384:20;20380:1;20369:9;20365:17;20358:47;20422:78;20495:4;20486:6;20422:78;:::i;:::-;20414:86;;20194:313;;;;:::o;20513:419::-;20679:4;20717:2;20706:9;20702:18;20694:26;;20766:9;20760:4;20756:20;20752:1;20741:9;20737:17;20730:47;20794:131;20920:4;20794:131;:::i;:::-;20786:139;;20513:419;;;:::o;20938:::-;21104:4;21142:2;21131:9;21127:18;21119:26;;21191:9;21185:4;21181:20;21177:1;21166:9;21162:17;21155:47;21219:131;21345:4;21219:131;:::i;:::-;21211:139;;20938:419;;;:::o;21363:::-;21529:4;21567:2;21556:9;21552:18;21544:26;;21616:9;21610:4;21606:20;21602:1;21591:9;21587:17;21580:47;21644:131;21770:4;21644:131;:::i;:::-;21636:139;;21363:419;;;:::o;21788:::-;21954:4;21992:2;21981:9;21977:18;21969:26;;22041:9;22035:4;22031:20;22027:1;22016:9;22012:17;22005:47;22069:131;22195:4;22069:131;:::i;:::-;22061:139;;21788:419;;;:::o;22213:::-;22379:4;22417:2;22406:9;22402:18;22394:26;;22466:9;22460:4;22456:20;22452:1;22441:9;22437:17;22430:47;22494:131;22620:4;22494:131;:::i;:::-;22486:139;;22213:419;;;:::o;22638:::-;22804:4;22842:2;22831:9;22827:18;22819:26;;22891:9;22885:4;22881:20;22877:1;22866:9;22862:17;22855:47;22919:131;23045:4;22919:131;:::i;:::-;22911:139;;22638:419;;;:::o;23063:::-;23229:4;23267:2;23256:9;23252:18;23244:26;;23316:9;23310:4;23306:20;23302:1;23291:9;23287:17;23280:47;23344:131;23470:4;23344:131;:::i;:::-;23336:139;;23063:419;;;:::o;23488:::-;23654:4;23692:2;23681:9;23677:18;23669:26;;23741:9;23735:4;23731:20;23727:1;23716:9;23712:17;23705:47;23769:131;23895:4;23769:131;:::i;:::-;23761:139;;23488:419;;;:::o;23913:::-;24079:4;24117:2;24106:9;24102:18;24094:26;;24166:9;24160:4;24156:20;24152:1;24141:9;24137:17;24130:47;24194:131;24320:4;24194:131;:::i;:::-;24186:139;;23913:419;;;:::o;24338:::-;24504:4;24542:2;24531:9;24527:18;24519:26;;24591:9;24585:4;24581:20;24577:1;24566:9;24562:17;24555:47;24619:131;24745:4;24619:131;:::i;:::-;24611:139;;24338:419;;;:::o;24763:::-;24929:4;24967:2;24956:9;24952:18;24944:26;;25016:9;25010:4;25006:20;25002:1;24991:9;24987:17;24980:47;25044:131;25170:4;25044:131;:::i;:::-;25036:139;;24763:419;;;:::o;25188:::-;25354:4;25392:2;25381:9;25377:18;25369:26;;25441:9;25435:4;25431:20;25427:1;25416:9;25412:17;25405:47;25469:131;25595:4;25469:131;:::i;:::-;25461:139;;25188:419;;;:::o;25613:222::-;25706:4;25744:2;25733:9;25729:18;25721:26;;25757:71;25825:1;25814:9;25810:17;25801:6;25757:71;:::i;:::-;25613:222;;;;:::o;25841:831::-;26104:4;26142:3;26131:9;26127:19;26119:27;;26156:71;26224:1;26213:9;26209:17;26200:6;26156:71;:::i;:::-;26237:80;26313:2;26302:9;26298:18;26289:6;26237:80;:::i;:::-;26364:9;26358:4;26354:20;26349:2;26338:9;26334:18;26327:48;26392:108;26495:4;26486:6;26392:108;:::i;:::-;26384:116;;26510:72;26578:2;26567:9;26563:18;26554:6;26510:72;:::i;:::-;26592:73;26660:3;26649:9;26645:19;26636:6;26592:73;:::i;:::-;25841:831;;;;;;;;:::o;26678:442::-;26827:4;26865:2;26854:9;26850:18;26842:26;;26878:71;26946:1;26935:9;26931:17;26922:6;26878:71;:::i;:::-;26959:72;27027:2;27016:9;27012:18;27003:6;26959:72;:::i;:::-;27041;27109:2;27098:9;27094:18;27085:6;27041:72;:::i;:::-;26678:442;;;;;;:::o;27126:214::-;27215:4;27253:2;27242:9;27238:18;27230:26;;27266:67;27330:1;27319:9;27315:17;27306:6;27266:67;:::i;:::-;27126:214;;;;:::o;27427:132::-;27494:4;27517:3;27509:11;;27547:4;27542:3;27538:14;27530:22;;27427:132;;;:::o;27565:114::-;27632:6;27666:5;27660:12;27650:22;;27565:114;;;:::o;27685:99::-;27737:6;27771:5;27765:12;27755:22;;27685:99;;;:::o;27790:113::-;27860:4;27892;27887:3;27883:14;27875:22;;27790:113;;;:::o;27909:184::-;28008:11;28042:6;28037:3;28030:19;28082:4;28077:3;28073:14;28058:29;;27909:184;;;;:::o;28099:169::-;28183:11;28217:6;28212:3;28205:19;28257:4;28252:3;28248:14;28233:29;;28099:169;;;;:::o;28274:305::-;28314:3;28333:20;28351:1;28333:20;:::i;:::-;28328:25;;28367:20;28385:1;28367:20;:::i;:::-;28362:25;;28521:1;28453:66;28449:74;28446:1;28443:81;28440:107;;;28527:18;;:::i;:::-;28440:107;28571:1;28568;28564:9;28557:16;;28274:305;;;;:::o;28585:185::-;28625:1;28642:20;28660:1;28642:20;:::i;:::-;28637:25;;28676:20;28694:1;28676:20;:::i;:::-;28671:25;;28715:1;28705:35;;28720:18;;:::i;:::-;28705:35;28762:1;28759;28755:9;28750:14;;28585:185;;;;:::o;28776:848::-;28837:5;28844:4;28868:6;28859:15;;28892:5;28883:14;;28906:712;28927:1;28917:8;28914:15;28906:712;;;29022:4;29017:3;29013:14;29007:4;29004:24;29001:50;;;29031:18;;:::i;:::-;29001:50;29081:1;29071:8;29067:16;29064:451;;;29496:4;29489:5;29485:16;29476:25;;29064:451;29546:4;29540;29536:15;29528:23;;29576:32;29599:8;29576:32;:::i;:::-;29564:44;;28906:712;;;28776:848;;;;;;;:::o;29630:281::-;29688:5;29712:23;29730:4;29712:23;:::i;:::-;29704:31;;29756:25;29772:8;29756:25;:::i;:::-;29744:37;;29800:104;29837:66;29827:8;29821:4;29800:104;:::i;:::-;29791:113;;29630:281;;;;:::o;29917:1073::-;29971:5;30162:8;30152:40;;30183:1;30174:10;;30185:5;;30152:40;30211:4;30201:36;;30228:1;30219:10;;30230:5;;30201:36;30297:4;30345:1;30340:27;;;;30381:1;30376:191;;;;30290:277;;30340:27;30358:1;30349:10;;30360:5;;;30376:191;30421:3;30411:8;30408:17;30405:43;;;30428:18;;:::i;:::-;30405:43;30477:8;30474:1;30470:16;30461:25;;30512:3;30505:5;30502:14;30499:40;;;30519:18;;:::i;:::-;30499:40;30552:5;;;30290:277;;30676:2;30666:8;30663:16;30657:3;30651:4;30648:13;30644:36;30626:2;30616:8;30613:16;30608:2;30602:4;30599:12;30595:35;30579:111;30576:246;;;30732:8;30726:4;30722:19;30713:28;;30767:3;30760:5;30757:14;30754:40;;;30774:18;;:::i;:::-;30754:40;30807:5;;30576:246;30847:42;30885:3;30875:8;30869:4;30866:1;30847:42;:::i;:::-;30832:57;;;;30921:4;30916:3;30912:14;30905:5;30902:25;30899:51;;;30930:18;;:::i;:::-;30899:51;30979:4;30972:5;30968:16;30959:25;;29917:1073;;;;;;:::o;30996:348::-;31036:7;31059:20;31077:1;31059:20;:::i;:::-;31054:25;;31093:20;31111:1;31093:20;:::i;:::-;31088:25;;31281:1;31213:66;31209:74;31206:1;31203:81;31198:1;31191:9;31184:17;31180:105;31177:131;;;31288:18;;:::i;:::-;31177:131;31336:1;31333;31329:9;31318:20;;30996:348;;;;:::o;31350:191::-;31390:4;31410:20;31428:1;31410:20;:::i;:::-;31405:25;;31444:20;31462:1;31444:20;:::i;:::-;31439:25;;31483:1;31480;31477:8;31474:34;;;31488:18;;:::i;:::-;31474:34;31533:1;31530;31526:9;31518:17;;31350:191;;;;:::o;31547:96::-;31584:7;31613:24;31631:5;31613:24;:::i;:::-;31602:35;;31547:96;;;:::o;31649:104::-;31694:7;31723:24;31741:5;31723:24;:::i;:::-;31712:35;;31649:104;;;:::o;31759:90::-;31793:7;31836:5;31829:13;31822:21;31811:32;;31759:90;;;:::o;31855:126::-;31892:7;31932:42;31925:5;31921:54;31910:65;;31855:126;;;:::o;31987:77::-;32024:7;32053:5;32042:16;;31987:77;;;:::o;32070:86::-;32105:7;32145:4;32138:5;32134:16;32123:27;;32070:86;;;:::o;32162:134::-;32220:9;32253:37;32284:5;32253:37;:::i;:::-;32240:50;;32162:134;;;:::o;32302:144::-;32370:9;32403:37;32434:5;32403:37;:::i;:::-;32390:50;;32302:144;;;:::o;32452:121::-;32510:9;32543:24;32561:5;32543:24;:::i;:::-;32530:37;;32452:121;;;:::o;32579:117::-;32635:9;32668:22;32684:5;32668:22;:::i;:::-;32655:35;;32579:117;;;:::o;32702:::-;32758:9;32791:22;32807:5;32791:22;:::i;:::-;32778:35;;32702:117;;;:::o;32825:::-;32881:9;32914:22;32930:5;32914:22;:::i;:::-;32901:35;;32825:117;;;:::o;32948:126::-;32998:9;33031:37;33062:5;33031:37;:::i;:::-;33018:50;;32948:126;;;:::o;33080:113::-;33130:9;33163:24;33181:5;33163:24;:::i;:::-;33150:37;;33080:113;;;:::o;33199:307::-;33267:1;33277:113;33291:6;33288:1;33285:13;33277:113;;;33376:1;33371:3;33367:11;33361:18;33357:1;33352:3;33348:11;33341:39;33313:2;33310:1;33306:10;33301:15;;33277:113;;;33408:6;33405:1;33402:13;33399:101;;;33488:1;33479:6;33474:3;33470:16;33463:27;33399:101;33248:258;33199:307;;;:::o;33512:171::-;33551:3;33574:24;33592:5;33574:24;:::i;:::-;33565:33;;33620:4;33613:5;33610:15;33607:41;;;33628:18;;:::i;:::-;33607:41;33675:1;33668:5;33664:13;33657:20;;33512:171;;;:::o;33689:233::-;33728:3;33751:24;33769:5;33751:24;:::i;:::-;33742:33;;33797:66;33790:5;33787:77;33784:103;;;33867:18;;:::i;:::-;33784:103;33914:1;33907:5;33903:13;33896:20;;33689:233;;;:::o;33928:180::-;33976:77;33973:1;33966:88;34073:4;34070:1;34063:15;34097:4;34094:1;34087:15;34114:180;34162:77;34159:1;34152:88;34259:4;34256:1;34249:15;34283:4;34280:1;34273:15;34300:180;34348:77;34345:1;34338:88;34445:4;34442:1;34435:15;34469:4;34466:1;34459:15;34486:180;34534:77;34531:1;34524:88;34631:4;34628:1;34621:15;34655:4;34652:1;34645:15;34672:117;34781:1;34778;34771:12;34795:117;34904:1;34901;34894:12;34918:117;35027:1;35024;35017:12;35041:117;35150:1;35147;35140:12;35164:117;35273:1;35270;35263:12;35287:102;35328:6;35379:2;35375:7;35370:2;35363:5;35359:14;35355:28;35345:38;;35287:102;;;:::o;35395:::-;35437:8;35484:5;35481:1;35477:13;35456:34;;35395:102;;;:::o;35503:171::-;35643:23;35639:1;35631:6;35627:14;35620:47;35503:171;:::o;35680:224::-;35820:34;35816:1;35808:6;35804:14;35797:58;35889:7;35884:2;35876:6;35872:15;35865:32;35680:224;:::o;35910:167::-;36050:19;36046:1;36038:6;36034:14;36027:43;35910:167;:::o;36083:174::-;36223:26;36219:1;36211:6;36207:14;36200:50;36083:174;:::o;36263:172::-;36403:24;36399:1;36391:6;36387:14;36380:48;36263:172;:::o;36441:170::-;36581:22;36577:1;36569:6;36565:14;36558:46;36441:170;:::o;36617:177::-;36757:29;36753:1;36745:6;36741:14;36734:53;36617:177;:::o;36800:179::-;36940:31;36936:1;36928:6;36924:14;36917:55;36800:179;:::o;36985:174::-;37125:26;37121:1;37113:6;37109:14;37102:50;36985:174;:::o;37165:228::-;37305:34;37301:1;37293:6;37289:14;37282:58;37374:11;37369:2;37361:6;37357:15;37350:36;37165:228;:::o;37399:182::-;37539:34;37535:1;37527:6;37523:14;37516:58;37399:182;:::o;37587:171::-;37727:23;37723:1;37715:6;37711:14;37704:47;37587:171;:::o;37764:122::-;37837:24;37855:5;37837:24;:::i;:::-;37830:5;37827:35;37817:63;;37876:1;37873;37866:12;37817:63;37764:122;:::o;37892:116::-;37962:21;37977:5;37962:21;:::i;:::-;37955:5;37952:32;37942:60;;37998:1;37995;37988:12;37942:60;37892:116;:::o;38014:122::-;38087:24;38105:5;38087:24;:::i;:::-;38080:5;38077:35;38067:63;;38126:1;38123;38116:12;38067:63;38014:122;:::o

Swarm Source

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