ETH Price: $2,390.98 (-1.95%)

Token

Luna Cash (LCH)
 

Overview

Max Total Supply

1,000,000,000,000,000 LCH

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
241,562,905,896.031417268930113989 LCH

Value
$0.00
0x76af5ca14a383fadbdcc152e9692179729e232f6
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xBd05F738...39b966A42
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
LCH

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-24
*/

//SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.7;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint _totalSupply);
    function balanceOf(address _owner) external view returns (uint balance);
    function transfer(address _to, uint _value) external returns (bool success);
    function transferFrom(address _from, address _to, uint _value) external returns (bool success);
    function approve(address _spender, uint _value) external returns (bool success);
    function allowance(address _owner, address _spender) external view returns (uint remaining);
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

interface IUniswapFactory {
    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 IUniswapRouter01 {
    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 factory() external pure returns (address);
    function WETH() external pure returns (address);
    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 IUniswapRouter02 is IUniswapRouter01 {
    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;
}


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

contract smart {
    using SafeMath for uint;

    address public router_address = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    IUniswapRouter02 public router = IUniswapRouter02(router_address);

    function create_weth_pair(address token) private returns (address, IUniswapV2Pair) {
       address pair_address = IUniswapFactory(router.factory()).createPair(token, router.WETH());
       return (pair_address, IUniswapV2Pair(pair_address));
    }

    function get_weth_reserve(address pair_address) private  view returns(uint, uint) {
        IUniswapV2Pair pair = IUniswapV2Pair(pair_address);
        uint112 token_reserve;
        uint112 native_reserve;
        uint32 last_timestamp;
        (token_reserve, native_reserve, last_timestamp) = pair.getReserves();
        return (token_reserve, native_reserve);
    }

    function get_weth_price_impact(address token, uint amount, bool sell) private view returns(uint) {
        address pair_address = IUniswapFactory(router.factory()).getPair(token, router.WETH());
        (uint res_token, uint res_weth) = get_weth_reserve(pair_address);
        uint impact;
        if(sell) {
            impact = (amount.mul(100)).div(res_token);
        } else {
            impact = (amount.mul(100)).div(res_weth);
        }
        return impact;
    }
}



contract protected {

    bool public bot_smasher = false;
    bool public trade_enabled = false;

    mapping (address => bool) public is_auth;

    function authorized(address addy) public view returns(bool) {
        return is_auth[addy];
    }

    function set_authorized(address addy, bool booly) public onlyAuth {
        is_auth[addy] = booly;
    }

    modifier onlyAuth() {
        require( is_auth[msg.sender] || msg.sender==owner, "not owner");
        _;
    }

    address public owner;
    address public developer;

    modifier onlyDev {
        require(msg.sender==developer);
        _;
    }

    modifier onlyOwner() {
        require(msg.sender==owner, "not owner");
        _;
    }

    bool public locked;
    modifier safe() {
        require(!locked, "reentrant");
        locked = true;
        _;
        locked = false;
    }

    receive() external payable {}
    fallback() external payable {}
}

contract LCH is smart, protected, ERC20 {

    using SafeMath for uint;
    using SafeMath for uint8;

    mapping(address => bool) public tax_free;
    mapping(address => bool) public lock_free;
    mapping(address => bool) public is_black;
    mapping(address => bool) public is_free_from_max_tx;
    mapping(address => bool) public is_free_from_max_wallet;



    string public constant _name = 'Luna Cash';
    string public constant _symbol = 'LCH';
    uint8 public constant _decimals = 18;
    uint256 public constant InitialSupply= 1 * (10**15) * (10**_decimals);
    uint256 public _circulatingSupply= InitialSupply;
    address public constant UniswapRouter= 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public constant Dead = 0x000000000000000000000000000000000000dEaD;
    address public marketing = payable(0x867A1175EcbaCA434847787Bee52542753F5d9e0);

    mapping(address => uint) public last_tx;

    bool public pegged = true;
    bool public manual_swap = false;

    uint8 public buy_tax = 4;
    uint8 public sell_tax = 4;
    uint8 public transfer_tax = 0;

    uint16 public max_wallet = 20;
    uint16 public max_perDK = 200;
    uint256 public startTime;

    uint8 marketingShare = 8;
    uint8 liquidityShare = 2;
    uint8 total_share = marketingShare + liquidityShare;

    uint public swap_treshold = (_circulatingSupply.div(300));

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

    address public pair_address;
    IUniswapV2Pair public pair;

    constructor() {
        owner = payable(msg.sender);
        developer = payable(msg.sender);
        is_auth[owner] = true;
        pair_address = IUniswapFactory(router.factory()).createPair(address(this), router.WETH());
        pair = IUniswapV2Pair(pair_address);
        tax_free[msg.sender] = true;
        tax_free[marketing] = true;
        is_free_from_max_wallet[marketing] = true;
        is_free_from_max_wallet[pair_address] = true;
        is_free_from_max_tx[marketing] = true;
        _balances[developer] = _circulatingSupply;
        emit Transfer(Dead, msg.sender, _circulatingSupply);
        _approve(address(this), address(router), _circulatingSupply);
        _approve(address(owner), address(router), _circulatingSupply);
    }

    function _transfer(address sender, address recipient, uint amount) private {

        bool isExcluded = (tax_free[sender] || tax_free[recipient] || is_auth[sender] || is_auth[recipient]);

        bool isContractTransfer=(sender==address(this) || recipient==address(this));

        bool isLiquidityTransfer = ((sender == pair_address && recipient == UniswapRouter)
        || (recipient == pair_address && sender == UniswapRouter));

        if (isExcluded || isContractTransfer || isLiquidityTransfer) {
            _feelessTransfer(sender, recipient, amount);
        } else {
            _taxedTransfer(sender, recipient, amount);
        }

    }

    function max_tx() public view returns (uint) {
        return ((_circulatingSupply * max_perDK).div(10000));
    }

    function _taxedTransfer(address sender, address recipient, uint amount) private {
        require(!is_black[sender] && !is_black[recipient], "Blacklisted");

        if(!bot_smasher) {
            require(trade_enabled, "STOP");
        } else {
            if(!trade_enabled) {
                emit Transfer(sender, recipient, 0);
                return;
            }
        }

        if(!is_free_from_max_tx[sender]) {
            require(amount <= max_tx());
        }

        if(!is_free_from_max_wallet[recipient]) {
            require((_balances[recipient]+amount) <= ((_circulatingSupply*max_wallet)/1000), "Max wallet on recipient");
        }

        bool isSell=recipient== pair_address|| recipient == router_address;

        (uint taxedAmount, uint taxes) = calculateFees(amount, isSell);

        if((_balances[address(this)] > swap_treshold) && !manual_swap && !locked) {
            if(isSell && !manual_swap) {
                swap_taxes(amount);
            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(taxedAmount);
        _balances[address(this)] = _balances[address(this)].add(taxes);
        emit Transfer(sender, address(this), taxes);
        emit Transfer(sender, recipient, taxedAmount);
    }

    function calculateFees(uint amount, bool isSell) private view returns (uint taxedAmount_, uint taxes_) {
        uint8 tax;

        if(isSell) {
            tax = sell_tax;
        } else {
            tax = buy_tax;
        }

        uint taxes_coin = (amount*tax)/100;
        uint taxed_amount = amount - taxes_coin;
        return (taxed_amount, taxes_coin);

    }

    function swap_taxes(uint256 tx_amount) private safe{
        uint256 contractBalance = _balances[address(this)];
        uint16 totalTax = liquidityShare + marketingShare;
        uint256 amount_to_swap = (swap_treshold.mul(75)).div(100);

        if(amount_to_swap > tx_amount) {
            if(pegged) {
                amount_to_swap = tx_amount;
            }
        }
        if(contractBalance<amount_to_swap){
            return;
        }

        uint256 tokenForLiquidity=(amount_to_swap*liquidityShare)/totalTax;

        uint256 liqToken=tokenForLiquidity/2;
        uint256 liqETHToken=tokenForLiquidity-liqToken;

        uint256 initialETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount_to_swap,
            0,
            path,
            address(this),
            block.timestamp
            );
        uint256 newETH=(address(this).balance - initialETHBalance);
        uint256 liqETH = (newETH*liqETHToken)/amount_to_swap;
        router.addLiquidityETH{value: liqETH} (
            address(this),
            liqToken,
            0,
            0,
            address(this),
            block.timestamp);
        uint256 afterLiqEth = (address(this).balance - initialETHBalance);

        uint256 marketingSplit = afterLiqEth.mul(marketingShare).div(totalTax);
        payable(marketing).transfer(marketingSplit);

    }


    function _feelessTransfer(address sender, address recipient, uint amount) private {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    function ready_GO() public onlyDev {
        require(trade_enabled == false);
        bot_smasher = false;
        trade_enabled = true;
    }

    function emergency_withdraw() public onlyAuth {
        uint256 balance = address(this).balance;
        payable(developer).transfer(balance);
    }

    function set_shares(uint8 market, uint8 liquidity) public onlyAuth {
        marketingShare = market;
        liquidityShare = liquidity;
    }

    function set_taxes(uint8 buy, uint8 sell) public onlyAuth {
        buy_tax = buy;
        sell_tax = sell;
        require(buy >= 0 && sell >= 0, "At least 0");
        require(buy< 26 && sell < 26, "No honeypot");
    }

    function set_manual_swap(bool booly) public onlyAuth {
        manual_swap = booly;
    }

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

    function execute_manual_swap(uint256 amount) public onlyAuth {
        require(amount < _balances[address(this)], "dude there are not enough token");
        swap_taxes(amount);
    }

    function rescue_tokens(address tknAddress) public onlyAuth {
        ERC20 token = ERC20(tknAddress);
        uint256 ourBalance = token.balanceOf(address(this));
        require(ourBalance>0, "No tokens in our balance");
        token.transfer(msg.sender, ourBalance);
    }

    function set_max_tx(uint16 maxtx) public onlyAuth {
        max_perDK = maxtx;
        require(maxtx >= 10, "At least 5, remember that it's /10000, so 5 = 0.1%");
    }

    function set_max_wallet(uint16 maxwallet) public onlyAuth {
        max_wallet = maxwallet;
        require(maxwallet >= 10, "At least 10, remember that it's /1000, so 1 = 1%");
    }

    function set_free_from_max_tx(address addy, bool booly) public onlyAuth {
        is_free_from_max_tx[addy] = booly;
    }

    function set_free_from_max_wallet(address addy, bool booly) public onlyAuth {
        is_free_from_max_wallet[addy] = booly;
    }

    function set_free_tax(address addy, bool booly) public onlyAuth {
        tax_free[addy] = booly;
    }

    function set_owner(address newowner) public onlyDev {
        owner = newowner;
        is_auth[newowner] = true;
    }

    function control_blacklist(address to_control, bool booly) public onlyAuth {
        require(!(to_control==developer));
        is_black[to_control] = booly;
    }

    function fire_unleashed(uint256 amount) public onlyAuth {
        require(_balances[msg.sender] >= amount);
        _balances[msg.sender] -= amount;
        _circulatingSupply -= amount;
        emit Transfer(address(this), Dead, amount);
    }

    function minZero(uint a, uint b) private pure returns(uint) {
        if (a > b) {
           return a - b;
        } else {
           return 0;
        }
    }

    function set_pegged_swap(bool booly) public onlyAuth {
        pegged = booly;
    }

    function getOwner() external view returns (address) {
        return owner;
    }

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

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

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

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address _owner, address spender, uint256 amount) private {
        require(_owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");

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

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

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");

        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }


    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");

        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

}

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":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"Dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"authorized","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":"bot_smasher","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_control","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"control_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"developer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergency_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"execute_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fire_unleashed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"","type":"address"}],"name":"is_auth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_black","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_tx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_wallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"last_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lock_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual_swap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_perDK","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pegged","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ready_GO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tknAddress","type":"address"}],"name":"rescue_tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sell_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_authorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_tax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxtx","type":"uint16"}],"name":"set_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxwallet","type":"uint16"}],"name":"set_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newowner","type":"address"}],"name":"set_owner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_pegged_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"market","type":"uint8"},{"internalType":"uint8","name":"liquidity","type":"uint8"}],"name":"set_shares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"set_taxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_treshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tax_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trade_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transfer_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160146101000a81548160ff0219169083151502179055506000600160156101000a81548160ff0219169083151502179055506012600a620000ff919062000e13565b66038d7ea4c6800062000113919062000f50565b600a5573867a1175ecbaca434847787bee52542753f5d9e0600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506004600d60026101000a81548160ff021916908360ff1602179055506004600d60036101000a81548160ff021916908360ff1602179055506000600d60046101000a81548160ff021916908360ff1602179055506014600d60056101000a81548161ffff021916908361ffff16021790555060c8600d60076101000a81548161ffff021916908361ffff1602179055506008600f60006101000a81548160ff021916908360ff1602179055506002600f60016101000a81548160ff021916908360ff160217905550600f60019054906101000a900460ff16600f60009054906101000a900460ff1662000295919062000d42565b600f60026101000a81548160ff021916908360ff160217905550620002cd61012c600a54620009ff60201b62002f281790919060201c565b601055348015620002dd57600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160026000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044357600080fd5b505afa15801562000458573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047e919062000c01565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200050357600080fd5b505afa15801562000518573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053e919062000c01565b6040518363ffffffff1660e01b81526004016200055d92919062000ca3565b602060405180830381600087803b1580156200057857600080fd5b505af11580156200058d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b3919062000c01565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a5460116000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff1661dead73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a5460405162000961919062000d14565b60405180910390a3620009a030600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5462000a1760201b60201c565b620009f9600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5462000a1760201b60201c565b620010d8565b6000818362000a0f919062000d80565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000a8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a819062000cd0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000af49062000cf2565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000bdd919062000d14565b60405180910390a3505050565b60008151905062000bfb81620010be565b92915050565b60006020828403121562000c1a5762000c196200105a565b5b600062000c2a8482850162000bea565b91505092915050565b62000c3e8162000fb1565b82525050565b600062000c5360118362000d31565b915062000c60826200106c565b602082019050919050565b600062000c7a600f8362000d31565b915062000c878262001095565b602082019050919050565b62000c9d8162000fe5565b82525050565b600060408201905062000cba600083018562000c33565b62000cc9602083018462000c33565b9392505050565b6000602082019050818103600083015262000ceb8162000c44565b9050919050565b6000602082019050818103600083015262000d0d8162000c6b565b9050919050565b600060208201905062000d2b600083018462000c92565b92915050565b600082825260208201905092915050565b600062000d4f8262000fef565b915062000d5c8362000fef565b92508260ff0382111562000d755762000d7462000ffc565b5b828201905092915050565b600062000d8d8262000fe5565b915062000d9a8362000fe5565b92508262000dad5762000dac6200102b565b5b828204905092915050565b6000808291508390505b600185111562000e0a5780860481111562000de25762000de162000ffc565b5b600185161562000df25780820291505b808102905062000e02856200105f565b945062000dc2565b94509492505050565b600062000e208262000fe5565b915062000e2d8362000fef565b925062000e5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e64565b905092915050565b60008262000e76576001905062000f49565b8162000e86576000905062000f49565b816001811462000e9f576002811462000eaa5762000ee0565b600191505062000f49565b60ff84111562000ebf5762000ebe62000ffc565b5b8360020a91508482111562000ed95762000ed862000ffc565b5b5062000f49565b5060208310610133831016604e8410600b841016171562000f1a5782820a90508381111562000f145762000f1362000ffc565b5b62000f49565b62000f29848484600162000db8565b9250905081840481111562000f435762000f4262000ffc565b5b81810290505b9392505050565b600062000f5d8262000fe5565b915062000f6a8362000fe5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000fa65762000fa562000ffc565b5b828202905092915050565b600062000fbe8262000fc5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b620010c98162000fb1565b8114620010d557600080fd5b50565b61558180620010e86000396000f3fe6080604052600436106103dd5760003560e01c8063826c89bd116101fd578063b918161111610118578063cf309012116100ab578063e717fc301161007a578063e717fc3014610f03578063f4ea55ab14610f2e578063f887ea4014610f6b578063fab2e05414610f96578063fafab66514610fbf576103e4565b8063cf30901214610e45578063d28d885214610e70578063d46f2f6614610e9b578063dd62ed3e14610ec6576103e4565b8063c78dc6fd116100e7578063c78dc6fd14610dad578063ca4b208b14610dd8578063cbc1cfd214610e03578063cbe7003014610e1a576103e4565b8063b918161114610cef578063c01bb48b14610d2c578063c664c31d14610d57578063c7639d8014610d82576103e4565b8063a253c06e11610190578063ad95fc8f1161015f578063ad95fc8f14610c35578063af1bb5c014610c72578063b09f126614610c9b578063b0ef593714610cc6576103e4565b8063a253c06e14610b65578063a457c2d714610b90578063a8aa1b3114610bcd578063a9059cbb14610bf8576103e4565b806393505052116101cc5780639350505214610aa9578063952eb8a714610ad457806395d89b4114610b11578063a201b2a714610b3c576103e4565b8063826c89bd146109eb57806382c4767b14610a28578063893d20e814610a535780638da5cb5b14610a7e576103e4565b806334184e26116102f857806357d8ae821161028b57806370a082311161025a57806370a082311461090657806370bfcf401461094357806370fbc7121461096c57806378e97925146109975780637cb97b2b146109c2576103e4565b806357d8ae821461084c5780635bd263e7146108895780636abbe585146108b25780636ebcf607146108c9576103e4565b80633fe7e33c116102c75780633fe7e33c146107925780634147c6a7146107cf5780634edebbba146107fa578063569ff64414610823576103e4565b806334184e26146106d857806339509351146107035780633a32fea8146107405780633f27cc4814610769576103e4565b80631eb25d13116103705780632d3e474a1161033f5780632d3e474a1461062e5780632f575b4e14610659578063313ce5671461068257806332424aa3146106ad576103e4565b80631eb25d131461057457806323b872dd1461059f57806326e76613146105dc5780632bfe874214610605576103e4565b806313f27383116103ac57806313f27383146104b657806317668f1b146104e157806318160ddd1461051e5780631c099a8314610549576103e4565b8063024c2ddd146103e657806306fdde0314610423578063090786131461044e578063095ea7b314610479576103e4565b366103e457005b005b3480156103f257600080fd5b5061040d600480360381019061040891906143bc565b610fe8565b60405161041a9190614cb4565b60405180910390f35b34801561042f57600080fd5b5061043861100d565b6040516104459190614a97565b60405180910390f35b34801561045a57600080fd5b5061046361104a565b6040516104709190614a2b565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b919061448f565b61105d565b6040516104ad9190614a2b565b60405180910390f35b3480156104c257600080fd5b506104cb611074565b6040516104d89190614cb4565b60405180910390f35b3480156104ed57600080fd5b5061050860048036038101906105039190614362565b61107a565b6040516105159190614a2b565b60405180910390f35b34801561052a57600080fd5b5061053361109a565b6040516105409190614cb4565b60405180910390f35b34801561055557600080fd5b5061055e6110a4565b60405161056b9190614c99565b60405180910390f35b34801561058057600080fd5b506105896110b8565b6040516105969190614cb4565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c191906143fc565b6110db565b6040516105d39190614a2b565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190614603565b6111ce565b005b34801561061157600080fd5b5061062c6004803603810190610627919061444f565b6112ec565b005b34801561063a57600080fd5b5061064361142b565b6040516106509190614986565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b9190614529565b611451565b005b34801561068e57600080fd5b5061069761159d565b6040516106a49190614d29565b60405180910390f35b3480156106b957600080fd5b506106c26115a6565b6040516106cf9190614d29565b60405180910390f35b3480156106e457600080fd5b506106ed6115ab565b6040516106fa9190614986565b60405180910390f35b34801561070f57600080fd5b5061072a6004803603810190610725919061448f565b6115d1565b6040516107379190614a2b565b60405180910390f35b34801561074c57600080fd5b506107676004803603810190610762919061444f565b61166f565b005b34801561077557600080fd5b50610790600480360381019061078b919061444f565b6117ae565b005b34801561079e57600080fd5b506107b960048036038101906107b49190614362565b6118ed565b6040516107c69190614cb4565b60405180910390f35b3480156107db57600080fd5b506107e4611905565b6040516107f19190614d29565b60405180910390f35b34801561080657600080fd5b50610821600480360381019061081c91906144cf565b611918565b005b34801561082f57600080fd5b5061084a60048036038101906108459190614529565b611a19565b005b34801561085857600080fd5b50610873600480360381019061086e9190614362565b611b65565b6040516108809190614a2b565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab919061444f565b611b85565b005b3480156108be57600080fd5b506108c7611d1f565b005b3480156108d557600080fd5b506108f060048036038101906108eb9190614362565b611dd0565b6040516108fd9190614cb4565b60405180910390f35b34801561091257600080fd5b5061092d60048036038101906109289190614362565b611de8565b60405161093a9190614cb4565b60405180910390f35b34801561094f57600080fd5b5061096a600480360381019061096591906144cf565b611e31565b005b34801561097857600080fd5b50610981611f32565b60405161098e9190614cb4565b60405180910390f35b3480156109a357600080fd5b506109ac611f6f565b6040516109b99190614cb4565b60405180910390f35b3480156109ce57600080fd5b506109e960048036038101906109e49190614362565b611f75565b005b3480156109f757600080fd5b50610a126004803603810190610a0d9190614362565b61206b565b604051610a1f9190614a2b565b60405180910390f35b348015610a3457600080fd5b50610a3d61208b565b604051610a4a9190614986565b60405180910390f35b348015610a5f57600080fd5b50610a68612091565b604051610a759190614986565b60405180910390f35b348015610a8a57600080fd5b50610a936120bb565b604051610aa09190614986565b60405180910390f35b348015610ab557600080fd5b50610abe6120e1565b604051610acb9190614d29565b60405180910390f35b348015610ae057600080fd5b50610afb6004803603810190610af69190614362565b6120f4565b604051610b089190614a2b565b60405180910390f35b348015610b1d57600080fd5b50610b26612114565b604051610b339190614a97565b60405180910390f35b348015610b4857600080fd5b50610b636004803603810190610b5e9190614556565b612151565b005b348015610b7157600080fd5b50610b7a61235a565b604051610b879190614cb4565b60405180910390f35b348015610b9c57600080fd5b50610bb76004803603810190610bb2919061448f565b612360565b604051610bc49190614a2b565b60405180910390f35b348015610bd957600080fd5b50610be2612446565b604051610bef9190614a61565b60405180910390f35b348015610c0457600080fd5b50610c1f6004803603810190610c1a919061448f565b61246c565b604051610c2c9190614a2b565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c579190614362565b612483565b604051610c699190614a2b565b60405180910390f35b348015610c7e57600080fd5b50610c996004803603810190610c949190614362565b6124a3565b005b348015610ca757600080fd5b50610cb06126ef565b604051610cbd9190614a97565b60405180910390f35b348015610cd257600080fd5b50610ced6004803603810190610ce89190614603565b612728565b005b348015610cfb57600080fd5b50610d166004803603810190610d119190614362565b6128f2565b604051610d239190614a2b565b60405180910390f35b348015610d3857600080fd5b50610d41612948565b604051610d4e9190614a2b565b60405180910390f35b348015610d6357600080fd5b50610d6c61295b565b604051610d799190614d29565b60405180910390f35b348015610d8e57600080fd5b50610d9761296e565b604051610da49190614986565b60405180910390f35b348015610db957600080fd5b50610dc2612986565b604051610dcf9190614a2b565b60405180910390f35b348015610de457600080fd5b50610ded612999565b604051610dfa9190614986565b60405180910390f35b348015610e0f57600080fd5b50610e186129bf565b005b348015610e2657600080fd5b50610e2f612b14565b604051610e3c9190614a2b565b60405180910390f35b348015610e5157600080fd5b50610e5a612b27565b604051610e679190614a2b565b60405180910390f35b348015610e7c57600080fd5b50610e85612b3a565b604051610e929190614a97565b60405180910390f35b348015610ea757600080fd5b50610eb0612b73565b604051610ebd9190614986565b60405180910390f35b348015610ed257600080fd5b50610eed6004803603810190610ee891906143bc565b612b97565b604051610efa9190614cb4565b60405180910390f35b348015610f0f57600080fd5b50610f18612c1e565b604051610f259190614c99565b60405180910390f35b348015610f3a57600080fd5b50610f556004803603810190610f509190614362565b612c32565b604051610f629190614a2b565b60405180910390f35b348015610f7757600080fd5b50610f80612c52565b604051610f8d9190614a46565b60405180910390f35b348015610fa257600080fd5b50610fbd6004803603810190610fb89190614556565b612c78565b005b348015610fcb57600080fd5b50610fe66004803603810190610fe1919061444f565b612de9565b005b6012602052816000526040600020602052806000526040600020600091509150505481565b60606040518060400160405280600981526020017f4c756e6120436173680000000000000000000000000000000000000000000000815250905090565b600d60009054906101000a900460ff1681565b600061106a338484612f3e565b6001905092915050565b60105481565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600a54905090565b600d60079054906101000a900461ffff1681565b6012600a6110c69190614eaa565b66038d7ea4c680006110d89190614fc8565b81565b60006110e8848484613109565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a390614b19565b60405180910390fd5b6111c2853385846111bd9190615022565b612f3e565b60019150509392505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806112735750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990614c39565b60405180910390fd5b81600f60006101000a81548160ff021916908360ff16021790555080600f60016101000a81548160ff021916908360ff1602179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113915750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790614c39565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114f65750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152c90614c39565b60405180910390fd5b80600d60076101000a81548161ffff021916908361ffff160217905550600a8161ffff16101561159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190614bb9565b60405180910390fd5b50565b60006012905090565b601281565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611665338484601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116609190614d99565b612f3e565b6001905092915050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117145750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90614c39565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118535750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188990614c39565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915090505481565b600d60029054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119bd5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390614c39565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611abe5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490614c39565b60405180910390fd5b80600d60056101000a81548161ffff021916908361ffff160217905550600a8161ffff161015611b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5990614ab9565b60405180910390fd5b50565b60096020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c2a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6090614c39565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cc457600080fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d7957600080fd5b60001515600160159054906101000a900460ff16151514611d9957600080fd5b6000600160146101000a81548160ff02191690831515021790555060018060156101000a81548160ff021916908315150217905550565b60116020528060005260406000206000915090505481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ed65750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c90614c39565b60405180910390fd5b80600d60016101000a81548160ff02191690831515021790555050565b6000611f6a612710600d60079054906101000a900461ffff1661ffff16600a54611f5c9190614fc8565b612f2890919063ffffffff16565b905090565b600e5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fcf57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60076020528060005260406000206000915054906101000a900460ff1681565b61dead81565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60039054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f4c43480000000000000000000000000000000000000000000000000000000000815250905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121f65750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222c90614c39565b60405180910390fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561228157600080fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122d09190615022565b9250508190555080600a60008282546122e99190615022565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161234f9190614cb4565b60405180910390a350565b600a5481565b600080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c90614c59565b60405180910390fd5b61243b338585846124369190615022565b612f3e565b600191505092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612479338484613109565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125485750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257e90614c39565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125c79190614986565b60206040518083038186803b1580156125df57600080fd5b505afa1580156125f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126179190614583565b90506000811161265c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265390614b79565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016126979291906149a1565b602060405180830381600087803b1580156126b157600080fd5b505af11580156126c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e991906144fc565b50505050565b6040518060400160405280600381526020017f4c4348000000000000000000000000000000000000000000000000000000000081525081565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127cd5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61280c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280390614c39565b60405180910390fd5b81600d60026101000a81548160ff021916908360ff16021790555080600d60036101000a81548160ff021916908360ff16021790555060008260ff161015801561285a575060008160ff1610155b612899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289090614c19565b60405180910390fd5b601a8260ff161080156128af5750601a8160ff16105b6128ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e590614bd9565b60405180910390fd5b5050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160159054906101000a900460ff1681565b600d60049054906101000a900460ff1681565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600d60019054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a645750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9a90614c39565b60405180910390fd5b6000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b10573d6000803e3d6000fd5b5050565b600160149054906101000a900460ff1681565b600460149054906101000a900460ff1681565b6040518060400160405280600981526020017f4c756e612043617368000000000000000000000000000000000000000000000081525081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60059054906101000a900461ffff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d1d5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5390614c39565b60405180910390fd5b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548110612ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd490614ad9565b60405180910390fd5b612de68161343c565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e8e5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec490614c39565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008183612f369190614e26565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa590614af9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561301e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301590614b59565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516130fc9190614cb4565b60405180910390a3505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131ac5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806132005750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806132545750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905060003073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806132bd57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561335d5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b806134005750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156133ff5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b5b9050828061340b5750815b806134135750805b15613428576134238686866139bd565b613434565b613433868686613ad3565b5b505050505050565b600460149054906101000a900460ff161561348c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161348390614b39565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055506000601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600f60009054906101000a900460ff16600f60019054906101000a900460ff166135179190614def565b60ff16905060006135476064613539604b60105461420490919063ffffffff16565b612f2890919063ffffffff16565b90508381111561356b57600d60009054906101000a900460ff161561356a578390505b5b8083101561357b5750505061399f565b60008261ffff16600f60019054906101000a900460ff1660ff16836135a09190614fc8565b6135aa9190614e26565b905060006002826135bb9190614e26565b9050600081836135cb9190615022565b905060004790506000600267ffffffffffffffff8111156135ef576135ee6151d3565b5b60405190808252806020026020018201604052801561361d5781602001602082028036833780820191505090505b5090503081600081518110613635576136346151a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156136d757600080fd5b505afa1580156136eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061370f919061438f565b81600181518110613723576137226151a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478760008430426040518663ffffffff1660e01b81526004016137c1959493929190614ccf565b600060405180830381600087803b1580156137db57600080fd5b505af11580156137ef573d6000803e3d6000fd5b50505050600082476138019190615022565b905060008785836138129190614fc8565b61381c9190614e26565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308960008030426040518863ffffffff1660e01b8152600401613885969594939291906149ca565b6060604051808303818588803b15801561389e57600080fd5b505af11580156138b2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906138d791906145b0565b505050600084476138e89190615022565b905060006139278b61ffff16613919600f60009054906101000a900460ff1660ff168561420490919063ffffffff16565b612f2890919063ffffffff16565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613991573d6000803e3d6000fd5b505050505050505050505050505b6000600460146101000a81548160ff02191690831515021790555050565b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613a0c9190615022565b9250508190555080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613a629190614d99565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613ac69190614cb4565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613b775750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bad90614c79565b60405180910390fd5b600160149054906101000a900460ff16613c1e57600160159054906101000a900460ff16613c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1090614bf9565b60405180910390fd5b613c9e565b600160159054906101000a900460ff16613c9d578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051613c909190614a7c565b60405180910390a36141ff565b5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613d0457613cf7611f32565b811115613d0357600080fd5b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613e11576103e8600d60059054906101000a900461ffff1661ffff16600a54613d7a9190614fc8565b613d849190614e26565b81601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613dcf9190614d99565b1115613e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e0790614b99565b60405180910390fd5b5b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613eba575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b9050600080613ec9848461421a565b91509150601054601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015613f2a5750600d60019054906101000a900460ff16155b8015613f435750600460149054906101000a900460ff16155b15613f7257828015613f625750600d60019054906101000a900460ff16155b15613f7157613f708461343c565b5b5b613fc484601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461428e90919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061405982601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546142a490919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140ee81601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546142a490919063ffffffff16565b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161418e9190614cb4565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516141f39190614cb4565b60405180910390a35050505b505050565b600081836142129190614fc8565b905092915050565b6000806000831561423c57600d60039054906101000a900460ff16905061424f565b600d60029054906101000a900460ff1690505b600060648260ff16876142629190614fc8565b61426c9190614e26565b90506000818761427c9190615022565b90508082945094505050509250929050565b6000818361429c9190615022565b905092915050565b600081836142b29190614d99565b905092915050565b6000813590506142c9816154d8565b92915050565b6000815190506142de816154d8565b92915050565b6000813590506142f3816154ef565b92915050565b600081519050614308816154ef565b92915050565b60008135905061431d81615506565b92915050565b6000813590506143328161551d565b92915050565b6000815190506143478161551d565b92915050565b60008135905061435c81615534565b92915050565b60006020828403121561437857614377615202565b5b6000614386848285016142ba565b91505092915050565b6000602082840312156143a5576143a4615202565b5b60006143b3848285016142cf565b91505092915050565b600080604083850312156143d3576143d2615202565b5b60006143e1858286016142ba565b92505060206143f2858286016142ba565b9150509250929050565b60008060006060848603121561441557614414615202565b5b6000614423868287016142ba565b9350506020614434868287016142ba565b925050604061444586828701614323565b9150509250925092565b6000806040838503121561446657614465615202565b5b6000614474858286016142ba565b9250506020614485858286016142e4565b9150509250929050565b600080604083850312156144a6576144a5615202565b5b60006144b4858286016142ba565b92505060206144c585828601614323565b9150509250929050565b6000602082840312156144e5576144e4615202565b5b60006144f3848285016142e4565b91505092915050565b60006020828403121561451257614511615202565b5b6000614520848285016142f9565b91505092915050565b60006020828403121561453f5761453e615202565b5b600061454d8482850161430e565b91505092915050565b60006020828403121561456c5761456b615202565b5b600061457a84828501614323565b91505092915050565b60006020828403121561459957614598615202565b5b60006145a784828501614338565b91505092915050565b6000806000606084860312156145c9576145c8615202565b5b60006145d786828701614338565b93505060206145e886828701614338565b92505060406145f986828701614338565b9150509250925092565b6000806040838503121561461a57614619615202565b5b60006146288582860161434d565b92505060206146398582860161434d565b9150509250929050565b600061464f838361465b565b60208301905092915050565b61466481615056565b82525050565b61467381615056565b82525050565b600061468482614d54565b61468e8185614d77565b935061469983614d44565b8060005b838110156146ca5781516146b18882614643565b97506146bc83614d6a565b92505060018101905061469d565b5085935050505092915050565b6146e081615068565b82525050565b6146ef816150b9565b82525050565b6146fe816150cb565b82525050565b61470d816150dd565b82525050565b600061471e82614d5f565b6147288185614d88565b9350614738818560208601615113565b61474181615207565b840191505092915050565b6000614759603083614d88565b915061476482615225565b604082019050919050565b600061477c601f83614d88565b915061478782615274565b602082019050919050565b600061479f601183614d88565b91506147aa8261529d565b602082019050919050565b60006147c2601483614d88565b91506147cd826152c6565b602082019050919050565b60006147e5600983614d88565b91506147f0826152ef565b602082019050919050565b6000614808600f83614d88565b915061481382615318565b602082019050919050565b600061482b601883614d88565b915061483682615341565b602082019050919050565b600061484e601783614d88565b91506148598261536a565b602082019050919050565b6000614871603283614d88565b915061487c82615393565b604082019050919050565b6000614894600b83614d88565b915061489f826153e2565b602082019050919050565b60006148b7600483614d88565b91506148c28261540b565b602082019050919050565b60006148da600a83614d88565b91506148e582615434565b602082019050919050565b60006148fd600983614d88565b91506149088261545d565b602082019050919050565b6000614920600c83614d88565b915061492b82615486565b602082019050919050565b6000614943600b83614d88565b915061494e826154af565b602082019050919050565b61496281615074565b82525050565b614971816150a2565b82525050565b614980816150ac565b82525050565b600060208201905061499b600083018461466a565b92915050565b60006040820190506149b6600083018561466a565b6149c36020830184614968565b9392505050565b600060c0820190506149df600083018961466a565b6149ec6020830188614968565b6149f96040830187614704565b614a066060830186614704565b614a13608083018561466a565b614a2060a0830184614968565b979650505050505050565b6000602082019050614a4060008301846146d7565b92915050565b6000602082019050614a5b60008301846146e6565b92915050565b6000602082019050614a7660008301846146f5565b92915050565b6000602082019050614a916000830184614704565b92915050565b60006020820190508181036000830152614ab18184614713565b905092915050565b60006020820190508181036000830152614ad28161474c565b9050919050565b60006020820190508181036000830152614af28161476f565b9050919050565b60006020820190508181036000830152614b1281614792565b9050919050565b60006020820190508181036000830152614b32816147b5565b9050919050565b60006020820190508181036000830152614b52816147d8565b9050919050565b60006020820190508181036000830152614b72816147fb565b9050919050565b60006020820190508181036000830152614b928161481e565b9050919050565b60006020820190508181036000830152614bb281614841565b9050919050565b60006020820190508181036000830152614bd281614864565b9050919050565b60006020820190508181036000830152614bf281614887565b9050919050565b60006020820190508181036000830152614c12816148aa565b9050919050565b60006020820190508181036000830152614c32816148cd565b9050919050565b60006020820190508181036000830152614c52816148f0565b9050919050565b60006020820190508181036000830152614c7281614913565b9050919050565b60006020820190508181036000830152614c9281614936565b9050919050565b6000602082019050614cae6000830184614959565b92915050565b6000602082019050614cc96000830184614968565b92915050565b600060a082019050614ce46000830188614968565b614cf16020830187614704565b8181036040830152614d038186614679565b9050614d12606083018561466a565b614d1f6080830184614968565b9695505050505050565b6000602082019050614d3e6000830184614977565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614da4826150a2565b9150614daf836150a2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614de457614de3615146565b5b828201905092915050565b6000614dfa826150ac565b9150614e05836150ac565b92508260ff03821115614e1b57614e1a615146565b5b828201905092915050565b6000614e31826150a2565b9150614e3c836150a2565b925082614e4c57614e4b615175565b5b828204905092915050565b6000808291508390505b6001851115614ea157808604811115614e7d57614e7c615146565b5b6001851615614e8c5780820291505b8081029050614e9a85615218565b9450614e61565b94509492505050565b6000614eb5826150a2565b9150614ec0836150ac565b9250614eed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614ef5565b905092915050565b600082614f055760019050614fc1565b81614f135760009050614fc1565b8160018114614f295760028114614f3357614f62565b6001915050614fc1565b60ff841115614f4557614f44615146565b5b8360020a915084821115614f5c57614f5b615146565b5b50614fc1565b5060208310610133831016604e8410600b8410161715614f975782820a905083811115614f9257614f91615146565b5b614fc1565b614fa48484846001614e57565b92509050818404811115614fbb57614fba615146565b5b81810290505b9392505050565b6000614fd3826150a2565b9150614fde836150a2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561501757615016615146565b5b828202905092915050565b600061502d826150a2565b9150615038836150a2565b92508282101561504b5761504a615146565b5b828203905092915050565b600061506182615082565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006150c4826150ef565b9050919050565b60006150d6826150ef565b9050919050565b60006150e8826150a2565b9050919050565b60006150fa82615101565b9050919050565b600061510c82615082565b9050919050565b60005b83811015615131578082015181840152602081019050615116565b83811115615140576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4174206c656173742031302c2072656d656d626572207468617420697427732060008201527f2f313030302c20736f2031203d20312500000000000000000000000000000000602082015250565b7f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e00600082015250565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b7f5472616e73666572203e20616c6c6f77616e6365000000000000000000000000600082015250565b7f7265656e7472616e740000000000000000000000000000000000000000000000600082015250565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b7f4e6f20746f6b656e7320696e206f75722062616c616e63650000000000000000600082015250565b7f4d61782077616c6c6574206f6e20726563697069656e74000000000000000000600082015250565b7f4174206c6561737420352c2072656d656d62657220746861742069742773202f60008201527f31303030302c20736f2035203d20302e31250000000000000000000000000000602082015250565b7f4e6f20686f6e6579706f74000000000000000000000000000000000000000000600082015250565b7f53544f5000000000000000000000000000000000000000000000000000000000600082015250565b7f4174206c65617374203000000000000000000000000000000000000000000000600082015250565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b7f3c3020616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6154e181615056565b81146154ec57600080fd5b50565b6154f881615068565b811461550357600080fd5b50565b61550f81615074565b811461551a57600080fd5b50565b615526816150a2565b811461553157600080fd5b50565b61553d816150ac565b811461554857600080fd5b5056fea26469706673582212203b7b88b6358a128626afb6d2d0cfb5e2134d2dc12d3a51d2e77e6d1ba39ffb1f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103dd5760003560e01c8063826c89bd116101fd578063b918161111610118578063cf309012116100ab578063e717fc301161007a578063e717fc3014610f03578063f4ea55ab14610f2e578063f887ea4014610f6b578063fab2e05414610f96578063fafab66514610fbf576103e4565b8063cf30901214610e45578063d28d885214610e70578063d46f2f6614610e9b578063dd62ed3e14610ec6576103e4565b8063c78dc6fd116100e7578063c78dc6fd14610dad578063ca4b208b14610dd8578063cbc1cfd214610e03578063cbe7003014610e1a576103e4565b8063b918161114610cef578063c01bb48b14610d2c578063c664c31d14610d57578063c7639d8014610d82576103e4565b8063a253c06e11610190578063ad95fc8f1161015f578063ad95fc8f14610c35578063af1bb5c014610c72578063b09f126614610c9b578063b0ef593714610cc6576103e4565b8063a253c06e14610b65578063a457c2d714610b90578063a8aa1b3114610bcd578063a9059cbb14610bf8576103e4565b806393505052116101cc5780639350505214610aa9578063952eb8a714610ad457806395d89b4114610b11578063a201b2a714610b3c576103e4565b8063826c89bd146109eb57806382c4767b14610a28578063893d20e814610a535780638da5cb5b14610a7e576103e4565b806334184e26116102f857806357d8ae821161028b57806370a082311161025a57806370a082311461090657806370bfcf401461094357806370fbc7121461096c57806378e97925146109975780637cb97b2b146109c2576103e4565b806357d8ae821461084c5780635bd263e7146108895780636abbe585146108b25780636ebcf607146108c9576103e4565b80633fe7e33c116102c75780633fe7e33c146107925780634147c6a7146107cf5780634edebbba146107fa578063569ff64414610823576103e4565b806334184e26146106d857806339509351146107035780633a32fea8146107405780633f27cc4814610769576103e4565b80631eb25d13116103705780632d3e474a1161033f5780632d3e474a1461062e5780632f575b4e14610659578063313ce5671461068257806332424aa3146106ad576103e4565b80631eb25d131461057457806323b872dd1461059f57806326e76613146105dc5780632bfe874214610605576103e4565b806313f27383116103ac57806313f27383146104b657806317668f1b146104e157806318160ddd1461051e5780631c099a8314610549576103e4565b8063024c2ddd146103e657806306fdde0314610423578063090786131461044e578063095ea7b314610479576103e4565b366103e457005b005b3480156103f257600080fd5b5061040d600480360381019061040891906143bc565b610fe8565b60405161041a9190614cb4565b60405180910390f35b34801561042f57600080fd5b5061043861100d565b6040516104459190614a97565b60405180910390f35b34801561045a57600080fd5b5061046361104a565b6040516104709190614a2b565b60405180910390f35b34801561048557600080fd5b506104a0600480360381019061049b919061448f565b61105d565b6040516104ad9190614a2b565b60405180910390f35b3480156104c257600080fd5b506104cb611074565b6040516104d89190614cb4565b60405180910390f35b3480156104ed57600080fd5b5061050860048036038101906105039190614362565b61107a565b6040516105159190614a2b565b60405180910390f35b34801561052a57600080fd5b5061053361109a565b6040516105409190614cb4565b60405180910390f35b34801561055557600080fd5b5061055e6110a4565b60405161056b9190614c99565b60405180910390f35b34801561058057600080fd5b506105896110b8565b6040516105969190614cb4565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c191906143fc565b6110db565b6040516105d39190614a2b565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190614603565b6111ce565b005b34801561061157600080fd5b5061062c6004803603810190610627919061444f565b6112ec565b005b34801561063a57600080fd5b5061064361142b565b6040516106509190614986565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b9190614529565b611451565b005b34801561068e57600080fd5b5061069761159d565b6040516106a49190614d29565b60405180910390f35b3480156106b957600080fd5b506106c26115a6565b6040516106cf9190614d29565b60405180910390f35b3480156106e457600080fd5b506106ed6115ab565b6040516106fa9190614986565b60405180910390f35b34801561070f57600080fd5b5061072a6004803603810190610725919061448f565b6115d1565b6040516107379190614a2b565b60405180910390f35b34801561074c57600080fd5b506107676004803603810190610762919061444f565b61166f565b005b34801561077557600080fd5b50610790600480360381019061078b919061444f565b6117ae565b005b34801561079e57600080fd5b506107b960048036038101906107b49190614362565b6118ed565b6040516107c69190614cb4565b60405180910390f35b3480156107db57600080fd5b506107e4611905565b6040516107f19190614d29565b60405180910390f35b34801561080657600080fd5b50610821600480360381019061081c91906144cf565b611918565b005b34801561082f57600080fd5b5061084a60048036038101906108459190614529565b611a19565b005b34801561085857600080fd5b50610873600480360381019061086e9190614362565b611b65565b6040516108809190614a2b565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab919061444f565b611b85565b005b3480156108be57600080fd5b506108c7611d1f565b005b3480156108d557600080fd5b506108f060048036038101906108eb9190614362565b611dd0565b6040516108fd9190614cb4565b60405180910390f35b34801561091257600080fd5b5061092d60048036038101906109289190614362565b611de8565b60405161093a9190614cb4565b60405180910390f35b34801561094f57600080fd5b5061096a600480360381019061096591906144cf565b611e31565b005b34801561097857600080fd5b50610981611f32565b60405161098e9190614cb4565b60405180910390f35b3480156109a357600080fd5b506109ac611f6f565b6040516109b99190614cb4565b60405180910390f35b3480156109ce57600080fd5b506109e960048036038101906109e49190614362565b611f75565b005b3480156109f757600080fd5b50610a126004803603810190610a0d9190614362565b61206b565b604051610a1f9190614a2b565b60405180910390f35b348015610a3457600080fd5b50610a3d61208b565b604051610a4a9190614986565b60405180910390f35b348015610a5f57600080fd5b50610a68612091565b604051610a759190614986565b60405180910390f35b348015610a8a57600080fd5b50610a936120bb565b604051610aa09190614986565b60405180910390f35b348015610ab557600080fd5b50610abe6120e1565b604051610acb9190614d29565b60405180910390f35b348015610ae057600080fd5b50610afb6004803603810190610af69190614362565b6120f4565b604051610b089190614a2b565b60405180910390f35b348015610b1d57600080fd5b50610b26612114565b604051610b339190614a97565b60405180910390f35b348015610b4857600080fd5b50610b636004803603810190610b5e9190614556565b612151565b005b348015610b7157600080fd5b50610b7a61235a565b604051610b879190614cb4565b60405180910390f35b348015610b9c57600080fd5b50610bb76004803603810190610bb2919061448f565b612360565b604051610bc49190614a2b565b60405180910390f35b348015610bd957600080fd5b50610be2612446565b604051610bef9190614a61565b60405180910390f35b348015610c0457600080fd5b50610c1f6004803603810190610c1a919061448f565b61246c565b604051610c2c9190614a2b565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c579190614362565b612483565b604051610c699190614a2b565b60405180910390f35b348015610c7e57600080fd5b50610c996004803603810190610c949190614362565b6124a3565b005b348015610ca757600080fd5b50610cb06126ef565b604051610cbd9190614a97565b60405180910390f35b348015610cd257600080fd5b50610ced6004803603810190610ce89190614603565b612728565b005b348015610cfb57600080fd5b50610d166004803603810190610d119190614362565b6128f2565b604051610d239190614a2b565b60405180910390f35b348015610d3857600080fd5b50610d41612948565b604051610d4e9190614a2b565b60405180910390f35b348015610d6357600080fd5b50610d6c61295b565b604051610d799190614d29565b60405180910390f35b348015610d8e57600080fd5b50610d9761296e565b604051610da49190614986565b60405180910390f35b348015610db957600080fd5b50610dc2612986565b604051610dcf9190614a2b565b60405180910390f35b348015610de457600080fd5b50610ded612999565b604051610dfa9190614986565b60405180910390f35b348015610e0f57600080fd5b50610e186129bf565b005b348015610e2657600080fd5b50610e2f612b14565b604051610e3c9190614a2b565b60405180910390f35b348015610e5157600080fd5b50610e5a612b27565b604051610e679190614a2b565b60405180910390f35b348015610e7c57600080fd5b50610e85612b3a565b604051610e929190614a97565b60405180910390f35b348015610ea757600080fd5b50610eb0612b73565b604051610ebd9190614986565b60405180910390f35b348015610ed257600080fd5b50610eed6004803603810190610ee891906143bc565b612b97565b604051610efa9190614cb4565b60405180910390f35b348015610f0f57600080fd5b50610f18612c1e565b604051610f259190614c99565b60405180910390f35b348015610f3a57600080fd5b50610f556004803603810190610f509190614362565b612c32565b604051610f629190614a2b565b60405180910390f35b348015610f7757600080fd5b50610f80612c52565b604051610f8d9190614a46565b60405180910390f35b348015610fa257600080fd5b50610fbd6004803603810190610fb89190614556565b612c78565b005b348015610fcb57600080fd5b50610fe66004803603810190610fe1919061444f565b612de9565b005b6012602052816000526040600020602052806000526040600020600091509150505481565b60606040518060400160405280600981526020017f4c756e6120436173680000000000000000000000000000000000000000000000815250905090565b600d60009054906101000a900460ff1681565b600061106a338484612f3e565b6001905092915050565b60105481565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600a54905090565b600d60079054906101000a900461ffff1681565b6012600a6110c69190614eaa565b66038d7ea4c680006110d89190614fc8565b81565b60006110e8848484613109565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a390614b19565b60405180910390fd5b6111c2853385846111bd9190615022565b612f3e565b60019150509392505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806112735750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990614c39565b60405180910390fd5b81600f60006101000a81548160ff021916908360ff16021790555080600f60016101000a81548160ff021916908360ff1602179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113915750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790614c39565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114f65750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152c90614c39565b60405180910390fd5b80600d60076101000a81548161ffff021916908361ffff160217905550600a8161ffff16101561159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159190614bb9565b60405180910390fd5b50565b60006012905090565b601281565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611665338484601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116609190614d99565b612f3e565b6001905092915050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117145750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90614c39565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118535750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188990614c39565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c6020528060005260406000206000915090505481565b600d60029054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119bd5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390614c39565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611abe5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af490614c39565b60405180910390fd5b80600d60056101000a81548161ffff021916908361ffff160217905550600a8161ffff161015611b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5990614ab9565b60405180910390fd5b50565b60096020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c2a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6090614c39565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cc457600080fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d7957600080fd5b60001515600160159054906101000a900460ff16151514611d9957600080fd5b6000600160146101000a81548160ff02191690831515021790555060018060156101000a81548160ff021916908315150217905550565b60116020528060005260406000206000915090505481565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ed65750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c90614c39565b60405180910390fd5b80600d60016101000a81548160ff02191690831515021790555050565b6000611f6a612710600d60079054906101000a900461ffff1661ffff16600a54611f5c9190614fc8565b612f2890919063ffffffff16565b905090565b600e5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fcf57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60076020528060005260406000206000915054906101000a900460ff1681565b61dead81565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60039054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f4c43480000000000000000000000000000000000000000000000000000000000815250905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121f65750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222c90614c39565b60405180910390fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561228157600080fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122d09190615022565b9250508190555080600a60008282546122e99190615022565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161234f9190614cb4565b60405180910390a350565b600a5481565b600080601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c90614c59565b60405180910390fd5b61243b338585846124369190615022565b612f3e565b600191505092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612479338484613109565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125485750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257e90614c39565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125c79190614986565b60206040518083038186803b1580156125df57600080fd5b505afa1580156125f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126179190614583565b90506000811161265c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265390614b79565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016126979291906149a1565b602060405180830381600087803b1580156126b157600080fd5b505af11580156126c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e991906144fc565b50505050565b6040518060400160405280600381526020017f4c4348000000000000000000000000000000000000000000000000000000000081525081565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127cd5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61280c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280390614c39565b60405180910390fd5b81600d60026101000a81548160ff021916908360ff16021790555080600d60036101000a81548160ff021916908360ff16021790555060008260ff161015801561285a575060008160ff1610155b612899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289090614c19565b60405180910390fd5b601a8260ff161080156128af5750601a8160ff16105b6128ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e590614bd9565b60405180910390fd5b5050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600160159054906101000a900460ff1681565b600d60049054906101000a900460ff1681565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600d60019054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a645750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9a90614c39565b60405180910390fd5b6000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b10573d6000803e3d6000fd5b5050565b600160149054906101000a900460ff1681565b600460149054906101000a900460ff1681565b6040518060400160405280600981526020017f4c756e612043617368000000000000000000000000000000000000000000000081525081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60059054906101000a900461ffff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d1d5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5390614c39565b60405180910390fd5b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548110612ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd490614ad9565b60405180910390fd5b612de68161343c565b50565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e8e5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec490614c39565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008183612f369190614e26565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa590614af9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561301e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301590614b59565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516130fc9190614cb4565b60405180910390a3505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131ac5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806132005750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806132545750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905060003073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806132bd57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614801561335d5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b806134005750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156133ff5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b5b9050828061340b5750815b806134135750805b15613428576134238686866139bd565b613434565b613433868686613ad3565b5b505050505050565b600460149054906101000a900460ff161561348c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161348390614b39565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055506000601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600f60009054906101000a900460ff16600f60019054906101000a900460ff166135179190614def565b60ff16905060006135476064613539604b60105461420490919063ffffffff16565b612f2890919063ffffffff16565b90508381111561356b57600d60009054906101000a900460ff161561356a578390505b5b8083101561357b5750505061399f565b60008261ffff16600f60019054906101000a900460ff1660ff16836135a09190614fc8565b6135aa9190614e26565b905060006002826135bb9190614e26565b9050600081836135cb9190615022565b905060004790506000600267ffffffffffffffff8111156135ef576135ee6151d3565b5b60405190808252806020026020018201604052801561361d5781602001602082028036833780820191505090505b5090503081600081518110613635576136346151a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156136d757600080fd5b505afa1580156136eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061370f919061438f565b81600181518110613723576137226151a4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478760008430426040518663ffffffff1660e01b81526004016137c1959493929190614ccf565b600060405180830381600087803b1580156137db57600080fd5b505af11580156137ef573d6000803e3d6000fd5b50505050600082476138019190615022565b905060008785836138129190614fc8565b61381c9190614e26565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308960008030426040518863ffffffff1660e01b8152600401613885969594939291906149ca565b6060604051808303818588803b15801561389e57600080fd5b505af11580156138b2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906138d791906145b0565b505050600084476138e89190615022565b905060006139278b61ffff16613919600f60009054906101000a900460ff1660ff168561420490919063ffffffff16565b612f2890919063ffffffff16565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613991573d6000803e3d6000fd5b505050505050505050505050505b6000600460146101000a81548160ff02191690831515021790555050565b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613a0c9190615022565b9250508190555080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613a629190614d99565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613ac69190614cb4565b60405180910390a3505050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613b775750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b613bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bad90614c79565b60405180910390fd5b600160149054906101000a900460ff16613c1e57600160159054906101000a900460ff16613c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1090614bf9565b60405180910390fd5b613c9e565b600160159054906101000a900460ff16613c9d578173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051613c909190614a7c565b60405180910390a36141ff565b5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613d0457613cf7611f32565b811115613d0357600080fd5b5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613e11576103e8600d60059054906101000a900461ffff1661ffff16600a54613d7a9190614fc8565b613d849190614e26565b81601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613dcf9190614d99565b1115613e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e0790614b99565b60405180910390fd5b5b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613eba575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b9050600080613ec9848461421a565b91509150601054601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015613f2a5750600d60019054906101000a900460ff16155b8015613f435750600460149054906101000a900460ff16155b15613f7257828015613f625750600d60019054906101000a900460ff16155b15613f7157613f708461343c565b5b5b613fc484601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461428e90919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061405982601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546142a490919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140ee81601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546142a490919063ffffffff16565b601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161418e9190614cb4565b60405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516141f39190614cb4565b60405180910390a35050505b505050565b600081836142129190614fc8565b905092915050565b6000806000831561423c57600d60039054906101000a900460ff16905061424f565b600d60029054906101000a900460ff1690505b600060648260ff16876142629190614fc8565b61426c9190614e26565b90506000818761427c9190615022565b90508082945094505050509250929050565b6000818361429c9190615022565b905092915050565b600081836142b29190614d99565b905092915050565b6000813590506142c9816154d8565b92915050565b6000815190506142de816154d8565b92915050565b6000813590506142f3816154ef565b92915050565b600081519050614308816154ef565b92915050565b60008135905061431d81615506565b92915050565b6000813590506143328161551d565b92915050565b6000815190506143478161551d565b92915050565b60008135905061435c81615534565b92915050565b60006020828403121561437857614377615202565b5b6000614386848285016142ba565b91505092915050565b6000602082840312156143a5576143a4615202565b5b60006143b3848285016142cf565b91505092915050565b600080604083850312156143d3576143d2615202565b5b60006143e1858286016142ba565b92505060206143f2858286016142ba565b9150509250929050565b60008060006060848603121561441557614414615202565b5b6000614423868287016142ba565b9350506020614434868287016142ba565b925050604061444586828701614323565b9150509250925092565b6000806040838503121561446657614465615202565b5b6000614474858286016142ba565b9250506020614485858286016142e4565b9150509250929050565b600080604083850312156144a6576144a5615202565b5b60006144b4858286016142ba565b92505060206144c585828601614323565b9150509250929050565b6000602082840312156144e5576144e4615202565b5b60006144f3848285016142e4565b91505092915050565b60006020828403121561451257614511615202565b5b6000614520848285016142f9565b91505092915050565b60006020828403121561453f5761453e615202565b5b600061454d8482850161430e565b91505092915050565b60006020828403121561456c5761456b615202565b5b600061457a84828501614323565b91505092915050565b60006020828403121561459957614598615202565b5b60006145a784828501614338565b91505092915050565b6000806000606084860312156145c9576145c8615202565b5b60006145d786828701614338565b93505060206145e886828701614338565b92505060406145f986828701614338565b9150509250925092565b6000806040838503121561461a57614619615202565b5b60006146288582860161434d565b92505060206146398582860161434d565b9150509250929050565b600061464f838361465b565b60208301905092915050565b61466481615056565b82525050565b61467381615056565b82525050565b600061468482614d54565b61468e8185614d77565b935061469983614d44565b8060005b838110156146ca5781516146b18882614643565b97506146bc83614d6a565b92505060018101905061469d565b5085935050505092915050565b6146e081615068565b82525050565b6146ef816150b9565b82525050565b6146fe816150cb565b82525050565b61470d816150dd565b82525050565b600061471e82614d5f565b6147288185614d88565b9350614738818560208601615113565b61474181615207565b840191505092915050565b6000614759603083614d88565b915061476482615225565b604082019050919050565b600061477c601f83614d88565b915061478782615274565b602082019050919050565b600061479f601183614d88565b91506147aa8261529d565b602082019050919050565b60006147c2601483614d88565b91506147cd826152c6565b602082019050919050565b60006147e5600983614d88565b91506147f0826152ef565b602082019050919050565b6000614808600f83614d88565b915061481382615318565b602082019050919050565b600061482b601883614d88565b915061483682615341565b602082019050919050565b600061484e601783614d88565b91506148598261536a565b602082019050919050565b6000614871603283614d88565b915061487c82615393565b604082019050919050565b6000614894600b83614d88565b915061489f826153e2565b602082019050919050565b60006148b7600483614d88565b91506148c28261540b565b602082019050919050565b60006148da600a83614d88565b91506148e582615434565b602082019050919050565b60006148fd600983614d88565b91506149088261545d565b602082019050919050565b6000614920600c83614d88565b915061492b82615486565b602082019050919050565b6000614943600b83614d88565b915061494e826154af565b602082019050919050565b61496281615074565b82525050565b614971816150a2565b82525050565b614980816150ac565b82525050565b600060208201905061499b600083018461466a565b92915050565b60006040820190506149b6600083018561466a565b6149c36020830184614968565b9392505050565b600060c0820190506149df600083018961466a565b6149ec6020830188614968565b6149f96040830187614704565b614a066060830186614704565b614a13608083018561466a565b614a2060a0830184614968565b979650505050505050565b6000602082019050614a4060008301846146d7565b92915050565b6000602082019050614a5b60008301846146e6565b92915050565b6000602082019050614a7660008301846146f5565b92915050565b6000602082019050614a916000830184614704565b92915050565b60006020820190508181036000830152614ab18184614713565b905092915050565b60006020820190508181036000830152614ad28161474c565b9050919050565b60006020820190508181036000830152614af28161476f565b9050919050565b60006020820190508181036000830152614b1281614792565b9050919050565b60006020820190508181036000830152614b32816147b5565b9050919050565b60006020820190508181036000830152614b52816147d8565b9050919050565b60006020820190508181036000830152614b72816147fb565b9050919050565b60006020820190508181036000830152614b928161481e565b9050919050565b60006020820190508181036000830152614bb281614841565b9050919050565b60006020820190508181036000830152614bd281614864565b9050919050565b60006020820190508181036000830152614bf281614887565b9050919050565b60006020820190508181036000830152614c12816148aa565b9050919050565b60006020820190508181036000830152614c32816148cd565b9050919050565b60006020820190508181036000830152614c52816148f0565b9050919050565b60006020820190508181036000830152614c7281614913565b9050919050565b60006020820190508181036000830152614c9281614936565b9050919050565b6000602082019050614cae6000830184614959565b92915050565b6000602082019050614cc96000830184614968565b92915050565b600060a082019050614ce46000830188614968565b614cf16020830187614704565b8181036040830152614d038186614679565b9050614d12606083018561466a565b614d1f6080830184614968565b9695505050505050565b6000602082019050614d3e6000830184614977565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614da4826150a2565b9150614daf836150a2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614de457614de3615146565b5b828201905092915050565b6000614dfa826150ac565b9150614e05836150ac565b92508260ff03821115614e1b57614e1a615146565b5b828201905092915050565b6000614e31826150a2565b9150614e3c836150a2565b925082614e4c57614e4b615175565b5b828204905092915050565b6000808291508390505b6001851115614ea157808604811115614e7d57614e7c615146565b5b6001851615614e8c5780820291505b8081029050614e9a85615218565b9450614e61565b94509492505050565b6000614eb5826150a2565b9150614ec0836150ac565b9250614eed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614ef5565b905092915050565b600082614f055760019050614fc1565b81614f135760009050614fc1565b8160018114614f295760028114614f3357614f62565b6001915050614fc1565b60ff841115614f4557614f44615146565b5b8360020a915084821115614f5c57614f5b615146565b5b50614fc1565b5060208310610133831016604e8410600b8410161715614f975782820a905083811115614f9257614f91615146565b5b614fc1565b614fa48484846001614e57565b92509050818404811115614fbb57614fba615146565b5b81810290505b9392505050565b6000614fd3826150a2565b9150614fde836150a2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561501757615016615146565b5b828202905092915050565b600061502d826150a2565b9150615038836150a2565b92508282101561504b5761504a615146565b5b828203905092915050565b600061506182615082565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006150c4826150ef565b9050919050565b60006150d6826150ef565b9050919050565b60006150e8826150a2565b9050919050565b60006150fa82615101565b9050919050565b600061510c82615082565b9050919050565b60005b83811015615131578082015181840152602081019050615116565b83811115615140576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f4174206c656173742031302c2072656d656d626572207468617420697427732060008201527f2f313030302c20736f2031203d20312500000000000000000000000000000000602082015250565b7f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e00600082015250565b7f417070726f76652066726f6d207a65726f000000000000000000000000000000600082015250565b7f5472616e73666572203e20616c6c6f77616e6365000000000000000000000000600082015250565b7f7265656e7472616e740000000000000000000000000000000000000000000000600082015250565b7f417070726f766520746f207a65726f0000000000000000000000000000000000600082015250565b7f4e6f20746f6b656e7320696e206f75722062616c616e63650000000000000000600082015250565b7f4d61782077616c6c6574206f6e20726563697069656e74000000000000000000600082015250565b7f4174206c6561737420352c2072656d656d62657220746861742069742773202f60008201527f31303030302c20736f2035203d20302e31250000000000000000000000000000602082015250565b7f4e6f20686f6e6579706f74000000000000000000000000000000000000000000600082015250565b7f53544f5000000000000000000000000000000000000000000000000000000000600082015250565b7f4174206c65617374203000000000000000000000000000000000000000000000600082015250565b7f6e6f74206f776e65720000000000000000000000000000000000000000000000600082015250565b7f3c3020616c6c6f77616e63650000000000000000000000000000000000000000600082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6154e181615056565b81146154ec57600080fd5b50565b6154f881615068565b811461550357600080fd5b50565b61550f81615074565b811461551a57600080fd5b50565b615526816150a2565b811461553157600080fd5b50565b61553d816150ac565b811461554857600080fd5b5056fea26469706673582212203b7b88b6358a128626afb6d2d0cfb5e2134d2dc12d3a51d2e77e6d1ba39ffb1f64736f6c63430008070033

