ETH Price: $3,679.38 (+1.22%)
 

Overview

Max Total Supply

1,000,000,000 RIP

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,915,415.301542619405090391 RIP

Value
$0.00
0x6451d809f17d76fe9cb036279e7eb5975c6927c0
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:
RIP

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: Unlicense


pragma solidity 0.8.15;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

    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) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        _afterTokenTransfer(sender, recipient, amount);
    }

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

        _beforeTokenTransfer(address(0), account, amount);

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

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), 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);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


     // Contract Name
contract RIP is ERC20, Ownable {   
    
    uint256 public buyFee = 0;
    uint256 public sellFee = 2;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet = 0xf1237CE2630B572c6eBb0A823A4B6Cf9f4a446A4; // update marketing wallet
    
    bool    private swapping;
    uint256 public swapTokensAmount;
    uint256 public _maxWallet = 1_000_000_000 * (10**18);    //max supply

    mapping (address => bool) private _isExcludedFromMaxWallet;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public automatedMarketMakerPairs;

    event ExcludeFromMaxWallet(address indexed account, bool isExcluded);
    event ExcludeFromFees(address indexed account, bool isExcluded);
    event FeesUpdated(uint256 buyFee, uint256 sellFee);
    event MarketingWalletChanged(address marketingWallet);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ETHReceived, uint256 tokensIntoLiqudity);
    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);
    event SwapAndSendOperations(uint256 tokenAmount, uint256 newTokens);
    

    constructor () ERC20("RIP JimmyFallon", "RIP") 
    {   
        
      IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // update router   univ2 : 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D 
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;
   
        _approve(address(this), address(uniswapV2Router), type(uint256).max);

        _setAutomatedMarketMakerPair(_uniswapV2Pair, true);

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[DEAD] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        
        _mint(owner(), 1000000000 * (10 ** 18));
        swapTokensAmount = totalSupply() / 5000;

    }

    receive() external payable {

  	}

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "Owner cannot claim native tokens");
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function clearETH() external onlyOwner {
        uint256 balance = address(this).balance;
        payable(owner()).transfer(balance);
    }

      function changeMaxWallet(uint256 maxWallet) external onlyOwner {
        require(maxWallet > totalSupply() / (10000), "max wallet too low");
        _maxWallet = maxWallet;
    }

     function excludeFromMaxWallet(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromMaxWallet[account] != excluded, "Account is already the value of 'excluded'");
        _isExcludedFromMaxWallet[account] = excluded;

        emit ExcludeFromMaxWallet(account, excluded);
    }

    function isExcludedFromMaxWallet(address account) public view returns(bool) {
        return _isExcludedFromMaxWallet[account];
    }
    
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendETH(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function updateUniswapV2Router(address newAddress) external onlyOwner {
        require(newAddress != address(uniswapV2Router), "The router already has that address");
        emit UpdateUniswapV2Router(newAddress, address(uniswapV2Router));
        uniswapV2Router = IUniswapV2Router02(newAddress);
        address _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Pair = _uniswapV2Pair;
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }
 
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromFees[account] != excluded, "Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

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

    function updateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 10, "Buy fee cannot be more than 10%");
        require(_sellFee <= 10, "Sell fee cannot be more than 10%");
        buyFee = _buyFee;
        sellFee = _sellFee;
        emit FeesUpdated(buyFee, sellFee);
    }

    function changeMarketingWallet(address _marketingWallet) external onlyOwner {
        require(_marketingWallet != marketingWallet, "Already Marketing Wallet");
        require(!isContract(_marketingWallet), "Marketing Wallet can not be contract");
        marketingWallet = _marketingWallet;
        emit MarketingWalletChanged(marketingWallet);
    }

    function setSwapTokensAmount(uint256 newAmount) external onlyOwner{
        require(newAmount > totalSupply() / 100000, "SwapTokensAtAmount must be greater than 0.001% of total supply");
        swapTokensAmount = newAmount;
    }

   
    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) {
            super._transfer(from, to, 0);
            return;
        }
        
        if(to != uniswapV2Pair){
                require(balanceOf(to) + (amount) <= _maxWallet, "Transfer exceeds max");
            }
		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAmount;

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

            uint256 initialBalance = address(this).balance;

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

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

            uint256 newBalance = address(this).balance - initialBalance;
            
            if(newBalance > 0) {
                uint256 marketingETH = newBalance;
                sendETH(payable(marketingWallet), marketingETH);
            }

            swapping = false;
        }

        bool takeFee = !swapping;

        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        if(takeFee) {
            uint256 _totalFees;
            if(from == uniswapV2Pair) {
                _totalFees = buyFee;
               
            } else if (to == uniswapV2Pair) {
                _totalFees = sellFee;
              
            }

            if (_totalFees > 0) {
        	    uint256 fees = amount * _totalFees / 100;
        	    amount -= fees;
                super._transfer(from, address(this), fees);
            }

        }

        super._transfer(from, to, amount);

    }

    
    function airdrop(address[] memory addresses, uint256[] memory amounts) external {
        require(addresses.length == amounts.length, "Arrays must be equal");
        uint256 totalAmount;
        
        for (uint256 i = 0; i < amounts.length; i++) {
            totalAmount += amounts[i];
        }

        require(balanceOf(msg.sender) >= totalAmount, "Not enough tokens");

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(_msgSender(), addresses[i], amounts[i]);
        }

    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingWallet","type":"address"}],"name":"MarketingWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ETHReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTokens","type":"uint256"}],"name":"SwapAndSendOperations","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":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","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":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAmount","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateUniswapV2Router","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600655600260075561dead600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f1237ce2630b572c6ebb0a823a4b6cf9f4a446a4600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce8000000600d55348015620000c357600080fd5b506040518060400160405280600f81526020017f524950204a696d6d7946616c6c6f6e00000000000000000000000000000000008152506040518060400160405280600381526020017f5249500000000000000000000000000000000000000000000000000000000000815250816003908162000141919062000e04565b50806004908162000153919062000e04565b505050600062000168620006c560201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000294919062000f55565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000322919062000f55565b6040518363ffffffff1660e01b81526004016200034192919062000f98565b6020604051808303816000875af115801562000361573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000387919062000f55565b905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200046030600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620006cd60201b60201c565b620004738160016200089e60201b60201c565b6001600f600062000489620009d460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000620005c2620009d460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006986200067f620009d460201b60201c565b6b033b2e3c9fd0803ce8000000620009fe60201b60201c565b611388620006ab62000b7660201b60201c565b620006b7919062001023565b600c81905550505062001331565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200073f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200073690620010e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007a8906200117a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620008919190620011ad565b60405180910390a3505050565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150362000933576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200092a9062001240565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a6790620012b2565b60405180910390fd5b62000a846000838362000b8060201b60201c565b806002600082825462000a989190620012d4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000aef9190620012d4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b569190620011ad565b60405180910390a362000b726000838362000b8560201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c0c57607f821691505b60208210810362000c225762000c2162000bc4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c4d565b62000c98868362000c4d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ce562000cdf62000cd98462000cb0565b62000cba565b62000cb0565b9050919050565b6000819050919050565b62000d018362000cc4565b62000d1962000d108262000cec565b84845462000c5a565b825550505050565b600090565b62000d3062000d21565b62000d3d81848462000cf6565b505050565b5b8181101562000d655762000d5960008262000d26565b60018101905062000d43565b5050565b601f82111562000db45762000d7e8162000c28565b62000d898462000c3d565b8101602085101562000d99578190505b62000db162000da88562000c3d565b83018262000d42565b50505b505050565b600082821c905092915050565b600062000dd96000198460080262000db9565b1980831691505092915050565b600062000df4838362000dc6565b9150826002028217905092915050565b62000e0f8262000b8a565b67ffffffffffffffff81111562000e2b5762000e2a62000b95565b5b62000e37825462000bf3565b62000e4482828562000d69565b600060209050601f83116001811462000e7c576000841562000e67578287015190505b62000e73858262000de6565b86555062000ee3565b601f19841662000e8c8662000c28565b60005b8281101562000eb65784890151825560018201915060208501945060208101905062000e8f565b8683101562000ed6578489015162000ed2601f89168262000dc6565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f1d8262000ef0565b9050919050565b62000f2f8162000f10565b811462000f3b57600080fd5b50565b60008151905062000f4f8162000f24565b92915050565b60006020828403121562000f6e5762000f6d62000eeb565b5b600062000f7e8482850162000f3e565b91505092915050565b62000f928162000f10565b82525050565b600060408201905062000faf600083018562000f87565b62000fbe602083018462000f87565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010308262000cb0565b91506200103d8362000cb0565b92508262001050576200104f62000fc5565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000620010ca6024836200105b565b9150620010d7826200106c565b604082019050919050565b60006020820190508181036000830152620010fd81620010bb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011626022836200105b565b91506200116f8262001104565b604082019050919050565b60006020820190508181036000830152620011958162001153565b9050919050565b620011a78162000cb0565b82525050565b6000602082019050620011c460008301846200119c565b92915050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b6000620012286038836200105b565b91506200123582620011ca565b604082019050919050565b600060208201905081810360008301526200125b8162001219565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200129a601f836200105b565b9150620012a78262001262565b602082019050919050565b60006020820190508181036000830152620012cd816200128b565b9050919050565b6000620012e18262000cb0565b9150620012ee8362000cb0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001326576200132562000ff4565b5b828201905092915050565b614ada80620013416000396000f3fe6080604052600436106102085760003560e01c80636db7943711610118578063a457c2d7116100a0578063c02466681161006f578063c02466681461078a578063d2fcc001146107b3578063dd62ed3e146107dc578063f2fde38b14610819578063f9d0831a146108425761020f565b8063a457c2d7146106aa578063a9059cbb146106e7578063b62496f514610724578063bb85c6d1146107615761020f565b806375f0a874116100e757806375f0a874146105d557806382247ec0146106005780638da5cb5b1461062b57806395d89b41146106565780639a7a23d6146106815761020f565b80636db794371461051b5780636dd3d39f1461054457806370a0823114610581578063715018a6146105be5761020f565b8063395093511161019b5780634fbee1931161016a5780634fbee1931461044a5780635f1c318214610487578063616eb638146104b257806365b8dbc0146104c957806367243482146104f25761020f565b8063395093511461038e57806343e716fe146103cb57806347062402146103f457806349bd5a5e1461041f5761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb5780632b14ca5614610338578063313ce567146103635761020f565b806306fdde0314610214578063095ea7b31461023f5780630b006d601461027c5780631694505e146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961086b565b6040516102369190613233565b60405180910390f35b34801561024b57600080fd5b50610266600480360381019061026191906132fd565b6108fd565b6040516102739190613358565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190613373565b61091b565b005b3480156102b157600080fd5b506102ba610a12565b6040516102c791906133ff565b60405180910390f35b3480156102dc57600080fd5b506102e5610a38565b6040516102f29190613429565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190613444565b610a42565b60405161032f9190613358565b60405180910390f35b34801561034457600080fd5b5061034d610b61565b60405161035a9190613429565b60405180910390f35b34801561036f57600080fd5b50610378610b67565b60405161038591906134b3565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b091906132fd565b610b70565b6040516103c29190613358565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed9190613373565b610c1c565b005b34801561040057600080fd5b50610409610d14565b6040516104169190613429565b60405180910390f35b34801561042b57600080fd5b50610434610d1a565b60405161044191906134dd565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c91906134f8565b610d40565b60405161047e9190613358565b60405180910390f35b34801561049357600080fd5b5061049c610d96565b6040516104a99190613429565b60405180910390f35b3480156104be57600080fd5b506104c7610d9c565b005b3480156104d557600080fd5b506104f060048036038101906104eb91906134f8565b610e89565b005b3480156104fe57600080fd5b5061051960048036038101906105149190613730565b611254565b005b34801561052757600080fd5b50610542600480360381019061053d91906137a8565b61139b565b005b34801561055057600080fd5b5061056b600480360381019061056691906134f8565b611509565b6040516105789190613358565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a391906134f8565b61155f565b6040516105b59190613429565b60405180910390f35b3480156105ca57600080fd5b506105d36115a7565b005b3480156105e157600080fd5b506105ea6116ff565b6040516105f791906134dd565b60405180910390f35b34801561060c57600080fd5b50610615611725565b6040516106229190613429565b60405180910390f35b34801561063757600080fd5b5061064061172b565b60405161064d91906134dd565b60405180910390f35b34801561066257600080fd5b5061066b611755565b6040516106789190613233565b60405180910390f35b34801561068d57600080fd5b506106a860048036038101906106a39190613814565b6117e7565b005b3480156106b657600080fd5b506106d160048036038101906106cc91906132fd565b61191c565b6040516106de9190613358565b60405180910390f35b3480156106f357600080fd5b5061070e600480360381019061070991906132fd565b611a07565b60405161071b9190613358565b60405180910390f35b34801561073057600080fd5b5061074b600480360381019061074691906134f8565b611a25565b6040516107589190613358565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906134f8565b611a45565b005b34801561079657600080fd5b506107b160048036038101906107ac9190613814565b611c52565b005b3480156107bf57600080fd5b506107da60048036038101906107d59190613814565b611e24565b005b3480156107e857600080fd5b5061080360048036038101906107fe9190613854565b611ff6565b6040516108109190613429565b60405180910390f35b34801561082557600080fd5b50610840600480360381019061083b91906134f8565b61207d565b005b34801561084e57600080fd5b50610869600480360381019061086491906134f8565b612243565b005b60606003805461087a906138c3565b80601f01602080910402602001604051908101604052809291908181526020018280546108a6906138c3565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050905090565b600061091161090a61244f565b8484612457565b6001905092915050565b61092361244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a990613940565b60405180910390fd5b6127106109bd610a38565b6109c791906139be565b8111610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90613a3b565b60405180910390fd5b80600d8190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a8e61244f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b4a5782811015610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90613acd565b60405180910390fd5b610b4985610b4161244f565b858403612457565b5b610b55858585612620565b60019150509392505050565b60075481565b60006012905090565b6000610c12610b7d61244f565b848460016000610b8b61244f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c0d9190613aed565b612457565b6001905092915050565b610c2461244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa90613940565b60405180910390fd5b620186a0610cbf610a38565b610cc991906139be565b8111610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190613bb5565b60405180910390fd5b80600c8190555050565b60065481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b610da461244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a90613940565b60405180910390fd5b6000479050610e4061172b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e85573d6000803e3d6000fd5b5050565b610e9161244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790613940565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa790613c47565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190613c7c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ad9190613c7c565b6040518363ffffffff1660e01b81526004016111ca929190613ca9565b6020604051808303816000875af11580156111e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120d9190613c7c565b905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b8051825114611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613d1e565b60405180910390fd5b600080600090505b82518110156112e4578281815181106112bc576112bb613d3e565b5b6020026020010151826112cf9190613aed565b915080806112dc90613d6d565b9150506112a0565b50806112ef3361155f565b1015611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790613e01565b60405180910390fd5b60005b83518110156113955761138261134761244f565b85838151811061135a57611359613d3e565b5b602002602001015185848151811061137557611374613d3e565b5b6020026020010151612620565b808061138d90613d6d565b915050611333565b50505050565b6113a361244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990613940565b60405180910390fd5b600a821115611476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146d90613e6d565b60405180910390fd5b600a8111156114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190613ed9565b60405180910390fd5b81600681905550806007819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a16006546007546040516114fd929190613ef9565b60405180910390a15050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115af61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163590613940565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611764906138c3565b80601f0160208091040260200160405190810160405280929190818152602001828054611790906138c3565b80156117dd5780601f106117b2576101008083540402835291602001916117dd565b820191906000526020600020905b8154815290600101906020018083116117c057829003601f168201915b5050505050905090565b6117ef61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590613940565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361190e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190590613fba565b60405180910390fd5b6119188282612cc7565b5050565b6000806001600061192b61244f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156119e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119df9061404c565b60405180910390fd5b6119fc6119f361244f565b85858403612457565b600191505092915050565b6000611a1b611a1461244f565b8484612620565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b611a4d61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390613940565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b63906140b8565b60405180910390fd5b611b7581612dfa565b15611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac9061414a565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611c4791906134dd565b60405180910390a150565b611c5a61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce090613940565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d72906141dc565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e189190613358565b60405180910390a25050565b611e2c61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb290613940565b60405180910390fd5b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f44906141dc565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4a8452f723db48bf05f301f94d62a2cf7a72976cde77d83e3646584858b8f4b282604051611fea9190613358565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61208561244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b90613940565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9061426e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61224b61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d190613940565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233f906142da565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161238891906134dd565b602060405180830381865afa1580156123a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c9919061430f565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161240692919061433c565b6020604051808303816000875af1158015612425573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612449919061437a565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bd90614419565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c906144ab565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126139190613429565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361268f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126869061453d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f5906145cf565b60405180910390fd5b600081036127175761271283836000612e1d565b612cc2565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146127c557600d54816127798461155f565b6127839190613aed565b11156127c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bb9061463b565b60405180910390fd5b5b60006127d03061155f565b90506000600c5482101590508080156127f65750600b60149054906101000a900460ff16155b801561284c5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612aee576001600b60146101000a81548160ff02191690831515021790555060004790506000600267ffffffffffffffff81111561288e5761288d61352a565b5b6040519080825280602002602001820160405280156128bc5781602001602082028036833780820191505090505b50905030816000815181106128d4576128d3613d3e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561297b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299f9190613c7c565b816001815181106129b3576129b2613d3e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612a51959493929190614754565b600060405180830381600087803b158015612a6b57600080fd5b505af1158015612a7f573d6000803e3d6000fd5b5050505060008247612a9191906147ae565b90506000811115612acf576000819050612acd600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261309c565b505b6000600b60146101000a81548160ff0219169083151502179055505050505b6000600b60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ba45750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612bae57600090505b8015612cb3576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603612c15576006549050612c71565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612c705760075490505b5b6000811115612cb157600060648287612c8a91906147e2565b612c9491906139be565b90508086612ca291906147ae565b9550612caf883083612e1d565b505b505b612cbe868686612e1d565b5050505b505050565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503612d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d50906148ae565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e839061453d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef2906145cf565b60405180910390fd5b612f06838383613190565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8390614940565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461301f9190613aed565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130839190613429565b60405180910390a3613096848484613195565b50505050565b804710156130df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130d6906149ac565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051613105906149fd565b60006040518083038185875af1925050503d8060008114613142576040519150601f19603f3d011682016040523d82523d6000602084013e613147565b606091505b505090508061318b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318290614a84565b60405180910390fd5b505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131d45780820151818401526020810190506131b9565b838111156131e3576000848401525b50505050565b6000601f19601f8301169050919050565b60006132058261319a565b61320f81856131a5565b935061321f8185602086016131b6565b613228816131e9565b840191505092915050565b6000602082019050818103600083015261324d81846131fa565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061329482613269565b9050919050565b6132a481613289565b81146132af57600080fd5b50565b6000813590506132c18161329b565b92915050565b6000819050919050565b6132da816132c7565b81146132e557600080fd5b50565b6000813590506132f7816132d1565b92915050565b600080604083850312156133145761331361325f565b5b6000613322858286016132b2565b9250506020613333858286016132e8565b9150509250929050565b60008115159050919050565b6133528161333d565b82525050565b600060208201905061336d6000830184613349565b92915050565b6000602082840312156133895761338861325f565b5b6000613397848285016132e8565b91505092915050565b6000819050919050565b60006133c56133c06133bb84613269565b6133a0565b613269565b9050919050565b60006133d7826133aa565b9050919050565b60006133e9826133cc565b9050919050565b6133f9816133de565b82525050565b600060208201905061341460008301846133f0565b92915050565b613423816132c7565b82525050565b600060208201905061343e600083018461341a565b92915050565b60008060006060848603121561345d5761345c61325f565b5b600061346b868287016132b2565b935050602061347c868287016132b2565b925050604061348d868287016132e8565b9150509250925092565b600060ff82169050919050565b6134ad81613497565b82525050565b60006020820190506134c860008301846134a4565b92915050565b6134d781613289565b82525050565b60006020820190506134f260008301846134ce565b92915050565b60006020828403121561350e5761350d61325f565b5b600061351c848285016132b2565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613562826131e9565b810181811067ffffffffffffffff821117156135815761358061352a565b5b80604052505050565b6000613594613255565b90506135a08282613559565b919050565b600067ffffffffffffffff8211156135c0576135bf61352a565b5b602082029050602081019050919050565b600080fd5b60006135e96135e4846135a5565b61358a565b9050808382526020820190506020840283018581111561360c5761360b6135d1565b5b835b81811015613635578061362188826132b2565b84526020840193505060208101905061360e565b5050509392505050565b600082601f83011261365457613653613525565b5b81356136648482602086016135d6565b91505092915050565b600067ffffffffffffffff8211156136885761368761352a565b5b602082029050602081019050919050565b60006136ac6136a78461366d565b61358a565b905080838252602082019050602084028301858111156136cf576136ce6135d1565b5b835b818110156136f857806136e488826132e8565b8452602084019350506020810190506136d1565b5050509392505050565b600082601f83011261371757613716613525565b5b8135613727848260208601613699565b91505092915050565b600080604083850312156137475761374661325f565b5b600083013567ffffffffffffffff81111561376557613764613264565b5b6137718582860161363f565b925050602083013567ffffffffffffffff81111561379257613791613264565b5b61379e85828601613702565b9150509250929050565b600080604083850312156137bf576137be61325f565b5b60006137cd858286016132e8565b92505060206137de858286016132e8565b9150509250929050565b6137f18161333d565b81146137fc57600080fd5b50565b60008135905061380e816137e8565b92915050565b6000806040838503121561382b5761382a61325f565b5b6000613839858286016132b2565b925050602061384a858286016137ff565b9150509250929050565b6000806040838503121561386b5761386a61325f565b5b6000613879858286016132b2565b925050602061388a858286016132b2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138db57607f821691505b6020821081036138ee576138ed613894565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061392a6020836131a5565b9150613935826138f4565b602082019050919050565b600060208201905081810360008301526139598161391d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139c9826132c7565b91506139d4836132c7565b9250826139e4576139e3613960565b5b828204905092915050565b7f6d61782077616c6c657420746f6f206c6f770000000000000000000000000000600082015250565b6000613a256012836131a5565b9150613a30826139ef565b602082019050919050565b60006020820190508181036000830152613a5481613a18565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ab76028836131a5565b9150613ac282613a5b565b604082019050919050565b60006020820190508181036000830152613ae681613aaa565b9050919050565b6000613af8826132c7565b9150613b03836132c7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b3857613b3761398f565b5b828201905092915050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e30303125206f6620746f74616c20737570706c790000602082015250565b6000613b9f603e836131a5565b9150613baa82613b43565b604082019050919050565b60006020820190508181036000830152613bce81613b92565b9050919050565b7f54686520726f7574657220616c7265616479206861732074686174206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c316023836131a5565b9150613c3c82613bd5565b604082019050919050565b60006020820190508181036000830152613c6081613c24565b9050919050565b600081519050613c768161329b565b92915050565b600060208284031215613c9257613c9161325f565b5b6000613ca084828501613c67565b91505092915050565b6000604082019050613cbe60008301856134ce565b613ccb60208301846134ce565b9392505050565b7f417272617973206d75737420626520657175616c000000000000000000000000600082015250565b6000613d086014836131a5565b9150613d1382613cd2565b602082019050919050565b60006020820190508181036000830152613d3781613cfb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613d78826132c7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613daa57613da961398f565b5b600182019050919050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b6000613deb6011836131a5565b9150613df682613db5565b602082019050919050565b60006020820190508181036000830152613e1a81613dde565b9050919050565b7f427579206665652063616e6e6f74206265206d6f7265207468616e2031302500600082015250565b6000613e57601f836131a5565b9150613e6282613e21565b602082019050919050565b60006020820190508181036000830152613e8681613e4a565b9050919050565b7f53656c6c206665652063616e6e6f74206265206d6f7265207468616e20313025600082015250565b6000613ec36020836131a5565b9150613ece82613e8d565b602082019050919050565b60006020820190508181036000830152613ef281613eb6565b9050919050565b6000604082019050613f0e600083018561341a565b613f1b602083018461341a565b9392505050565b7f5468652050616e63616b655377617020706169722063616e6e6f74206265207260008201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b6000613fa46045836131a5565b9150613faf82613f22565b606082019050919050565b60006020820190508181036000830152613fd381613f97565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006140366025836131a5565b915061404182613fda565b604082019050919050565b6000602082019050818103600083015261406581614029565b9050919050565b7f416c7265616479204d61726b6574696e672057616c6c65740000000000000000600082015250565b60006140a26018836131a5565b91506140ad8261406c565b602082019050919050565b600060208201905081810360008301526140d181614095565b9050919050565b7f4d61726b6574696e672057616c6c65742063616e206e6f7420626520636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b60006141346024836131a5565b915061413f826140d8565b604082019050919050565b6000602082019050818103600083015261416381614127565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006141c6602a836131a5565b91506141d18261416a565b604082019050919050565b600060208201905081810360008301526141f5816141b9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142586026836131a5565b9150614263826141fc565b604082019050919050565b600060208201905081810360008301526142878161424b565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73600082015250565b60006142c46020836131a5565b91506142cf8261428e565b602082019050919050565b600060208201905081810360008301526142f3816142b7565b9050919050565b600081519050614309816132d1565b92915050565b6000602082840312156143255761432461325f565b5b6000614333848285016142fa565b91505092915050565b600060408201905061435160008301856134ce565b61435e602083018461341a565b9392505050565b600081519050614374816137e8565b92915050565b6000602082840312156143905761438f61325f565b5b600061439e84828501614365565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006144036024836131a5565b915061440e826143a7565b604082019050919050565b60006020820190508181036000830152614432816143f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006144956022836131a5565b91506144a082614439565b604082019050919050565b600060208201905081810360008301526144c481614488565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145276025836131a5565b9150614532826144cb565b604082019050919050565b600060208201905081810360008301526145568161451a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145b96023836131a5565b91506145c48261455d565b604082019050919050565b600060208201905081810360008301526145e8816145ac565b9050919050565b7f5472616e736665722065786365656473206d6178000000000000000000000000600082015250565b60006146256014836131a5565b9150614630826145ef565b602082019050919050565b6000602082019050818103600083015261465481614618565b9050919050565b6000819050919050565b600061468061467b6146768461465b565b6133a0565b6132c7565b9050919050565b61469081614665565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146cb81613289565b82525050565b60006146dd83836146c2565b60208301905092915050565b6000602082019050919050565b600061470182614696565b61470b81856146a1565b9350614716836146b2565b8060005b8381101561474757815161472e88826146d1565b9750614739836146e9565b92505060018101905061471a565b5085935050505092915050565b600060a082019050614769600083018861341a565b6147766020830187614687565b818103604083015261478881866146f6565b905061479760608301856134ce565b6147a4608083018461341a565b9695505050505050565b60006147b9826132c7565b91506147c4836132c7565b9250828210156147d7576147d661398f565b5b828203905092915050565b60006147ed826132c7565b91506147f8836132c7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148315761483061398f565b5b828202905092915050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b60006148986038836131a5565b91506148a38261483c565b604082019050919050565b600060208201905081810360008301526148c78161488b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061492a6026836131a5565b9150614935826148ce565b604082019050919050565b600060208201905081810360008301526149598161491d565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614996601d836131a5565b91506149a182614960565b602082019050919050565b600060208201905081810360008301526149c581614989565b9050919050565b600081905092915050565b50565b60006149e76000836149cc565b91506149f2826149d7565b600082019050919050565b6000614a08826149da565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614a6e603a836131a5565b9150614a7982614a12565b604082019050919050565b60006020820190508181036000830152614a9d81614a61565b905091905056fea2646970667358221220f7c87bcaae9b3da6e83369df59082f539278995a3b9da1d13cfb72333922099b64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80636db7943711610118578063a457c2d7116100a0578063c02466681161006f578063c02466681461078a578063d2fcc001146107b3578063dd62ed3e146107dc578063f2fde38b14610819578063f9d0831a146108425761020f565b8063a457c2d7146106aa578063a9059cbb146106e7578063b62496f514610724578063bb85c6d1146107615761020f565b806375f0a874116100e757806375f0a874146105d557806382247ec0146106005780638da5cb5b1461062b57806395d89b41146106565780639a7a23d6146106815761020f565b80636db794371461051b5780636dd3d39f1461054457806370a0823114610581578063715018a6146105be5761020f565b8063395093511161019b5780634fbee1931161016a5780634fbee1931461044a5780635f1c318214610487578063616eb638146104b257806365b8dbc0146104c957806367243482146104f25761020f565b8063395093511461038e57806343e716fe146103cb57806347062402146103f457806349bd5a5e1461041f5761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb5780632b14ca5614610338578063313ce567146103635761020f565b806306fdde0314610214578063095ea7b31461023f5780630b006d601461027c5780631694505e146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961086b565b6040516102369190613233565b60405180910390f35b34801561024b57600080fd5b50610266600480360381019061026191906132fd565b6108fd565b6040516102739190613358565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190613373565b61091b565b005b3480156102b157600080fd5b506102ba610a12565b6040516102c791906133ff565b60405180910390f35b3480156102dc57600080fd5b506102e5610a38565b6040516102f29190613429565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190613444565b610a42565b60405161032f9190613358565b60405180910390f35b34801561034457600080fd5b5061034d610b61565b60405161035a9190613429565b60405180910390f35b34801561036f57600080fd5b50610378610b67565b60405161038591906134b3565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b091906132fd565b610b70565b6040516103c29190613358565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed9190613373565b610c1c565b005b34801561040057600080fd5b50610409610d14565b6040516104169190613429565b60405180910390f35b34801561042b57600080fd5b50610434610d1a565b60405161044191906134dd565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c91906134f8565b610d40565b60405161047e9190613358565b60405180910390f35b34801561049357600080fd5b5061049c610d96565b6040516104a99190613429565b60405180910390f35b3480156104be57600080fd5b506104c7610d9c565b005b3480156104d557600080fd5b506104f060048036038101906104eb91906134f8565b610e89565b005b3480156104fe57600080fd5b5061051960048036038101906105149190613730565b611254565b005b34801561052757600080fd5b50610542600480360381019061053d91906137a8565b61139b565b005b34801561055057600080fd5b5061056b600480360381019061056691906134f8565b611509565b6040516105789190613358565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a391906134f8565b61155f565b6040516105b59190613429565b60405180910390f35b3480156105ca57600080fd5b506105d36115a7565b005b3480156105e157600080fd5b506105ea6116ff565b6040516105f791906134dd565b60405180910390f35b34801561060c57600080fd5b50610615611725565b6040516106229190613429565b60405180910390f35b34801561063757600080fd5b5061064061172b565b60405161064d91906134dd565b60405180910390f35b34801561066257600080fd5b5061066b611755565b6040516106789190613233565b60405180910390f35b34801561068d57600080fd5b506106a860048036038101906106a39190613814565b6117e7565b005b3480156106b657600080fd5b506106d160048036038101906106cc91906132fd565b61191c565b6040516106de9190613358565b60405180910390f35b3480156106f357600080fd5b5061070e600480360381019061070991906132fd565b611a07565b60405161071b9190613358565b60405180910390f35b34801561073057600080fd5b5061074b600480360381019061074691906134f8565b611a25565b6040516107589190613358565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906134f8565b611a45565b005b34801561079657600080fd5b506107b160048036038101906107ac9190613814565b611c52565b005b3480156107bf57600080fd5b506107da60048036038101906107d59190613814565b611e24565b005b3480156107e857600080fd5b5061080360048036038101906107fe9190613854565b611ff6565b6040516108109190613429565b60405180910390f35b34801561082557600080fd5b50610840600480360381019061083b91906134f8565b61207d565b005b34801561084e57600080fd5b50610869600480360381019061086491906134f8565b612243565b005b60606003805461087a906138c3565b80601f01602080910402602001604051908101604052809291908181526020018280546108a6906138c3565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050905090565b600061091161090a61244f565b8484612457565b6001905092915050565b61092361244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a990613940565b60405180910390fd5b6127106109bd610a38565b6109c791906139be565b8111610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff90613a3b565b60405180910390fd5b80600d8190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a8e61244f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b4a5782811015610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90613acd565b60405180910390fd5b610b4985610b4161244f565b858403612457565b5b610b55858585612620565b60019150509392505050565b60075481565b60006012905090565b6000610c12610b7d61244f565b848460016000610b8b61244f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c0d9190613aed565b612457565b6001905092915050565b610c2461244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa90613940565b60405180910390fd5b620186a0610cbf610a38565b610cc991906139be565b8111610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0190613bb5565b60405180910390fd5b80600c8190555050565b60065481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600c5481565b610da461244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a90613940565b60405180910390fd5b6000479050610e4061172b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e85573d6000803e3d6000fd5b5050565b610e9161244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790613940565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa790613c47565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190613c7c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ad9190613c7c565b6040518363ffffffff1660e01b81526004016111ca929190613ca9565b6020604051808303816000875af11580156111e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120d9190613c7c565b905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b8051825114611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613d1e565b60405180910390fd5b600080600090505b82518110156112e4578281815181106112bc576112bb613d3e565b5b6020026020010151826112cf9190613aed565b915080806112dc90613d6d565b9150506112a0565b50806112ef3361155f565b1015611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790613e01565b60405180910390fd5b60005b83518110156113955761138261134761244f565b85838151811061135a57611359613d3e565b5b602002602001015185848151811061137557611374613d3e565b5b6020026020010151612620565b808061138d90613d6d565b915050611333565b50505050565b6113a361244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990613940565b60405180910390fd5b600a821115611476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146d90613e6d565b60405180910390fd5b600a8111156114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190613ed9565b60405180910390fd5b81600681905550806007819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a16006546007546040516114fd929190613ef9565b60405180910390a15050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115af61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163590613940565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611764906138c3565b80601f0160208091040260200160405190810160405280929190818152602001828054611790906138c3565b80156117dd5780601f106117b2576101008083540402835291602001916117dd565b820191906000526020600020905b8154815290600101906020018083116117c057829003601f168201915b5050505050905090565b6117ef61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590613940565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361190e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190590613fba565b60405180910390fd5b6119188282612cc7565b5050565b6000806001600061192b61244f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156119e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119df9061404c565b60405180910390fd5b6119fc6119f361244f565b85858403612457565b600191505092915050565b6000611a1b611a1461244f565b8484612620565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b611a4d61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad390613940565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b63906140b8565b60405180910390fd5b611b7581612dfa565b15611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac9061414a565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611c4791906134dd565b60405180910390a150565b611c5a61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce090613940565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d72906141dc565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e189190613358565b60405180910390a25050565b611e2c61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb290613940565b60405180910390fd5b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f44906141dc565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4a8452f723db48bf05f301f94d62a2cf7a72976cde77d83e3646584858b8f4b282604051611fea9190613358565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61208561244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b90613940565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217a9061426e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61224b61244f565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d190613940565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233f906142da565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161238891906134dd565b602060405180830381865afa1580156123a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c9919061430f565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161240692919061433c565b6020604051808303816000875af1158015612425573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612449919061437a565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bd90614419565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c906144ab565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126139190613429565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361268f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126869061453d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f5906145cf565b60405180910390fd5b600081036127175761271283836000612e1d565b612cc2565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146127c557600d54816127798461155f565b6127839190613aed565b11156127c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bb9061463b565b60405180910390fd5b5b60006127d03061155f565b90506000600c5482101590508080156127f65750600b60149054906101000a900460ff16155b801561284c5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612aee576001600b60146101000a81548160ff02191690831515021790555060004790506000600267ffffffffffffffff81111561288e5761288d61352a565b5b6040519080825280602002602001820160405280156128bc5781602001602082028036833780820191505090505b50905030816000815181106128d4576128d3613d3e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561297b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299f9190613c7c565b816001815181106129b3576129b2613d3e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612a51959493929190614754565b600060405180830381600087803b158015612a6b57600080fd5b505af1158015612a7f573d6000803e3d6000fd5b5050505060008247612a9191906147ae565b90506000811115612acf576000819050612acd600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261309c565b505b6000600b60146101000a81548160ff0219169083151502179055505050505b6000600b60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ba45750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612bae57600090505b8015612cb3576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603612c15576006549050612c71565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612c705760075490505b5b6000811115612cb157600060648287612c8a91906147e2565b612c9491906139be565b90508086612ca291906147ae565b9550612caf883083612e1d565b505b505b612cbe868686612e1d565b5050505b505050565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503612d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d50906148ae565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e839061453d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef2906145cf565b60405180910390fd5b612f06838383613190565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8390614940565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461301f9190613aed565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130839190613429565b60405180910390a3613096848484613195565b50505050565b804710156130df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130d6906149ac565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051613105906149fd565b60006040518083038185875af1925050503d8060008114613142576040519150601f19603f3d011682016040523d82523d6000602084013e613147565b606091505b505090508061318b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318290614a84565b60405180910390fd5b505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131d45780820151818401526020810190506131b9565b838111156131e3576000848401525b50505050565b6000601f19601f8301169050919050565b60006132058261319a565b61320f81856131a5565b935061321f8185602086016131b6565b613228816131e9565b840191505092915050565b6000602082019050818103600083015261324d81846131fa565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061329482613269565b9050919050565b6132a481613289565b81146132af57600080fd5b50565b6000813590506132c18161329b565b92915050565b6000819050919050565b6132da816132c7565b81146132e557600080fd5b50565b6000813590506132f7816132d1565b92915050565b600080604083850312156133145761331361325f565b5b6000613322858286016132b2565b9250506020613333858286016132e8565b9150509250929050565b60008115159050919050565b6133528161333d565b82525050565b600060208201905061336d6000830184613349565b92915050565b6000602082840312156133895761338861325f565b5b6000613397848285016132e8565b91505092915050565b6000819050919050565b60006133c56133c06133bb84613269565b6133a0565b613269565b9050919050565b60006133d7826133aa565b9050919050565b60006133e9826133cc565b9050919050565b6133f9816133de565b82525050565b600060208201905061341460008301846133f0565b92915050565b613423816132c7565b82525050565b600060208201905061343e600083018461341a565b92915050565b60008060006060848603121561345d5761345c61325f565b5b600061346b868287016132b2565b935050602061347c868287016132b2565b925050604061348d868287016132e8565b9150509250925092565b600060ff82169050919050565b6134ad81613497565b82525050565b60006020820190506134c860008301846134a4565b92915050565b6134d781613289565b82525050565b60006020820190506134f260008301846134ce565b92915050565b60006020828403121561350e5761350d61325f565b5b600061351c848285016132b2565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613562826131e9565b810181811067ffffffffffffffff821117156135815761358061352a565b5b80604052505050565b6000613594613255565b90506135a08282613559565b919050565b600067ffffffffffffffff8211156135c0576135bf61352a565b5b602082029050602081019050919050565b600080fd5b60006135e96135e4846135a5565b61358a565b9050808382526020820190506020840283018581111561360c5761360b6135d1565b5b835b81811015613635578061362188826132b2565b84526020840193505060208101905061360e565b5050509392505050565b600082601f83011261365457613653613525565b5b81356136648482602086016135d6565b91505092915050565b600067ffffffffffffffff8211156136885761368761352a565b5b602082029050602081019050919050565b60006136ac6136a78461366d565b61358a565b905080838252602082019050602084028301858111156136cf576136ce6135d1565b5b835b818110156136f857806136e488826132e8565b8452602084019350506020810190506136d1565b5050509392505050565b600082601f83011261371757613716613525565b5b8135613727848260208601613699565b91505092915050565b600080604083850312156137475761374661325f565b5b600083013567ffffffffffffffff81111561376557613764613264565b5b6137718582860161363f565b925050602083013567ffffffffffffffff81111561379257613791613264565b5b61379e85828601613702565b9150509250929050565b600080604083850312156137bf576137be61325f565b5b60006137cd858286016132e8565b92505060206137de858286016132e8565b9150509250929050565b6137f18161333d565b81146137fc57600080fd5b50565b60008135905061380e816137e8565b92915050565b6000806040838503121561382b5761382a61325f565b5b6000613839858286016132b2565b925050602061384a858286016137ff565b9150509250929050565b6000806040838503121561386b5761386a61325f565b5b6000613879858286016132b2565b925050602061388a858286016132b2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138db57607f821691505b6020821081036138ee576138ed613894565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061392a6020836131a5565b9150613935826138f4565b602082019050919050565b600060208201905081810360008301526139598161391d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139c9826132c7565b91506139d4836132c7565b9250826139e4576139e3613960565b5b828204905092915050565b7f6d61782077616c6c657420746f6f206c6f770000000000000000000000000000600082015250565b6000613a256012836131a5565b9150613a30826139ef565b602082019050919050565b60006020820190508181036000830152613a5481613a18565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613ab76028836131a5565b9150613ac282613a5b565b604082019050919050565b60006020820190508181036000830152613ae681613aaa565b9050919050565b6000613af8826132c7565b9150613b03836132c7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b3857613b3761398f565b5b828201905092915050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e30303125206f6620746f74616c20737570706c790000602082015250565b6000613b9f603e836131a5565b9150613baa82613b43565b604082019050919050565b60006020820190508181036000830152613bce81613b92565b9050919050565b7f54686520726f7574657220616c7265616479206861732074686174206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c316023836131a5565b9150613c3c82613bd5565b604082019050919050565b60006020820190508181036000830152613c6081613c24565b9050919050565b600081519050613c768161329b565b92915050565b600060208284031215613c9257613c9161325f565b5b6000613ca084828501613c67565b91505092915050565b6000604082019050613cbe60008301856134ce565b613ccb60208301846134ce565b9392505050565b7f417272617973206d75737420626520657175616c000000000000000000000000600082015250565b6000613d086014836131a5565b9150613d1382613cd2565b602082019050919050565b60006020820190508181036000830152613d3781613cfb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613d78826132c7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613daa57613da961398f565b5b600182019050919050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b6000613deb6011836131a5565b9150613df682613db5565b602082019050919050565b60006020820190508181036000830152613e1a81613dde565b9050919050565b7f427579206665652063616e6e6f74206265206d6f7265207468616e2031302500600082015250565b6000613e57601f836131a5565b9150613e6282613e21565b602082019050919050565b60006020820190508181036000830152613e8681613e4a565b9050919050565b7f53656c6c206665652063616e6e6f74206265206d6f7265207468616e20313025600082015250565b6000613ec36020836131a5565b9150613ece82613e8d565b602082019050919050565b60006020820190508181036000830152613ef281613eb6565b9050919050565b6000604082019050613f0e600083018561341a565b613f1b602083018461341a565b9392505050565b7f5468652050616e63616b655377617020706169722063616e6e6f74206265207260008201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b6000613fa46045836131a5565b9150613faf82613f22565b606082019050919050565b60006020820190508181036000830152613fd381613f97565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006140366025836131a5565b915061404182613fda565b604082019050919050565b6000602082019050818103600083015261406581614029565b9050919050565b7f416c7265616479204d61726b6574696e672057616c6c65740000000000000000600082015250565b60006140a26018836131a5565b91506140ad8261406c565b602082019050919050565b600060208201905081810360008301526140d181614095565b9050919050565b7f4d61726b6574696e672057616c6c65742063616e206e6f7420626520636f6e7460008201527f7261637400000000000000000000000000000000000000000000000000000000602082015250565b60006141346024836131a5565b915061413f826140d8565b604082019050919050565b6000602082019050818103600083015261416381614127565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006141c6602a836131a5565b91506141d18261416a565b604082019050919050565b600060208201905081810360008301526141f5816141b9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142586026836131a5565b9150614263826141fc565b604082019050919050565b600060208201905081810360008301526142878161424b565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73600082015250565b60006142c46020836131a5565b91506142cf8261428e565b602082019050919050565b600060208201905081810360008301526142f3816142b7565b9050919050565b600081519050614309816132d1565b92915050565b6000602082840312156143255761432461325f565b5b6000614333848285016142fa565b91505092915050565b600060408201905061435160008301856134ce565b61435e602083018461341a565b9392505050565b600081519050614374816137e8565b92915050565b6000602082840312156143905761438f61325f565b5b600061439e84828501614365565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006144036024836131a5565b915061440e826143a7565b604082019050919050565b60006020820190508181036000830152614432816143f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006144956022836131a5565b91506144a082614439565b604082019050919050565b600060208201905081810360008301526144c481614488565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145276025836131a5565b9150614532826144cb565b604082019050919050565b600060208201905081810360008301526145568161451a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145b96023836131a5565b91506145c48261455d565b604082019050919050565b600060208201905081810360008301526145e8816145ac565b9050919050565b7f5472616e736665722065786365656473206d6178000000000000000000000000600082015250565b60006146256014836131a5565b9150614630826145ef565b602082019050919050565b6000602082019050818103600083015261465481614618565b9050919050565b6000819050919050565b600061468061467b6146768461465b565b6133a0565b6132c7565b9050919050565b61469081614665565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146cb81613289565b82525050565b60006146dd83836146c2565b60208301905092915050565b6000602082019050919050565b600061470182614696565b61470b81856146a1565b9350614716836146b2565b8060005b8381101561474757815161472e88826146d1565b9750614739836146e9565b92505060018101905061471a565b5085935050505092915050565b600060a082019050614769600083018861341a565b6147766020830187614687565b818103604083015261478881866146f6565b905061479760608301856134ce565b6147a4608083018461341a565b9695505050505050565b60006147b9826132c7565b91506147c4836132c7565b9250828210156147d7576147d661398f565b5b828203905092915050565b60006147ed826132c7565b91506147f8836132c7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148315761483061398f565b5b828202905092915050565b7f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160008201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b60006148986038836131a5565b91506148a38261483c565b604082019050919050565b600060208201905081810360008301526148c78161488b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061492a6026836131a5565b9150614935826148ce565b604082019050919050565b600060208201905081810360008301526149598161491d565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614996601d836131a5565b91506149a182614960565b602082019050919050565b600060208201905081810360008301526149c581614989565b9050919050565b600081905092915050565b50565b60006149e76000836149cc565b91506149f2826149d7565b600082019050919050565b6000614a08826149da565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614a6e603a836131a5565b9150614a7982614a12565b604082019050919050565b60006020820190508181036000830152614a9d81614a61565b905091905056fea2646970667358221220f7c87bcaae9b3da6e83369df59082f539278995a3b9da1d13cfb72333922099b64736f6c634300080f0033

