ETH Price: $2,633.98 (+1.67%)

Token

Arbitrage AI (ARBAi)
 

Overview

Max Total Supply

1,000,000 ARBAi

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
15,293.28394174689264723 ARBAi

Value
$0.00
0x7576876e73265ab493a35511e3fe41b6a3e0523c
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:
ArbAI

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-07
*/

/**
Welcome to $ARBAi, the first machine learning arbitrage trading AI.
Access to the Arbitrage AI Tool will be offered as a staking based subscription service. Keep up with our socials for more info!

https://t.me/ArbAieth
https://www.arbai.tech/
https://twitter.com/ArbAieth

Max txn: 20,000
Max wallet: 20,000

Buy tax: 3%
Sell tax: 3%
*/
// SPDX-License-Identifier: MIT                                                                               
                                                    
pragma solidity 0.8.11;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

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 IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract Ownable is Context {

    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: Transfer from the zero address");
        require(recipient != address(0), "ERC20: Transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: Transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: Mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: Approve from the zero address");
        require(spender != address(0), "ERC20: Approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

interface IDexRouter {

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
}

interface IDexFactory {

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

contract ArbAI is ERC20, Ownable {

    uint256 public tokensForLiquidity;
    uint256 public tokensForMarketing;
    uint256 public tokensForOperations;

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    uint256 public buyLiquidityFee;
    uint256 public buyMarketingFee;
    uint256 public buyOperationsFee;
    uint256 public buyTotalFees;

    uint256 public sellLiquidityFee;
    uint256 public sellMarketingFee;
    uint256 public sellOperationsFee;
    uint256 public sellTotalFees;

    address public marketingAddress = 0x0c0b3455Bf19def51386F76c3dff4FF4F3eF2DCc;
    address public operationsAddress = 0x5Ff4d07961B0E1072B34a2b2e90902B0eA29De0A;

    mapping (address => bool) public _isExcludedMaxTransactionAmount;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => uint256) private _holderLastTransferTimestamp;
    mapping (address => bool) public automatedMarketMakerPairs;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool public swapEnabled = false;
    bool public tradingActive = false;
    bool private swapping;

    uint256 public tradingActiveBlock = 0;
    uint256 public launchedTime;
    uint256 public swapTokensAtBlock = 0;

    bool public limitsInEffect = true;

    event UpdatedMarketingAddress(address indexed newWallet);
    event UpdatedOperationsAddress(address indexed newWallet);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event EnabledTrading();
    event MaxTransactionExclusion(address _address, bool excluded);
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event RemovedLimits();

    constructor() ERC20("Arbitrage AI", "ARBAi") {
        
        address newOwner = msg.sender;
        
        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        
        uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
 
        uint256 totalSupply = 1e6 * 1e18;
        
        maxBuyAmount = totalSupply * 2 / 100;
        maxSellAmount = totalSupply * 2 / 100;
        maxWalletAmount = totalSupply * 2 / 100;

        buyMarketingFee = 5;
        buyLiquidityFee = 0;
        buyOperationsFee = 5;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyOperationsFee;

        sellMarketingFee = 5;
        sellLiquidityFee = 0;
        sellOperationsFee = 10;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellOperationsFee;

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);
        
        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        require(!tradingActive, "Cannot reenable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        launchedTime = block.timestamp;
        emit EnabledTrading();
    }

    function updateMarketingAddress(address _marketingAddress) external onlyOwner {
        require(_marketingAddress != address(0), "_marketingAddress address cannot be 0");
        marketingAddress = payable(_marketingAddress);
        emit UpdatedMarketingAddress(_marketingAddress);
    }

    function updateOperationsAddress(address _operationsAddress) external onlyOwner {
        require(_operationsAddress != address(0), "_operationsAddress address cannot be 0");
        operationsAddress = payable(_operationsAddress);
        emit UpdatedOperationsAddress(_operationsAddress);
    }
    
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        emit RemovedLimits();
    }

    function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _operationsFee) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyLiquidityFee = _liquidityFee;
        buyOperationsFee = _operationsFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyOperationsFee;
    }

    function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _operationsFee) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellLiquidityFee = _liquidityFee;
        sellOperationsFee = _operationsFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellOperationsFee;
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: Transfer from the zero address");
        require(to != address(0), "ERC20: Transfer to the zero address");

         if (amount == 0) {
            return;
        }
        
        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)) {
                if (!tradingActive){
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading has not been activated.");
                }
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxBuyAmount, "Buy amount exceeds the max buy.");
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot exceed max wallet");
                } 
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxSellAmount, "Sell amount exceeds the max sell.");
                } 
                else if (!_isExcludedMaxTransactionAmount[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot exceed max wallet");
                }
            }
        }

        bool canSwap = tradingActiveBlock + swapTokensAtBlock <= block.number;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] 
        && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = true;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        
        uint256 fees = 0;
        uint256 penaltyAmount = 0;

        if (takeFee) {

            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount * sellTotalFees /100;
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForMarketing += fees * sellMarketingFee / sellTotalFees;
                tokensForOperations += fees * sellOperationsFee / sellTotalFees;
            } 
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
        	    fees = amount * buyTotalFees / 100;
        	    tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForMarketing += fees * buyMarketingFee / buyTotalFees;
                tokensForOperations += fees * buyOperationsFee / buyTotalFees;
            }
            
            if (fees > 0) {    
                super._transfer(from, address(this), fees);
            }
        	
        	amount -= fees + penaltyAmount;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {

        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForOperations;
        
        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        bool success;
        
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        
        swapTokensForEth(contractBalance - liquidityTokens); 
        
        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForMarketing = ethBalance * tokensForMarketing / (totalTokensToSwap - (tokensForLiquidity / 2));
        uint256 ethForOperations = ethBalance * tokensForOperations / (totalTokensToSwap - (tokensForLiquidity / 2));

        ethForLiquidity -= ethForMarketing + ethForOperations;
            
        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForOperations = 0;
        
        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success,) = address(operationsAddress).call{value: ethForOperations}("");

        (success,) = address(marketingAddress).call{value: address(this).balance}("");
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(0xdead),
            block.timestamp
        );
    } 
}

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":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedMarketingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedOperationsAddress","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"updateMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operationsAddress","type":"address"}],"name":"updateOperationsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052730c0b3455bf19def51386f76c3dff4ff4f3ef2dcc601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735ff4d07961b0e1072b34a2b2e90902b0ea29de0a601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601a60006101000a81548160ff0219169083151502179055506000601a60016101000a81548160ff0219169083151502179055506000601b556000601d556001601e60006101000a81548160ff0219169083151502179055503480156200011657600080fd5b506040518060400160405280600c81526020017f41726269747261676520414900000000000000000000000000000000000000008152506040518060400160405280600581526020017f415242416900000000000000000000000000000000000000000000000000000081525081600390805190602001906200019b92919062000bc4565b508060049080519060200190620001b492919062000bc4565b5050506000620001c96200061260201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620002998160016200061a60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000319573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033f919062000cde565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cd919062000cde565b6040518363ffffffff1660e01b8152600401620003ec92919062000d21565b6020604051808303816000875af11580156200040c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000432919062000cde565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200047a60a0516001620006b060201b60201c565b600069d3c21bcecceda1000000905060646002826200049a919062000d87565b620004a6919062000e17565b6009819055506064600282620004bd919062000d87565b620004c9919062000e17565b600a819055506064600282620004e0919062000d87565b620004ec919062000e17565b600b819055506005600d819055506000600c819055506005600e81905550600e54600c54600d546200051f919062000e4f565b6200052b919062000e4f565b600f8190555060056011819055506000601081905550600a6012819055506012546010546011546200055e919062000e4f565b6200056a919062000e4f565b601381905550620005838360016200075160201b60201c565b620005963060016200075160201b60201c565b620005ab61dead60016200075160201b60201c565b620005be8360016200061a60201b60201c565b620005d13060016200061a60201b60201c565b620005e661dead60016200061a60201b60201c565b620005f883826200089e60201b60201c565b6200060983620009ef60201b60201c565b50505062001133565b600033905090565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd67468282604051620006a492919062000ec9565b60405180910390a15050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b620007616200061260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620007f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ea9062000f57565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000892919062000f79565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000911576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009089062000fe6565b60405180910390fd5b806002600082825462000925919062000e4f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200097c919062000e4f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009e3919062001019565b60405180910390a35050565b620009ff6200061260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a889062000f57565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000b04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000afb90620010ac565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b82805462000bd290620010fd565b90600052602060002090601f01602090048101928262000bf6576000855562000c42565b82601f1062000c1157805160ff191683800117855562000c42565b8280016001018555821562000c42579182015b8281111562000c4157825182559160200191906001019062000c24565b5b50905062000c51919062000c55565b5090565b5b8082111562000c7057600081600090555060010162000c56565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ca68262000c79565b9050919050565b62000cb88162000c99565b811462000cc457600080fd5b50565b60008151905062000cd88162000cad565b92915050565b60006020828403121562000cf75762000cf662000c74565b5b600062000d078482850162000cc7565b91505092915050565b62000d1b8162000c99565b82525050565b600060408201905062000d38600083018562000d10565b62000d47602083018462000d10565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d948262000d4e565b915062000da18362000d4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ddd5762000ddc62000d58565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e248262000d4e565b915062000e318362000d4e565b92508262000e445762000e4362000de8565b5b828204905092915050565b600062000e5c8262000d4e565b915062000e698362000d4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ea15762000ea062000d58565b5b828201905092915050565b60008115159050919050565b62000ec38162000eac565b82525050565b600060408201905062000ee0600083018562000d10565b62000eef602083018462000eb8565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f3f60208362000ef6565b915062000f4c8262000f07565b602082019050919050565b6000602082019050818103600083015262000f728162000f30565b9050919050565b600060208201905062000f90600083018462000eb8565b92915050565b7f45524332303a204d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000fce601f8362000ef6565b915062000fdb8262000f96565b602082019050919050565b60006020820190508181036000830152620010018162000fbf565b9050919050565b620010138162000d4e565b82525050565b600060208201905062001030600083018462001008565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200109460268362000ef6565b9150620010a18262001036565b604082019050919050565b60006020820190508181036000830152620010c78162001085565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200111657607f821691505b602082108114156200112d576200112c620010ce565b5b50919050565b60805160a05161438f6200118360003960008181610e5e0152611534015260008181610b9501528181612f590152818161303a01528181613061015281816130fd0152613124015261438f6000f3fe60806040526004361061028c5760003560e01c80638095d5641161015a578063bbc0c742116100c1578063ea6debd01161007a578063ea6debd0146109c5578063ee40166e146109ee578063f11a24d314610a19578063f2fde38b14610a44578063f637434214610a6d578063fb002c9714610a9857610293565b8063bbc0c742146108b5578063c0246668146108e0578063c17b5b8c14610909578063d85ba06314610932578063dd62ed3e1461095d578063ea4cfe121461099a57610293565b806395d89b411161011357806395d89b41146107915780639a7a23d6146107bc578063a5ece941146107e5578063a9059cbb14610810578063aa4bde281461084d578063b62496f51461087857610293565b80638095d564146106a557806388e765ff146106ce5780638a8c523c146106f95780638da5cb5b14610710578063921369131461073b57806392769c521461076657610293565b80634a62bb65116101fe5780636a486a8e116101b75780636a486a8e146105b95780636ddd1713146105e457806370a082311461060f578063715018a61461064c578063751039fc146106635780637bce5a041461067a57610293565b80634a62bb65146104a55780634f77f6c0146104d05780634fbee193146104fb5780635804f1e4146105385780635a139dd41461056357806366d602ae1461058e57610293565b80631a8145bb116102505780631a8145bb146103935780631f3fed8f146103be5780632369bf83146103e957806323b872dd14610412578063313ce5671461044f57806349bd5a5e1461047a57610293565b806306fdde0314610298578063095ea7b3146102c357806310d5de53146103005780631694505e1461033d57806318160ddd1461036857610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610ac3565b6040516102ba919061326c565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613327565b610b55565b6040516102f79190613382565b60405180910390f35b34801561030c57600080fd5b506103276004803603810190610322919061339d565b610b73565b6040516103349190613382565b60405180910390f35b34801561034957600080fd5b50610352610b93565b60405161035f9190613429565b60405180910390f35b34801561037457600080fd5b5061037d610bb7565b60405161038a9190613453565b60405180910390f35b34801561039f57600080fd5b506103a8610bc1565b6040516103b59190613453565b60405180910390f35b3480156103ca57600080fd5b506103d3610bc7565b6040516103e09190613453565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b919061339d565b610bcd565b005b34801561041e57600080fd5b506104396004803603810190610434919061346e565b610d5b565b6040516104469190613382565b60405180910390f35b34801561045b57600080fd5b50610464610e53565b60405161047191906134dd565b60405180910390f35b34801561048657600080fd5b5061048f610e5c565b60405161049c9190613507565b60405180910390f35b3480156104b157600080fd5b506104ba610e80565b6040516104c79190613382565b60405180910390f35b3480156104dc57600080fd5b506104e5610e93565b6040516104f29190613453565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d919061339d565b610e99565b60405161052f9190613382565b60405180910390f35b34801561054457600080fd5b5061054d610eef565b60405161055a9190613453565b60405180910390f35b34801561056f57600080fd5b50610578610ef5565b6040516105859190613453565b60405180910390f35b34801561059a57600080fd5b506105a3610efb565b6040516105b09190613453565b60405180910390f35b3480156105c557600080fd5b506105ce610f01565b6040516105db9190613453565b60405180910390f35b3480156105f057600080fd5b506105f9610f07565b6040516106069190613382565b60405180910390f35b34801561061b57600080fd5b506106366004803603810190610631919061339d565b610f1a565b6040516106439190613453565b60405180910390f35b34801561065857600080fd5b50610661610f62565b005b34801561066f57600080fd5b506106786110ba565b005b34801561068657600080fd5b5061068f61119a565b60405161069c9190613453565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613522565b6111a0565b005b3480156106da57600080fd5b506106e3611274565b6040516106f09190613453565b60405180910390f35b34801561070557600080fd5b5061070e61127a565b005b34801561071c57600080fd5b506107256113d3565b6040516107329190613507565b60405180910390f35b34801561074757600080fd5b506107506113fd565b60405161075d9190613453565b60405180910390f35b34801561077257600080fd5b5061077b611403565b6040516107889190613453565b60405180910390f35b34801561079d57600080fd5b506107a6611409565b6040516107b3919061326c565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de91906135a1565b61149b565b005b3480156107f157600080fd5b506107fa6115cf565b6040516108079190613507565b60405180910390f35b34801561081c57600080fd5b5061083760048036038101906108329190613327565b6115f5565b6040516108449190613382565b60405180910390f35b34801561085957600080fd5b50610862611613565b60405161086f9190613453565b60405180910390f35b34801561088457600080fd5b5061089f600480360381019061089a919061339d565b611619565b6040516108ac9190613382565b60405180910390f35b3480156108c157600080fd5b506108ca611639565b6040516108d79190613382565b60405180910390f35b3480156108ec57600080fd5b50610907600480360381019061090291906135a1565b61164c565b005b34801561091557600080fd5b50610930600480360381019061092b9190613522565b61178c565b005b34801561093e57600080fd5b50610947611860565b6040516109549190613453565b60405180910390f35b34801561096957600080fd5b50610984600480360381019061097f91906135e1565b611866565b6040516109919190613453565b60405180910390f35b3480156109a657600080fd5b506109af6118ed565b6040516109bc9190613507565b60405180910390f35b3480156109d157600080fd5b506109ec60048036038101906109e7919061339d565b611913565b005b3480156109fa57600080fd5b50610a03611aa1565b604051610a109190613453565b60405180910390f35b348015610a2557600080fd5b50610a2e611aa7565b604051610a3b9190613453565b60405180910390f35b348015610a5057600080fd5b50610a6b6004803603810190610a66919061339d565b611aad565b005b348015610a7957600080fd5b50610a82611c74565b604051610a8f9190613453565b60405180910390f35b348015610aa457600080fd5b50610aad611c7a565b604051610aba9190613453565b60405180910390f35b606060038054610ad290613650565b80601f0160208091040260200160405190810160405280929190818152602001828054610afe90613650565b8015610b4b5780601f10610b2057610100808354040283529160200191610b4b565b820191906000526020600020905b815481529060010190602001808311610b2e57829003601f168201915b5050505050905090565b6000610b69610b62611c80565b8484611c88565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60065481565b60075481565b610bd5611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b906136ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613760565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fd1e7d6a3390dd5008bd1c57798817b9f806e4c417264e7d3d67e42e784dc24a960405160405180910390a250565b6000610d68848484611e53565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610db3611c80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a906137f2565b60405180910390fd5b610e4785610e3f611c80565b858403611c88565b60019150509392505050565b60006012905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b601e60009054906101000a900460ff1681565b60125481565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601c5481565b600e5481565b600a5481565b60135481565b601a60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f6a611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff0906136ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110c2611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611148906136ce565b60405180910390fd5b6000601e60006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b600d5481565b6111a8611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e906136ce565b60405180910390fd5b82600d8190555081600c8190555080600e81905550600e54600c54600d5461125f9190613841565b6112699190613841565b600f81905550505050565b60095481565b611282611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611308906136ce565b60405180910390fd5b601a60019054906101000a900460ff1615611361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611358906138e3565b60405180910390fd5b6001601a60016101000a81548160ff0219169083151502179055506001601a60006101000a81548160ff02191690831515021790555043601b8190555042601c819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b601d5481565b60606004805461141890613650565b80601f016020809104026020016040519081016040528092919081815260200182805461144490613650565b80156114915780601f1061146657610100808354040283529160200191611491565b820191906000526020600020905b81548152906001019060200180831161147457829003601f168201915b5050505050905090565b6114a3611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611532576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611529906136ce565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890613975565b60405180910390fd5b6115cb8282612939565b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611609611602611c80565b8484611e53565b6001905092915050565b600b5481565b60196020528060005260406000206000915054906101000a900460ff1681565b601a60019054906101000a900460ff1681565b611654611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da906136ce565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117809190613382565b60405180910390a25050565b611794611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a906136ce565b60405180910390fd5b82601181905550816010819055508060128190555060125460105460115461184b9190613841565b6118559190613841565b601381905550505050565b600f5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61191b611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a1906136ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1190613a07565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298260405160405180910390a250565b601b5481565b600c5481565b611ab5611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b906136ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90613a99565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b60085481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef90613b2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5f90613bbd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e469190613453565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba90613c4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613ce1565b60405180910390fd5b6000811415611f4157612934565b601e60009054906101000a900460ff161561247b57611f5e6113d3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fcc5750611f9c6113d3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120055750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561203f575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561247a57601a60019054906101000a900460ff1661213957601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120f95750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212f90613d4d565b60405180910390fd5b5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121dc5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561228357600954811115612226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221d90613db9565b60405180910390fd5b600b5461223283610f1a565b8261223d9190613841565b111561227e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227590613e25565b60405180910390fd5b612479565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123265750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561237557600a54811115612370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236790613eb7565b60405180910390fd5b612478565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124195750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561247757600b5461242a83610f1a565b826124359190613841565b1115612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246d90613e25565b60405180910390fd5b5b5b5b5b5b600043601d54601b5461248e9190613841565b111590508080156124ab5750601a60009054906101000a900460ff165b80156124c45750601a60029054906101000a900460ff16155b801561251a5750601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125705750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125c65750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561260a576001601a60026101000a81548160ff0219169083151502179055506125ee6129da565b6000601a60026101000a81548160ff0219169083151502179055505b600060019050601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126b15750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126bb57600090505b600080821561292457601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561271f57506000601354115b156127de576064601354866127349190613ed7565b61273e9190613f60565b9150601354601054836127519190613ed7565b61275b9190613f60565b6006600082825461276c9190613841565b92505081905550601354601154836127849190613ed7565b61278e9190613f60565b6007600082825461279f9190613841565b92505081905550601354601254836127b79190613ed7565b6127c19190613f60565b600860008282546127d29190613841565b925050819055506128f5565b601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561283957506000600f54115b156128f4576064600f548661284e9190613ed7565b6128589190613f60565b9150600f54600c548361286b9190613ed7565b6128759190613f60565b600660008282546128869190613841565b92505081905550600f54600d548361289e9190613ed7565b6128a89190613f60565b600760008282546128b99190613841565b92505081905550600f54600e54836128d19190613ed7565b6128db9190613f60565b600860008282546128ec9190613841565b925050819055505b5b600082111561290a57612909873084612c4f565b5b80826129169190613841565b856129219190613f91565b94505b61292f878787612c4f565b505050505b505050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006129e530610f1a565b905060006008546007546006546129fc9190613841565b612a069190613841565b90506000821480612a175750600081145b15612a23575050612c4d565b60008060028360065486612a379190613ed7565b612a419190613f60565b612a4b9190613f60565b9050612a618185612a5c9190613f91565b612eba565b6000479050600081905060006002600654612a7c9190613f60565b86612a879190613f91565b60075484612a959190613ed7565b612a9f9190613f60565b905060006002600654612ab29190613f60565b87612abd9190613f91565b60085485612acb9190613ed7565b612ad59190613f60565b90508082612ae39190613841565b83612aee9190613f91565b9250600060068190555060006007819055506000600881905550600085118015612b185750600083115b15612b2857612b2785846130f7565b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051612b6e90613ff6565b60006040518083038185875af1925050503d8060008114612bab576040519150601f19603f3d011682016040523d82523d6000602084013e612bb0565b606091505b505080965050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612bfc90613ff6565b60006040518083038185875af1925050503d8060008114612c39576040519150601f19603f3d011682016040523d82523d6000602084013e612c3e565b606091505b50508096505050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb690613c4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2690613ce1565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dac9061407d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e489190613841565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612eac9190613453565b60405180910390a350505050565b6000600267ffffffffffffffff811115612ed757612ed661409d565b5b604051908082528060200260200182016040528015612f055781602001602082028036833780820191505090505b5090503081600081518110612f1d57612f1c6140cc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe69190614110565b81600181518110612ffa57612ff96140cc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305f307f000000000000000000000000000000000000000000000000000000000000000084611c88565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130c1959493929190614236565b600060405180830381600087803b1580156130db57600080fd5b505af11580156130ef573d6000803e3d6000fd5b505050505050565b613122307f000000000000000000000000000000000000000000000000000000000000000084611c88565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161318996959493929190614290565b60606040518083038185885af11580156131a7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131cc9190614306565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561320d5780820151818401526020810190506131f2565b8381111561321c576000848401525b50505050565b6000601f19601f8301169050919050565b600061323e826131d3565b61324881856131de565b93506132588185602086016131ef565b61326181613222565b840191505092915050565b600060208201905081810360008301526132868184613233565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132be82613293565b9050919050565b6132ce816132b3565b81146132d957600080fd5b50565b6000813590506132eb816132c5565b92915050565b6000819050919050565b613304816132f1565b811461330f57600080fd5b50565b600081359050613321816132fb565b92915050565b6000806040838503121561333e5761333d61328e565b5b600061334c858286016132dc565b925050602061335d85828601613312565b9150509250929050565b60008115159050919050565b61337c81613367565b82525050565b60006020820190506133976000830184613373565b92915050565b6000602082840312156133b3576133b261328e565b5b60006133c1848285016132dc565b91505092915050565b6000819050919050565b60006133ef6133ea6133e584613293565b6133ca565b613293565b9050919050565b6000613401826133d4565b9050919050565b6000613413826133f6565b9050919050565b61342381613408565b82525050565b600060208201905061343e600083018461341a565b92915050565b61344d816132f1565b82525050565b60006020820190506134686000830184613444565b92915050565b6000806000606084860312156134875761348661328e565b5b6000613495868287016132dc565b93505060206134a6868287016132dc565b92505060406134b786828701613312565b9150509250925092565b600060ff82169050919050565b6134d7816134c1565b82525050565b60006020820190506134f260008301846134ce565b92915050565b613501816132b3565b82525050565b600060208201905061351c60008301846134f8565b92915050565b60008060006060848603121561353b5761353a61328e565b5b600061354986828701613312565b935050602061355a86828701613312565b925050604061356b86828701613312565b9150509250925092565b61357e81613367565b811461358957600080fd5b50565b60008135905061359b81613575565b92915050565b600080604083850312156135b8576135b761328e565b5b60006135c6858286016132dc565b92505060206135d78582860161358c565b9150509250929050565b600080604083850312156135f8576135f761328e565b5b6000613606858286016132dc565b9250506020613617858286016132dc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061366857607f821691505b6020821081141561367c5761367b613621565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136b86020836131de565b91506136c382613682565b602082019050919050565b600060208201905081810360008301526136e7816136ab565b9050919050565b7f5f6d61726b6574696e674164647265737320616464726573732063616e6e6f7460008201527f2062652030000000000000000000000000000000000000000000000000000000602082015250565b600061374a6025836131de565b9150613755826136ee565b604082019050919050565b600060208201905081810360008301526137798161373d565b9050919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006137dc6028836131de565b91506137e782613780565b604082019050919050565b6000602082019050818103600083015261380b816137cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061384c826132f1565b9150613857836132f1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561388c5761388b613812565b5b828201905092915050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b60006138cd6017836131de565b91506138d882613897565b602082019050919050565b600060208201905081810360008301526138fc816138c0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061395f6039836131de565b915061396a82613903565b604082019050919050565b6000602082019050818103600083015261398e81613952565b9050919050565b7f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60008201527f7420626520300000000000000000000000000000000000000000000000000000602082015250565b60006139f16026836131de565b91506139fc82613995565b604082019050919050565b60006020820190508181036000830152613a20816139e4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a836026836131de565b9150613a8e82613a27565b604082019050919050565b60006020820190508181036000830152613ab281613a76565b9050919050565b7f45524332303a20417070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b156024836131de565b9150613b2082613ab9565b604082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b7f45524332303a20417070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba76022836131de565b9150613bb282613b4b565b604082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c396025836131de565b9150613c4482613bdd565b604082019050919050565b60006020820190508181036000830152613c6881613c2c565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ccb6023836131de565b9150613cd682613c6f565b604082019050919050565b60006020820190508181036000830152613cfa81613cbe565b9050919050565b7f54726164696e6720686173206e6f74206265656e206163746976617465642e00600082015250565b6000613d37601f836131de565b9150613d4282613d01565b602082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178206275792e00600082015250565b6000613da3601f836131de565b9150613dae82613d6d565b602082019050919050565b60006020820190508181036000830152613dd281613d96565b9050919050565b7f43616e6e6f7420657863656564206d61782077616c6c65740000000000000000600082015250565b6000613e0f6018836131de565b9150613e1a82613dd9565b602082019050919050565b60006020820190508181036000830152613e3e81613e02565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d61782073656c6c60008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ea16021836131de565b9150613eac82613e45565b604082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b6000613ee2826132f1565b9150613eed836132f1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f2657613f25613812565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f6b826132f1565b9150613f76836132f1565b925082613f8657613f85613f31565b5b828204905092915050565b6000613f9c826132f1565b9150613fa7836132f1565b925082821015613fba57613fb9613812565b5b828203905092915050565b600081905092915050565b50565b6000613fe0600083613fc5565b9150613feb82613fd0565b600082019050919050565b600061400182613fd3565b9150819050919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006140676026836131de565b91506140728261400b565b604082019050919050565b600060208201905081810360008301526140968161405a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061410a816132c5565b92915050565b6000602082840312156141265761412561328e565b5b6000614134848285016140fb565b91505092915050565b6000819050919050565b600061416261415d6141588461413d565b6133ca565b6132f1565b9050919050565b61417281614147565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141ad816132b3565b82525050565b60006141bf83836141a4565b60208301905092915050565b6000602082019050919050565b60006141e382614178565b6141ed8185614183565b93506141f883614194565b8060005b8381101561422957815161421088826141b3565b975061421b836141cb565b9250506001810190506141fc565b5085935050505092915050565b600060a08201905061424b6000830188613444565b6142586020830187614169565b818103604083015261426a81866141d8565b905061427960608301856134f8565b6142866080830184613444565b9695505050505050565b600060c0820190506142a560008301896134f8565b6142b26020830188613444565b6142bf6040830187614169565b6142cc6060830186614169565b6142d960808301856134f8565b6142e660a0830184613444565b979650505050505050565b600081519050614300816132fb565b92915050565b60008060006060848603121561431f5761431e61328e565b5b600061432d868287016142f1565b935050602061433e868287016142f1565b925050604061434f868287016142f1565b915050925092509256fea26469706673582212203c854ac510d82e9e89639cfdf71e3d9a118f0ed8acedb9f3e5ee7880f76003f964736f6c634300080b0033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c80638095d5641161015a578063bbc0c742116100c1578063ea6debd01161007a578063ea6debd0146109c5578063ee40166e146109ee578063f11a24d314610a19578063f2fde38b14610a44578063f637434214610a6d578063fb002c9714610a9857610293565b8063bbc0c742146108b5578063c0246668146108e0578063c17b5b8c14610909578063d85ba06314610932578063dd62ed3e1461095d578063ea4cfe121461099a57610293565b806395d89b411161011357806395d89b41146107915780639a7a23d6146107bc578063a5ece941146107e5578063a9059cbb14610810578063aa4bde281461084d578063b62496f51461087857610293565b80638095d564146106a557806388e765ff146106ce5780638a8c523c146106f95780638da5cb5b14610710578063921369131461073b57806392769c521461076657610293565b80634a62bb65116101fe5780636a486a8e116101b75780636a486a8e146105b95780636ddd1713146105e457806370a082311461060f578063715018a61461064c578063751039fc146106635780637bce5a041461067a57610293565b80634a62bb65146104a55780634f77f6c0146104d05780634fbee193146104fb5780635804f1e4146105385780635a139dd41461056357806366d602ae1461058e57610293565b80631a8145bb116102505780631a8145bb146103935780631f3fed8f146103be5780632369bf83146103e957806323b872dd14610412578063313ce5671461044f57806349bd5a5e1461047a57610293565b806306fdde0314610298578063095ea7b3146102c357806310d5de53146103005780631694505e1461033d57806318160ddd1461036857610293565b3661029357005b600080fd5b3480156102a457600080fd5b506102ad610ac3565b6040516102ba919061326c565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190613327565b610b55565b6040516102f79190613382565b60405180910390f35b34801561030c57600080fd5b506103276004803603810190610322919061339d565b610b73565b6040516103349190613382565b60405180910390f35b34801561034957600080fd5b50610352610b93565b60405161035f9190613429565b60405180910390f35b34801561037457600080fd5b5061037d610bb7565b60405161038a9190613453565b60405180910390f35b34801561039f57600080fd5b506103a8610bc1565b6040516103b59190613453565b60405180910390f35b3480156103ca57600080fd5b506103d3610bc7565b6040516103e09190613453565b60405180910390f35b3480156103f557600080fd5b50610410600480360381019061040b919061339d565b610bcd565b005b34801561041e57600080fd5b506104396004803603810190610434919061346e565b610d5b565b6040516104469190613382565b60405180910390f35b34801561045b57600080fd5b50610464610e53565b60405161047191906134dd565b60405180910390f35b34801561048657600080fd5b5061048f610e5c565b60405161049c9190613507565b60405180910390f35b3480156104b157600080fd5b506104ba610e80565b6040516104c79190613382565b60405180910390f35b3480156104dc57600080fd5b506104e5610e93565b6040516104f29190613453565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d919061339d565b610e99565b60405161052f9190613382565b60405180910390f35b34801561054457600080fd5b5061054d610eef565b60405161055a9190613453565b60405180910390f35b34801561056f57600080fd5b50610578610ef5565b6040516105859190613453565b60405180910390f35b34801561059a57600080fd5b506105a3610efb565b6040516105b09190613453565b60405180910390f35b3480156105c557600080fd5b506105ce610f01565b6040516105db9190613453565b60405180910390f35b3480156105f057600080fd5b506105f9610f07565b6040516106069190613382565b60405180910390f35b34801561061b57600080fd5b506106366004803603810190610631919061339d565b610f1a565b6040516106439190613453565b60405180910390f35b34801561065857600080fd5b50610661610f62565b005b34801561066f57600080fd5b506106786110ba565b005b34801561068657600080fd5b5061068f61119a565b60405161069c9190613453565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190613522565b6111a0565b005b3480156106da57600080fd5b506106e3611274565b6040516106f09190613453565b60405180910390f35b34801561070557600080fd5b5061070e61127a565b005b34801561071c57600080fd5b506107256113d3565b6040516107329190613507565b60405180910390f35b34801561074757600080fd5b506107506113fd565b60405161075d9190613453565b60405180910390f35b34801561077257600080fd5b5061077b611403565b6040516107889190613453565b60405180910390f35b34801561079d57600080fd5b506107a6611409565b6040516107b3919061326c565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de91906135a1565b61149b565b005b3480156107f157600080fd5b506107fa6115cf565b6040516108079190613507565b60405180910390f35b34801561081c57600080fd5b5061083760048036038101906108329190613327565b6115f5565b6040516108449190613382565b60405180910390f35b34801561085957600080fd5b50610862611613565b60405161086f9190613453565b60405180910390f35b34801561088457600080fd5b5061089f600480360381019061089a919061339d565b611619565b6040516108ac9190613382565b60405180910390f35b3480156108c157600080fd5b506108ca611639565b6040516108d79190613382565b60405180910390f35b3480156108ec57600080fd5b50610907600480360381019061090291906135a1565b61164c565b005b34801561091557600080fd5b50610930600480360381019061092b9190613522565b61178c565b005b34801561093e57600080fd5b50610947611860565b6040516109549190613453565b60405180910390f35b34801561096957600080fd5b50610984600480360381019061097f91906135e1565b611866565b6040516109919190613453565b60405180910390f35b3480156109a657600080fd5b506109af6118ed565b6040516109bc9190613507565b60405180910390f35b3480156109d157600080fd5b506109ec60048036038101906109e7919061339d565b611913565b005b3480156109fa57600080fd5b50610a03611aa1565b604051610a109190613453565b60405180910390f35b348015610a2557600080fd5b50610a2e611aa7565b604051610a3b9190613453565b60405180910390f35b348015610a5057600080fd5b50610a6b6004803603810190610a66919061339d565b611aad565b005b348015610a7957600080fd5b50610a82611c74565b604051610a8f9190613453565b60405180910390f35b348015610aa457600080fd5b50610aad611c7a565b604051610aba9190613453565b60405180910390f35b606060038054610ad290613650565b80601f0160208091040260200160405190810160405280929190818152602001828054610afe90613650565b8015610b4b5780601f10610b2057610100808354040283529160200191610b4b565b820191906000526020600020905b815481529060010190602001808311610b2e57829003601f168201915b5050505050905090565b6000610b69610b62611c80565b8484611c88565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60065481565b60075481565b610bd5611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b906136ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613760565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fd1e7d6a3390dd5008bd1c57798817b9f806e4c417264e7d3d67e42e784dc24a960405160405180910390a250565b6000610d68848484611e53565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610db3611c80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a906137f2565b60405180910390fd5b610e4785610e3f611c80565b858403611c88565b60019150509392505050565b60006012905090565b7f0000000000000000000000008ac8979c92f892dd29a8f83214994c21a380926b81565b601e60009054906101000a900460ff1681565b60125481565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601c5481565b600e5481565b600a5481565b60135481565b601a60009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f6a611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff0906136ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110c2611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611151576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611148906136ce565b60405180910390fd5b6000601e60006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b600d5481565b6111a8611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e906136ce565b60405180910390fd5b82600d8190555081600c8190555080600e81905550600e54600c54600d5461125f9190613841565b6112699190613841565b600f81905550505050565b60095481565b611282611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611308906136ce565b60405180910390fd5b601a60019054906101000a900460ff1615611361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611358906138e3565b60405180910390fd5b6001601a60016101000a81548160ff0219169083151502179055506001601a60006101000a81548160ff02191690831515021790555043601b8190555042601c819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b601d5481565b60606004805461141890613650565b80601f016020809104026020016040519081016040528092919081815260200182805461144490613650565b80156114915780601f1061146657610100808354040283529160200191611491565b820191906000526020600020905b81548152906001019060200180831161147457829003601f168201915b5050505050905090565b6114a3611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611532576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611529906136ce565b60405180910390fd5b7f0000000000000000000000008ac8979c92f892dd29a8f83214994c21a380926b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890613975565b60405180910390fd5b6115cb8282612939565b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611609611602611c80565b8484611e53565b6001905092915050565b600b5481565b60196020528060005260406000206000915054906101000a900460ff1681565b601a60019054906101000a900460ff1681565b611654611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da906136ce565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117809190613382565b60405180910390a25050565b611794611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a906136ce565b60405180910390fd5b82601181905550816010819055508060128190555060125460105460115461184b9190613841565b6118559190613841565b601381905550505050565b600f5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61191b611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a1906136ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1190613a07565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298260405160405180910390a250565b601b5481565b600c5481565b611ab5611c80565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b906136ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90613a99565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60105481565b60085481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef90613b2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5f90613bbd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e469190613453565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba90613c4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90613ce1565b60405180910390fd5b6000811415611f4157612934565b601e60009054906101000a900460ff161561247b57611f5e6113d3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fcc5750611f9c6113d3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120055750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561203f575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561247a57601a60019054906101000a900460ff1661213957601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120f95750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612138576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212f90613d4d565b60405180910390fd5b5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121dc5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561228357600954811115612226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221d90613db9565b60405180910390fd5b600b5461223283610f1a565b8261223d9190613841565b111561227e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227590613e25565b60405180910390fd5b612479565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123265750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561237557600a54811115612370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236790613eb7565b60405180910390fd5b612478565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124195750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561247757600b5461242a83610f1a565b826124359190613841565b1115612476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246d90613e25565b60405180910390fd5b5b5b5b5b5b600043601d54601b5461248e9190613841565b111590508080156124ab5750601a60009054906101000a900460ff165b80156124c45750601a60029054906101000a900460ff16155b801561251a5750601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125705750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125c65750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561260a576001601a60026101000a81548160ff0219169083151502179055506125ee6129da565b6000601a60026101000a81548160ff0219169083151502179055505b600060019050601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126b15750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126bb57600090505b600080821561292457601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561271f57506000601354115b156127de576064601354866127349190613ed7565b61273e9190613f60565b9150601354601054836127519190613ed7565b61275b9190613f60565b6006600082825461276c9190613841565b92505081905550601354601154836127849190613ed7565b61278e9190613f60565b6007600082825461279f9190613841565b92505081905550601354601254836127b79190613ed7565b6127c19190613f60565b600860008282546127d29190613841565b925050819055506128f5565b601960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561283957506000600f54115b156128f4576064600f548661284e9190613ed7565b6128589190613f60565b9150600f54600c548361286b9190613ed7565b6128759190613f60565b600660008282546128869190613841565b92505081905550600f54600d548361289e9190613ed7565b6128a89190613f60565b600760008282546128b99190613841565b92505081905550600f54600e54836128d19190613ed7565b6128db9190613f60565b600860008282546128ec9190613841565b925050819055505b5b600082111561290a57612909873084612c4f565b5b80826129169190613841565b856129219190613f91565b94505b61292f878787612c4f565b505050505b505050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006129e530610f1a565b905060006008546007546006546129fc9190613841565b612a069190613841565b90506000821480612a175750600081145b15612a23575050612c4d565b60008060028360065486612a379190613ed7565b612a419190613f60565b612a4b9190613f60565b9050612a618185612a5c9190613f91565b612eba565b6000479050600081905060006002600654612a7c9190613f60565b86612a879190613f91565b60075484612a959190613ed7565b612a9f9190613f60565b905060006002600654612ab29190613f60565b87612abd9190613f91565b60085485612acb9190613ed7565b612ad59190613f60565b90508082612ae39190613841565b83612aee9190613f91565b9250600060068190555060006007819055506000600881905550600085118015612b185750600083115b15612b2857612b2785846130f7565b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051612b6e90613ff6565b60006040518083038185875af1925050503d8060008114612bab576040519150601f19603f3d011682016040523d82523d6000602084013e612bb0565b606091505b505080965050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612bfc90613ff6565b60006040518083038185875af1925050503d8060008114612c39576040519150601f19603f3d011682016040523d82523d6000602084013e612c3e565b606091505b50508096505050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb690613c4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2690613ce1565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dac9061407d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e489190613841565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612eac9190613453565b60405180910390a350505050565b6000600267ffffffffffffffff811115612ed757612ed661409d565b5b604051908082528060200260200182016040528015612f055781602001602082028036833780820191505090505b5090503081600081518110612f1d57612f1c6140cc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe69190614110565b81600181518110612ffa57612ff96140cc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611c88565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130c1959493929190614236565b600060405180830381600087803b1580156130db57600080fd5b505af11580156130ef573d6000803e3d6000fd5b505050505050565b613122307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611c88565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161318996959493929190614290565b60606040518083038185885af11580156131a7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131cc9190614306565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561320d5780820151818401526020810190506131f2565b8381111561321c576000848401525b50505050565b6000601f19601f8301169050919050565b600061323e826131d3565b61324881856131de565b93506132588185602086016131ef565b61326181613222565b840191505092915050565b600060208201905081810360008301526132868184613233565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132be82613293565b9050919050565b6132ce816132b3565b81146132d957600080fd5b50565b6000813590506132eb816132c5565b92915050565b6000819050919050565b613304816132f1565b811461330f57600080fd5b50565b600081359050613321816132fb565b92915050565b6000806040838503121561333e5761333d61328e565b5b600061334c858286016132dc565b925050602061335d85828601613312565b9150509250929050565b60008115159050919050565b61337c81613367565b82525050565b60006020820190506133976000830184613373565b92915050565b6000602082840312156133b3576133b261328e565b5b60006133c1848285016132dc565b91505092915050565b6000819050919050565b60006133ef6133ea6133e584613293565b6133ca565b613293565b9050919050565b6000613401826133d4565b9050919050565b6000613413826133f6565b9050919050565b61342381613408565b82525050565b600060208201905061343e600083018461341a565b92915050565b61344d816132f1565b82525050565b60006020820190506134686000830184613444565b92915050565b6000806000606084860312156134875761348661328e565b5b6000613495868287016132dc565b93505060206134a6868287016132dc565b92505060406134b786828701613312565b9150509250925092565b600060ff82169050919050565b6134d7816134c1565b82525050565b60006020820190506134f260008301846134ce565b92915050565b613501816132b3565b82525050565b600060208201905061351c60008301846134f8565b92915050565b60008060006060848603121561353b5761353a61328e565b5b600061354986828701613312565b935050602061355a86828701613312565b925050604061356b86828701613312565b9150509250925092565b61357e81613367565b811461358957600080fd5b50565b60008135905061359b81613575565b92915050565b600080604083850312156135b8576135b761328e565b5b60006135c6858286016132dc565b92505060206135d78582860161358c565b9150509250929050565b600080604083850312156135f8576135f761328e565b5b6000613606858286016132dc565b9250506020613617858286016132dc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061366857607f821691505b6020821081141561367c5761367b613621565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136b86020836131de565b91506136c382613682565b602082019050919050565b600060208201905081810360008301526136e7816136ab565b9050919050565b7f5f6d61726b6574696e674164647265737320616464726573732063616e6e6f7460008201527f2062652030000000000000000000000000000000000000000000000000000000602082015250565b600061374a6025836131de565b9150613755826136ee565b604082019050919050565b600060208201905081810360008301526137798161373d565b9050919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006137dc6028836131de565b91506137e782613780565b604082019050919050565b6000602082019050818103600083015261380b816137cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061384c826132f1565b9150613857836132f1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561388c5761388b613812565b5b828201905092915050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b60006138cd6017836131de565b91506138d882613897565b602082019050919050565b600060208201905081810360008301526138fc816138c0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061395f6039836131de565b915061396a82613903565b604082019050919050565b6000602082019050818103600083015261398e81613952565b9050919050565b7f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60008201527f7420626520300000000000000000000000000000000000000000000000000000602082015250565b60006139f16026836131de565b91506139fc82613995565b604082019050919050565b60006020820190508181036000830152613a20816139e4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a836026836131de565b9150613a8e82613a27565b604082019050919050565b60006020820190508181036000830152613ab281613a76565b9050919050565b7f45524332303a20417070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b156024836131de565b9150613b2082613ab9565b604082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b7f45524332303a20417070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ba76022836131de565b9150613bb282613b4b565b604082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c396025836131de565b9150613c4482613bdd565b604082019050919050565b60006020820190508181036000830152613c6881613c2c565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ccb6023836131de565b9150613cd682613c6f565b604082019050919050565b60006020820190508181036000830152613cfa81613cbe565b9050919050565b7f54726164696e6720686173206e6f74206265656e206163746976617465642e00600082015250565b6000613d37601f836131de565b9150613d4282613d01565b602082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178206275792e00600082015250565b6000613da3601f836131de565b9150613dae82613d6d565b602082019050919050565b60006020820190508181036000830152613dd281613d96565b9050919050565b7f43616e6e6f7420657863656564206d61782077616c6c65740000000000000000600082015250565b6000613e0f6018836131de565b9150613e1a82613dd9565b602082019050919050565b60006020820190508181036000830152613e3e81613e02565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d61782073656c6c60008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ea16021836131de565b9150613eac82613e45565b604082019050919050565b60006020820190508181036000830152613ed081613e94565b9050919050565b6000613ee2826132f1565b9150613eed836132f1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f2657613f25613812565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f6b826132f1565b9150613f76836132f1565b925082613f8657613f85613f31565b5b828204905092915050565b6000613f9c826132f1565b9150613fa7836132f1565b925082821015613fba57613fb9613812565b5b828203905092915050565b600081905092915050565b50565b6000613fe0600083613fc5565b9150613feb82613fd0565b600082019050919050565b600061400182613fd3565b9150819050919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006140676026836131de565b91506140728261400b565b604082019050919050565b600060208201905081810360008301526140968161405a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061410a816132c5565b92915050565b6000602082840312156141265761412561328e565b5b6000614134848285016140fb565b91505092915050565b6000819050919050565b600061416261415d6141588461413d565b6133ca565b6132f1565b9050919050565b61417281614147565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6141ad816132b3565b82525050565b60006141bf83836141a4565b60208301905092915050565b6000602082019050919050565b60006141e382614178565b6141ed8185614183565b93506141f883614194565b8060005b8381101561422957815161421088826141b3565b975061421b836141cb565b9250506001810190506141fc565b5085935050505092915050565b600060a08201905061424b6000830188613444565b6142586020830187614169565b818103604083015261426a81866141d8565b905061427960608301856134f8565b6142866080830184613444565b9695505050505050565b600060c0820190506142a560008301896134f8565b6142b26020830188613444565b6142bf6040830187614169565b6142cc6060830186614169565b6142d960808301856134f8565b6142e660a0830184613444565b979650505050505050565b600081519050614300816132fb565b92915050565b60008060006060848603121561431f5761431e61328e565b5b600061432d868287016142f1565b935050602061433e868287016142f1565b925050604061434f868287016142f1565b915050925092509256fea26469706673582212203c854ac510d82e9e89639cfdf71e3d9a118f0ed8acedb9f3e5ee7880f76003f964736f6c634300080b0033