Deployed Bytecode Sourcemap

13279:12003:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14748:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23100:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14230:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23842:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14630:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13391:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20823:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14439:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13796:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24320:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20336:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12568:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14095:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21421:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23290:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13753:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14825:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24722:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21926:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21794:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14182:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14302:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22915:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21600:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13591:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22309:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20023:146;;;;;;;;;;;;;:::i;:::-;;14696:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23383:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20724:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16343:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14475:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22179:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13486:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14015:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23009:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12804:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14333:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13533:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23193:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22483:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13872:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24935:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14859:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23512:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13438:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21133:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13708:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20490:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12461:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12370:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14365:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13927:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14262:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12831:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20177:151;;;;;;;;;;;;;:::i;:::-;;12332:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13049:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13659:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11012:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23687:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14403:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12412:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11093:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20939:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22066:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14748:68;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23100:85::-;23139:13;23172:5;;;;;;;;;;;;;;;;;23165:12;;23100:85;:::o;14230:25::-;;;;;;;;;;;;;:::o;23842:161::-;23919:4;23936:37;23945:10;23957:7;23966:6;23936:8;:37::i;:::-;23991:4;23984:11;;23842:161;;;;:::o;14630:57::-;;;;:::o;13391:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;20823:108::-;20878:7;20905:18;;20898:25;;20823:108;:::o;14439:29::-;;;;;;;;;;;;;:::o;13796:69::-;13787:2;13851;:13;;;;:::i;:::-;13835:12;:30;;;;:::i;:::-;13796:69;:::o;24320:392::-;24420:4;24437:36;24447:6;24455:9;24466:6;24437:9;:36::i;:::-;24486:24;24513:11;:19;24525:6;24513:19;;;;;;;;;;;;;;;:31;24533:10;24513:31;;;;;;;;;;;;;;;;24486:58;;24583:6;24563:16;:26;;24555:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;24627:55;24636:6;24644:10;24675:6;24656:16;:25;;;;:::i;:::-;24627:8;:55::i;:::-;24700:4;24693:11;;;24320:392;;;;;:::o;20336:146::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20431:6:::1;20414:14;;:23;;;;;;;;;;;;;;;;;;20465:9;20448:14;;:26;;;;;;;;;;;;;;;;;;20336:146:::0;;:::o;12568:106::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12661:5:::1;12645:7;:13;12653:4;12645:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12568:106:::0;;:::o;14095:78::-;;;;;;;;;;;;;:::o;21421:171::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21494:5:::1;21482:9;;:17;;;;;;;;;;;;;;;;;;21527:2;21518:5;:11;;;;21510:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;21421:171:::0;:::o;23290:85::-;23333:5;13787:2;23351:16;;23290:85;:::o;13753:36::-;13787:2;13753:36;:::o;14825:27::-;;;;;;;;;;;;;:::o;24722:205::-;24804:4;24821:76;24830:10;24842:7;24886:10;24851:11;:23;24863:10;24851:23;;;;;;;;;;;;;;;:32;24875:7;24851:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;24821:8;:76::i;:::-;24915:4;24908:11;;24722:205;;;;:::o;21926:132::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22045:5:::1;22013:23;:29;22037:4;22013:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21926:132:::0;;:::o;21794:124::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21905:5:::1;21877:19;:25;21897:4;21877:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;21794:124:::0;;:::o;14182:39::-;;;;;;;;;;;;;;;;;:::o;14302:24::-;;;;;;;;;;;;;:::o;22915:86::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22988:5:::1;22979:6;;:14;;;;;;;;;;;;;;;;;;22915:86:::0;:::o;21600:186::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21682:9:::1;21669:10;;:22;;;;;;;;;;;;;;;;;;21723:2;21710:9;:15;;;;21702:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;21600:186:::0;:::o;13591:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;22309:166::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22417:9:::1;;;;;;;;;;;22405:21;;:10;:21;;;22403:24;22395:33;;;::::0;::::1;;22462:5;22439:8;:20;22448:10;22439:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;22309:166:::0;;:::o;20023:146::-;12912:9;;;;;;;;;;;12900:21;;:10;:21;;;12892:30;;;;;;20094:5:::1;20077:22;;:13;;;;;;;;;;;:22;;;20069:31;;;::::0;::::1;;20125:5;20111:11;;:19;;;;;;;;;;;;;;;;;;20157:4;20141:13:::0;::::1;:20;;;;;;;;;;;;;;;;;;20023:146::o:0;14696:45::-;;;;;;;;;;;;;;;;;:::o;23383:121::-;23451:7;23478:9;:18;23488:7;23478:18;;;;;;;;;;;;;;;;23471:25;;23383:121;;;:::o;20724:91::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20802:5:::1;20788:11;;:19;;;;;;;;;;;;;;;;;;20724:91:::0;:::o;16343:116::-;16382:4;16407:43;16444:5;16429:9;;;;;;;;;;;16408:30;;:18;;:30;;;;:::i;:::-;16407:36;;:43;;;;:::i;:::-;16399:52;;16343:116;:::o;14475:24::-;;;;:::o;22179:122::-;12912:9;;;;;;;;;;;12900:21;;:10;:21;;;12892:30;;;;;;22250:8:::1;22242:5;;:16;;;;;;;;;;;;;;;;;;22289:4;22269:7;:17;22277:8;22269:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;22179:122:::0;:::o;13486:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;14015:73::-;14046:42;14015:73;:::o;23009:83::-;23052:7;23079:5;;;;;;;;;;;23072:12;;23009:83;:::o;12804:20::-;;;;;;;;;;;;;:::o;14333:25::-;;;;;;;;;;;;;:::o;13533:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;23193:89::-;23234:13;23267:7;;;;;;;;;;;;;;;;;23260:14;;23193:89;:::o;22483:249::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22583:6:::1;22558:9;:21;22568:10;22558:21;;;;;;;;;;;;;;;;:31;;22550:40;;;::::0;::::1;;22626:6;22601:9;:21;22611:10;22601:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;22665:6;22643:18;;:28;;;;;;;:::i;:::-;;;;;;;;14046:42;22687:37;;22704:4;22687:37;;;22717:6;22687:37;;;;;;:::i;:::-;;;;;;;;22483:249:::0;:::o;13872:48::-;;;;:::o;24935:342::-;25022:4;25039:24;25066:11;:23;25078:10;25066:23;;;;;;;;;;;;;;;:32;25090:7;25066:32;;;;;;;;;;;;;;;;25039:59;;25137:15;25117:16;:35;;25109:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;25182:65;25191:10;25203:7;25231:15;25212:16;:34;;;;:::i;:::-;25182:8;:65::i;:::-;25265:4;25258:11;;;24935:342;;;;:::o;14859:26::-;;;;;;;;;;;;;:::o;23512:167::-;23592:4;23609:40;23619:10;23631:9;23642:6;23609:9;:40::i;:::-;23667:4;23660:11;;23512:167;;;;:::o;13438:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;21133:280::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21203:11:::1;21223:10;21203:31;;21245:18;21266:5;:15;;;21290:4;21266:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21245:51;;21326:1;21315:10;:12;21307:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;21367:5;:14;;;21382:10;21394;21367:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21192:221;;21133:280:::0;:::o;13708:38::-;;;;;;;;;;;;;;;;;;;:::o;20490:226::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20569:3:::1;20559:7;;:13;;;;;;;;;;;;;;;;;;20594:4;20583:8;;:15;;;;;;;;;;;;;;;;;;20624:1;20617:3;:8;;;;:21;;;;;20637:1;20629:4;:9;;;;20617:21;20609:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20677:2;20672:3;:7;;;:20;;;;;20690:2;20683:4;:9;;;20672:20;20664:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;20490:226:::0;;:::o;12461:99::-;12515:4;12539:7;:13;12547:4;12539:13;;;;;;;;;;;;;;;;;;;;;;;;;12532:20;;12461:99;;;:::o;12370:33::-;;;;;;;;;;;;;:::o;14365:29::-;;;;;;;;;;;;;:::o;13927:81::-;13966:42;13927:81;:::o;14262:31::-;;;;;;;;;;;;;:::o;12831:24::-;;;;;;;;;;;;;:::o;20177:151::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20234:15:::1;20252:21;20234:39;;20292:9;;;;;;;;;;;20284:27;;:36;20312:7;20284:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20223:105;20177:151::o:0;12332:31::-;;;;;;;;;;;;;:::o;13049:18::-;;;;;;;;;;;;;:::o;13659:42::-;;;;;;;;;;;;;;;;;;;:::o;11012:74::-;;;;;;;;;;;;:::o;23687:147::-;23771:7;23798:11;:19;23810:6;23798:19;;;;;;;;;;;;;;;:28;23818:7;23798:28;;;;;;;;;;;;;;;;23791:35;;23687:147;;;;:::o;14403:29::-;;;;;;;;;;;;;:::o;12412:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;11093:65::-;;;;;;;;;;;;;:::o;20939:186::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21028:9:::1;:24;21046:4;21028:24;;;;;;;;;;;;;;;;21019:6;:33;21011:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;21099:18;21110:6;21099:10;:18::i;:::-;20939:186:::0;:::o;22066:105::-;12722:7;:19;12730:10;12722:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;12757:5;;;;;;;;;;;12745:17;;:10;:17;;;12722:40;12713:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22158:5:::1;22141:8;:14;22150:4;22141:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;22066:105:::0;;:::o;1529:98::-;1587:7;1618:1;1614;:5;;;;:::i;:::-;1607:12;;1529:98;;;;:::o;24009:303::-;24121:1;24103:20;;:6;:20;;;;24095:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;24183:1;24164:21;;:7;:21;;;;24156:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;24249:6;24218:11;:19;24230:6;24218:19;;;;;;;;;;;;;;;:28;24238:7;24218:28;;;;;;;;;;;;;;;:37;;;;24288:7;24271:33;;24280:6;24271:33;;;24297:6;24271:33;;;;;;:::i;:::-;;;;;;;;24009:303;;;:::o;15669:666::-;15757:15;15776:8;:16;15785:6;15776:16;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;15796:8;:19;15805:9;15796:19;;;;;;;;;;;;;;;;;;;;;;;;;15776:39;:58;;;;15819:7;:15;15827:6;15819:15;;;;;;;;;;;;;;;;;;;;;;;;;15776:58;:80;;;;15838:7;:18;15846:9;15838:18;;;;;;;;;;;;;;;;;;;;;;;;;15776:80;15757:100;;15870:23;15911:4;15895:21;;:6;:21;;;:49;;;;15939:4;15920:24;;:9;:24;;;15895:49;15870:75;;15958:24;15997:12;;;;;;;;;;;15987:22;;:6;:22;;;:52;;;;;13966:42;16013:26;;:9;:26;;;15987:52;15986:121;;;;16067:12;;;;;;;;;;;16054:25;;:9;:25;;;:52;;;;;13966:42;16083:23;;:6;:23;;;16054:52;15986:121;15958:150;;16125:10;:32;;;;16139:18;16125:32;:55;;;;16161:19;16125:55;16121:205;;;16197:43;16214:6;16222:9;16233:6;16197:16;:43::i;:::-;16121:205;;;16273:41;16288:6;16296:9;16307:6;16273:14;:41::i;:::-;16121:205;15744:591;;;15669:666;;;:::o;18210:1575::-;13110:6;;;;;;;;;;;13109:7;13101:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;13150:4;13141:6;;:13;;;;;;;;;;;;;;;;;;18272:23:::1;18298:9;:24;18316:4;18298:24;;;;;;;;;;;;;;;;18272:50;;18333:15;18368:14;;;;;;;;;;;18351;;;;;;;;;;;:31;;;;:::i;:::-;18333:49;;;;18393:22;18418:32;18446:3;18419:21;18437:2;18419:13;;:17;;:21;;;;:::i;:::-;18418:27;;:32;;;;:::i;:::-;18393:57;;18483:9;18466:14;:26;18463:129;;;18512:6;;;;;;;;;;;18509:72;;;18556:9;18539:26;;18509:72;18463:129;18621:14;18605:15;:30;18602:67;;;18651:7;;;;;18602:67;18681:25;18739:8;18707:40;;18723:14;;;;;;;;;;;18708:29;;:14;:29;;;;:::i;:::-;18707:40;;;;:::i;:::-;18681:66;;18760:16;18795:1;18777:17;:19;;;;:::i;:::-;18760:36;;18807:19;18845:8;18827:17;:26;;;;:::i;:::-;18807:46;;18866:25;18894:21;18866:49;;18926:21;18964:1;18950:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18926:40;;18995:4;18977;18982:1;18977:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;19021:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19011:4;19016:1;19011:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;19045:6;;;;;;;;;;;:57;;;19117:14;19146:1;19162:4;19189;19209:15;19045:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19250:14;19290:17;19266:21;:41;;;;:::i;:::-;19250:58;;19319:14;19357;19344:11;19337:6;:18;;;;:::i;:::-;19336:35;;;;:::i;:::-;19319:52;;19382:6;;;;;;;;;;;:22;;;19412:6;19443:4;19463:8;19486:1;19502::::0;19526:4:::1;19546:15;19382:180;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19573:19;19620:17;19596:21;:41;;;;:::i;:::-;19573:65;;19651:22;19676:45;19712:8;19676:45;;:31;19692:14;;;;;;;;;;;19676:31;;:11;:15;;:31;;;;:::i;:::-;:35;;:45;;;;:::i;:::-;19651:70;;19740:9;;;;;;;;;;;19732:27;;:43;19760:14;19732:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18261:1524;;;;;;;;;;;;13165:1;13186:5:::0;13177:6;;:14;;;;;;;;;;;;;;;;;;18210:1575;:::o;19795:220::-;19909:6;19888:9;:17;19898:6;19888:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;19950:6;19926:9;:20;19936:9;19926:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;19989:9;19972:35;;19981:6;19972:35;;;20000:6;19972:35;;;;;;:::i;:::-;;;;;;;;19795:220;;;:::o;16467:1343::-;16567:8;:16;16576:6;16567:16;;;;;;;;;;;;;;;;;;;;;;;;;16566:17;:41;;;;;16588:8;:19;16597:9;16588:19;;;;;;;;;;;;;;;;;;;;;;;;;16587:20;16566:41;16558:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;16640:11;;;;;;;;;;;16636:220;;16676:13;;;;;;;;;;;16668:30;;;;;;;;;;;;:::i;:::-;;;;;;;;;16636:220;;;16735:13;;;;;;;;;;;16731:114;;16791:9;16774:30;;16783:6;16774:30;;;16802:1;16774:30;;;;;;:::i;:::-;;;;;;;;16823:7;;16731:114;16636:220;16872:19;:27;16892:6;16872:27;;;;;;;;;;;;;;;;;;;;;;;;;16868:87;;16934:8;:6;:8::i;:::-;16924:6;:18;;16916:27;;;;;;16868:87;16971:23;:34;16995:9;16971:34;;;;;;;;;;;;;;;;;;;;;;;;;16967:174;;17096:4;17084:10;;;;;;;;;;;17065:29;;:18;;:29;;;;:::i;:::-;17064:36;;;;:::i;:::-;17052:6;17031:9;:20;17041:9;17031:20;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;17030:71;;17022:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;16967:174;17153:11;17177:12;;;;;;;;;;;17165:24;;:9;:24;;;:54;;;;17205:14;;;;;;;;;;17192:27;;:9;:27;;;17165:54;17153:66;;17233:16;17251:10;17265:29;17279:6;17287;17265:13;:29::i;:::-;17232:62;;;;17338:13;;17311:9;:24;17329:4;17311:24;;;;;;;;;;;;;;;;:40;17310:58;;;;;17357:11;;;;;;;;;;;17356:12;17310:58;:69;;;;;17373:6;;;;;;;;;;;17372:7;17310:69;17307:180;;;17399:6;:22;;;;;17410:11;;;;;;;;;;;17409:12;17399:22;17396:80;;;17442:18;17453:6;17442:10;:18::i;:::-;17396:80;17307:180;17519:29;17541:6;17519:9;:17;17529:6;17519:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;17499:9;:17;17509:6;17499:17;;;;;;;;;;;;;;;:49;;;;17582:37;17607:11;17582:9;:20;17592:9;17582:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;17559:9;:20;17569:9;17559:20;;;;;;;;;;;;;;;:60;;;;17657:35;17686:5;17657:9;:24;17675:4;17657:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;17630:9;:24;17648:4;17630:24;;;;;;;;;;;;;;;:62;;;;17733:4;17708:38;;17717:6;17708:38;;;17740:5;17708:38;;;;;;:::i;:::-;;;;;;;;17779:9;17762:40;;17771:6;17762:40;;;17790:11;17762:40;;;;;;:::i;:::-;;;;;;;;16547:1263;;;16467:1343;;;;:::o;1423:98::-;1481:7;1512:1;1508;:5;;;;:::i;:::-;1501:12;;1423:98;;;;:::o;17818:384::-;17889:17;17908:11;17932:9;17957:6;17954:98;;;17986:8;;;;;;;;;;;17980:14;;17954:98;;;18033:7;;;;;;;;;;;18027:13;;17954:98;18064:15;18095:3;18090;18083:10;;:6;:10;;;;:::i;:::-;18082:16;;;;:::i;:::-;18064:34;;18109:17;18138:10;18129:6;:19;;;;:::i;:::-;18109:39;;18167:12;18181:10;18159:33;;;;;;;17818:384;;;;;:::o;1317:98::-;1375:7;1406:1;1402;:5;;;;:::i;:::-;1395:12;;1317:98;;;;:::o;1211:::-;1269:7;1300:1;1296;:5;;;;:::i;:::-;1289:12;;1211:98;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:::-;628:5;666:6;653:20;644:29;;682:32;708:5;682:32;:::i;:::-;583:137;;;;:::o;726:139::-;772:5;810:6;797:20;788:29;;826:33;853:5;826:33;:::i;:::-;726:139;;;;:::o;871:143::-;928:5;959:6;953:13;944:22;;975:33;1002:5;975:33;:::i;:::-;871:143;;;;:::o;1020:135::-;1064:5;1102:6;1089:20;1080:29;;1118:31;1143:5;1118:31;:::i;:::-;1020:135;;;;:::o;1161:329::-;1220:6;1269:2;1257:9;1248:7;1244:23;1240:32;1237:119;;;1275:79;;:::i;:::-;1237:119;1395:1;1420:53;1465:7;1456:6;1445:9;1441:22;1420:53;:::i;:::-;1410:63;;1366:117;1161:329;;;;:::o;1496:351::-;1566:6;1615:2;1603:9;1594:7;1590:23;1586:32;1583:119;;;1621:79;;:::i;:::-;1583:119;1741:1;1766:64;1822:7;1813:6;1802:9;1798:22;1766:64;:::i;:::-;1756:74;;1712:128;1496:351;;;;:::o;1853:474::-;1921:6;1929;1978:2;1966:9;1957:7;1953:23;1949:32;1946:119;;;1984:79;;:::i;:::-;1946:119;2104:1;2129:53;2174:7;2165:6;2154:9;2150:22;2129:53;:::i;:::-;2119:63;;2075:117;2231:2;2257:53;2302:7;2293:6;2282:9;2278:22;2257:53;:::i;:::-;2247:63;;2202:118;1853:474;;;;;:::o;2333:619::-;2410:6;2418;2426;2475:2;2463:9;2454:7;2450:23;2446:32;2443:119;;;2481:79;;:::i;:::-;2443:119;2601:1;2626:53;2671:7;2662:6;2651:9;2647:22;2626:53;:::i;:::-;2616:63;;2572:117;2728:2;2754:53;2799:7;2790:6;2779:9;2775:22;2754:53;:::i;:::-;2744:63;;2699:118;2856:2;2882:53;2927:7;2918:6;2907:9;2903:22;2882:53;:::i;:::-;2872:63;;2827:118;2333:619;;;;;:::o;2958:468::-;3023:6;3031;3080:2;3068:9;3059:7;3055:23;3051:32;3048:119;;;3086:79;;:::i;:::-;3048:119;3206:1;3231:53;3276:7;3267:6;3256:9;3252:22;3231:53;:::i;:::-;3221:63;;3177:117;3333:2;3359:50;3401:7;3392:6;3381:9;3377:22;3359:50;:::i;:::-;3349:60;;3304:115;2958:468;;;;;:::o;3432:474::-;3500:6;3508;3557:2;3545:9;3536:7;3532:23;3528:32;3525:119;;;3563:79;;:::i;:::-;3525:119;3683:1;3708:53;3753:7;3744:6;3733:9;3729:22;3708:53;:::i;:::-;3698:63;;3654:117;3810:2;3836:53;3881:7;3872:6;3861:9;3857:22;3836:53;:::i;:::-;3826:63;;3781:118;3432:474;;;;;:::o;3912:323::-;3968:6;4017:2;4005:9;3996:7;3992:23;3988:32;3985:119;;;4023:79;;:::i;:::-;3985:119;4143:1;4168:50;4210:7;4201:6;4190:9;4186:22;4168:50;:::i;:::-;4158:60;;4114:114;3912:323;;;;:::o;4241:345::-;4308:6;4357:2;4345:9;4336:7;4332:23;4328:32;4325:119;;;4363:79;;:::i;:::-;4325:119;4483:1;4508:61;4561:7;4552:6;4541:9;4537:22;4508:61;:::i;:::-;4498:71;;4454:125;4241:345;;;;:::o;4592:327::-;4650:6;4699:2;4687:9;4678:7;4674:23;4670:32;4667:119;;;4705:79;;:::i;:::-;4667:119;4825:1;4850:52;4894:7;4885:6;4874:9;4870:22;4850:52;:::i;:::-;4840:62;;4796:116;4592:327;;;;:::o;4925:329::-;4984:6;5033:2;5021:9;5012:7;5008:23;5004:32;5001:119;;;5039:79;;:::i;:::-;5001:119;5159:1;5184:53;5229:7;5220:6;5209:9;5205:22;5184:53;:::i;:::-;5174:63;;5130:117;4925:329;;;;:::o;5260:351::-;5330:6;5379:2;5367:9;5358:7;5354:23;5350:32;5347:119;;;5385:79;;:::i;:::-;5347:119;5505:1;5530:64;5586:7;5577:6;5566:9;5562:22;5530:64;:::i;:::-;5520:74;;5476:128;5260:351;;;;:::o;5617:663::-;5705:6;5713;5721;5770:2;5758:9;5749:7;5745:23;5741:32;5738:119;;;5776:79;;:::i;:::-;5738:119;5896:1;5921:64;5977:7;5968:6;5957:9;5953:22;5921:64;:::i;:::-;5911:74;;5867:128;6034:2;6060:64;6116:7;6107:6;6096:9;6092:22;6060:64;:::i;:::-;6050:74;;6005:129;6173:2;6199:64;6255:7;6246:6;6235:9;6231:22;6199:64;:::i;:::-;6189:74;;6144:129;5617:663;;;;;:::o;6286:466::-;6350:6;6358;6407:2;6395:9;6386:7;6382:23;6378:32;6375:119;;;6413:79;;:::i;:::-;6375:119;6533:1;6558:51;6601:7;6592:6;6581:9;6577:22;6558:51;:::i;:::-;6548:61;;6504:115;6658:2;6684:51;6727:7;6718:6;6707:9;6703:22;6684:51;:::i;:::-;6674:61;;6629:116;6286:466;;;;;:::o;6758:179::-;6827:10;6848:46;6890:3;6882:6;6848:46;:::i;:::-;6926:4;6921:3;6917:14;6903:28;;6758:179;;;;:::o;6943:108::-;7020:24;7038:5;7020:24;:::i;:::-;7015:3;7008:37;6943:108;;:::o;7057:118::-;7144:24;7162:5;7144:24;:::i;:::-;7139:3;7132:37;7057:118;;:::o;7211:732::-;7330:3;7359:54;7407:5;7359:54;:::i;:::-;7429:86;7508:6;7503:3;7429:86;:::i;:::-;7422:93;;7539:56;7589:5;7539:56;:::i;:::-;7618:7;7649:1;7634:284;7659:6;7656:1;7653:13;7634:284;;;7735:6;7729:13;7762:63;7821:3;7806:13;7762:63;:::i;:::-;7755:70;;7848:60;7901:6;7848:60;:::i;:::-;7838:70;;7694:224;7681:1;7678;7674:9;7669:14;;7634:284;;;7638:14;7934:3;7927:10;;7335:608;;;7211:732;;;;:::o;7949:109::-;8030:21;8045:5;8030:21;:::i;:::-;8025:3;8018:34;7949:109;;:::o;8064:179::-;8175:61;8230:5;8175:61;:::i;:::-;8170:3;8163:74;8064:179;;:::o;8249:177::-;8359:60;8413:5;8359:60;:::i;:::-;8354:3;8347:73;8249:177;;:::o;8432:147::-;8527:45;8566:5;8527:45;:::i;:::-;8522:3;8515:58;8432:147;;:::o;8585:364::-;8673:3;8701:39;8734:5;8701:39;:::i;:::-;8756:71;8820:6;8815:3;8756:71;:::i;:::-;8749:78;;8836:52;8881:6;8876:3;8869:4;8862:5;8858:16;8836:52;:::i;:::-;8913:29;8935:6;8913:29;:::i;:::-;8908:3;8904:39;8897:46;;8677:272;8585:364;;;;:::o;8955:366::-;9097:3;9118:67;9182:2;9177:3;9118:67;:::i;:::-;9111:74;;9194:93;9283:3;9194:93;:::i;:::-;9312:2;9307:3;9303:12;9296:19;;8955:366;;;:::o;9327:::-;9469:3;9490:67;9554:2;9549:3;9490:67;:::i;:::-;9483:74;;9566:93;9655:3;9566:93;:::i;:::-;9684:2;9679:3;9675:12;9668:19;;9327:366;;;:::o;9699:::-;9841:3;9862:67;9926:2;9921:3;9862:67;:::i;:::-;9855:74;;9938:93;10027:3;9938:93;:::i;:::-;10056:2;10051:3;10047:12;10040:19;;9699:366;;;:::o;10071:::-;10213:3;10234:67;10298:2;10293:3;10234:67;:::i;:::-;10227:74;;10310:93;10399:3;10310:93;:::i;:::-;10428:2;10423:3;10419:12;10412:19;;10071:366;;;:::o;10443:365::-;10585:3;10606:66;10670:1;10665:3;10606:66;:::i;:::-;10599:73;;10681:93;10770:3;10681:93;:::i;:::-;10799:2;10794:3;10790:12;10783:19;;10443:365;;;:::o;10814:366::-;10956:3;10977:67;11041:2;11036:3;10977:67;:::i;:::-;10970:74;;11053:93;11142:3;11053:93;:::i;:::-;11171:2;11166:3;11162:12;11155:19;;10814:366;;;:::o;11186:::-;11328:3;11349:67;11413:2;11408:3;11349:67;:::i;:::-;11342:74;;11425:93;11514:3;11425:93;:::i;:::-;11543:2;11538:3;11534:12;11527:19;;11186:366;;;:::o;11558:::-;11700:3;11721:67;11785:2;11780:3;11721:67;:::i;:::-;11714:74;;11797:93;11886:3;11797:93;:::i;:::-;11915:2;11910:3;11906:12;11899:19;;11558:366;;;:::o;11930:::-;12072:3;12093:67;12157:2;12152:3;12093:67;:::i;:::-;12086:74;;12169:93;12258:3;12169:93;:::i;:::-;12287:2;12282:3;12278:12;12271:19;;11930:366;;;:::o;12302:::-;12444:3;12465:67;12529:2;12524:3;12465:67;:::i;:::-;12458:74;;12541:93;12630:3;12541:93;:::i;:::-;12659:2;12654:3;12650:12;12643:19;;12302:366;;;:::o;12674:365::-;12816:3;12837:66;12901:1;12896:3;12837:66;:::i;:::-;12830:73;;12912:93;13001:3;12912:93;:::i;:::-;13030:2;13025:3;13021:12;13014:19;;12674:365;;;:::o;13045:366::-;13187:3;13208:67;13272:2;13267:3;13208:67;:::i;:::-;13201:74;;13284:93;13373:3;13284:93;:::i;:::-;13402:2;13397:3;13393:12;13386:19;;13045:366;;;:::o;13417:365::-;13559:3;13580:66;13644:1;13639:3;13580:66;:::i;:::-;13573:73;;13655:93;13744:3;13655:93;:::i;:::-;13773:2;13768:3;13764:12;13757:19;;13417:365;;;:::o;13788:366::-;13930:3;13951:67;14015:2;14010:3;13951:67;:::i;:::-;13944:74;;14027:93;14116:3;14027:93;:::i;:::-;14145:2;14140:3;14136:12;14129:19;;13788:366;;;:::o;14160:::-;14302:3;14323:67;14387:2;14382:3;14323:67;:::i;:::-;14316:74;;14399:93;14488:3;14399:93;:::i;:::-;14517:2;14512:3;14508:12;14501:19;;14160:366;;;:::o;14532:115::-;14617:23;14634:5;14617:23;:::i;:::-;14612:3;14605:36;14532:115;;:::o;14653:118::-;14740:24;14758:5;14740:24;:::i;:::-;14735:3;14728:37;14653:118;;:::o;14777:112::-;14860:22;14876:5;14860:22;:::i;:::-;14855:3;14848:35;14777:112;;:::o;14895:222::-;14988:4;15026:2;15015:9;15011:18;15003:26;;15039:71;15107:1;15096:9;15092:17;15083:6;15039:71;:::i;:::-;14895:222;;;;:::o;15123:332::-;15244:4;15282:2;15271:9;15267:18;15259:26;;15295:71;15363:1;15352:9;15348:17;15339:6;15295:71;:::i;:::-;15376:72;15444:2;15433:9;15429:18;15420:6;15376:72;:::i;:::-;15123:332;;;;;:::o;15461:807::-;15710:4;15748:3;15737:9;15733:19;15725:27;;15762:71;15830:1;15819:9;15815:17;15806:6;15762:71;:::i;:::-;15843:72;15911:2;15900:9;15896:18;15887:6;15843:72;:::i;:::-;15925:80;16001:2;15990:9;15986:18;15977:6;15925:80;:::i;:::-;16015;16091:2;16080:9;16076:18;16067:6;16015:80;:::i;:::-;16105:73;16173:3;16162:9;16158:19;16149:6;16105:73;:::i;:::-;16188;16256:3;16245:9;16241:19;16232:6;16188:73;:::i;:::-;15461:807;;;;;;;;;:::o;16274:210::-;16361:4;16399:2;16388:9;16384:18;16376:26;;16412:65;16474:1;16463:9;16459:17;16450:6;16412:65;:::i;:::-;16274:210;;;;:::o;16490:270::-;16607:4;16645:2;16634:9;16630:18;16622:26;;16658:95;16750:1;16739:9;16735:17;16726:6;16658:95;:::i;:::-;16490:270;;;;:::o;16766:268::-;16882:4;16920:2;16909:9;16905:18;16897:26;;16933:94;17024:1;17013:9;17009:17;17000:6;16933:94;:::i;:::-;16766:268;;;;:::o;17040:238::-;17141:4;17179:2;17168:9;17164:18;17156:26;;17192:79;17268:1;17257:9;17253:17;17244:6;17192:79;:::i;:::-;17040:238;;;;:::o;17284:313::-;17397:4;17435:2;17424:9;17420:18;17412:26;;17484:9;17478:4;17474:20;17470:1;17459:9;17455:17;17448:47;17512:78;17585:4;17576:6;17512:78;:::i;:::-;17504:86;;17284:313;;;;:::o;17603:419::-;17769:4;17807:2;17796:9;17792:18;17784:26;;17856:9;17850:4;17846:20;17842:1;17831:9;17827:17;17820:47;17884:131;18010:4;17884:131;:::i;:::-;17876:139;;17603:419;;;:::o;18028:::-;18194:4;18232:2;18221:9;18217:18;18209:26;;18281:9;18275:4;18271:20;18267:1;18256:9;18252:17;18245:47;18309:131;18435:4;18309:131;:::i;:::-;18301:139;;18028:419;;;:::o;18453:::-;18619:4;18657:2;18646:9;18642:18;18634:26;;18706:9;18700:4;18696:20;18692:1;18681:9;18677:17;18670:47;18734:131;18860:4;18734:131;:::i;:::-;18726:139;;18453:419;;;:::o;18878:::-;19044:4;19082:2;19071:9;19067:18;19059:26;;19131:9;19125:4;19121:20;19117:1;19106:9;19102:17;19095:47;19159:131;19285:4;19159:131;:::i;:::-;19151:139;;18878:419;;;:::o;19303:::-;19469:4;19507:2;19496:9;19492:18;19484:26;;19556:9;19550:4;19546:20;19542:1;19531:9;19527:17;19520:47;19584:131;19710:4;19584:131;:::i;:::-;19576:139;;19303:419;;;:::o;19728:::-;19894:4;19932:2;19921:9;19917:18;19909:26;;19981:9;19975:4;19971:20;19967:1;19956:9;19952:17;19945:47;20009:131;20135:4;20009:131;:::i;:::-;20001:139;;19728:419;;;:::o;20153:::-;20319:4;20357:2;20346:9;20342:18;20334:26;;20406:9;20400:4;20396:20;20392:1;20381:9;20377:17;20370:47;20434:131;20560:4;20434:131;:::i;:::-;20426:139;;20153:419;;;:::o;20578:::-;20744:4;20782:2;20771:9;20767:18;20759:26;;20831:9;20825:4;20821:20;20817:1;20806:9;20802:17;20795:47;20859:131;20985:4;20859:131;:::i;:::-;20851:139;;20578:419;;;:::o;21003:::-;21169:4;21207:2;21196:9;21192:18;21184:26;;21256:9;21250:4;21246:20;21242:1;21231:9;21227:17;21220:47;21284:131;21410:4;21284:131;:::i;:::-;21276:139;;21003:419;;;:::o;21428:::-;21594:4;21632:2;21621:9;21617:18;21609:26;;21681:9;21675:4;21671:20;21667:1;21656:9;21652:17;21645:47;21709:131;21835:4;21709:131;:::i;:::-;21701:139;;21428:419;;;:::o;21853:::-;22019:4;22057:2;22046:9;22042:18;22034:26;;22106:9;22100:4;22096:20;22092:1;22081:9;22077:17;22070:47;22134:131;22260:4;22134:131;:::i;:::-;22126:139;;21853:419;;;:::o;22278:::-;22444:4;22482:2;22471:9;22467:18;22459:26;;22531:9;22525:4;22521:20;22517:1;22506:9;22502:17;22495:47;22559:131;22685:4;22559:131;:::i;:::-;22551:139;;22278:419;;;:::o;22703:::-;22869:4;22907:2;22896:9;22892:18;22884:26;;22956:9;22950:4;22946:20;22942:1;22931:9;22927:17;22920:47;22984:131;23110:4;22984:131;:::i;:::-;22976:139;;22703:419;;;:::o;23128:::-;23294:4;23332:2;23321:9;23317:18;23309:26;;23381:9;23375:4;23371:20;23367:1;23356:9;23352:17;23345:47;23409:131;23535:4;23409:131;:::i;:::-;23401:139;;23128:419;;;:::o;23553:::-;23719:4;23757:2;23746:9;23742:18;23734:26;;23806:9;23800:4;23796:20;23792:1;23781:9;23777:17;23770:47;23834:131;23960:4;23834:131;:::i;:::-;23826:139;;23553:419;;;:::o;23978:218::-;24069:4;24107:2;24096:9;24092:18;24084:26;;24120:69;24186:1;24175:9;24171:17;24162:6;24120:69;:::i;:::-;23978:218;;;;:::o;24202:222::-;24295:4;24333:2;24322:9;24318:18;24310:26;;24346:71;24414:1;24403:9;24399:17;24390:6;24346:71;:::i;:::-;24202:222;;;;:::o;24430:831::-;24693:4;24731:3;24720:9;24716:19;24708:27;;24745:71;24813:1;24802:9;24798:17;24789:6;24745:71;:::i;:::-;24826:80;24902:2;24891:9;24887:18;24878:6;24826:80;:::i;:::-;24953:9;24947:4;24943:20;24938:2;24927:9;24923:18;24916:48;24981:108;25084:4;25075:6;24981:108;:::i;:::-;24973:116;;25099:72;25167:2;25156:9;25152:18;25143:6;25099:72;:::i;:::-;25181:73;25249:3;25238:9;25234:19;25225:6;25181:73;:::i;:::-;24430:831;;;;;;;;:::o;25267:214::-;25356:4;25394:2;25383:9;25379:18;25371:26;;25407:67;25471:1;25460:9;25456:17;25447:6;25407:67;:::i;:::-;25267:214;;;;:::o;25568:132::-;25635:4;25658:3;25650:11;;25688:4;25683:3;25679:14;25671:22;;25568:132;;;:::o;25706:114::-;25773:6;25807:5;25801:12;25791:22;;25706:114;;;:::o;25826:99::-;25878:6;25912:5;25906:12;25896:22;;25826:99;;;:::o;25931:113::-;26001:4;26033;26028:3;26024:14;26016:22;;25931:113;;;:::o;26050:184::-;26149:11;26183:6;26178:3;26171:19;26223:4;26218:3;26214:14;26199:29;;26050:184;;;;:::o;26240:169::-;26324:11;26358:6;26353:3;26346:19;26398:4;26393:3;26389:14;26374:29;;26240:169;;;;:::o;26415:305::-;26455:3;26474:20;26492:1;26474:20;:::i;:::-;26469:25;;26508:20;26526:1;26508:20;:::i;:::-;26503:25;;26662:1;26594:66;26590:74;26587:1;26584:81;26581:107;;;26668:18;;:::i;:::-;26581:107;26712:1;26709;26705:9;26698:16;;26415:305;;;;:::o;26726:237::-;26764:3;26783:18;26799:1;26783:18;:::i;:::-;26778:23;;26815:18;26831:1;26815:18;:::i;:::-;26810:23;;26905:1;26899:4;26895:12;26892:1;26889:19;26886:45;;;26911:18;;:::i;:::-;26886:45;26955:1;26952;26948:9;26941:16;;26726:237;;;;:::o;26969:185::-;27009:1;27026:20;27044:1;27026:20;:::i;:::-;27021:25;;27060:20;27078:1;27060:20;:::i;:::-;27055:25;;27099:1;27089:35;;27104:18;;:::i;:::-;27089:35;27146:1;27143;27139:9;27134:14;;26969:185;;;;:::o;27160:848::-;27221:5;27228:4;27252:6;27243:15;;27276:5;27267:14;;27290:712;27311:1;27301:8;27298:15;27290:712;;;27406:4;27401:3;27397:14;27391:4;27388:24;27385:50;;;27415:18;;:::i;:::-;27385:50;27465:1;27455:8;27451:16;27448:451;;;27880:4;27873:5;27869:16;27860:25;;27448:451;27930:4;27924;27920:15;27912:23;;27960:32;27983:8;27960:32;:::i;:::-;27948:44;;27290:712;;;27160:848;;;;;;;:::o;28014:281::-;28072:5;28096:23;28114:4;28096:23;:::i;:::-;28088:31;;28140:25;28156:8;28140:25;:::i;:::-;28128:37;;28184:104;28221:66;28211:8;28205:4;28184:104;:::i;:::-;28175:113;;28014:281;;;;:::o;28301:1073::-;28355:5;28546:8;28536:40;;28567:1;28558:10;;28569:5;;28536:40;28595:4;28585:36;;28612:1;28603:10;;28614:5;;28585:36;28681:4;28729:1;28724:27;;;;28765:1;28760:191;;;;28674:277;;28724:27;28742:1;28733:10;;28744:5;;;28760:191;28805:3;28795:8;28792:17;28789:43;;;28812:18;;:::i;:::-;28789:43;28861:8;28858:1;28854:16;28845:25;;28896:3;28889:5;28886:14;28883:40;;;28903:18;;:::i;:::-;28883:40;28936:5;;;28674:277;;29060:2;29050:8;29047:16;29041:3;29035:4;29032:13;29028:36;29010:2;29000:8;28997:16;28992:2;28986:4;28983:12;28979:35;28963:111;28960:246;;;29116:8;29110:4;29106:19;29097:28;;29151:3;29144:5;29141:14;29138:40;;;29158:18;;:::i;:::-;29138:40;29191:5;;28960:246;29231:42;29269:3;29259:8;29253:4;29250:1;29231:42;:::i;:::-;29216:57;;;;29305:4;29300:3;29296:14;29289:5;29286:25;29283:51;;;29314:18;;:::i;:::-;29283:51;29363:4;29356:5;29352:16;29343:25;;28301:1073;;;;;;:::o;29380:348::-;29420:7;29443:20;29461:1;29443:20;:::i;:::-;29438:25;;29477:20;29495:1;29477:20;:::i;:::-;29472:25;;29665:1;29597:66;29593:74;29590:1;29587:81;29582:1;29575:9;29568:17;29564:105;29561:131;;;29672:18;;:::i;:::-;29561:131;29720:1;29717;29713:9;29702:20;;29380:348;;;;:::o;29734:191::-;29774:4;29794:20;29812:1;29794:20;:::i;:::-;29789:25;;29828:20;29846:1;29828:20;:::i;:::-;29823:25;;29867:1;29864;29861:8;29858:34;;;29872:18;;:::i;:::-;29858:34;29917:1;29914;29910:9;29902:17;;29734:191;;;;:::o;29931:96::-;29968:7;29997:24;30015:5;29997:24;:::i;:::-;29986:35;;29931:96;;;:::o;30033:90::-;30067:7;30110:5;30103:13;30096:21;30085:32;;30033:90;;;:::o;30129:89::-;30165:7;30205:6;30198:5;30194:18;30183:29;;30129:89;;;:::o;30224:126::-;30261:7;30301:42;30294:5;30290:54;30279:65;;30224:126;;;:::o;30356:77::-;30393:7;30422:5;30411:16;;30356:77;;;:::o;30439:86::-;30474:7;30514:4;30507:5;30503:16;30492:27;;30439:86;;;:::o;30531:150::-;30605:9;30638:37;30669:5;30638:37;:::i;:::-;30625:50;;30531:150;;;:::o;30687:149::-;30760:9;30793:37;30824:5;30793:37;:::i;:::-;30780:50;;30687:149;;;:::o;30842:121::-;30900:9;30933:24;30951:5;30933:24;:::i;:::-;30920:37;;30842:121;;;:::o;30969:126::-;31019:9;31052:37;31083:5;31052:37;:::i;:::-;31039:50;;30969:126;;;:::o;31101:113::-;31151:9;31184:24;31202:5;31184:24;:::i;:::-;31171:37;;31101:113;;;:::o;31220:307::-;31288:1;31298:113;31312:6;31309:1;31306:13;31298:113;;;31397:1;31392:3;31388:11;31382:18;31378:1;31373:3;31369:11;31362:39;31334:2;31331:1;31327:10;31322:15;;31298:113;;;31429:6;31426:1;31423:13;31420:101;;;31509:1;31500:6;31495:3;31491:16;31484:27;31420:101;31269:258;31220:307;;;:::o;31533:180::-;31581:77;31578:1;31571:88;31678:4;31675:1;31668:15;31702:4;31699:1;31692:15;31719:180;31767:77;31764:1;31757:88;31864:4;31861:1;31854:15;31888:4;31885:1;31878:15;31905:180;31953:77;31950:1;31943:88;32050:4;32047:1;32040:15;32074:4;32071:1;32064:15;32091:180;32139:77;32136:1;32129:88;32236:4;32233:1;32226:15;32260:4;32257:1;32250:15;32400:117;32509:1;32506;32499:12;32523:102;32564:6;32615:2;32611:7;32606:2;32599:5;32595:14;32591:28;32581:38;;32523:102;;;:::o;32631:::-;32673:8;32720:5;32717:1;32713:13;32692:34;;32631:102;;;:::o;32739:235::-;32879:34;32875:1;32867:6;32863:14;32856:58;32948:18;32943:2;32935:6;32931:15;32924:43;32739:235;:::o;32980:181::-;33120:33;33116:1;33108:6;33104:14;33097:57;32980:181;:::o;33167:167::-;33307:19;33303:1;33295:6;33291:14;33284:43;33167:167;:::o;33340:170::-;33480:22;33476:1;33468:6;33464:14;33457:46;33340:170;:::o;33516:159::-;33656:11;33652:1;33644:6;33640:14;33633:35;33516:159;:::o;33681:165::-;33821:17;33817:1;33809:6;33805:14;33798:41;33681:165;:::o;33852:174::-;33992:26;33988:1;33980:6;33976:14;33969:50;33852:174;:::o;34032:173::-;34172:25;34168:1;34160:6;34156:14;34149:49;34032:173;:::o;34211:237::-;34351:34;34347:1;34339:6;34335:14;34328:58;34420:20;34415:2;34407:6;34403:15;34396:45;34211:237;:::o;34454:161::-;34594:13;34590:1;34582:6;34578:14;34571:37;34454:161;:::o;34621:154::-;34761:6;34757:1;34749:6;34745:14;34738:30;34621:154;:::o;34781:160::-;34921:12;34917:1;34909:6;34905:14;34898:36;34781:160;:::o;34947:159::-;35087:11;35083:1;35075:6;35071:14;35064:35;34947:159;:::o;35112:162::-;35252:14;35248:1;35240:6;35236:14;35229:38;35112:162;:::o;35280:161::-;35420:13;35416:1;35408:6;35404:14;35397:37;35280:161;:::o;35447:122::-;35520:24;35538:5;35520:24;:::i;:::-;35513:5;35510:35;35500:63;;35559:1;35556;35549:12;35500:63;35447:122;:::o;35575:116::-;35645:21;35660:5;35645:21;:::i;:::-;35638:5;35635:32;35625:60;;35681:1;35678;35671:12;35625:60;35575:116;:::o;35697:120::-;35769:23;35786:5;35769:23;:::i;:::-;35762:5;35759:34;35749:62;;35807:1;35804;35797:12;35749:62;35697:120;:::o;35823:122::-;35896:24;35914:5;35896:24;:::i;:::-;35889:5;35886:35;35876:63;;35935:1;35932;35925:12;35876:63;35823:122;:::o;35951:118::-;36022:22;36038:5;36022:22;:::i;:::-;36015:5;36012:33;36002:61;;36059:1;36056;36049:12;36002:61;35951:118;:::o

Swarm Source

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