Deployed Bytecode Sourcemap

15440:9169:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2743:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3657:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18299:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15558:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3064:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3834:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15519:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2963:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4415:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21612:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15487:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15606:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20787:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15860:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18147:142;;;;;;;;;;;;;:::i;:::-;;19402:494;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24075:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20920:320;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18809:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3180:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1930:148;;;;;;;;;;;;;:::i;:::-;;15714:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15898:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1716:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2851:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19904:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4638:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16100:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21248:356;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20487:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18489:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3498:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2086:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17834:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2743:100;2797:13;2830:5;2823:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2743:100;:::o;3657:169::-;3740:4;3757:39;3766:12;:10;:12::i;:::-;3780:7;3789:6;3757:8;:39::i;:::-;3814:4;3807:11;;3657:169;;;;:::o;18299:181::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18410:5:::1;18393:13;:11;:13::i;:::-;:23;;;;:::i;:::-;18381:9;:35;18373:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18463:9;18450:10;:22;;;;18299:181:::0;:::o;15558:41::-;;;;;;;;;;;;;:::o;3064:108::-;3125:7;3152:12;;3145:19;;3064:108;:::o;3834:573::-;3974:4;3991:24;4018:11;:19;4030:6;4018:19;;;;;;;;;;;;;;;:33;4038:12;:10;:12::i;:::-;4018:33;;;;;;;;;;;;;;;;3991:60;;4086:17;4066:16;:37;4062:265;;4148:6;4128:16;:26;;4120:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4243:57;4252:6;4260:12;:10;:12::i;:::-;4293:6;4274:16;:25;4243:8;:57::i;:::-;4062:265;4339:36;4349:6;4357:9;4368:6;4339:9;:36::i;:::-;4395:4;4388:11;;;3834:573;;;;;:::o;15519:26::-;;;;:::o;2963:93::-;3021:5;3046:2;3039:9;;2963:93;:::o;4415:215::-;4503:4;4520:80;4529:12;:10;:12::i;:::-;4543:7;4589:10;4552:11;:25;4564:12;:10;:12::i;:::-;4552:25;;;;;;;;;;;;;;;:34;4578:7;4552:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4520:8;:80::i;:::-;4618:4;4611:11;;4415:215;;;;:::o;21612:233::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21725:6:::1;21709:13;:11;:13::i;:::-;:22;;;;:::i;:::-;21697:9;:34;21689:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;21828:9;21809:16;:28;;;;21612:233:::0;:::o;15487:25::-;;;;:::o;15606:29::-;;;;;;;;;;;;;:::o;20787:125::-;20852:4;20876:19;:28;20896:7;20876:28;;;;;;;;;;;;;;;;;;;;;;;;;20869:35;;20787:125;;;:::o;15860:31::-;;;;:::o;18147:142::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18197:15:::1;18215:21;18197:39;;18255:7;:5;:7::i;:::-;18247:25;;:34;18273:7;18247:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18186:103;18147:142::o:0;19402:494::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19513:15:::1;;;;;;;;;;;19491:38;;:10;:38;;::::0;19483:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19627:15;;;;;;;;;;;19585:59;;19607:10;19585:59;;;;;;;;;;;;19692:10;19655:15;;:48;;;;;;;;;;;;;;;;;;19714:22;19757:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19739:69;;;19817:4;19824:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19739:108;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19714:133;;19874:14;19858:13;;:30;;;;;;;;;;;;;;;;;;19472:424;19402:494:::0;:::o;24075:529::-;24194:7;:14;24174:9;:16;:34;24166:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24244:19;24289:9;24301:1;24289:13;;24284:97;24308:7;:14;24304:1;:18;24284:97;;;24359:7;24367:1;24359:10;;;;;;;;:::i;:::-;;;;;;;;24344:25;;;;;:::i;:::-;;;24324:3;;;;;:::i;:::-;;;;24284:97;;;;24426:11;24401:21;24411:10;24401:9;:21::i;:::-;:36;;24393:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24477:9;24472:123;24496:9;:16;24492:1;:20;24472:123;;;24534:49;24544:12;:10;:12::i;:::-;24558:9;24568:1;24558:12;;;;;;;;:::i;:::-;;;;;;;;24572:7;24580:1;24572:10;;;;;;;;:::i;:::-;;;;;;;;24534:9;:49::i;:::-;24514:3;;;;;:::i;:::-;;;;24472:123;;;;24155:449;24075:529;;:::o;20920:320::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21024:2:::1;21013:7;:13;;21005:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;21093:2;21081:8;:14;;21073:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;21152:7;21143:6;:16;;;;21180:8;21170:7;:18;;;;21204:28;21216:6;;21224:7;;21204:28;;;;;;;:::i;:::-;;;;;;;;20920:320:::0;;:::o;18809:135::-;18879:4;18903:24;:33;18928:7;18903:33;;;;;;;;;;;;;;;;;;;;;;;;;18896:40;;18809:135;;;:::o;3180:127::-;3254:7;3281:9;:18;3291:7;3281:18;;;;;;;;;;;;;;;;3274:25;;3180:127;;;:::o;1930:148::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2037:1:::1;2000:40;;2021:6;;;;;;;;;;;2000:40;;;;;;;;;;;;2068:1;2051:6;;:19;;;;;;;;;;;;;;;;;;1930:148::o:0;15714:75::-;;;;;;;;;;;;;:::o;15898:52::-;;;;:::o;1716:79::-;1754:7;1781:6;;;;;;;;;;;1774:13;;1716:79;:::o;2851:104::-;2907:13;2940:7;2933:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2851:104;:::o;19904:258::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20013:13:::1;;;;;;;;;;;20005:21;;:4;:21;;::::0;19997:103:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20113:41;20142:4;20148:5;20113:28;:41::i;:::-;19904:258:::0;;:::o;4638:413::-;4731:4;4748:24;4775:11;:25;4787:12;:10;:12::i;:::-;4775:25;;;;;;;;;;;;;;;:34;4801:7;4775:34;;;;;;;;;;;;;;;;4748:61;;4848:15;4828:16;:35;;4820:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4941:67;4950:12;:10;:12::i;:::-;4964:7;4992:15;4973:16;:34;4941:8;:67::i;:::-;5039:4;5032:11;;;4638:413;;;;:::o;3315:175::-;3401:4;3418:42;3428:12;:10;:12::i;:::-;3442:9;3453:6;3418:9;:42::i;:::-;3478:4;3471:11;;3315:175;;;;:::o;16100:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;21248:356::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21363:15:::1;;;;;;;;;;;21343:35;;:16;:35;;::::0;21335:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21427:28;21438:16;21427:10;:28::i;:::-;21426:29;21418:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;21525:16;21507:15;;:34;;;;;;;;;;;;;;;;;;21557:39;21580:15;;;;;;;;;;;21557:39;;;;;;:::i;:::-;;;;;;;;21248:356:::0;:::o;20487:292::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20614:8:::1;20582:40;;:19;:28;20602:7;20582:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;::::0;20574:95:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20711:8;20680:19;:28;20700:7;20680:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20753:7;20737:34;;;20762:8;20737:34;;;;;;:::i;:::-;;;;;;;;20487:292:::0;;:::o;18489:312::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18626:8:::1;18589:45;;:24;:33;18614:7;18589:33;;;;;;;;;;;;;;;;;;;;;;;;;:45;;::::0;18581:100:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18728:8;18692:24;:33;18717:7;18692:33;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;18775:7;18754:39;;;18784:8;18754:39;;;;;;:::i;:::-;;;;;;;;18489:312:::0;;:::o;3498:151::-;3587:7;3614:11;:18;3626:5;3614:18;;;;;;;;;;;;;;;:27;3633:7;3614:27;;;;;;;;;;;;;;;;3607:34;;3498:151;;;;:::o;2086:244::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2195:1:::1;2175:22;;:8;:22;;::::0;2167:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2285:8;2256:38;;2277:6;;;;;;;;;;;2256:38;;;;;;;;;;;;2314:8;2305:6;;:17;;;;;;;;;;;;;;;;;;2086:244:::0;:::o;17834:305::-;1853:12;:10;:12::i;:::-;1843:22;;:6;;;;;;;;;;;:22;;;1835:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17930:4:::1;17913:22;;:5;:22;;::::0;17905:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17983:17;18010:5;17983:33;;18027:15;18045:10;:20;;;18074:4;18045:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18027:53;;18091:10;:19;;;18111:10;18123:7;18091:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17894:245;;17834:305:::0;:::o;1039:98::-;1092:7;1119:10;1112:17;;1039:98;:::o;6806:380::-;6959:1;6942:19;;:5;:19;;;6934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7040:1;7021:21;;:7;:21;;;7013:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7124:6;7094:11;:18;7106:5;7094:18;;;;;;;;;;;;;;;:27;7113:7;7094:27;;;;;;;;;;;;;;;:36;;;;7162:7;7146:32;;7155:5;7146:32;;;7171:6;7146:32;;;;;;:::i;:::-;;;;;;;;6806:380;;;:::o;21858:2203::-;22007:1;21991:18;;:4;:18;;;21983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22084:1;22070:16;;:2;:16;;;22062:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22159:1;22149:6;:11;22146:92;;22177:28;22193:4;22199:2;22203:1;22177:15;:28::i;:::-;22220:7;;22146:92;22267:13;;;;;;;;;;;22261:19;;:2;:19;;;22258:129;;22336:10;;22325:6;22308:13;22318:2;22308:9;:13::i;:::-;:24;;;;:::i;:::-;:38;;22300:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22258:129;22391:28;22422:24;22440:4;22422:9;:24::i;:::-;22391:55;;22459:12;22498:16;;22474:20;:40;;22459:55;;22531:7;:33;;;;;22556:8;;;;;;;;;;;22555:9;22531:33;:82;;;;;22582:25;:31;22608:4;22582:31;;;;;;;;;;;;;;;;;;;;;;;;;22581:32;22531:82;22527:848;;;22651:4;22640:8;;:15;;;;;;;;;;;;;;;;;;22672:22;22697:21;22672:46;;22735:21;22773:1;22759:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22735:40;;22808:4;22790;22795:1;22790:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22838:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22828:4;22833:1;22828:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22877:15;;;;;;;;;;;:66;;;22958:20;22993:1;23010:4;23037;23057:15;22877:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23090:18;23135:14;23111:21;:38;;;;:::i;:::-;23090:59;;23194:1;23181:10;:14;23178:153;;;23216:20;23239:10;23216:33;;23268:47;23284:15;;;;;;;;;;;23302:12;23268:7;:47::i;:::-;23197:134;23178:153;23358:5;23347:8;;:16;;;;;;;;;;;;;;;;;;22625:750;;;22527:848;23387:12;23403:8;;;;;;;;;;;23402:9;23387:24;;23427:19;:25;23447:4;23427:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;23456:19;:23;23476:2;23456:23;;;;;;;;;;;;;;;;;;;;;;;;;23427:52;23424:99;;;23506:5;23496:15;;23424:99;23538:7;23535:471;;;23562:18;23606:13;;;;;;;;;;;23598:21;;:4;:21;;;23595:199;;23653:6;;23640:19;;23595:199;;;23708:13;;;;;;;;;;;23702:19;;:2;:19;;;23698:96;;23755:7;;23742:20;;23698:96;23595:199;23827:1;23814:10;:14;23810:183;;;23846:12;23883:3;23870:10;23861:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;23846:40;;23912:4;23902:14;;;;;:::i;:::-;;;23935:42;23951:4;23965;23972;23935:15;:42::i;:::-;23830:163;23810:183;23547:459;23535:471;24018:33;24034:4;24040:2;24044:6;24018:15;:33::i;:::-;21972:2089;;;21858:2203;;;;:::o;20171:308::-;20297:5;20262:40;;:25;:31;20288:4;20262:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;20254:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;20408:5;20374:25;:31;20400:4;20374:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20465:5;20431:40;;20459:4;20431:40;;;;;;;;;;;;20171:308;;:::o;18956:115::-;19016:4;19062:1;19040:7;:19;;;:23;19033:30;;18956:115;;;:::o;5059:733::-;5217:1;5199:20;;:6;:20;;;5191:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5301:1;5280:23;;:9;:23;;;5272:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5356:47;5377:6;5385:9;5396:6;5356:20;:47::i;:::-;5416:21;5440:9;:17;5450:6;5440:17;;;;;;;;;;;;;;;;5416:41;;5493:6;5476:13;:23;;5468:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5614:6;5598:13;:22;5578:9;:17;5588:6;5578:17;;;;;;;;;;;;;;;:42;;;;5666:6;5642:9;:20;5652:9;5642:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5707:9;5690:35;;5699:6;5690:35;;;5718:6;5690:35;;;;;;:::i;:::-;;;;;;;;5738:46;5758:6;5766:9;5777:6;5738:19;:46::i;:::-;5180:612;5059:733;;;:::o;19079:315::-;19192:6;19167:21;:31;;19159:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;19246:12;19264:9;:14;;19286:6;19264:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19245:52;;;19316:7;19308:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;19148:246;19079:315;;:::o;7194:125::-;;;;:::o;7327:124::-;;;;:::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;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700: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:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:619::-;5236:6;5244;5252;5301:2;5289:9;5280:7;5276:23;5272:32;5269:119;;;5307:79;;:::i;:::-;5269:119;5427:1;5452:53;5497:7;5488:6;5477:9;5473:22;5452:53;:::i;:::-;5442:63;;5398:117;5554:2;5580:53;5625:7;5616:6;5605:9;5601:22;5580:53;:::i;:::-;5570:63;;5525:118;5682:2;5708:53;5753:7;5744:6;5733:9;5729:22;5708:53;:::i;:::-;5698:63;;5653:118;5159:619;;;;;:::o;5784:86::-;5819:7;5859:4;5852:5;5848:16;5837:27;;5784:86;;;:::o;5876:112::-;5959:22;5975:5;5959:22;:::i;:::-;5954:3;5947:35;5876:112;;:::o;5994:214::-;6083:4;6121:2;6110:9;6106:18;6098:26;;6134:67;6198:1;6187:9;6183:17;6174:6;6134:67;:::i;:::-;5994:214;;;;:::o;6214:118::-;6301:24;6319:5;6301:24;:::i;:::-;6296:3;6289:37;6214:118;;:::o;6338:222::-;6431:4;6469:2;6458:9;6454:18;6446:26;;6482:71;6550:1;6539:9;6535:17;6526:6;6482:71;:::i;:::-;6338:222;;;;:::o;6566:329::-;6625:6;6674:2;6662:9;6653:7;6649:23;6645:32;6642:119;;;6680:79;;:::i;:::-;6642:119;6800:1;6825:53;6870:7;6861:6;6850:9;6846:22;6825:53;:::i;:::-;6815:63;;6771:117;6566:329;;;;:::o;6901:117::-;7010:1;7007;7000:12;7024:180;7072:77;7069:1;7062:88;7169:4;7166:1;7159:15;7193:4;7190:1;7183:15;7210:281;7293:27;7315:4;7293:27;:::i;:::-;7285:6;7281:40;7423:6;7411:10;7408:22;7387:18;7375:10;7372:34;7369:62;7366:88;;;7434:18;;:::i;:::-;7366:88;7474:10;7470:2;7463:22;7253:238;7210:281;;:::o;7497:129::-;7531:6;7558:20;;:::i;:::-;7548:30;;7587:33;7615:4;7607:6;7587:33;:::i;:::-;7497:129;;;:::o;7632:311::-;7709:4;7799:18;7791:6;7788:30;7785:56;;;7821:18;;:::i;:::-;7785:56;7871:4;7863:6;7859:17;7851:25;;7931:4;7925;7921:15;7913:23;;7632:311;;;:::o;7949:117::-;8058:1;8055;8048:12;8089:710;8185:5;8210:81;8226:64;8283:6;8226:64;:::i;:::-;8210:81;:::i;:::-;8201:90;;8311:5;8340:6;8333:5;8326:21;8374:4;8367:5;8363:16;8356:23;;8427:4;8419:6;8415:17;8407:6;8403:30;8456:3;8448:6;8445:15;8442:122;;;8475:79;;:::i;:::-;8442:122;8590:6;8573:220;8607:6;8602:3;8599:15;8573:220;;;8682:3;8711:37;8744:3;8732:10;8711:37;:::i;:::-;8706:3;8699:50;8778:4;8773:3;8769:14;8762:21;;8649:144;8633:4;8628:3;8624:14;8617:21;;8573:220;;;8577:21;8191:608;;8089:710;;;;;:::o;8822:370::-;8893:5;8942:3;8935:4;8927:6;8923:17;8919:27;8909:122;;8950:79;;:::i;:::-;8909:122;9067:6;9054:20;9092:94;9182:3;9174:6;9167:4;9159:6;9155:17;9092:94;:::i;:::-;9083:103;;8899:293;8822:370;;;;:::o;9198:311::-;9275:4;9365:18;9357:6;9354:30;9351:56;;;9387:18;;:::i;:::-;9351:56;9437:4;9429:6;9425:17;9417:25;;9497:4;9491;9487:15;9479:23;;9198:311;;;:::o;9532:710::-;9628:5;9653:81;9669:64;9726:6;9669:64;:::i;:::-;9653:81;:::i;:::-;9644:90;;9754:5;9783:6;9776:5;9769:21;9817:4;9810:5;9806:16;9799:23;;9870:4;9862:6;9858:17;9850:6;9846:30;9899:3;9891:6;9888:15;9885:122;;;9918:79;;:::i;:::-;9885:122;10033:6;10016:220;10050:6;10045:3;10042:15;10016:220;;;10125:3;10154:37;10187:3;10175:10;10154:37;:::i;:::-;10149:3;10142:50;10221:4;10216:3;10212:14;10205:21;;10092:144;10076:4;10071:3;10067:14;10060:21;;10016:220;;;10020:21;9634:608;;9532:710;;;;;:::o;10265:370::-;10336:5;10385:3;10378:4;10370:6;10366:17;10362:27;10352:122;;10393:79;;:::i;:::-;10352:122;10510:6;10497:20;10535:94;10625:3;10617:6;10610:4;10602:6;10598:17;10535:94;:::i;:::-;10526:103;;10342:293;10265:370;;;;:::o;10641:894::-;10759:6;10767;10816:2;10804:9;10795:7;10791:23;10787:32;10784:119;;;10822:79;;:::i;:::-;10784:119;10970:1;10959:9;10955:17;10942:31;11000:18;10992:6;10989:30;10986:117;;;11022:79;;:::i;:::-;10986:117;11127:78;11197:7;11188:6;11177:9;11173:22;11127:78;:::i;:::-;11117:88;;10913:302;11282:2;11271:9;11267:18;11254:32;11313:18;11305:6;11302:30;11299:117;;;11335:79;;:::i;:::-;11299:117;11440:78;11510:7;11501:6;11490:9;11486:22;11440:78;:::i;:::-;11430:88;;11225:303;10641:894;;;;;:::o;11541:474::-;11609:6;11617;11666:2;11654:9;11645:7;11641:23;11637:32;11634:119;;;11672:79;;:::i;:::-;11634:119;11792:1;11817:53;11862:7;11853:6;11842:9;11838:22;11817:53;:::i;:::-;11807:63;;11763:117;11919:2;11945:53;11990:7;11981:6;11970:9;11966:22;11945:53;:::i;:::-;11935:63;;11890:118;11541:474;;;;;:::o;12021:116::-;12091:21;12106:5;12091:21;:::i;:::-;12084:5;12081:32;12071:60;;12127:1;12124;12117:12;12071:60;12021:116;:::o;12143:133::-;12186:5;12224:6;12211:20;12202:29;;12240:30;12264:5;12240:30;:::i;:::-;12143:133;;;;:::o;12282:468::-;12347:6;12355;12404:2;12392:9;12383:7;12379:23;12375:32;12372:119;;;12410:79;;:::i;:::-;12372:119;12530:1;12555:53;12600:7;12591:6;12580:9;12576:22;12555:53;:::i;:::-;12545:63;;12501:117;12657:2;12683:50;12725:7;12716:6;12705:9;12701:22;12683:50;:::i;:::-;12673:60;;12628:115;12282:468;;;;;:::o;12756:474::-;12824:6;12832;12881:2;12869:9;12860:7;12856:23;12852:32;12849:119;;;12887:79;;:::i;:::-;12849:119;13007:1;13032:53;13077:7;13068:6;13057:9;13053:22;13032:53;:::i;:::-;13022:63;;12978:117;13134:2;13160:53;13205:7;13196:6;13185:9;13181:22;13160:53;:::i;:::-;13150:63;;13105:118;12756:474;;;;;:::o;13236:180::-;13284:77;13281:1;13274:88;13381:4;13378:1;13371:15;13405:4;13402:1;13395:15;13422:320;13466:6;13503:1;13497:4;13493:12;13483:22;;13550:1;13544:4;13540:12;13571:18;13561:81;;13627:4;13619:6;13615:17;13605:27;;13561:81;13689:2;13681:6;13678:14;13658:18;13655:38;13652:84;;13708:18;;:::i;:::-;13652:84;13473:269;13422:320;;;:::o;13748:182::-;13888:34;13884:1;13876:6;13872:14;13865:58;13748:182;:::o;13936:366::-;14078:3;14099:67;14163:2;14158:3;14099:67;:::i;:::-;14092:74;;14175:93;14264:3;14175:93;:::i;:::-;14293:2;14288:3;14284:12;14277:19;;13936:366;;;:::o;14308:419::-;14474:4;14512:2;14501:9;14497:18;14489:26;;14561:9;14555:4;14551:20;14547:1;14536:9;14532:17;14525:47;14589:131;14715:4;14589:131;:::i;:::-;14581:139;;14308:419;;;:::o;14733:180::-;14781:77;14778:1;14771:88;14878:4;14875:1;14868:15;14902:4;14899:1;14892:15;14919:180;14967:77;14964:1;14957:88;15064:4;15061:1;15054:15;15088:4;15085:1;15078:15;15105:185;15145:1;15162:20;15180:1;15162:20;:::i;:::-;15157:25;;15196:20;15214:1;15196:20;:::i;:::-;15191:25;;15235:1;15225:35;;15240:18;;:::i;:::-;15225:35;15282:1;15279;15275:9;15270:14;;15105:185;;;;:::o;15296:168::-;15436:20;15432:1;15424:6;15420:14;15413:44;15296:168;:::o;15470:366::-;15612:3;15633:67;15697:2;15692:3;15633:67;:::i;:::-;15626:74;;15709:93;15798:3;15709:93;:::i;:::-;15827:2;15822:3;15818:12;15811:19;;15470:366;;;:::o;15842:419::-;16008:4;16046:2;16035:9;16031:18;16023:26;;16095:9;16089:4;16085:20;16081:1;16070:9;16066:17;16059:47;16123:131;16249:4;16123:131;:::i;:::-;16115:139;;15842:419;;;:::o;16267:227::-;16407:34;16403:1;16395:6;16391:14;16384:58;16476:10;16471:2;16463:6;16459:15;16452:35;16267:227;:::o;16500:366::-;16642:3;16663:67;16727:2;16722:3;16663:67;:::i;:::-;16656:74;;16739:93;16828:3;16739:93;:::i;:::-;16857:2;16852:3;16848:12;16841:19;;16500:366;;;:::o;16872:419::-;17038:4;17076:2;17065:9;17061:18;17053:26;;17125:9;17119:4;17115:20;17111:1;17100:9;17096:17;17089:47;17153:131;17279:4;17153:131;:::i;:::-;17145:139;;16872:419;;;:::o;17297:305::-;17337:3;17356:20;17374:1;17356:20;:::i;:::-;17351:25;;17390:20;17408:1;17390:20;:::i;:::-;17385:25;;17544:1;17476:66;17472:74;17469:1;17466:81;17463:107;;;17550:18;;:::i;:::-;17463:107;17594:1;17591;17587:9;17580:16;;17297:305;;;;:::o;17608:249::-;17748:34;17744:1;17736:6;17732:14;17725:58;17817:32;17812:2;17804:6;17800:15;17793:57;17608:249;:::o;17863:366::-;18005:3;18026:67;18090:2;18085:3;18026:67;:::i;:::-;18019:74;;18102:93;18191:3;18102:93;:::i;:::-;18220:2;18215:3;18211:12;18204:19;;17863:366;;;:::o;18235:419::-;18401:4;18439:2;18428:9;18424:18;18416:26;;18488:9;18482:4;18478:20;18474:1;18463:9;18459:17;18452:47;18516:131;18642:4;18516:131;:::i;:::-;18508:139;;18235:419;;;:::o;18660:222::-;18800:34;18796:1;18788:6;18784:14;18777:58;18869:5;18864:2;18856:6;18852:15;18845:30;18660:222;:::o;18888:366::-;19030:3;19051:67;19115:2;19110:3;19051:67;:::i;:::-;19044:74;;19127:93;19216:3;19127:93;:::i;:::-;19245:2;19240:3;19236:12;19229:19;;18888:366;;;:::o;19260:419::-;19426:4;19464:2;19453:9;19449:18;19441:26;;19513:9;19507:4;19503:20;19499:1;19488:9;19484:17;19477:47;19541:131;19667:4;19541:131;:::i;:::-;19533:139;;19260:419;;;:::o;19685:143::-;19742:5;19773:6;19767:13;19758:22;;19789:33;19816:5;19789:33;:::i;:::-;19685:143;;;;:::o;19834:351::-;19904:6;19953:2;19941:9;19932:7;19928:23;19924:32;19921:119;;;19959:79;;:::i;:::-;19921:119;20079:1;20104:64;20160:7;20151:6;20140:9;20136:22;20104:64;:::i;:::-;20094:74;;20050:128;19834:351;;;;:::o;20191:332::-;20312:4;20350:2;20339:9;20335:18;20327:26;;20363:71;20431:1;20420:9;20416:17;20407:6;20363:71;:::i;:::-;20444:72;20512:2;20501:9;20497:18;20488:6;20444:72;:::i;:::-;20191:332;;;;;:::o;20529:170::-;20669:22;20665:1;20657:6;20653:14;20646:46;20529:170;:::o;20705:366::-;20847:3;20868:67;20932:2;20927:3;20868:67;:::i;:::-;20861:74;;20944:93;21033:3;20944:93;:::i;:::-;21062:2;21057:3;21053:12;21046:19;;20705:366;;;:::o;21077:419::-;21243:4;21281:2;21270:9;21266:18;21258:26;;21330:9;21324:4;21320:20;21316:1;21305:9;21301:17;21294:47;21358:131;21484:4;21358:131;:::i;:::-;21350:139;;21077:419;;;:::o;21502:180::-;21550:77;21547:1;21540:88;21647:4;21644:1;21637:15;21671:4;21668:1;21661:15;21688:233;21727:3;21750:24;21768:5;21750:24;:::i;:::-;21741:33;;21796:66;21789:5;21786:77;21783:103;;21866:18;;:::i;:::-;21783:103;21913:1;21906:5;21902:13;21895:20;;21688:233;;;:::o;21927:167::-;22067:19;22063:1;22055:6;22051:14;22044:43;21927:167;:::o;22100:366::-;22242:3;22263:67;22327:2;22322:3;22263:67;:::i;:::-;22256:74;;22339:93;22428:3;22339:93;:::i;:::-;22457:2;22452:3;22448:12;22441:19;;22100:366;;;:::o;22472:419::-;22638:4;22676:2;22665:9;22661:18;22653:26;;22725:9;22719:4;22715:20;22711:1;22700:9;22696:17;22689:47;22753:131;22879:4;22753:131;:::i;:::-;22745:139;;22472:419;;;:::o;22897:181::-;23037:33;23033:1;23025:6;23021:14;23014:57;22897:181;:::o;23084:366::-;23226:3;23247:67;23311:2;23306:3;23247:67;:::i;:::-;23240:74;;23323:93;23412:3;23323:93;:::i;:::-;23441:2;23436:3;23432:12;23425:19;;23084:366;;;:::o;23456:419::-;23622:4;23660:2;23649:9;23645:18;23637:26;;23709:9;23703:4;23699:20;23695:1;23684:9;23680:17;23673:47;23737:131;23863:4;23737:131;:::i;:::-;23729:139;;23456:419;;;:::o;23881:182::-;24021:34;24017:1;24009:6;24005:14;23998:58;23881:182;:::o;24069:366::-;24211:3;24232:67;24296:2;24291:3;24232:67;:::i;:::-;24225:74;;24308:93;24397:3;24308:93;:::i;:::-;24426:2;24421:3;24417:12;24410:19;;24069:366;;;:::o;24441:419::-;24607:4;24645:2;24634:9;24630:18;24622:26;;24694:9;24688:4;24684:20;24680:1;24669:9;24665:17;24658:47;24722:131;24848:4;24722:131;:::i;:::-;24714:139;;24441:419;;;:::o;24866:332::-;24987:4;25025:2;25014:9;25010:18;25002:26;;25038:71;25106:1;25095:9;25091:17;25082:6;25038:71;:::i;:::-;25119:72;25187:2;25176:9;25172:18;25163:6;25119:72;:::i;:::-;24866:332;;;;;:::o;25204:293::-;25344:34;25340:1;25332:6;25328:14;25321:58;25413:34;25408:2;25400:6;25396:15;25389:59;25482:7;25477:2;25469:6;25465:15;25458:32;25204:293;:::o;25503:366::-;25645:3;25666:67;25730:2;25725:3;25666:67;:::i;:::-;25659:74;;25742:93;25831:3;25742:93;:::i;:::-;25860:2;25855:3;25851:12;25844:19;;25503:366;;;:::o;25875:419::-;26041:4;26079:2;26068:9;26064:18;26056:26;;26128:9;26122:4;26118:20;26114:1;26103:9;26099:17;26092:47;26156:131;26282:4;26156:131;:::i;:::-;26148:139;;25875:419;;;:::o;26300:224::-;26440:34;26436:1;26428:6;26424:14;26417:58;26509:7;26504:2;26496:6;26492:15;26485:32;26300:224;:::o;26530:366::-;26672:3;26693:67;26757:2;26752:3;26693:67;:::i;:::-;26686:74;;26769:93;26858:3;26769:93;:::i;:::-;26887:2;26882:3;26878:12;26871:19;;26530:366;;;:::o;26902:419::-;27068:4;27106:2;27095:9;27091:18;27083:26;;27155:9;27149:4;27145:20;27141:1;27130:9;27126:17;27119:47;27183:131;27309:4;27183:131;:::i;:::-;27175:139;;26902:419;;;:::o;27327:174::-;27467:26;27463:1;27455:6;27451:14;27444:50;27327:174;:::o;27507:366::-;27649:3;27670:67;27734:2;27729:3;27670:67;:::i;:::-;27663:74;;27746:93;27835:3;27746:93;:::i;:::-;27864:2;27859:3;27855:12;27848:19;;27507:366;;;:::o;27879:419::-;28045:4;28083:2;28072:9;28068:18;28060:26;;28132:9;28126:4;28122:20;28118:1;28107:9;28103:17;28096:47;28160:131;28286:4;28160:131;:::i;:::-;28152:139;;27879:419;;;:::o;28304:223::-;28444:34;28440:1;28432:6;28428:14;28421:58;28513:6;28508:2;28500:6;28496:15;28489:31;28304:223;:::o;28533:366::-;28675:3;28696:67;28760:2;28755:3;28696:67;:::i;:::-;28689:74;;28772:93;28861:3;28772:93;:::i;:::-;28890:2;28885:3;28881:12;28874:19;;28533:366;;;:::o;28905:419::-;29071:4;29109:2;29098:9;29094:18;29086:26;;29158:9;29152:4;29148:20;29144:1;29133:9;29129:17;29122:47;29186:131;29312:4;29186:131;:::i;:::-;29178:139;;28905:419;;;:::o;29330:229::-;29470:34;29466:1;29458:6;29454:14;29447:58;29539:12;29534:2;29526:6;29522:15;29515:37;29330:229;:::o;29565:366::-;29707:3;29728:67;29792:2;29787:3;29728:67;:::i;:::-;29721:74;;29804:93;29893:3;29804:93;:::i;:::-;29922:2;29917:3;29913:12;29906:19;;29565:366;;;:::o;29937:419::-;30103:4;30141:2;30130:9;30126:18;30118:26;;30190:9;30184:4;30180:20;30176:1;30165:9;30161:17;30154:47;30218:131;30344:4;30218:131;:::i;:::-;30210:139;;29937:419;;;:::o;30362:225::-;30502:34;30498:1;30490:6;30486:14;30479:58;30571:8;30566:2;30558:6;30554:15;30547:33;30362:225;:::o;30593:366::-;30735:3;30756:67;30820:2;30815:3;30756:67;:::i;:::-;30749:74;;30832:93;30921:3;30832:93;:::i;:::-;30950:2;30945:3;30941:12;30934:19;;30593:366;;;:::o;30965:419::-;31131:4;31169:2;31158:9;31154:18;31146:26;;31218:9;31212:4;31208:20;31204:1;31193:9;31189:17;31182:47;31246:131;31372:4;31246:131;:::i;:::-;31238:139;;30965:419;;;:::o;31390:182::-;31530:34;31526:1;31518:6;31514:14;31507:58;31390:182;:::o;31578:366::-;31720:3;31741:67;31805:2;31800:3;31741:67;:::i;:::-;31734:74;;31817:93;31906:3;31817:93;:::i;:::-;31935:2;31930:3;31926:12;31919:19;;31578:366;;;:::o;31950:419::-;32116:4;32154:2;32143:9;32139:18;32131:26;;32203:9;32197:4;32193:20;32189:1;32178:9;32174:17;32167:47;32231:131;32357:4;32231:131;:::i;:::-;32223:139;;31950:419;;;:::o;32375:143::-;32432:5;32463:6;32457:13;32448:22;;32479:33;32506:5;32479:33;:::i;:::-;32375:143;;;;:::o;32524:351::-;32594:6;32643:2;32631:9;32622:7;32618:23;32614:32;32611:119;;;32649:79;;:::i;:::-;32611:119;32769:1;32794:64;32850:7;32841:6;32830:9;32826:22;32794:64;:::i;:::-;32784:74;;32740:128;32524:351;;;;:::o;32881:332::-;33002:4;33040:2;33029:9;33025:18;33017:26;;33053:71;33121:1;33110:9;33106:17;33097:6;33053:71;:::i;:::-;33134:72;33202:2;33191:9;33187:18;33178:6;33134:72;:::i;:::-;32881:332;;;;;:::o;33219:137::-;33273:5;33304:6;33298:13;33289:22;;33320:30;33344:5;33320:30;:::i;:::-;33219:137;;;;:::o;33362:345::-;33429:6;33478:2;33466:9;33457:7;33453:23;33449:32;33446:119;;;33484:79;;:::i;:::-;33446:119;33604:1;33629:61;33682:7;33673:6;33662:9;33658:22;33629:61;:::i;:::-;33619:71;;33575:125;33362:345;;;;:::o;33713:223::-;33853:34;33849:1;33841:6;33837:14;33830:58;33922:6;33917:2;33909:6;33905:15;33898:31;33713:223;:::o;33942:366::-;34084:3;34105:67;34169:2;34164:3;34105:67;:::i;:::-;34098:74;;34181:93;34270:3;34181:93;:::i;:::-;34299:2;34294:3;34290:12;34283:19;;33942:366;;;:::o;34314:419::-;34480:4;34518:2;34507:9;34503:18;34495:26;;34567:9;34561:4;34557:20;34553:1;34542:9;34538:17;34531:47;34595:131;34721:4;34595:131;:::i;:::-;34587:139;;34314:419;;;:::o;34739:221::-;34879:34;34875:1;34867:6;34863:14;34856:58;34948:4;34943:2;34935:6;34931:15;34924:29;34739:221;:::o;34966:366::-;35108:3;35129:67;35193:2;35188:3;35129:67;:::i;:::-;35122:74;;35205:93;35294:3;35205:93;:::i;:::-;35323:2;35318:3;35314:12;35307:19;;34966:366;;;:::o;35338:419::-;35504:4;35542:2;35531:9;35527:18;35519:26;;35591:9;35585:4;35581:20;35577:1;35566:9;35562:17;35555:47;35619:131;35745:4;35619:131;:::i;:::-;35611:139;;35338:419;;;:::o;35763:224::-;35903:34;35899:1;35891:6;35887:14;35880:58;35972:7;35967:2;35959:6;35955:15;35948:32;35763:224;:::o;35993:366::-;36135:3;36156:67;36220:2;36215:3;36156:67;:::i;:::-;36149:74;;36232:93;36321:3;36232:93;:::i;:::-;36350:2;36345:3;36341:12;36334:19;;35993:366;;;:::o;36365:419::-;36531:4;36569:2;36558:9;36554:18;36546:26;;36618:9;36612:4;36608:20;36604:1;36593:9;36589:17;36582:47;36646:131;36772:4;36646:131;:::i;:::-;36638:139;;36365:419;;;:::o;36790:222::-;36930:34;36926:1;36918:6;36914:14;36907:58;36999:5;36994:2;36986:6;36982:15;36975:30;36790:222;:::o;37018:366::-;37160:3;37181:67;37245:2;37240:3;37181:67;:::i;:::-;37174:74;;37257:93;37346:3;37257:93;:::i;:::-;37375:2;37370:3;37366:12;37359:19;;37018:366;;;:::o;37390:419::-;37556:4;37594:2;37583:9;37579:18;37571:26;;37643:9;37637:4;37633:20;37629:1;37618:9;37614:17;37607:47;37671:131;37797:4;37671:131;:::i;:::-;37663:139;;37390:419;;;:::o;37815:170::-;37955:22;37951:1;37943:6;37939:14;37932:46;37815:170;:::o;37991:366::-;38133:3;38154:67;38218:2;38213:3;38154:67;:::i;:::-;38147:74;;38230:93;38319:3;38230:93;:::i;:::-;38348:2;38343:3;38339:12;38332:19;;37991:366;;;:::o;38363:419::-;38529:4;38567:2;38556:9;38552:18;38544:26;;38616:9;38610:4;38606:20;38602:1;38591:9;38587:17;38580:47;38644:131;38770:4;38644:131;:::i;:::-;38636:139;;38363:419;;;:::o;38788:85::-;38833:7;38862:5;38851:16;;38788:85;;;:::o;38879:158::-;38937:9;38970:61;38988:42;38997:32;39023:5;38997:32;:::i;:::-;38988:42;:::i;:::-;38970:61;:::i;:::-;38957:74;;38879:158;;;:::o;39043:147::-;39138:45;39177:5;39138:45;:::i;:::-;39133:3;39126:58;39043:147;;:::o;39196:114::-;39263:6;39297:5;39291:12;39281:22;;39196:114;;;:::o;39316:184::-;39415:11;39449:6;39444:3;39437:19;39489:4;39484:3;39480:14;39465:29;;39316:184;;;;:::o;39506:132::-;39573:4;39596:3;39588:11;;39626:4;39621:3;39617:14;39609:22;;39506:132;;;:::o;39644:108::-;39721:24;39739:5;39721:24;:::i;:::-;39716:3;39709:37;39644:108;;:::o;39758:179::-;39827:10;39848:46;39890:3;39882:6;39848:46;:::i;:::-;39926:4;39921:3;39917:14;39903:28;;39758:179;;;;:::o;39943:113::-;40013:4;40045;40040:3;40036:14;40028:22;;39943:113;;;:::o;40092:732::-;40211:3;40240:54;40288:5;40240:54;:::i;:::-;40310:86;40389:6;40384:3;40310:86;:::i;:::-;40303:93;;40420:56;40470:5;40420:56;:::i;:::-;40499:7;40530:1;40515:284;40540:6;40537:1;40534:13;40515:284;;;40616:6;40610:13;40643:63;40702:3;40687:13;40643:63;:::i;:::-;40636:70;;40729:60;40782:6;40729:60;:::i;:::-;40719:70;;40575:224;40562:1;40559;40555:9;40550:14;;40515:284;;;40519:14;40815:3;40808:10;;40216:608;;;40092:732;;;;:::o;40830:831::-;41093:4;41131:3;41120:9;41116:19;41108:27;;41145:71;41213:1;41202:9;41198:17;41189:6;41145:71;:::i;:::-;41226:80;41302:2;41291:9;41287:18;41278:6;41226:80;:::i;:::-;41353:9;41347:4;41343:20;41338:2;41327:9;41323:18;41316:48;41381:108;41484:4;41475:6;41381:108;:::i;:::-;41373:116;;41499:72;41567:2;41556:9;41552:18;41543:6;41499:72;:::i;:::-;41581:73;41649:3;41638:9;41634:19;41625:6;41581:73;:::i;:::-;40830:831;;;;;;;;:::o;41667:191::-;41707:4;41727:20;41745:1;41727:20;:::i;:::-;41722:25;;41761:20;41779:1;41761:20;:::i;:::-;41756:25;;41800:1;41797;41794:8;41791:34;;;41805:18;;:::i;:::-;41791:34;41850:1;41847;41843:9;41835:17;;41667:191;;;;:::o;41864:348::-;41904:7;41927:20;41945:1;41927:20;:::i;:::-;41922:25;;41961:20;41979:1;41961:20;:::i;:::-;41956:25;;42149:1;42081:66;42077:74;42074:1;42071:81;42066:1;42059:9;42052:17;42048:105;42045:131;;;42156:18;;:::i;:::-;42045:131;42204:1;42201;42197:9;42186:20;;41864:348;;;;:::o;42218:243::-;42358:34;42354:1;42346:6;42342:14;42335:58;42427:26;42422:2;42414:6;42410:15;42403:51;42218:243;:::o;42467:366::-;42609:3;42630:67;42694:2;42689:3;42630:67;:::i;:::-;42623:74;;42706:93;42795:3;42706:93;:::i;:::-;42824:2;42819:3;42815:12;42808:19;;42467:366;;;:::o;42839:419::-;43005:4;43043:2;43032:9;43028:18;43020:26;;43092:9;43086:4;43082:20;43078:1;43067:9;43063:17;43056:47;43120:131;43246:4;43120:131;:::i;:::-;43112:139;;42839:419;;;:::o;43264:225::-;43404:34;43400:1;43392:6;43388:14;43381:58;43473:8;43468:2;43460:6;43456:15;43449:33;43264:225;:::o;43495:366::-;43637:3;43658:67;43722:2;43717:3;43658:67;:::i;:::-;43651:74;;43734:93;43823:3;43734:93;:::i;:::-;43852:2;43847:3;43843:12;43836:19;;43495:366;;;:::o;43867:419::-;44033:4;44071:2;44060:9;44056:18;44048:26;;44120:9;44114:4;44110:20;44106:1;44095:9;44091:17;44084:47;44148:131;44274:4;44148:131;:::i;:::-;44140:139;;43867:419;;;:::o;44292:179::-;44432:31;44428:1;44420:6;44416:14;44409:55;44292:179;:::o;44477:366::-;44619:3;44640:67;44704:2;44699:3;44640:67;:::i;:::-;44633:74;;44716:93;44805:3;44716:93;:::i;:::-;44834:2;44829:3;44825:12;44818:19;;44477:366;;;:::o;44849:419::-;45015:4;45053:2;45042:9;45038:18;45030:26;;45102:9;45096:4;45092:20;45088:1;45077:9;45073:17;45066:47;45130:131;45256:4;45130:131;:::i;:::-;45122:139;;44849:419;;;:::o;45274:147::-;45375:11;45412:3;45397:18;;45274:147;;;;:::o;45427:114::-;;:::o;45547:398::-;45706:3;45727:83;45808:1;45803:3;45727:83;:::i;:::-;45720:90;;45819:93;45908:3;45819:93;:::i;:::-;45937:1;45932:3;45928:11;45921:18;;45547:398;;;:::o;45951:379::-;46135:3;46157:147;46300:3;46157:147;:::i;:::-;46150:154;;46321:3;46314:10;;45951:379;;;:::o;46336:245::-;46476:34;46472:1;46464:6;46460:14;46453:58;46545:28;46540:2;46532:6;46528:15;46521:53;46336:245;:::o;46587:366::-;46729:3;46750:67;46814:2;46809:3;46750:67;:::i;:::-;46743:74;;46826:93;46915:3;46826:93;:::i;:::-;46944:2;46939:3;46935:12;46928:19;;46587:366;;;:::o;46959:419::-;47125:4;47163:2;47152:9;47148:18;47140:26;;47212:9;47206:4;47202:20;47198:1;47187:9;47183:17;47176:47;47240:131;47366:4;47240:131;:::i;:::-;47232:139;;46959:419;;;:::o

Swarm Source

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