Deployed Bytecode Sourcemap

6860:11262:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3108:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4022:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7602:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7872:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3429:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6902:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6942;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10525:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4199:490;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3328:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7922:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8200:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7357:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11665:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8121:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7207:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7059:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7396;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7969:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2293:150;;;;;;;;;;;;;:::i;:::-;;11137:115;;;;;;;;;;;;;:::i;:::-;;7170:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11799:326;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7025:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10227:290;;;;;;;;;;;;;:::i;:::-;;2079:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7319:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8155:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3216:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12669:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7433:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3680:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7094:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7805:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8007:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11475:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12133:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7245:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3863:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7516:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10825:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8077:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7133:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2451:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7281:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6982:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3108:100;3162:13;3195:5;3188:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3108:100;:::o;4022:169::-;4105:4;4122:39;4131:12;:10;:12::i;:::-;4145:7;4154:6;4122:8;:39::i;:::-;4179:4;4172:11;;4022:169;;;;:::o;7602:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;7872:43::-;;;:::o;3429:108::-;3490:7;3517:12;;3510:19;;3429:108;:::o;6902:33::-;;;;:::o;6942:::-;;;;:::o;10525:292::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10651:1:::1;10622:31;;:17;:31;;;;10614:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10733:17;10706:16;;:45;;;;;;;;;;;;;;;;;;10791:17;10767:42;;;;;;;;;;;;10525:292:::0;:::o;4199:490::-;4339:4;4356:36;4366:6;4374:9;4385:6;4356:9;:36::i;:::-;4405:24;4432:11;:19;4444:6;4432:19;;;;;;;;;;;;;;;:33;4452:12;:10;:12::i;:::-;4432:33;;;;;;;;;;;;;;;;4405:60;;4504:6;4484:16;:26;;4476:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4591:57;4600:6;4608:12;:10;:12::i;:::-;4641:6;4622:16;:25;4591:8;:57::i;:::-;4677:4;4670:11;;;4199:490;;;;;:::o;3328:93::-;3386:5;3411:2;3404:9;;3328:93;:::o;7922:38::-;;;:::o;8200:33::-;;;;;;;;;;;;;:::o;7357:32::-;;;;:::o;11665:126::-;11731:4;11755:19;:28;11775:7;11755:28;;;;;;;;;;;;;;;;;;;;;;;;;11748:35;;11665:126;;;:::o;8121:27::-;;;;:::o;7207:31::-;;;;:::o;7059:28::-;;;;:::o;7396:::-;;;;:::o;7969:31::-;;;;;;;;;;;;;:::o;3545:127::-;3619:7;3646:9;:18;3656:7;3646:18;;;;;;;;;;;;;;;;3639:25;;3545:127;;;:::o;2293:150::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2402:1:::1;2365:40;;2386:6;;;;;;;;;;;2365:40;;;;;;;;;;;;2433:1;2416:6;;:19;;;;;;;;;;;;;;;;;;2293:150::o:0;11137:115::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11208:5:::1;11191:14;;:22;;;;;;;;;;;;;;;;;;11229:15;;;;;;;;;;11137:115::o:0;7170:30::-;;;;:::o;11799:326::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11940:13:::1;11922:15;:31;;;;11982:13;11964:15;:31;;;;12025:14;12006:16;:33;;;;12101:16;;12083:15;;12065;;:33;;;;:::i;:::-;:52;;;;:::i;:::-;12050:12;:67;;;;11799:326:::0;;;:::o;7025:27::-;;;;:::o;10227:290::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10291:13:::1;;;;;;;;;;;10290:14;10282:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10359:4;10343:13;;:20;;;;;;;;;;;;;;;;;;10388:4;10374:11;;:18;;;;;;;;;;;;;;;;;;10424:12;10403:18;:33;;;;10462:15;10447:12;:30;;;;10493:16;;;;;;;;;;10227:290::o:0;2079:79::-;2117:7;2144:6;;;;;;;;;;;2137:13;;2079:79;:::o;7319:31::-;;;;:::o;8155:36::-;;;;:::o;3216:104::-;3272:13;3305:7;3298:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3216:104;:::o;12669:244::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12778:13:::1;12770:21;;:4;:21;;;;12762:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12864:41;12893:4;12899:5;12864:28;:41::i;:::-;12669:244:::0;;:::o;7433:76::-;;;;;;;;;;;;;:::o;3680:175::-;3766:4;3783:42;3793:12;:10;:12::i;:::-;3807:9;3818:6;3783:9;:42::i;:::-;3843:4;3836:11;;3680:175;;;;:::o;7094:30::-;;;;:::o;7805:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;8007:33::-;;;;;;;;;;;;;:::o;11475:182::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11591:8:::1;11560:19;:28;11580:7;11560:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;11631:7;11615:34;;;11640:8;11615:34;;;;;;:::i;:::-;;;;;;;;11475:182:::0;;:::o;12133:334::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12276:13:::1;12257:16;:32;;;;12319:13;12300:16;:32;;;;12363:14;12343:17;:34;;;;12442:17;;12423:16;;12404;;:35;;;;:::i;:::-;:55;;;;:::i;:::-;12388:13;:71;;;;12133:334:::0;;;:::o;7245:27::-;;;;:::o;3863:151::-;3952:7;3979:11;:18;3991:5;3979:18;;;;;;;;;;;;;;;:27;3998:7;3979:27;;;;;;;;;;;;;;;;3972:34;;3863:151;;;;:::o;7516:77::-;;;;;;;;;;;;;:::o;10825:300::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10954:1:::1;10924:32;;:18;:32;;;;10916:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;11038:18;11010:17;;:47;;;;;;;;;;;;;;;;;;11098:18;11073:44;;;;;;;;;;;;10825:300:::0;:::o;8077:37::-;;;;:::o;7133:30::-;;;;:::o;2451:244::-;2216:12;:10;:12::i;:::-;2206:22;;:6;;;;;;;;;;;:22;;;2198:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2560:1:::1;2540:22;;:8;:22;;;;2532:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2650:8;2621:38;;2642:6;;;;;;;;;;;2621:38;;;;;;;;;;;;2679:8;2670:6;;:17;;;;;;;;;;;;;;;;;;2451:244:::0;:::o;7281:31::-;;;;:::o;6982:34::-;;;;:::o;584:98::-;637:7;664:10;657:17;;584:98;:::o;5616:380::-;5769:1;5752:19;;:5;:19;;;;5744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5850:1;5831:21;;:7;:21;;;;5823:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5934:6;5904:11;:18;5916:5;5904:18;;;;;;;;;;;;;;;:27;5923:7;5904:27;;;;;;;;;;;;;;;:36;;;;5972:7;5956:32;;5965:5;5956:32;;;5981:6;5956:32;;;;;;:::i;:::-;;;;;;;;5616:380;;;:::o;12921:2968::-;13035:1;13019:18;;:4;:18;;;;13011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13112:1;13098:16;;:2;:16;;;;13090:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13182:1;13172:6;:11;13168:50;;;13200:7;;13168:50;13242:14;;;;;;;;;;;13238:1068;;;13285:7;:5;:7::i;:::-;13277:15;;:4;:15;;;;:32;;;;;13302:7;:5;:7::i;:::-;13296:13;;:2;:13;;;;13277:32;:52;;;;;13327:1;13313:16;;:2;:16;;;;13277:52;:77;;;;;13347:6;13333:21;;:2;:21;;;;13277:77;13273:1022;;;13380:13;;;;;;;;;;;13375:158;;13425:19;:25;13445:4;13425:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;13454:19;:23;13474:2;13454:23;;;;;;;;;;;;;;;;;;;;;;;;;13425:52;13417:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;13375:158;13555:25;:31;13581:4;13555:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;13591:31;:35;13623:2;13591:35;;;;;;;;;;;;;;;;;;;;;;;;;13590:36;13555:71;13551:729;;;13669:12;;13659:6;:22;;13651:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13774:15;;13757:13;13767:2;13757:9;:13::i;:::-;13748:6;:22;;;;:::i;:::-;:41;;13740:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;13551:729;;;13866:25;:29;13892:2;13866:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;13900:31;:37;13932:4;13900:37;;;;;;;;;;;;;;;;;;;;;;;;;13899:38;13866:71;13862:418;;;13980:13;;13970:6;:23;;13962:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13862:418;;;14080:31;:35;14112:2;14080:35;;;;;;;;;;;;;;;;;;;;;;;;;14079:36;:78;;;;;14120:31;:37;14152:4;14120:37;;;;;;;;;;;;;;;;;;;;;;;;;14119:38;14079:78;14075:205;;;14216:15;;14199:13;14209:2;14199:9;:13::i;:::-;14190:6;:22;;;;:::i;:::-;:41;;14182:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14075:205;13862:418;13551:729;13273:1022;13238:1068;14318:12;14375;14354:17;;14333:18;;:38;;;;:::i;:::-;:54;;14318:69;;14404:7;:22;;;;;14415:11;;;;;;;;;;;14404:22;:35;;;;;14431:8;;;;;;;;;;;14430:9;14404:35;:71;;;;;14444:25;:31;14470:4;14444:31;;;;;;;;;;;;;;;;;;;;;;;;;14443:32;14404:71;:111;;;;;14490:19;:25;14510:4;14490:25;;;;;;;;;;;;;;;;;;;;;;;;;14489:26;14404:111;:139;;;;;14520:19;:23;14540:2;14520:23;;;;;;;;;;;;;;;;;;;;;;;;;14519:24;14404:139;14400:247;;;14571:4;14560:8;;:15;;;;;;;;;;;;;;;;;;14592:10;:8;:10::i;:::-;14630:5;14619:8;;:16;;;;;;;;;;;;;;;;;;14400:247;14659:12;14674:4;14659:19;;14695;:25;14715:4;14695:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;14724:19;:23;14744:2;14724:23;;;;;;;;;;;;;;;;;;;;;;;;;14695:52;14691:100;;;14774:5;14764:15;;14691:100;14811:12;14838:21;14880:7;14876:960;;;14910:25;:29;14936:2;14910:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;14959:1;14943:13;;:17;14910:50;14906:743;;;15012:3;14997:13;;14988:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;14981:34;;15082:13;;15063:16;;15056:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;15034:18;;:61;;;;;;;:::i;:::-;;;;;;;;15162:13;;15143:16;;15136:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;15114:18;;:61;;;;;;;:::i;:::-;;;;;;;;15244:13;;15224:17;;15217:4;:24;;;;:::i;:::-;:40;;;;:::i;:::-;15194:19;;:63;;;;;;;:::i;:::-;;;;;;;;14906:743;;;15297:25;:31;15323:4;15297:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;15347:1;15332:12;;:16;15297:51;15293:356;;;15397:3;15382:12;;15373:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;15366:34;;15463:12;;15445:15;;15438:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;15416:18;;:59;;;;;;;:::i;:::-;;;;;;;;15541:12;;15523:15;;15516:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;15494:18;;:59;;;;;;;:::i;:::-;;;;;;;;15621:12;;15602:16;;15595:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;15572:19;;:61;;;;;;;:::i;:::-;;;;;;;;15293:356;14906:743;15688:1;15681:4;:8;15677:95;;;15714:42;15730:4;15744;15751;15714:15;:42::i;:::-;15677:95;15811:13;15804:4;:20;;;;:::i;:::-;15794:30;;;;;:::i;:::-;;;14876:960;15848:33;15864:4;15870:2;15874:6;15848:15;:33::i;:::-;13000:2889;;;;12921:2968;;;;:::o;12475:186::-;12592:5;12558:25;:31;12584:4;12558:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12647:5;12613:40;;12641:4;12613:40;;;;;;;;;;;;12475:186;;:::o;16382:1354::-;16423:23;16449:24;16467:4;16449:9;:24::i;:::-;16423:50;;16484:25;16554:19;;16533:18;;16512;;:39;;;;:::i;:::-;:61;;;;:::i;:::-;16484:89;;16617:1;16598:15;:20;:46;;;;16643:1;16622:17;:22;16598:46;16594:85;;;16661:7;;;;16594:85;16691:12;16724:23;16809:1;16789:17;16768:18;;16750:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;16724:86;;16831:51;16866:15;16848;:33;;;;:::i;:::-;16831:16;:51::i;:::-;16904:18;16925:21;16904:42;;16957:23;16983:10;16957:36;;17006:23;17109:1;17088:18;;:22;;;;:::i;:::-;17067:17;:44;;;;:::i;:::-;17045:18;;17032:10;:31;;;;:::i;:::-;:80;;;;:::i;:::-;17006:106;;17123:24;17228:1;17207:18;;:22;;;;:::i;:::-;17186:17;:44;;;;:::i;:::-;17163:19;;17150:10;:32;;;;:::i;:::-;:81;;;;:::i;:::-;17123:108;;17281:16;17263:15;:34;;;;:::i;:::-;17244:53;;;;;:::i;:::-;;;17343:1;17322:18;:22;;;;17376:1;17355:18;:22;;;;17410:1;17388:19;:23;;;;17454:1;17436:15;:19;:42;;;;;17477:1;17459:15;:19;17436:42;17432:121;;;17495:46;17508:15;17525;17495:12;:46::i;:::-;17432:121;17586:17;;;;;;;;;;;17578:31;;17617:16;17578:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17565:73;;;;;17672:16;;;;;;;;;;;17664:30;;17702:21;17664:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17651:77;;;;;16410:1326;;;;;;;;16382:1354;:::o;4697:612::-;4855:1;4837:20;;:6;:20;;;;4829:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4939:1;4918:23;;:9;:23;;;;4910:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4994:21;5018:9;:17;5028:6;5018:17;;;;;;;;;;;;;;;;4994:41;;5071:6;5054:13;:23;;5046:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5192:6;5176:13;:22;5156:9;:17;5166:6;5156:17;;;;;;;;;;;;;;;:42;;;;5244:6;5220:9;:20;5230:9;5220:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5283:9;5266:35;;5275:6;5266:35;;;5294:6;5266:35;;;;;;:::i;:::-;;;;;;;;4818:491;4697:612;;;:::o;15897:477::-;15965:21;16003:1;15989:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15965:40;;16034:4;16016;16021:1;16016:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16060:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16050:4;16055:1;16050:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16095:62;16112:4;16127:15;16145:11;16095:8;:62::i;:::-;16170:15;:66;;;16251:11;16277:1;16293:4;16320;16340:15;16170:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15952:422;15897:477;:::o;17748:370::-;17829:62;17846:4;17861:15;17879:11;17829:8;:62::i;:::-;17904:15;:31;;;17943:9;17976:4;17996:11;18022:1;18038;18062:6;18084:15;17904:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17748:370;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:144::-;4243:9;4276:37;4307:5;4276:37;:::i;:::-;4263:50;;4175:144;;;:::o;4325:167::-;4430:55;4479:5;4430:55;:::i;:::-;4425:3;4418:68;4325:167;;:::o;4498:258::-;4609:4;4647:2;4636:9;4632:18;4624:26;;4660:89;4746:1;4735:9;4731:17;4722:6;4660:89;:::i;:::-;4498:258;;;;:::o;4762:118::-;4849:24;4867:5;4849:24;:::i;:::-;4844:3;4837:37;4762:118;;:::o;4886:222::-;4979:4;5017:2;5006:9;5002:18;4994:26;;5030:71;5098:1;5087:9;5083:17;5074:6;5030:71;:::i;:::-;4886:222;;;;:::o;5114:619::-;5191:6;5199;5207;5256:2;5244:9;5235:7;5231:23;5227:32;5224:119;;;5262:79;;:::i;:::-;5224:119;5382:1;5407:53;5452:7;5443:6;5432:9;5428:22;5407:53;:::i;:::-;5397:63;;5353:117;5509:2;5535:53;5580:7;5571:6;5560:9;5556:22;5535:53;:::i;:::-;5525:63;;5480:118;5637:2;5663:53;5708:7;5699:6;5688:9;5684:22;5663:53;:::i;:::-;5653:63;;5608:118;5114:619;;;;;:::o;5739:86::-;5774:7;5814:4;5807:5;5803:16;5792:27;;5739:86;;;:::o;5831:112::-;5914:22;5930:5;5914:22;:::i;:::-;5909:3;5902:35;5831:112;;:::o;5949:214::-;6038:4;6076:2;6065:9;6061:18;6053:26;;6089:67;6153:1;6142:9;6138:17;6129:6;6089:67;:::i;:::-;5949:214;;;;:::o;6169:118::-;6256:24;6274:5;6256:24;:::i;:::-;6251:3;6244:37;6169:118;;:::o;6293:222::-;6386:4;6424:2;6413:9;6409:18;6401:26;;6437:71;6505:1;6494:9;6490:17;6481:6;6437:71;:::i;:::-;6293:222;;;;:::o;6521:619::-;6598:6;6606;6614;6663:2;6651:9;6642:7;6638:23;6634:32;6631:119;;;6669:79;;:::i;:::-;6631:119;6789:1;6814:53;6859:7;6850:6;6839:9;6835:22;6814:53;:::i;:::-;6804:63;;6760:117;6916:2;6942:53;6987:7;6978:6;6967:9;6963:22;6942:53;:::i;:::-;6932:63;;6887:118;7044:2;7070:53;7115:7;7106:6;7095:9;7091:22;7070:53;:::i;:::-;7060:63;;7015:118;6521:619;;;;;:::o;7146:116::-;7216:21;7231:5;7216:21;:::i;:::-;7209:5;7206:32;7196:60;;7252:1;7249;7242:12;7196:60;7146:116;:::o;7268:133::-;7311:5;7349:6;7336:20;7327:29;;7365:30;7389:5;7365:30;:::i;:::-;7268:133;;;;:::o;7407:468::-;7472:6;7480;7529:2;7517:9;7508:7;7504:23;7500:32;7497:119;;;7535:79;;:::i;:::-;7497:119;7655:1;7680:53;7725:7;7716:6;7705:9;7701:22;7680:53;:::i;:::-;7670:63;;7626:117;7782:2;7808:50;7850:7;7841:6;7830:9;7826:22;7808:50;:::i;:::-;7798:60;;7753:115;7407:468;;;;;:::o;7881:474::-;7949:6;7957;8006:2;7994:9;7985:7;7981:23;7977:32;7974:119;;;8012:79;;:::i;:::-;7974:119;8132:1;8157:53;8202:7;8193:6;8182:9;8178:22;8157:53;:::i;:::-;8147:63;;8103:117;8259:2;8285:53;8330:7;8321:6;8310:9;8306:22;8285:53;:::i;:::-;8275:63;;8230:118;7881:474;;;;;:::o;8361:180::-;8409:77;8406:1;8399:88;8506:4;8503:1;8496:15;8530:4;8527:1;8520:15;8547:320;8591:6;8628:1;8622:4;8618:12;8608:22;;8675:1;8669:4;8665:12;8696:18;8686:81;;8752:4;8744:6;8740:17;8730:27;;8686:81;8814:2;8806:6;8803:14;8783:18;8780:38;8777:84;;;8833:18;;:::i;:::-;8777:84;8598:269;8547:320;;;:::o;8873:182::-;9013:34;9009:1;9001:6;8997:14;8990:58;8873:182;:::o;9061:366::-;9203:3;9224:67;9288:2;9283:3;9224:67;:::i;:::-;9217:74;;9300:93;9389:3;9300:93;:::i;:::-;9418:2;9413:3;9409:12;9402:19;;9061:366;;;:::o;9433:419::-;9599:4;9637:2;9626:9;9622:18;9614:26;;9686:9;9680:4;9676:20;9672:1;9661:9;9657:17;9650:47;9714:131;9840:4;9714:131;:::i;:::-;9706:139;;9433:419;;;:::o;9858:224::-;9998:34;9994:1;9986:6;9982:14;9975:58;10067:7;10062:2;10054:6;10050:15;10043:32;9858:224;:::o;10088:366::-;10230:3;10251:67;10315:2;10310:3;10251:67;:::i;:::-;10244:74;;10327:93;10416:3;10327:93;:::i;:::-;10445:2;10440:3;10436:12;10429:19;;10088:366;;;:::o;10460:419::-;10626:4;10664:2;10653:9;10649:18;10641:26;;10713:9;10707:4;10703:20;10699:1;10688:9;10684:17;10677:47;10741:131;10867:4;10741:131;:::i;:::-;10733:139;;10460:419;;;:::o;10885:227::-;11025:34;11021:1;11013:6;11009:14;11002:58;11094:10;11089:2;11081:6;11077:15;11070:35;10885:227;:::o;11118:366::-;11260:3;11281:67;11345:2;11340:3;11281:67;:::i;:::-;11274:74;;11357:93;11446:3;11357:93;:::i;:::-;11475:2;11470:3;11466:12;11459:19;;11118:366;;;:::o;11490:419::-;11656:4;11694:2;11683:9;11679:18;11671:26;;11743:9;11737:4;11733:20;11729:1;11718:9;11714:17;11707:47;11771:131;11897:4;11771:131;:::i;:::-;11763:139;;11490:419;;;:::o;11915:180::-;11963:77;11960:1;11953:88;12060:4;12057:1;12050:15;12084:4;12081:1;12074:15;12101:305;12141:3;12160:20;12178:1;12160:20;:::i;:::-;12155:25;;12194:20;12212:1;12194:20;:::i;:::-;12189:25;;12348:1;12280:66;12276:74;12273:1;12270:81;12267:107;;;12354:18;;:::i;:::-;12267:107;12398:1;12395;12391:9;12384:16;;12101:305;;;;:::o;12412:173::-;12552:25;12548:1;12540:6;12536:14;12529:49;12412:173;:::o;12591:366::-;12733:3;12754:67;12818:2;12813:3;12754:67;:::i;:::-;12747:74;;12830:93;12919:3;12830:93;:::i;:::-;12948:2;12943:3;12939:12;12932:19;;12591:366;;;:::o;12963:419::-;13129:4;13167:2;13156:9;13152:18;13144:26;;13216:9;13210:4;13206:20;13202:1;13191:9;13187:17;13180:47;13244:131;13370:4;13244:131;:::i;:::-;13236:139;;12963:419;;;:::o;13388:244::-;13528:34;13524:1;13516:6;13512:14;13505:58;13597:27;13592:2;13584:6;13580:15;13573:52;13388:244;:::o;13638:366::-;13780:3;13801:67;13865:2;13860:3;13801:67;:::i;:::-;13794:74;;13877:93;13966:3;13877:93;:::i;:::-;13995:2;13990:3;13986:12;13979:19;;13638:366;;;:::o;14010:419::-;14176:4;14214:2;14203:9;14199:18;14191:26;;14263:9;14257:4;14253:20;14249:1;14238:9;14234:17;14227:47;14291:131;14417:4;14291:131;:::i;:::-;14283:139;;14010:419;;;:::o;14435:225::-;14575:34;14571:1;14563:6;14559:14;14552:58;14644:8;14639:2;14631:6;14627:15;14620:33;14435:225;:::o;14666:366::-;14808:3;14829:67;14893:2;14888:3;14829:67;:::i;:::-;14822:74;;14905:93;14994:3;14905:93;:::i;:::-;15023:2;15018:3;15014:12;15007:19;;14666:366;;;:::o;15038:419::-;15204:4;15242:2;15231:9;15227:18;15219:26;;15291:9;15285:4;15281:20;15277:1;15266:9;15262:17;15255:47;15319:131;15445:4;15319:131;:::i;:::-;15311:139;;15038:419;;;:::o;15463:225::-;15603:34;15599:1;15591:6;15587:14;15580:58;15672:8;15667:2;15659:6;15655:15;15648:33;15463:225;:::o;15694:366::-;15836:3;15857:67;15921:2;15916:3;15857:67;:::i;:::-;15850:74;;15933:93;16022:3;15933:93;:::i;:::-;16051:2;16046:3;16042:12;16035:19;;15694:366;;;:::o;16066:419::-;16232:4;16270:2;16259:9;16255:18;16247:26;;16319:9;16313:4;16309:20;16305:1;16294:9;16290:17;16283:47;16347:131;16473:4;16347:131;:::i;:::-;16339:139;;16066:419;;;:::o;16491:223::-;16631:34;16627:1;16619:6;16615:14;16608:58;16700:6;16695:2;16687:6;16683:15;16676:31;16491:223;:::o;16720:366::-;16862:3;16883:67;16947:2;16942:3;16883:67;:::i;:::-;16876:74;;16959:93;17048:3;16959:93;:::i;:::-;17077:2;17072:3;17068:12;17061:19;;16720:366;;;:::o;17092:419::-;17258:4;17296:2;17285:9;17281:18;17273:26;;17345:9;17339:4;17335:20;17331:1;17320:9;17316:17;17309:47;17373:131;17499:4;17373:131;:::i;:::-;17365:139;;17092:419;;;:::o;17517:221::-;17657:34;17653:1;17645:6;17641:14;17634:58;17726:4;17721:2;17713:6;17709:15;17702:29;17517:221;:::o;17744:366::-;17886:3;17907:67;17971:2;17966:3;17907:67;:::i;:::-;17900:74;;17983:93;18072:3;17983:93;:::i;:::-;18101:2;18096:3;18092:12;18085:19;;17744:366;;;:::o;18116:419::-;18282:4;18320:2;18309:9;18305:18;18297:26;;18369:9;18363:4;18359:20;18355:1;18344:9;18340:17;18333:47;18397:131;18523:4;18397:131;:::i;:::-;18389:139;;18116:419;;;:::o;18541:224::-;18681:34;18677:1;18669:6;18665:14;18658:58;18750:7;18745:2;18737:6;18733:15;18726:32;18541:224;:::o;18771:366::-;18913:3;18934:67;18998:2;18993:3;18934:67;:::i;:::-;18927:74;;19010:93;19099:3;19010:93;:::i;:::-;19128:2;19123:3;19119:12;19112:19;;18771:366;;;:::o;19143:419::-;19309:4;19347:2;19336:9;19332:18;19324:26;;19396:9;19390:4;19386:20;19382:1;19371:9;19367:17;19360:47;19424:131;19550:4;19424:131;:::i;:::-;19416:139;;19143:419;;;:::o;19568:222::-;19708:34;19704:1;19696:6;19692:14;19685:58;19777:5;19772:2;19764:6;19760:15;19753:30;19568:222;:::o;19796:366::-;19938:3;19959:67;20023:2;20018:3;19959:67;:::i;:::-;19952:74;;20035:93;20124:3;20035:93;:::i;:::-;20153:2;20148:3;20144:12;20137:19;;19796:366;;;:::o;20168:419::-;20334:4;20372:2;20361:9;20357:18;20349:26;;20421:9;20415:4;20411:20;20407:1;20396:9;20392:17;20385:47;20449:131;20575:4;20449:131;:::i;:::-;20441:139;;20168:419;;;:::o;20593:181::-;20733:33;20729:1;20721:6;20717:14;20710:57;20593:181;:::o;20780:366::-;20922:3;20943:67;21007:2;21002:3;20943:67;:::i;:::-;20936:74;;21019:93;21108:3;21019:93;:::i;:::-;21137:2;21132:3;21128:12;21121:19;;20780:366;;;:::o;21152:419::-;21318:4;21356:2;21345:9;21341:18;21333:26;;21405:9;21399:4;21395:20;21391:1;21380:9;21376:17;21369:47;21433:131;21559:4;21433:131;:::i;:::-;21425:139;;21152:419;;;:::o;21577:181::-;21717:33;21713:1;21705:6;21701:14;21694:57;21577:181;:::o;21764:366::-;21906:3;21927:67;21991:2;21986:3;21927:67;:::i;:::-;21920:74;;22003:93;22092:3;22003:93;:::i;:::-;22121:2;22116:3;22112:12;22105:19;;21764:366;;;:::o;22136:419::-;22302:4;22340:2;22329:9;22325:18;22317:26;;22389:9;22383:4;22379:20;22375:1;22364:9;22360:17;22353:47;22417:131;22543:4;22417:131;:::i;:::-;22409:139;;22136:419;;;:::o;22561:174::-;22701:26;22697:1;22689:6;22685:14;22678:50;22561:174;:::o;22741:366::-;22883:3;22904:67;22968:2;22963:3;22904:67;:::i;:::-;22897:74;;22980:93;23069:3;22980:93;:::i;:::-;23098:2;23093:3;23089:12;23082:19;;22741:366;;;:::o;23113:419::-;23279:4;23317:2;23306:9;23302:18;23294:26;;23366:9;23360:4;23356:20;23352:1;23341:9;23337:17;23330:47;23394:131;23520:4;23394:131;:::i;:::-;23386:139;;23113:419;;;:::o;23538:220::-;23678:34;23674:1;23666:6;23662:14;23655:58;23747:3;23742:2;23734:6;23730:15;23723:28;23538:220;:::o;23764:366::-;23906:3;23927:67;23991:2;23986:3;23927:67;:::i;:::-;23920:74;;24003:93;24092:3;24003:93;:::i;:::-;24121:2;24116:3;24112:12;24105:19;;23764:366;;;:::o;24136:419::-;24302:4;24340:2;24329:9;24325:18;24317:26;;24389:9;24383:4;24379:20;24375:1;24364:9;24360:17;24353:47;24417:131;24543:4;24417:131;:::i;:::-;24409:139;;24136:419;;;:::o;24561:348::-;24601:7;24624:20;24642:1;24624:20;:::i;:::-;24619:25;;24658:20;24676:1;24658:20;:::i;:::-;24653:25;;24846:1;24778:66;24774:74;24771:1;24768:81;24763:1;24756:9;24749:17;24745:105;24742:131;;;24853:18;;:::i;:::-;24742:131;24901:1;24898;24894:9;24883:20;;24561:348;;;;:::o;24915:180::-;24963:77;24960:1;24953:88;25060:4;25057:1;25050:15;25084:4;25081:1;25074:15;25101:185;25141:1;25158:20;25176:1;25158:20;:::i;:::-;25153:25;;25192:20;25210:1;25192:20;:::i;:::-;25187:25;;25231:1;25221:35;;25236:18;;:::i;:::-;25221:35;25278:1;25275;25271:9;25266:14;;25101:185;;;;:::o;25292:191::-;25332:4;25352:20;25370:1;25352:20;:::i;:::-;25347:25;;25386:20;25404:1;25386:20;:::i;:::-;25381:25;;25425:1;25422;25419:8;25416:34;;;25430:18;;:::i;:::-;25416:34;25475:1;25472;25468:9;25460:17;;25292:191;;;;:::o;25489:147::-;25590:11;25627:3;25612:18;;25489:147;;;;:::o;25642:114::-;;:::o;25762:398::-;25921:3;25942:83;26023:1;26018:3;25942:83;:::i;:::-;25935:90;;26034:93;26123:3;26034:93;:::i;:::-;26152:1;26147:3;26143:11;26136:18;;25762:398;;;:::o;26166:379::-;26350:3;26372:147;26515:3;26372:147;:::i;:::-;26365:154;;26536:3;26529:10;;26166:379;;;:::o;26551:225::-;26691:34;26687:1;26679:6;26675:14;26668:58;26760:8;26755:2;26747:6;26743:15;26736:33;26551:225;:::o;26782:366::-;26924:3;26945:67;27009:2;27004:3;26945:67;:::i;:::-;26938:74;;27021:93;27110:3;27021:93;:::i;:::-;27139:2;27134:3;27130:12;27123:19;;26782:366;;;:::o;27154:419::-;27320:4;27358:2;27347:9;27343:18;27335:26;;27407:9;27401:4;27397:20;27393:1;27382:9;27378:17;27371:47;27435:131;27561:4;27435:131;:::i;:::-;27427:139;;27154:419;;;:::o;27579:180::-;27627:77;27624:1;27617:88;27724:4;27721:1;27714:15;27748:4;27745:1;27738:15;27765:180;27813:77;27810:1;27803:88;27910:4;27907:1;27900:15;27934:4;27931:1;27924:15;27951:143;28008:5;28039:6;28033:13;28024:22;;28055:33;28082:5;28055:33;:::i;:::-;27951:143;;;;:::o;28100:351::-;28170:6;28219:2;28207:9;28198:7;28194:23;28190:32;28187:119;;;28225:79;;:::i;:::-;28187:119;28345:1;28370:64;28426:7;28417:6;28406:9;28402:22;28370:64;:::i;:::-;28360:74;;28316:128;28100:351;;;;:::o;28457:85::-;28502:7;28531:5;28520:16;;28457:85;;;:::o;28548:158::-;28606:9;28639:61;28657:42;28666:32;28692:5;28666:32;:::i;:::-;28657:42;:::i;:::-;28639:61;:::i;:::-;28626:74;;28548:158;;;:::o;28712:147::-;28807:45;28846:5;28807:45;:::i;:::-;28802:3;28795:58;28712:147;;:::o;28865:114::-;28932:6;28966:5;28960:12;28950:22;;28865:114;;;:::o;28985:184::-;29084:11;29118:6;29113:3;29106:19;29158:4;29153:3;29149:14;29134:29;;28985:184;;;;:::o;29175:132::-;29242:4;29265:3;29257:11;;29295:4;29290:3;29286:14;29278:22;;29175:132;;;:::o;29313:108::-;29390:24;29408:5;29390:24;:::i;:::-;29385:3;29378:37;29313:108;;:::o;29427:179::-;29496:10;29517:46;29559:3;29551:6;29517:46;:::i;:::-;29595:4;29590:3;29586:14;29572:28;;29427:179;;;;:::o;29612:113::-;29682:4;29714;29709:3;29705:14;29697:22;;29612:113;;;:::o;29761:732::-;29880:3;29909:54;29957:5;29909:54;:::i;:::-;29979:86;30058:6;30053:3;29979:86;:::i;:::-;29972:93;;30089:56;30139:5;30089:56;:::i;:::-;30168:7;30199:1;30184:284;30209:6;30206:1;30203:13;30184:284;;;30285:6;30279:13;30312:63;30371:3;30356:13;30312:63;:::i;:::-;30305:70;;30398:60;30451:6;30398:60;:::i;:::-;30388:70;;30244:224;30231:1;30228;30224:9;30219:14;;30184:284;;;30188:14;30484:3;30477:10;;29885:608;;;29761:732;;;;:::o;30499:831::-;30762:4;30800:3;30789:9;30785:19;30777:27;;30814:71;30882:1;30871:9;30867:17;30858:6;30814:71;:::i;:::-;30895:80;30971:2;30960:9;30956:18;30947:6;30895:80;:::i;:::-;31022:9;31016:4;31012:20;31007:2;30996:9;30992:18;30985:48;31050:108;31153:4;31144:6;31050:108;:::i;:::-;31042:116;;31168:72;31236:2;31225:9;31221:18;31212:6;31168:72;:::i;:::-;31250:73;31318:3;31307:9;31303:19;31294:6;31250:73;:::i;:::-;30499:831;;;;;;;;:::o;31336:807::-;31585:4;31623:3;31612:9;31608:19;31600:27;;31637:71;31705:1;31694:9;31690:17;31681:6;31637:71;:::i;:::-;31718:72;31786:2;31775:9;31771:18;31762:6;31718:72;:::i;:::-;31800:80;31876:2;31865:9;31861:18;31852:6;31800:80;:::i;:::-;31890;31966:2;31955:9;31951:18;31942:6;31890:80;:::i;:::-;31980:73;32048:3;32037:9;32033:19;32024:6;31980:73;:::i;:::-;32063;32131:3;32120:9;32116:19;32107:6;32063:73;:::i;:::-;31336:807;;;;;;;;;:::o;32149:143::-;32206:5;32237:6;32231:13;32222:22;;32253:33;32280:5;32253:33;:::i;:::-;32149:143;;;;:::o;32298:663::-;32386:6;32394;32402;32451:2;32439:9;32430:7;32426:23;32422:32;32419:119;;;32457:79;;:::i;:::-;32419:119;32577:1;32602:64;32658:7;32649:6;32638:9;32634:22;32602:64;:::i;:::-;32592:74;;32548:128;32715:2;32741:64;32797:7;32788:6;32777:9;32773:22;32741:64;:::i;:::-;32731:74;;32686:129;32854:2;32880:64;32936:7;32927:6;32916:9;32912:22;32880:64;:::i;:::-;32870:74;;32825:129;32298:663;;;;;:::o

Swarm Source

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