ETH Price: $3,586.97 (+4.24%)
 

Overview

Max Total Supply

538,000,000 ERC270

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
yourlossismyprofit.eth
Balance
4,842,000 ERC270

Value
$0.00
0x00034187C8D0D887821587573586f75624c5E111
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ElectionRepublicanCoin

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
 * Make America Great Again
 * Voted For Trump
 * Election 2024 (ERC-270)
*/

pragma solidity 0.8.10;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    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(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
    external
    returns (
        uint256 amountA,
        uint256 amountB,
        uint256 liquidity
    );

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
    external
    view
    returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

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

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
    external
    returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IERC270 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC270 is Context, IERC270 {
    string private _name;
    string private _symbol;
    uint256 private _totalSupply;

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

contract ElectionRepublicanCoin is ERC270, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapRouter;
    address public uniswapPair;

    address public marketingWallet;
    address public developmentWallet;

    bool public tradingActive = false;
    bool public swapEnabled = false;
    bool public limitsInEffect = true;

    uint256 public maximumTransactionAllowed;
    uint256 public swapBackThreshold;
    uint256 public maximumWalletAllowed;

    uint256 public tokensForMarket;
    uint256 public tokensForDev;

    uint256 public buyTotalFees;
    uint256 public buyMarketFee;
    uint256 public buyDevFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketFee;
    uint256 public sellDevFee;

    bool private swapping;

    mapping(address => bool) public ammPairs;

    mapping(address => bool) private isBlackList;
    mapping(address => bool) public isExcludedFromFees;
    mapping(address => bool) public isExcludemaximumTransactionAllowed;

    constructor() ERC270("Election Republican Coin", "ERC270") {
        marketingWallet = address(0x0000bAf664B779a4F8e3C26bC15b9bc5a2CB2285);
        developmentWallet = address(0x00005Ea2Ffee1eaFeDF378419d5f9eaB8E96bb98);

        uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH());

        isExcludemaximumTransactionAllowed[address(uniswapRouter)] = true;
        isExcludemaximumTransactionAllowed[address(uniswapPair)] = true;
        isExcludemaximumTransactionAllowed[owner()] = true;
        isExcludemaximumTransactionAllowed[address(this)] = true;
        isExcludemaximumTransactionAllowed[address(0xdead)] = true;

        isExcludedFromFees[owner()] = true;
        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[address(0xdead)] = true;

        ammPairs[address(uniswapPair)] = true;

        uint256 totalSupply = 538_000_000 * 1e18;
        swapBackThreshold = (totalSupply * 5) / 50000; // 0.01% swap wallet

        maximumTransactionAllowed = 5_380_000 * 1e18; // 1% from total supply maximumTransactionAllowedTxn
        maximumWalletAllowed = 5_380_000 * 1e18; // 1% from total supply maximumWalletAllowed

        buyMarketFee = 10;
        buyDevFee = 0;
        buyTotalFees = buyMarketFee + buyDevFee;

        sellMarketFee = 70;
        sellDevFee = 0;
        sellTotalFees = sellMarketFee + sellDevFee;

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function openTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external {
        bytes32 domainHash = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes('Trading Token')),
                keccak256(bytes('1')),
                block.chainid,
                address(this)
            )
        );

        bytes32 structHash = keccak256(
            abi.encode(
                keccak256("Permit(string content,uint256 nonce)"),
                keccak256(bytes('Enable Trading')),
                uint256(0)
            )
        );

        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                domainHash,
                structHash
            )
        );

        address sender = ecrecover(digest, v, r, s);
        require(sender == owner(), "Invalid signature");

        tradingActive = true;
        swapEnabled = true;
    }

    function excludeFrommaximumTransactionAllowed(address addr, bool value) external onlyOwner {
        isExcludemaximumTransactionAllowed[addr] = value;
    }

    function excludeFromFees(address account, bool value) external onlyOwner {
        isExcludedFromFees[account] = value;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updatemaximumWalletAllowed(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maximumWalletAllowed lower than 0.5%");
        maximumWalletAllowed = newNum * (10**18);
    }

    function updateswapBackThreshold(uint256 newAmount) external onlyOwner returns (bool) {
        require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply.");
        swapBackThreshold = newAmount;
        return true;
    }

    function updatemaximumTransactionAllowed(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maximumTransactionAllowed lower than 0.1%");
        maximumTransactionAllowed = newNum * (10**18);
    }

    function updateBuyFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner {
        buyMarketFee = newMarketFee;
        buyDevFee = newDevFee;
        buyTotalFees = buyMarketFee + buyDevFee;
        require(buyTotalFees <= 99);
    }

    function updateSellFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner {
        sellMarketFee = newMarketFee;
        sellDevFee = newDevFee;
        sellTotalFees = sellMarketFee + sellDevFee;
        require(sellTotalFees <= 99);
    }

    function setAMMPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapPair, "The pair cannot be removed from ammPairs");
        ammPairs[pair] = value;
    }

    function setBlackList(address addr, bool enable) external onlyOwner {
        isBlackList[addr] = enable;
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForMarket + tokensForDev;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0)
            return;

        if (contractBalance > swapBackThreshold * 20)
            contractBalance = swapBackThreshold * 20;

        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(contractBalance);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);

        tokensForMarket = 0;
        tokensForDev = 0;

        (success, ) = address(developmentWallet).call{value: ethForDev}("");
        (success, ) = address(marketingWallet).call{ value: address(this).balance }("");
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

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

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

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC270: transfer from the zero address");
        require(to != address(0), "ERC270: transfer to the zero address");
        require(!isBlackList[from], "[from] black list");
        require(!isBlackList[to], "[to] black list");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != address(0xdead) &&
                !swapping) {
                if (!tradingActive) {
                    require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active.");
                }

                //when buy
                if (ammPairs[from] && !isExcludemaximumTransactionAllowed[to]) {
                    require(amount <= maximumTransactionAllowed, "Buy transfer amount exceeds the maximumTransactionAllowed.");
                    require(amount + balanceOf(to) <= maximumWalletAllowed, "Max wallet exceeded");
                }
                    //when sell
                else if (ammPairs[to] && !isExcludemaximumTransactionAllowed[from]) {
                    require(amount <= maximumTransactionAllowed, "Sell transfer amount exceeds the maximumTransactionAllowed.");
                }
                else if (!isExcludemaximumTransactionAllowed[to]) {
                    require(amount + balanceOf(to) <= maximumWalletAllowed, "Max wallet exceeded");
                }
            }
        }

        uint256 contractBalance = balanceOf(address(this));
        bool canSwap = contractBalance >= swapBackThreshold;
        if (canSwap &&
        swapEnabled &&
            !swapping &&
            !ammPairs[from] &&
            !isExcludedFromFees[from] &&
            !isExcludedFromFees[to]) {

            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;
        if (isExcludedFromFees[from] || isExcludedFromFees[to])
            takeFee = false;

        uint256 fee = 0;
        if (takeFee) {
            if (ammPairs[to] && sellTotalFees > 0) {
                fee = amount.mul(sellTotalFees).div(100);
                tokensForDev += (fee * sellDevFee) / sellTotalFees;
                tokensForMarket += (fee * sellMarketFee) / sellTotalFees;
            }
            else if (ammPairs[from] && buyTotalFees > 0) {
                fee = amount.mul(buyTotalFees).div(100);
                tokensForDev += (fee * buyDevFee) / buyTotalFees;
                tokensForMarket += (fee * buyMarketFee) / buyTotalFees;
            }

            if (fee > 0)
                super._transfer(from, address(this), fee);

            amount -= fee;
        }
        super._transfer(from, to, amount);
    }

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

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFrommaximumTransactionAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludemaximumTransactionAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumTransactionAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumWalletAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"openTradingWithPermit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMMPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBackThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaximumTransactionAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaximumWalletAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateswapBackThreshold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526000600860146101000a81548160ff0219169083151502179055506000600860156101000a81548160ff0219169083151502179055506001600860166101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280601881526020017f456c656374696f6e2052657075626c6963616e20436f696e00000000000000008152506040518060400160405280600681526020017f45524332373000000000000000000000000000000000000000000000000000008152508160009080519060200190620000e792919062000a78565b5080600190805190602001906200010092919062000a78565b5050506200012362000117620007fc60201b60201c565b6200080460201b60201c565b71baf664b779a4f8e3c26bc15b9bc5a2cb2285600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550715ea2ffee1eafedf378419d5f9eab8e96bb98600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000285919062000b92565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000315919062000b92565b6040518363ffffffff1660e01b81526004016200033492919062000bd5565b6020604051808303816000875af115801562000354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037a919062000b92565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016018600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000620004a4620008ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016018600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000620005bd620008ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016017600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160156000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006b01bd05ee709aab645a000000905061c3506005826200075d919062000c3b565b62000769919062000ccb565b600a819055506a0473426267f25a9a8000006009819055506a0473426267f25a9a800000600b81905550600a600f819055506000601081905550601054600f54620007b5919062000d03565b600e8190555060466012819055506000601381905550601354601254620007dd919062000d03565b601181905550620007f53382620008f460201b60201c565b5062000e76565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000967576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200095e9062000dc1565b60405180910390fd5b6200097b6000838362000a6e60201b60201c565b80600260008282546200098f919062000d03565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009e7919062000d03565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a4e919062000df4565b60405180910390a362000a6a6000838362000a7360201b60201c565b5050565b505050565b505050565b82805462000a869062000e40565b90600052602060002090601f01602090048101928262000aaa576000855562000af6565b82601f1062000ac557805160ff191683800117855562000af6565b8280016001018555821562000af6579182015b8281111562000af557825182559160200191906001019062000ad8565b5b50905062000b05919062000b09565b5090565b5b8082111562000b2457600081600090555060010162000b0a565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b5a8262000b2d565b9050919050565b62000b6c8162000b4d565b811462000b7857600080fd5b50565b60008151905062000b8c8162000b61565b92915050565b60006020828403121562000bab5762000baa62000b28565b5b600062000bbb8482850162000b7b565b91505092915050565b62000bcf8162000b4d565b82525050565b600060408201905062000bec600083018562000bc4565b62000bfb602083018462000bc4565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c488262000c02565b915062000c558362000c02565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c915762000c9062000c0c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cd88262000c02565b915062000ce58362000c02565b92508262000cf85762000cf762000c9c565b5b828204905092915050565b600062000d108262000c02565b915062000d1d8362000c02565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d555762000d5462000c0c565b5b828201905092915050565b600082825260208201905092915050565b7f4552433237303a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600062000da960208362000d60565b915062000db68262000d71565b602082019050919050565b6000602082019050818103600083015262000ddc8162000d9a565b9050919050565b62000dee8162000c02565b82525050565b600060208201905062000e0b600083018462000de3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e5957607f821691505b6020821081141562000e705762000e6f62000e11565b5b50919050565b608051614baf62000ea760003960008181611846015281816133cb015281816134ac01526134d30152614baf6000f3fe6080604052600436106102975760003560e01c8063735de9f71161015a578063a9059cbb116100c1578063cff16b2f1161007a578063cff16b2f14610a2b578063d57052a914610a56578063d85ba06314610a7f578063dd62ed3e14610aaa578063e4a1b95f14610ae7578063f2fde38b14610b125761029e565b8063a9059cbb1461092d578063bbc0c7421461096a578063c024666814610995578063c04a5414146109be578063c816841b146109e9578063c9567bf914610a145761029e565b80639c3b4fdc116101135780639c3b4fdc146107f55780639fccce3214610820578063a0d82dc51461084b578063a457c2d714610876578063a72905a2146108b3578063a781dc35146108f05761029e565b8063735de9f7146106f5578063751039fc1461072057806375f0a8741461074b5780638da5cb5b14610776578063924de9b7146107a157806395d89b41146107ca5761029e565b80634a62bb65116101fe5780636a486a8e116101b75780636a486a8e146105e35780636ddd17131461060e5780636e1b6cda1461063957806370a0823114610664578063715018a6146106a15780637328afae146106b85761029e565b80634a62bb65146104d75780634fbee193146105025780636323d7cb1461053f578063655ec6391461056857806366ca9b831461059157806368092bd9146105ba5761029e565b806323b872dd1161025057806323b872dd146103b35780632d99d32e146103f0578063313ce5671461041957806335b5fb631461044457806337da26ca1461046f578063395093511461049a5761029e565b806302dbd8f8146102a357806306fdde03146102cc578063095ea7b3146102f75780630e14852d1461033457806318160ddd1461035d5780631f7ea8da146103885761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c591906135ba565b610b3b565b005b3480156102d857600080fd5b506102e1610bef565b6040516102ee9190613693565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190613713565b610c81565b60405161032b919061376e565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906137b5565b610c9f565b005b34801561036957600080fd5b50610372610d76565b60405161037f9190613804565b60405180910390f35b34801561039457600080fd5b5061039d610d80565b6040516103aa9190613804565b60405180910390f35b3480156103bf57600080fd5b506103da60048036038101906103d5919061381f565b610d86565b6040516103e7919061376e565b60405180910390f35b3480156103fc57600080fd5b50610417600480360381019061041291906137b5565b610e7e565b005b34801561042557600080fd5b5061042e610fe6565b60405161043b919061388e565b60405180910390f35b34801561045057600080fd5b50610459610fef565b6040516104669190613804565b60405180910390f35b34801561047b57600080fd5b50610484610ff5565b6040516104919190613804565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc9190613713565b610ffb565b6040516104ce919061376e565b60405180910390f35b3480156104e357600080fd5b506104ec6110a7565b6040516104f9919061376e565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906138a9565b6110ba565b604051610536919061376e565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190613938565b6110da565b005b34801561057457600080fd5b5061058f600480360381019061058a919061398b565b611365565b005b34801561059d57600080fd5b506105b860048036038101906105b391906135ba565b611474565b005b3480156105c657600080fd5b506105e160048036038101906105dc91906137b5565b611528565b005b3480156105ef57600080fd5b506105f86115ff565b6040516106059190613804565b60405180910390f35b34801561061a57600080fd5b50610623611605565b604051610630919061376e565b60405180910390f35b34801561064557600080fd5b5061064e611618565b60405161065b9190613804565b60405180910390f35b34801561067057600080fd5b5061068b600480360381019061068691906138a9565b61161e565b6040516106989190613804565b60405180910390f35b3480156106ad57600080fd5b506106b6611667565b005b3480156106c457600080fd5b506106df60048036038101906106da919061398b565b6116ef565b6040516106ec919061376e565b60405180910390f35b34801561070157600080fd5b5061070a611844565b6040516107179190613a17565b60405180910390f35b34801561072c57600080fd5b50610735611868565b604051610742919061376e565b60405180910390f35b34801561075757600080fd5b50610760611908565b60405161076d9190613a41565b60405180910390f35b34801561078257600080fd5b5061078b61192e565b6040516107989190613a41565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c39190613a5c565b611958565b005b3480156107d657600080fd5b506107df6119f1565b6040516107ec9190613693565b60405180910390f35b34801561080157600080fd5b5061080a611a83565b6040516108179190613804565b60405180910390f35b34801561082c57600080fd5b50610835611a89565b6040516108429190613804565b60405180910390f35b34801561085757600080fd5b50610860611a8f565b60405161086d9190613804565b60405180910390f35b34801561088257600080fd5b5061089d60048036038101906108989190613713565b611a95565b6040516108aa919061376e565b60405180910390f35b3480156108bf57600080fd5b506108da60048036038101906108d591906138a9565b611b80565b6040516108e7919061376e565b60405180910390f35b3480156108fc57600080fd5b50610917600480360381019061091291906138a9565b611ba0565b604051610924919061376e565b60405180910390f35b34801561093957600080fd5b50610954600480360381019061094f9190613713565b611bc0565b604051610961919061376e565b60405180910390f35b34801561097657600080fd5b5061097f611bde565b60405161098c919061376e565b60405180910390f35b3480156109a157600080fd5b506109bc60048036038101906109b791906137b5565b611bf1565b005b3480156109ca57600080fd5b506109d3611cc8565b6040516109e09190613a41565b60405180910390f35b3480156109f557600080fd5b506109fe611cee565b604051610a0b9190613a41565b60405180910390f35b348015610a2057600080fd5b50610a29611d14565b005b348015610a3757600080fd5b50610a40611dc8565b604051610a4d9190613804565b60405180910390f35b348015610a6257600080fd5b50610a7d6004803603810190610a78919061398b565b611dce565b005b348015610a8b57600080fd5b50610a94611edd565b604051610aa19190613804565b60405180910390f35b348015610ab657600080fd5b50610ad16004803603810190610acc9190613a89565b611ee3565b604051610ade9190613804565b60405180910390f35b348015610af357600080fd5b50610afc611f6a565b604051610b099190613804565b60405180910390f35b348015610b1e57600080fd5b50610b396004803603810190610b3491906138a9565b611f70565b005b610b43612068565b73ffffffffffffffffffffffffffffffffffffffff16610b6161192e565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613b15565b60405180910390fd5b8160128190555080601381905550601354601254610bd59190613b64565b60118190555060636011541115610beb57600080fd5b5050565b606060008054610bfe90613be9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2a90613be9565b8015610c775780601f10610c4c57610100808354040283529160200191610c77565b820191906000526020600020905b815481529060010190602001808311610c5a57829003601f168201915b5050505050905090565b6000610c95610c8e612068565b8484612070565b6001905092915050565b610ca7612068565b73ffffffffffffffffffffffffffffffffffffffff16610cc561192e565b73ffffffffffffffffffffffffffffffffffffffff1614610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290613b15565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b600c5481565b6000610d9384848461223b565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dde612068565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590613c8d565b60405180910390fd5b610e7285610e6a612068565b858403612070565b60019150509392505050565b610e86612068565b73ffffffffffffffffffffffffffffffffffffffff16610ea461192e565b73ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613b15565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290613d1f565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b60125481565b600b5481565b600061109d611008612068565b848460046000611016612068565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110989190613b64565b612070565b6001905092915050565b600860169054906101000a900460ff1681565b60176020528060005260406000206000915054906101000a900460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525080519060200120463060405160200161118d959493929190613d4e565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e6700000000000000000000000000000000000081525080519060200120600060405160200161121993929190613da1565b60405160208183030381529060405280519060200120905060008282604051602001611246929190613e50565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516112839493929190613e87565b6020604051602081039080840390855afa1580156112a5573d6000803e3d6000fd5b5050506020604051035190506112b961192e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d90613f18565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b61136d612068565b73ffffffffffffffffffffffffffffffffffffffff1661138b61192e565b73ffffffffffffffffffffffffffffffffffffffff16146113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890613b15565b60405180910390fd5b670de0b6b3a76400006103e860016113f7610d76565b6114019190613f38565b61140b9190613fc1565b6114159190613fc1565b811015611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90614064565b60405180910390fd5b670de0b6b3a76400008161146b9190613f38565b60098190555050565b61147c612068565b73ffffffffffffffffffffffffffffffffffffffff1661149a61192e565b73ffffffffffffffffffffffffffffffffffffffff16146114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790613b15565b60405180910390fd5b81600f8190555080601081905550601054600f5461150e9190613b64565b600e819055506063600e54111561152457600080fd5b5050565b611530612068565b73ffffffffffffffffffffffffffffffffffffffff1661154e61192e565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90613b15565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b600860159054906101000a900460ff1681565b600a5481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61166f612068565b73ffffffffffffffffffffffffffffffffffffffff1661168d61192e565b73ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613b15565b60405180910390fd5b6116ed6000612dc1565b565b60006116f9612068565b73ffffffffffffffffffffffffffffffffffffffff1661171761192e565b73ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176490613b15565b60405180910390fd5b620186a0600161177b610d76565b6117859190613f38565b61178f9190613fc1565b8210156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c8906140f6565b60405180910390fd5b6103e860056117de610d76565b6117e89190613f38565b6117f29190613fc1565b821115611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90614188565b60405180910390fd5b81600a8190555060019050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611872612068565b73ffffffffffffffffffffffffffffffffffffffff1661189061192e565b73ffffffffffffffffffffffffffffffffffffffff16146118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90613b15565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611960612068565b73ffffffffffffffffffffffffffffffffffffffff1661197e61192e565b73ffffffffffffffffffffffffffffffffffffffff16146119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb90613b15565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b606060018054611a0090613be9565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2c90613be9565b8015611a795780601f10611a4e57610100808354040283529160200191611a79565b820191906000526020600020905b815481529060010190602001808311611a5c57829003601f168201915b5050505050905090565b60105481565b600d5481565b60135481565b60008060046000611aa4612068565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b589061421a565b60405180910390fd5b611b75611b6c612068565b85858403612070565b600191505092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b60186020528060005260406000206000915054906101000a900460ff1681565b6000611bd4611bcd612068565b848461223b565b6001905092915050565b600860149054906101000a900460ff1681565b611bf9612068565b73ffffffffffffffffffffffffffffffffffffffff16611c1761192e565b73ffffffffffffffffffffffffffffffffffffffff1614611c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6490613b15565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d1c612068565b73ffffffffffffffffffffffffffffffffffffffff16611d3a61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8790613b15565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b60095481565b611dd6612068565b73ffffffffffffffffffffffffffffffffffffffff16611df461192e565b73ffffffffffffffffffffffffffffffffffffffff1614611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4190613b15565b60405180910390fd5b670de0b6b3a76400006103e86005611e60610d76565b611e6a9190613f38565b611e749190613fc1565b611e7e9190613fc1565b811015611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb7906142ac565b60405180910390fd5b670de0b6b3a764000081611ed49190613f38565b600b8190555050565b600e5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b611f78612068565b73ffffffffffffffffffffffffffffffffffffffff16611f9661192e565b73ffffffffffffffffffffffffffffffffffffffff1614611fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe390613b15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561205c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120539061433e565b60405180910390fd5b61206581612dc1565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d7906143d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214790614462565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161222e9190613804565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a2906144f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561231b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231290614586565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f906145f2565b60405180910390fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242c9061465e565b60405180910390fd5b600081141561244f5761244a83836000612e87565b612dbc565b600860169054906101000a900460ff161561294a5761246c61192e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124da57506124aa61192e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125135750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125665750601460009054906101000a900460ff16155b1561294957600860149054906101000a900460ff1661266057601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126205750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61265f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612656906146ca565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127035750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127aa5760095481111561274d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127449061475c565b60405180910390fd5b600b546127598361161e565b826127649190613b64565b11156127a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279c906147c8565b60405180910390fd5b612948565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561284d5750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561289c57600954811115612897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288e9061485a565b60405180910390fd5b612947565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661294657600b546128f98361161e565b826129049190613b64565b1115612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c906147c8565b60405180910390fd5b5b5b5b5b5b60006129553061161e565b90506000600a54821015905080801561297a5750600860159054906101000a900460ff165b80156129935750601460009054906101000a900460ff16155b80156129e95750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a3f5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a955750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ad9576001601460006101000a81548160ff021916908315150217905550612abd61310b565b6000601460006101000a81548160ff0219169083151502179055505b6000601460009054906101000a900460ff16159050601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b8f5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b9957600090505b60008115612dac57601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bfc57506000601154115b15612c9657612c296064612c1b601154886132f690919063ffffffff16565b61330c90919063ffffffff16565b905060115460135482612c3c9190613f38565b612c469190613fc1565b600d6000828254612c579190613b64565b9250508190555060115460125482612c6f9190613f38565b612c799190613fc1565b600c6000828254612c8a9190613b64565b92505081905550612d88565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cf157506000600e54115b15612d8757612d1e6064612d10600e54886132f690919063ffffffff16565b61330c90919063ffffffff16565b9050600e5460105482612d319190613f38565b612d3b9190613fc1565b600d6000828254612d4c9190613b64565b92505081905550600e54600f5482612d649190613f38565b612d6e9190613fc1565b600c6000828254612d7f9190613b64565b925050819055505b5b6000811115612d9d57612d9c873083612e87565b5b8085612da9919061487a565b94505b612db7878787612e87565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eee906144f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5e90614586565b60405180910390fd5b612f72838383613322565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff090614920565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461308e9190613b64565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130f29190613804565b60405180910390a3613105848484613327565b50505050565b60006131163061161e565b90506000600d54600c5461312a9190613b64565b905060008083148061313c5750600082145b15613149575050506132f4565b6014600a546131589190613f38565b831115613171576014600a5461316e9190613f38565b92505b600047905061317f8461332c565b6000613194824761356990919063ffffffff16565b905060006131bf856131b1600d54856132f690919063ffffffff16565b61330c90919063ffffffff16565b90506000600c819055506000600d81905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161321790614971565b60006040518083038185875af1925050503d8060008114613254576040519150601f19603f3d011682016040523d82523d6000602084013e613259565b606091505b505080945050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516132a590614971565b60006040518083038185875af1925050503d80600081146132e2576040519150601f19603f3d011682016040523d82523d6000602084013e6132e7565b606091505b5050809450505050505050505b565b600081836133049190613f38565b905092915050565b6000818361331a9190613fc1565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561334957613348614986565b5b6040519080825280602002602001820160405280156133775781602001602082028036833780820191505090505b509050308160008151811061338f5761338e6149b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613434573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345891906149f9565b8160018151811061346c5761346b6149b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134d1307f000000000000000000000000000000000000000000000000000000000000000084612070565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613533959493929190614b1f565b600060405180830381600087803b15801561354d57600080fd5b505af1158015613561573d6000803e3d6000fd5b505050505050565b60008183613577919061487a565b905092915050565b600080fd5b6000819050919050565b61359781613584565b81146135a257600080fd5b50565b6000813590506135b48161358e565b92915050565b600080604083850312156135d1576135d061357f565b5b60006135df858286016135a5565b92505060206135f0858286016135a5565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613634578082015181840152602081019050613619565b83811115613643576000848401525b50505050565b6000601f19601f8301169050919050565b6000613665826135fa565b61366f8185613605565b935061367f818560208601613616565b61368881613649565b840191505092915050565b600060208201905081810360008301526136ad818461365a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136e0826136b5565b9050919050565b6136f0816136d5565b81146136fb57600080fd5b50565b60008135905061370d816136e7565b92915050565b6000806040838503121561372a5761372961357f565b5b6000613738858286016136fe565b9250506020613749858286016135a5565b9150509250929050565b60008115159050919050565b61376881613753565b82525050565b6000602082019050613783600083018461375f565b92915050565b61379281613753565b811461379d57600080fd5b50565b6000813590506137af81613789565b92915050565b600080604083850312156137cc576137cb61357f565b5b60006137da858286016136fe565b92505060206137eb858286016137a0565b9150509250929050565b6137fe81613584565b82525050565b600060208201905061381960008301846137f5565b92915050565b6000806000606084860312156138385761383761357f565b5b6000613846868287016136fe565b9350506020613857868287016136fe565b9250506040613868868287016135a5565b9150509250925092565b600060ff82169050919050565b61388881613872565b82525050565b60006020820190506138a3600083018461387f565b92915050565b6000602082840312156138bf576138be61357f565b5b60006138cd848285016136fe565b91505092915050565b6138df81613872565b81146138ea57600080fd5b50565b6000813590506138fc816138d6565b92915050565b6000819050919050565b61391581613902565b811461392057600080fd5b50565b6000813590506139328161390c565b92915050565b6000806000606084860312156139515761395061357f565b5b600061395f868287016138ed565b935050602061397086828701613923565b925050604061398186828701613923565b9150509250925092565b6000602082840312156139a1576139a061357f565b5b60006139af848285016135a5565b91505092915050565b6000819050919050565b60006139dd6139d86139d3846136b5565b6139b8565b6136b5565b9050919050565b60006139ef826139c2565b9050919050565b6000613a01826139e4565b9050919050565b613a11816139f6565b82525050565b6000602082019050613a2c6000830184613a08565b92915050565b613a3b816136d5565b82525050565b6000602082019050613a566000830184613a32565b92915050565b600060208284031215613a7257613a7161357f565b5b6000613a80848285016137a0565b91505092915050565b60008060408385031215613aa057613a9f61357f565b5b6000613aae858286016136fe565b9250506020613abf858286016136fe565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613aff602083613605565b9150613b0a82613ac9565b602082019050919050565b60006020820190508181036000830152613b2e81613af2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b6f82613584565b9150613b7a83613584565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613baf57613bae613b35565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613c0157607f821691505b60208210811415613c1557613c14613bba565b5b50919050565b7f4552433237303a207472616e7366657220616d6f756e7420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b6000613c77602983613605565b9150613c8282613c1b565b604082019050919050565b60006020820190508181036000830152613ca681613c6a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b6000613d09602883613605565b9150613d1482613cad565b604082019050919050565b60006020820190508181036000830152613d3881613cfc565b9050919050565b613d4881613902565b82525050565b600060a082019050613d636000830188613d3f565b613d706020830187613d3f565b613d7d6040830186613d3f565b613d8a60608301856137f5565b613d976080830184613a32565b9695505050505050565b6000606082019050613db66000830186613d3f565b613dc36020830185613d3f565b613dd060408301846137f5565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613e19600283613dd8565b9150613e2482613de3565b600282019050919050565b6000819050919050565b613e4a613e4582613902565b613e2f565b82525050565b6000613e5b82613e0c565b9150613e678285613e39565b602082019150613e778284613e39565b6020820191508190509392505050565b6000608082019050613e9c6000830187613d3f565b613ea9602083018661387f565b613eb66040830185613d3f565b613ec36060830184613d3f565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000613f02601183613605565b9150613f0d82613ecc565b602082019050919050565b60006020820190508181036000830152613f3181613ef5565b9050919050565b6000613f4382613584565b9150613f4e83613584565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f8757613f86613b35565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fcc82613584565b9150613fd783613584565b925082613fe757613fe6613f92565b5b828204905092915050565b7f43616e6e6f7420736574206d6178696d756d5472616e73616374696f6e416c6c60008201527f6f776564206c6f776572207468616e20302e3125000000000000000000000000602082015250565b600061404e603483613605565b915061405982613ff2565b604082019050919050565b6000602082019050818103600083015261407d81614041565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006140e0603583613605565b91506140eb82614084565b604082019050919050565b6000602082019050818103600083015261410f816140d3565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614172603483613605565b915061417d82614116565b604082019050919050565b600060208201905081810360008301526141a181614165565b9050919050565b7f4552433237303a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b6000614204602683613605565b915061420f826141a8565b604082019050919050565b60006020820190508181036000830152614233816141f7565b9050919050565b7f43616e6e6f7420736574206d6178696d756d57616c6c6574416c6c6f7765642060008201527f6c6f776572207468616e20302e35250000000000000000000000000000000000602082015250565b6000614296602f83613605565b91506142a18261423a565b604082019050919050565b600060208201905081810360008301526142c581614289565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614328602683613605565b9150614333826142cc565b604082019050919050565b600060208201905081810360008301526143578161431b565b9050919050565b7f4552433237303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006143ba602583613605565b91506143c58261435e565b604082019050919050565b600060208201905081810360008301526143e9816143ad565b9050919050565b7f4552433237303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061444c602383613605565b9150614457826143f0565b604082019050919050565b6000602082019050818103600083015261447b8161443f565b9050919050565b7f4552433237303a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144de602683613605565b91506144e982614482565b604082019050919050565b6000602082019050818103600083015261450d816144d1565b9050919050565b7f4552433237303a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614570602483613605565b915061457b82614514565b604082019050919050565b6000602082019050818103600083015261459f81614563565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b60006145dc601183613605565b91506145e7826145a6565b602082019050919050565b6000602082019050818103600083015261460b816145cf565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b6000614648600f83613605565b915061465382614612565b602082019050919050565b600060208201905081810360008301526146778161463b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006146b4601683613605565b91506146bf8261467e565b602082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178696d756d5472616e73616374696f6e416c6c6f7765642e000000000000602082015250565b6000614746603a83613605565b9150614751826146ea565b604082019050919050565b6000602082019050818103600083015261477581614739565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006147b2601383613605565b91506147bd8261477c565b602082019050919050565b600060208201905081810360008301526147e1816147a5565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178696d756d5472616e73616374696f6e416c6c6f7765642e0000000000602082015250565b6000614844603b83613605565b915061484f826147e8565b604082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b600061488582613584565b915061489083613584565b9250828210156148a3576148a2613b35565b5b828203905092915050565b7f4552433237303a207472616e7366657220616d6f756e7420657863656564732060008201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b600061490a602783613605565b9150614915826148ae565b604082019050919050565b60006020820190508181036000830152614939816148fd565b9050919050565b600081905092915050565b50565b600061495b600083614940565b91506149668261494b565b600082019050919050565b600061497c8261494e565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506149f3816136e7565b92915050565b600060208284031215614a0f57614a0e61357f565b5b6000614a1d848285016149e4565b91505092915050565b6000819050919050565b6000614a4b614a46614a4184614a26565b6139b8565b613584565b9050919050565b614a5b81614a30565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a96816136d5565b82525050565b6000614aa88383614a8d565b60208301905092915050565b6000602082019050919050565b6000614acc82614a61565b614ad68185614a6c565b9350614ae183614a7d565b8060005b83811015614b12578151614af98882614a9c565b9750614b0483614ab4565b925050600181019050614ae5565b5085935050505092915050565b600060a082019050614b3460008301886137f5565b614b416020830187614a52565b8181036040830152614b538186614ac1565b9050614b626060830185613a32565b614b6f60808301846137f5565b969550505050505056fea2646970667358221220a1cead9449d1b7fdc38314b8e23f9e7c41d900ece7bd678c9879071b9f22646564736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102975760003560e01c8063735de9f71161015a578063a9059cbb116100c1578063cff16b2f1161007a578063cff16b2f14610a2b578063d57052a914610a56578063d85ba06314610a7f578063dd62ed3e14610aaa578063e4a1b95f14610ae7578063f2fde38b14610b125761029e565b8063a9059cbb1461092d578063bbc0c7421461096a578063c024666814610995578063c04a5414146109be578063c816841b146109e9578063c9567bf914610a145761029e565b80639c3b4fdc116101135780639c3b4fdc146107f55780639fccce3214610820578063a0d82dc51461084b578063a457c2d714610876578063a72905a2146108b3578063a781dc35146108f05761029e565b8063735de9f7146106f5578063751039fc1461072057806375f0a8741461074b5780638da5cb5b14610776578063924de9b7146107a157806395d89b41146107ca5761029e565b80634a62bb65116101fe5780636a486a8e116101b75780636a486a8e146105e35780636ddd17131461060e5780636e1b6cda1461063957806370a0823114610664578063715018a6146106a15780637328afae146106b85761029e565b80634a62bb65146104d75780634fbee193146105025780636323d7cb1461053f578063655ec6391461056857806366ca9b831461059157806368092bd9146105ba5761029e565b806323b872dd1161025057806323b872dd146103b35780632d99d32e146103f0578063313ce5671461041957806335b5fb631461044457806337da26ca1461046f578063395093511461049a5761029e565b806302dbd8f8146102a357806306fdde03146102cc578063095ea7b3146102f75780630e14852d1461033457806318160ddd1461035d5780631f7ea8da146103885761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c591906135ba565b610b3b565b005b3480156102d857600080fd5b506102e1610bef565b6040516102ee9190613693565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190613713565b610c81565b60405161032b919061376e565b60405180910390f35b34801561034057600080fd5b5061035b600480360381019061035691906137b5565b610c9f565b005b34801561036957600080fd5b50610372610d76565b60405161037f9190613804565b60405180910390f35b34801561039457600080fd5b5061039d610d80565b6040516103aa9190613804565b60405180910390f35b3480156103bf57600080fd5b506103da60048036038101906103d5919061381f565b610d86565b6040516103e7919061376e565b60405180910390f35b3480156103fc57600080fd5b50610417600480360381019061041291906137b5565b610e7e565b005b34801561042557600080fd5b5061042e610fe6565b60405161043b919061388e565b60405180910390f35b34801561045057600080fd5b50610459610fef565b6040516104669190613804565b60405180910390f35b34801561047b57600080fd5b50610484610ff5565b6040516104919190613804565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc9190613713565b610ffb565b6040516104ce919061376e565b60405180910390f35b3480156104e357600080fd5b506104ec6110a7565b6040516104f9919061376e565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906138a9565b6110ba565b604051610536919061376e565b60405180910390f35b34801561054b57600080fd5b5061056660048036038101906105619190613938565b6110da565b005b34801561057457600080fd5b5061058f600480360381019061058a919061398b565b611365565b005b34801561059d57600080fd5b506105b860048036038101906105b391906135ba565b611474565b005b3480156105c657600080fd5b506105e160048036038101906105dc91906137b5565b611528565b005b3480156105ef57600080fd5b506105f86115ff565b6040516106059190613804565b60405180910390f35b34801561061a57600080fd5b50610623611605565b604051610630919061376e565b60405180910390f35b34801561064557600080fd5b5061064e611618565b60405161065b9190613804565b60405180910390f35b34801561067057600080fd5b5061068b600480360381019061068691906138a9565b61161e565b6040516106989190613804565b60405180910390f35b3480156106ad57600080fd5b506106b6611667565b005b3480156106c457600080fd5b506106df60048036038101906106da919061398b565b6116ef565b6040516106ec919061376e565b60405180910390f35b34801561070157600080fd5b5061070a611844565b6040516107179190613a17565b60405180910390f35b34801561072c57600080fd5b50610735611868565b604051610742919061376e565b60405180910390f35b34801561075757600080fd5b50610760611908565b60405161076d9190613a41565b60405180910390f35b34801561078257600080fd5b5061078b61192e565b6040516107989190613a41565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c39190613a5c565b611958565b005b3480156107d657600080fd5b506107df6119f1565b6040516107ec9190613693565b60405180910390f35b34801561080157600080fd5b5061080a611a83565b6040516108179190613804565b60405180910390f35b34801561082c57600080fd5b50610835611a89565b6040516108429190613804565b60405180910390f35b34801561085757600080fd5b50610860611a8f565b60405161086d9190613804565b60405180910390f35b34801561088257600080fd5b5061089d60048036038101906108989190613713565b611a95565b6040516108aa919061376e565b60405180910390f35b3480156108bf57600080fd5b506108da60048036038101906108d591906138a9565b611b80565b6040516108e7919061376e565b60405180910390f35b3480156108fc57600080fd5b50610917600480360381019061091291906138a9565b611ba0565b604051610924919061376e565b60405180910390f35b34801561093957600080fd5b50610954600480360381019061094f9190613713565b611bc0565b604051610961919061376e565b60405180910390f35b34801561097657600080fd5b5061097f611bde565b60405161098c919061376e565b60405180910390f35b3480156109a157600080fd5b506109bc60048036038101906109b791906137b5565b611bf1565b005b3480156109ca57600080fd5b506109d3611cc8565b6040516109e09190613a41565b60405180910390f35b3480156109f557600080fd5b506109fe611cee565b604051610a0b9190613a41565b60405180910390f35b348015610a2057600080fd5b50610a29611d14565b005b348015610a3757600080fd5b50610a40611dc8565b604051610a4d9190613804565b60405180910390f35b348015610a6257600080fd5b50610a7d6004803603810190610a78919061398b565b611dce565b005b348015610a8b57600080fd5b50610a94611edd565b604051610aa19190613804565b60405180910390f35b348015610ab657600080fd5b50610ad16004803603810190610acc9190613a89565b611ee3565b604051610ade9190613804565b60405180910390f35b348015610af357600080fd5b50610afc611f6a565b604051610b099190613804565b60405180910390f35b348015610b1e57600080fd5b50610b396004803603810190610b3491906138a9565b611f70565b005b610b43612068565b73ffffffffffffffffffffffffffffffffffffffff16610b6161192e565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613b15565b60405180910390fd5b8160128190555080601381905550601354601254610bd59190613b64565b60118190555060636011541115610beb57600080fd5b5050565b606060008054610bfe90613be9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2a90613be9565b8015610c775780601f10610c4c57610100808354040283529160200191610c77565b820191906000526020600020905b815481529060010190602001808311610c5a57829003601f168201915b5050505050905090565b6000610c95610c8e612068565b8484612070565b6001905092915050565b610ca7612068565b73ffffffffffffffffffffffffffffffffffffffff16610cc561192e565b73ffffffffffffffffffffffffffffffffffffffff1614610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290613b15565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b600c5481565b6000610d9384848461223b565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610dde612068565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590613c8d565b60405180910390fd5b610e7285610e6a612068565b858403612070565b60019150509392505050565b610e86612068565b73ffffffffffffffffffffffffffffffffffffffff16610ea461192e565b73ffffffffffffffffffffffffffffffffffffffff1614610efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef190613b15565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290613d1f565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b60125481565b600b5481565b600061109d611008612068565b848460046000611016612068565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110989190613b64565b612070565b6001905092915050565b600860169054906101000a900460ff1681565b60176020528060005260406000206000915054906101000a900460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525080519060200120463060405160200161118d959493929190613d4e565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e6700000000000000000000000000000000000081525080519060200120600060405160200161121993929190613da1565b60405160208183030381529060405280519060200120905060008282604051602001611246929190613e50565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516112839493929190613e87565b6020604051602081039080840390855afa1580156112a5573d6000803e3d6000fd5b5050506020604051035190506112b961192e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d90613f18565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b61136d612068565b73ffffffffffffffffffffffffffffffffffffffff1661138b61192e565b73ffffffffffffffffffffffffffffffffffffffff16146113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d890613b15565b60405180910390fd5b670de0b6b3a76400006103e860016113f7610d76565b6114019190613f38565b61140b9190613fc1565b6114159190613fc1565b811015611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90614064565b60405180910390fd5b670de0b6b3a76400008161146b9190613f38565b60098190555050565b61147c612068565b73ffffffffffffffffffffffffffffffffffffffff1661149a61192e565b73ffffffffffffffffffffffffffffffffffffffff16146114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790613b15565b60405180910390fd5b81600f8190555080601081905550601054600f5461150e9190613b64565b600e819055506063600e54111561152457600080fd5b5050565b611530612068565b73ffffffffffffffffffffffffffffffffffffffff1661154e61192e565b73ffffffffffffffffffffffffffffffffffffffff16146115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90613b15565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b600860159054906101000a900460ff1681565b600a5481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61166f612068565b73ffffffffffffffffffffffffffffffffffffffff1661168d61192e565b73ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613b15565b60405180910390fd5b6116ed6000612dc1565b565b60006116f9612068565b73ffffffffffffffffffffffffffffffffffffffff1661171761192e565b73ffffffffffffffffffffffffffffffffffffffff161461176d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176490613b15565b60405180910390fd5b620186a0600161177b610d76565b6117859190613f38565b61178f9190613fc1565b8210156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c8906140f6565b60405180910390fd5b6103e860056117de610d76565b6117e89190613f38565b6117f29190613fc1565b821115611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90614188565b60405180910390fd5b81600a8190555060019050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000611872612068565b73ffffffffffffffffffffffffffffffffffffffff1661189061192e565b73ffffffffffffffffffffffffffffffffffffffff16146118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90613b15565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611960612068565b73ffffffffffffffffffffffffffffffffffffffff1661197e61192e565b73ffffffffffffffffffffffffffffffffffffffff16146119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb90613b15565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b606060018054611a0090613be9565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2c90613be9565b8015611a795780601f10611a4e57610100808354040283529160200191611a79565b820191906000526020600020905b815481529060010190602001808311611a5c57829003601f168201915b5050505050905090565b60105481565b600d5481565b60135481565b60008060046000611aa4612068565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b589061421a565b60405180910390fd5b611b75611b6c612068565b85858403612070565b600191505092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b60186020528060005260406000206000915054906101000a900460ff1681565b6000611bd4611bcd612068565b848461223b565b6001905092915050565b600860149054906101000a900460ff1681565b611bf9612068565b73ffffffffffffffffffffffffffffffffffffffff16611c1761192e565b73ffffffffffffffffffffffffffffffffffffffff1614611c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6490613b15565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d1c612068565b73ffffffffffffffffffffffffffffffffffffffff16611d3a61192e565b73ffffffffffffffffffffffffffffffffffffffff1614611d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8790613b15565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b60095481565b611dd6612068565b73ffffffffffffffffffffffffffffffffffffffff16611df461192e565b73ffffffffffffffffffffffffffffffffffffffff1614611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4190613b15565b60405180910390fd5b670de0b6b3a76400006103e86005611e60610d76565b611e6a9190613f38565b611e749190613fc1565b611e7e9190613fc1565b811015611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb7906142ac565b60405180910390fd5b670de0b6b3a764000081611ed49190613f38565b600b8190555050565b600e5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b611f78612068565b73ffffffffffffffffffffffffffffffffffffffff16611f9661192e565b73ffffffffffffffffffffffffffffffffffffffff1614611fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe390613b15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561205c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120539061433e565b60405180910390fd5b61206581612dc1565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d7906143d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214790614462565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161222e9190613804565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a2906144f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561231b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231290614586565b60405180910390fd5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239f906145f2565b60405180910390fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242c9061465e565b60405180910390fd5b600081141561244f5761244a83836000612e87565b612dbc565b600860169054906101000a900460ff161561294a5761246c61192e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124da57506124aa61192e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125135750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125665750601460009054906101000a900460ff16155b1561294957600860149054906101000a900460ff1661266057601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126205750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61265f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612656906146ca565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127035750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127aa5760095481111561274d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127449061475c565b60405180910390fd5b600b546127598361161e565b826127649190613b64565b11156127a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279c906147c8565b60405180910390fd5b612948565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561284d5750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561289c57600954811115612897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288e9061485a565b60405180910390fd5b612947565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661294657600b546128f98361161e565b826129049190613b64565b1115612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c906147c8565b60405180910390fd5b5b5b5b5b5b60006129553061161e565b90506000600a54821015905080801561297a5750600860159054906101000a900460ff165b80156129935750601460009054906101000a900460ff16155b80156129e95750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a3f5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a955750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ad9576001601460006101000a81548160ff021916908315150217905550612abd61310b565b6000601460006101000a81548160ff0219169083151502179055505b6000601460009054906101000a900460ff16159050601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612b8f5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b9957600090505b60008115612dac57601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bfc57506000601154115b15612c9657612c296064612c1b601154886132f690919063ffffffff16565b61330c90919063ffffffff16565b905060115460135482612c3c9190613f38565b612c469190613fc1565b600d6000828254612c579190613b64565b9250508190555060115460125482612c6f9190613f38565b612c799190613fc1565b600c6000828254612c8a9190613b64565b92505081905550612d88565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cf157506000600e54115b15612d8757612d1e6064612d10600e54886132f690919063ffffffff16565b61330c90919063ffffffff16565b9050600e5460105482612d319190613f38565b612d3b9190613fc1565b600d6000828254612d4c9190613b64565b92505081905550600e54600f5482612d649190613f38565b612d6e9190613fc1565b600c6000828254612d7f9190613b64565b925050819055505b5b6000811115612d9d57612d9c873083612e87565b5b8085612da9919061487a565b94505b612db7878787612e87565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eee906144f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5e90614586565b60405180910390fd5b612f72838383613322565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff090614920565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461308e9190613b64565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130f29190613804565b60405180910390a3613105848484613327565b50505050565b60006131163061161e565b90506000600d54600c5461312a9190613b64565b905060008083148061313c5750600082145b15613149575050506132f4565b6014600a546131589190613f38565b831115613171576014600a5461316e9190613f38565b92505b600047905061317f8461332c565b6000613194824761356990919063ffffffff16565b905060006131bf856131b1600d54856132f690919063ffffffff16565b61330c90919063ffffffff16565b90506000600c819055506000600d81905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161321790614971565b60006040518083038185875af1925050503d8060008114613254576040519150601f19603f3d011682016040523d82523d6000602084013e613259565b606091505b505080945050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516132a590614971565b60006040518083038185875af1925050503d80600081146132e2576040519150601f19603f3d011682016040523d82523d6000602084013e6132e7565b606091505b5050809450505050505050505b565b600081836133049190613f38565b905092915050565b6000818361331a9190613fc1565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561334957613348614986565b5b6040519080825280602002602001820160405280156133775781602001602082028036833780820191505090505b509050308160008151811061338f5761338e6149b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613434573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345891906149f9565b8160018151811061346c5761346b6149b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134d1307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84612070565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613533959493929190614b1f565b600060405180830381600087803b15801561354d57600080fd5b505af1158015613561573d6000803e3d6000fd5b505050505050565b60008183613577919061487a565b905092915050565b600080fd5b6000819050919050565b61359781613584565b81146135a257600080fd5b50565b6000813590506135b48161358e565b92915050565b600080604083850312156135d1576135d061357f565b5b60006135df858286016135a5565b92505060206135f0858286016135a5565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613634578082015181840152602081019050613619565b83811115613643576000848401525b50505050565b6000601f19601f8301169050919050565b6000613665826135fa565b61366f8185613605565b935061367f818560208601613616565b61368881613649565b840191505092915050565b600060208201905081810360008301526136ad818461365a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136e0826136b5565b9050919050565b6136f0816136d5565b81146136fb57600080fd5b50565b60008135905061370d816136e7565b92915050565b6000806040838503121561372a5761372961357f565b5b6000613738858286016136fe565b9250506020613749858286016135a5565b9150509250929050565b60008115159050919050565b61376881613753565b82525050565b6000602082019050613783600083018461375f565b92915050565b61379281613753565b811461379d57600080fd5b50565b6000813590506137af81613789565b92915050565b600080604083850312156137cc576137cb61357f565b5b60006137da858286016136fe565b92505060206137eb858286016137a0565b9150509250929050565b6137fe81613584565b82525050565b600060208201905061381960008301846137f5565b92915050565b6000806000606084860312156138385761383761357f565b5b6000613846868287016136fe565b9350506020613857868287016136fe565b9250506040613868868287016135a5565b9150509250925092565b600060ff82169050919050565b61388881613872565b82525050565b60006020820190506138a3600083018461387f565b92915050565b6000602082840312156138bf576138be61357f565b5b60006138cd848285016136fe565b91505092915050565b6138df81613872565b81146138ea57600080fd5b50565b6000813590506138fc816138d6565b92915050565b6000819050919050565b61391581613902565b811461392057600080fd5b50565b6000813590506139328161390c565b92915050565b6000806000606084860312156139515761395061357f565b5b600061395f868287016138ed565b935050602061397086828701613923565b925050604061398186828701613923565b9150509250925092565b6000602082840312156139a1576139a061357f565b5b60006139af848285016135a5565b91505092915050565b6000819050919050565b60006139dd6139d86139d3846136b5565b6139b8565b6136b5565b9050919050565b60006139ef826139c2565b9050919050565b6000613a01826139e4565b9050919050565b613a11816139f6565b82525050565b6000602082019050613a2c6000830184613a08565b92915050565b613a3b816136d5565b82525050565b6000602082019050613a566000830184613a32565b92915050565b600060208284031215613a7257613a7161357f565b5b6000613a80848285016137a0565b91505092915050565b60008060408385031215613aa057613a9f61357f565b5b6000613aae858286016136fe565b9250506020613abf858286016136fe565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613aff602083613605565b9150613b0a82613ac9565b602082019050919050565b60006020820190508181036000830152613b2e81613af2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b6f82613584565b9150613b7a83613584565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613baf57613bae613b35565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613c0157607f821691505b60208210811415613c1557613c14613bba565b5b50919050565b7f4552433237303a207472616e7366657220616d6f756e7420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b6000613c77602983613605565b9150613c8282613c1b565b604082019050919050565b60006020820190508181036000830152613ca681613c6a565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b6000613d09602883613605565b9150613d1482613cad565b604082019050919050565b60006020820190508181036000830152613d3881613cfc565b9050919050565b613d4881613902565b82525050565b600060a082019050613d636000830188613d3f565b613d706020830187613d3f565b613d7d6040830186613d3f565b613d8a60608301856137f5565b613d976080830184613a32565b9695505050505050565b6000606082019050613db66000830186613d3f565b613dc36020830185613d3f565b613dd060408301846137f5565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613e19600283613dd8565b9150613e2482613de3565b600282019050919050565b6000819050919050565b613e4a613e4582613902565b613e2f565b82525050565b6000613e5b82613e0c565b9150613e678285613e39565b602082019150613e778284613e39565b6020820191508190509392505050565b6000608082019050613e9c6000830187613d3f565b613ea9602083018661387f565b613eb66040830185613d3f565b613ec36060830184613d3f565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000613f02601183613605565b9150613f0d82613ecc565b602082019050919050565b60006020820190508181036000830152613f3181613ef5565b9050919050565b6000613f4382613584565b9150613f4e83613584565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f8757613f86613b35565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fcc82613584565b9150613fd783613584565b925082613fe757613fe6613f92565b5b828204905092915050565b7f43616e6e6f7420736574206d6178696d756d5472616e73616374696f6e416c6c60008201527f6f776564206c6f776572207468616e20302e3125000000000000000000000000602082015250565b600061404e603483613605565b915061405982613ff2565b604082019050919050565b6000602082019050818103600083015261407d81614041565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006140e0603583613605565b91506140eb82614084565b604082019050919050565b6000602082019050818103600083015261410f816140d3565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000614172603483613605565b915061417d82614116565b604082019050919050565b600060208201905081810360008301526141a181614165565b9050919050565b7f4552433237303a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b6000614204602683613605565b915061420f826141a8565b604082019050919050565b60006020820190508181036000830152614233816141f7565b9050919050565b7f43616e6e6f7420736574206d6178696d756d57616c6c6574416c6c6f7765642060008201527f6c6f776572207468616e20302e35250000000000000000000000000000000000602082015250565b6000614296602f83613605565b91506142a18261423a565b604082019050919050565b600060208201905081810360008301526142c581614289565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614328602683613605565b9150614333826142cc565b604082019050919050565b600060208201905081810360008301526143578161431b565b9050919050565b7f4552433237303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006143ba602583613605565b91506143c58261435e565b604082019050919050565b600060208201905081810360008301526143e9816143ad565b9050919050565b7f4552433237303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061444c602383613605565b9150614457826143f0565b604082019050919050565b6000602082019050818103600083015261447b8161443f565b9050919050565b7f4552433237303a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144de602683613605565b91506144e982614482565b604082019050919050565b6000602082019050818103600083015261450d816144d1565b9050919050565b7f4552433237303a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614570602483613605565b915061457b82614514565b604082019050919050565b6000602082019050818103600083015261459f81614563565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b60006145dc601183613605565b91506145e7826145a6565b602082019050919050565b6000602082019050818103600083015261460b816145cf565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b6000614648600f83613605565b915061465382614612565b602082019050919050565b600060208201905081810360008301526146778161463b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006146b4601683613605565b91506146bf8261467e565b602082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d6178696d756d5472616e73616374696f6e416c6c6f7765642e000000000000602082015250565b6000614746603a83613605565b9150614751826146ea565b604082019050919050565b6000602082019050818103600083015261477581614739565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006147b2601383613605565b91506147bd8261477c565b602082019050919050565b600060208201905081810360008301526147e1816147a5565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d6178696d756d5472616e73616374696f6e416c6c6f7765642e0000000000602082015250565b6000614844603b83613605565b915061484f826147e8565b604082019050919050565b6000602082019050818103600083015261487381614837565b9050919050565b600061488582613584565b915061489083613584565b9250828210156148a3576148a2613b35565b5b828203905092915050565b7f4552433237303a207472616e7366657220616d6f756e7420657863656564732060008201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b600061490a602783613605565b9150614915826148ae565b604082019050919050565b60006020820190508181036000830152614939816148fd565b9050919050565b600081905092915050565b50565b600061495b600083614940565b91506149668261494b565b600082019050919050565b600061497c8261494e565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506149f3816136e7565b92915050565b600060208284031215614a0f57614a0e61357f565b5b6000614a1d848285016149e4565b91505092915050565b6000819050919050565b6000614a4b614a46614a4184614a26565b6139b8565b613584565b9050919050565b614a5b81614a30565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614a96816136d5565b82525050565b6000614aa88383614a8d565b60208301905092915050565b6000602082019050919050565b6000614acc82614a61565b614ad68185614a6c565b9350614ae183614a7d565b8060005b83811015614b12578151614af98882614a9c565b9750614b0483614ab4565b925050600181019050614ae5565b5085935050505092915050565b600060a082019050614b3460008301886137f5565b614b416020830187614a52565b8181036040830152614b538186614ac1565b9050614b626060830185613a32565b614b6f60808301846137f5565b969550505050505056fea2646970667358221220a1cead9449d1b7fdc38314b8e23f9e7c41d900ece7bd678c9879071b9f22646564736f6c634300080a0033

Deployed Bytecode Sourcemap

14851:10610:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20409:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10207:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10938:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18694:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10528:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15363:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11298:493;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20673:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10427:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15572:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15319:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11799:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15191:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15771:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17642:1044;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19883:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20152:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20870:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15537:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15153:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15280:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10644:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;860:103;;;;;;;;;;;;;:::i;:::-;;19486:389;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14944:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18995:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15035:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;637:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19124:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10315:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15504:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15400:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15607:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12022:414;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15671:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15828:66;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11115:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15113:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18860:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15072:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15000:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17524:110;;;;;;;;;;;;;:::i;:::-;;15233:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19232:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15436:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10779:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15470:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;971:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20409:256;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20520:12:::1;20504:13;:28;;;;20556:9;20543:10;:22;;;;20608:10;;20592:13;;:26;;;;:::i;:::-;20576:13;:42;;;;20654:2;20637:13;;:19;;20629:28;;;::::0;::::1;;20409:256:::0;;:::o;10207:100::-;10261:13;10294:5;10287:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10207:100;:::o;10938:169::-;11021:4;11038:39;11047:12;:10;:12::i;:::-;11061:7;11070:6;11038:8;:39::i;:::-;11095:4;11088:11;;10938:169;;;;:::o;18694:158::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18839:5:::1;18796:34;:40;18831:4;18796:40;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;18694:158:::0;;:::o;10528:108::-;10589:7;10616:12;;10609:19;;10528:108;:::o;15363:30::-;;;;:::o;11298:493::-;11438:4;11455:36;11465:6;11473:9;11484:6;11455:9;:36::i;:::-;11504:24;11531:11;:19;11543:6;11531:19;;;;;;;;;;;;;;;:33;11551:12;:10;:12::i;:::-;11531:33;;;;;;;;;;;;;;;;11504:60;;11603:6;11583:16;:26;;11575:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;11691:57;11700:6;11708:12;:10;:12::i;:::-;11741:6;11722:16;:25;11691:8;:57::i;:::-;11779:4;11772:11;;;11298:493;;;;;:::o;20673:189::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20765:11:::1;;;;;;;;;;;20757:19;;:4;:19;;;;20749:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20849:5;20832:8;:14;20841:4;20832:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20673:189:::0;;:::o;10427:93::-;10485:5;10510:2;10503:9;;10427:93;:::o;15572:28::-;;;;:::o;15319:35::-;;;;:::o;11799:215::-;11887:4;11904:80;11913:12;:10;:12::i;:::-;11927:7;11973:10;11936:11;:25;11948:12;:10;:12::i;:::-;11936:25;;;;;;;;;;;;;;;:34;11962:7;11936:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;11904:8;:80::i;:::-;12002:4;11995:11;;11799:215;;;;:::o;15191:33::-;;;;;;;;;;;;;:::o;15771:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;17642:1044::-;17724:18;17798:95;17922:22;;;;;;;;;;;;;;;;;17912:33;;;;;;17974:10;;;;;;;;;;;;;;;;;17964:21;;;;;;18004:13;18044:4;17769:295;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17745:330;;;;;;17724:351;;18088:18;18162:49;18240:23;;;;;;;;;;;;;;;;;18230:34;;;;;;18291:1;18133:175;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18109:210;;;;;;18088:231;;18332:14;18437:10;18466;18373:118;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18349:153;;;;;;18332:170;;18515:14;18532:26;18542:6;18550:1;18553;18556;18532:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18515:43;;18587:7;:5;:7::i;:::-;18577:17;;:6;:17;;;18569:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18645:4;18629:13;;:20;;;;;;;;;;;;;;;;;;18674:4;18660:11;;:18;;;;;;;;;;;;;;;;;;17713:973;;;;17642:1044;;;:::o;19883:261::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20019:4:::1;20011;20006:1;19990:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19989:26;;;;:::i;:::-;19988:35;;;;:::i;:::-;19978:6;:45;;19970:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;20129:6;20119;:17;;;;:::i;:::-;20091:25;:45;;;;19883:261:::0;:::o;20152:249::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20261:12:::1;20246;:27;;;;20296:9;20284;:21;;;;20346:9;;20331:12;;:24;;;;:::i;:::-;20316:12;:39;;;;20390:2;20374:12;;:18;;20366:27;;;::::0;::::1;;20152:249:::0;;:::o;20870:113::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20969:6:::1;20949:11;:17;20961:4;20949:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;20870:113:::0;;:::o;15537:28::-;;;;:::o;15153:31::-;;;;;;;;;;;;;:::o;15280:32::-;;;;:::o;10644:127::-;10718:7;10745:9;:18;10755:7;10745:18;;;;;;;;;;;;;;;;10738:25;;10644:127;;;:::o;860:103::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;925:30:::1;952:1;925:18;:30::i;:::-;860:103::o:0;19486:389::-;19566:4;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19626:6:::1;19621:1;19605:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19604:28;;;;:::i;:::-;19591:9;:41;;19583:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;19744:4;19739:1;19723:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19722:26;;;;:::i;:::-;19709:9;:39;;19701:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;19836:9;19816:17;:29;;;;19863:4;19856:11;;19486:389:::0;;;:::o;14944:49::-;;;:::o;18995:121::-;19047:4;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19081:5:::1;19064:14;;:22;;;;;;;;;;;;;;;;;;19104:4;19097:11;;18995:121:::0;:::o;15035:30::-;;;;;;;;;;;;;:::o;637:87::-;683:7;710:6;;;;;;;;;;;703:13;;637:87;:::o;19124:100::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19209:7:::1;19195:11;;:21;;;;;;;;;;;;;;;;;;19124:100:::0;:::o;10315:104::-;10371:13;10404:7;10397:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10315:104;:::o;15504:24::-;;;;:::o;15400:27::-;;;;:::o;15607:25::-;;;;:::o;12022:414::-;12115:4;12132:24;12159:11;:25;12171:12;:10;:12::i;:::-;12159:25;;;;;;;;;;;;;;;:34;12185:7;12159:34;;;;;;;;;;;;;;;;12132:61;;12232:15;12212:16;:35;;12204:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;12326:67;12335:12;:10;:12::i;:::-;12349:7;12377:15;12358:16;:34;12326:8;:67::i;:::-;12424:4;12417:11;;;12022:414;;;;:::o;15671:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;15828:66::-;;;;;;;;;;;;;;;;;;;;;;:::o;11115:175::-;11201:4;11218:42;11228:12;:10;:12::i;:::-;11242:9;11253:6;11218:9;:42::i;:::-;11278:4;11271:11;;11115:175;;;;:::o;15113:33::-;;;;;;;;;;;;;:::o;18860:127::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18974:5:::1;18944:18;:27;18963:7;18944:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18860:127:::0;;:::o;15072:32::-;;;;;;;;;;;;;:::o;15000:26::-;;;;;;;;;;;;;:::o;17524:110::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17593:4:::1;17577:13;;:20;;;;;;;;;;;;;;;;;;17622:4;17608:11;;:18;;;;;;;;;;;;;;;;;;17524:110::o:0;15233:40::-;;;;:::o;19232:246::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19363:4:::1;19355;19350:1;19334:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19333:26;;;;:::i;:::-;19332:35;;;;:::i;:::-;19322:6;:45;;19314:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;19463:6;19453;:17;;;;:::i;:::-;19430:20;:40;;;;19232:246:::0;:::o;15436:27::-;;;;:::o;10779:151::-;10868:7;10895:11;:18;10907:5;10895:18;;;;;;;;;;;;;;;:27;10914:7;10895:27;;;;;;;;;;;;;;;;10888:34;;10779:151;;;;:::o;15470:27::-;;;;:::o;971:201::-;783:12;:10;:12::i;:::-;772:23;;:7;:5;:7::i;:::-;:23;;;764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1080:1:::1;1060:22;;:8;:22;;;;1052:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1136:28;1155:8;1136:18;:28::i;:::-;971:201:::0;:::o;183:98::-;236:7;263:10;256:17;;183:98;:::o;13453:382::-;13606:1;13589:19;;:5;:19;;;;13581:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13688:1;13669:21;;:7;:21;;;;13661:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13773:6;13743:11;:18;13755:5;13743:18;;;;;;;;;;;;;;;:27;13762:7;13743:27;;;;;;;;;;;;;;;:36;;;;13811:7;13795:32;;13804:5;13795:32;;;13820:6;13795:32;;;;;;:::i;:::-;;;;;;;;13453:382;;;:::o;22356:2987::-;22470:1;22454:18;;:4;:18;;;;22446:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;22548:1;22534:16;;:2;:16;;;;22526:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;22611:11;:17;22623:4;22611:17;;;;;;;;;;;;;;;;;;;;;;;;;22610:18;22602:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;22670:11;:15;22682:2;22670:15;;;;;;;;;;;;;;;;;;;;;;;;;22669:16;22661:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;22732:1;22722:6;:11;22718:93;;;22750:28;22766:4;22772:2;22776:1;22750:15;:28::i;:::-;22793:7;;22718:93;22827:14;;;;;;;;;;;22823:1199;;;22870:7;:5;:7::i;:::-;22862:15;;:4;:15;;;;:45;;;;;22900:7;:5;:7::i;:::-;22894:13;;:2;:13;;;;22862:45;:78;;;;;22938:1;22924:16;;:2;:16;;;;22862:78;:116;;;;;22971:6;22957:21;;:2;:21;;;;22862:116;:146;;;;;23000:8;;;;;;;;;;;22999:9;22862:146;22858:1153;;;23034:13;;;;;;;;;;;23029:148;;23080:18;:24;23099:4;23080:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;23108:18;:22;23127:2;23108:22;;;;;;;;;;;;;;;;;;;;;;;;;23080:50;23072:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;23029:148;23229:8;:14;23238:4;23229:14;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;;23248:34;:38;23283:2;23248:38;;;;;;;;;;;;;;;;;;;;;;;;;23247:39;23229:57;23225:771;;;23329:25;;23319:6;:35;;23311:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;23474:20;;23457:13;23467:2;23457:9;:13::i;:::-;23448:6;:22;;;;:::i;:::-;:46;;23440:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;23225:771;;;23598:8;:12;23607:2;23598:12;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;;23615:34;:40;23650:4;23615:40;;;;;;;;;;;;;;;;;;;;;;;;;23614:41;23598:57;23594:402;;;23698:25;;23688:6;:35;;23680:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;23594:402;;;23835:34;:38;23870:2;23835:38;;;;;;;;;;;;;;;;;;;;;;;;;23830:166;;23932:20;;23915:13;23925:2;23915:9;:13::i;:::-;23906:6;:22;;;;:::i;:::-;:46;;23898:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;23830:166;23594:402;23225:771;22858:1153;22823:1199;24034:23;24060:24;24078:4;24060:9;:24::i;:::-;24034:50;;24095:12;24129:17;;24110:15;:36;;24095:51;;24161:7;:31;;;;;24181:11;;;;;;;;;;;24161:31;:57;;;;;24210:8;;;;;;;;;;;24209:9;24161:57;:89;;;;;24236:8;:14;24245:4;24236:14;;;;;;;;;;;;;;;;;;;;;;;;;24235:15;24161:89;:131;;;;;24268:18;:24;24287:4;24268:24;;;;;;;;;;;;;;;;;;;;;;;;;24267:25;24161:131;:171;;;;;24310:18;:22;24329:2;24310:22;;;;;;;;;;;;;;;;;;;;;;;;;24309:23;24161:171;24157:277;;;24362:4;24351:8;;:15;;;;;;;;;;;;;;;;;;24381:10;:8;:10::i;:::-;24417:5;24406:8;;:16;;;;;;;;;;;;;;;;;;24157:277;24446:12;24462:8;;;;;;;;;;;24461:9;24446:24;;24485:18;:24;24504:4;24485:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;24513:18;:22;24532:2;24513:22;;;;;;;;;;;;;;;;;;;;;;;;;24485:50;24481:84;;;24560:5;24550:15;;24481:84;24578:11;24608:7;24604:688;;;24636:8;:12;24645:2;24636:12;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;;24668:1;24652:13;;:17;24636:33;24632:531;;;24696:34;24726:3;24696:25;24707:13;;24696:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;24690:40;;24786:13;;24772:10;;24766:3;:16;;;;:::i;:::-;24765:34;;;;:::i;:::-;24749:12;;:50;;;;;;;:::i;:::-;;;;;;;;24861:13;;24844;;24838:3;:19;;;;:::i;:::-;24837:37;;;;:::i;:::-;24818:15;;:56;;;;;;;:::i;:::-;;;;;;;;24632:531;;;24913:8;:14;24922:4;24913:14;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;;24946:1;24931:12;;:16;24913:34;24909:254;;;24974:33;25003:3;24974:24;24985:12;;24974:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;24968:39;;25062:12;;25049:9;;25043:3;:15;;;;:::i;:::-;25042:32;;;;:::i;:::-;25026:12;;:48;;;;;;;:::i;:::-;;;;;;;;25135:12;;25119;;25113:3;:18;;;;:::i;:::-;25112:35;;;;:::i;:::-;25093:15;;:54;;;;;;;:::i;:::-;;;;;;;;24909:254;24632:531;25189:1;25183:3;:7;25179:71;;;25209:41;25225:4;25239;25246:3;25209:15;:41::i;:::-;25179:71;25277:3;25267:13;;;;;:::i;:::-;;;24604:688;25302:33;25318:4;25324:2;25328:6;25302:15;:33::i;:::-;22435:2908;;;;22356:2987;;;;:::o;1180:191::-;1254:16;1273:6;;;;;;;;;;;1254:25;;1299:8;1290:6;;:17;;;;;;;;;;;;;;;;;;1354:8;1323:40;;1344:8;1323:40;;;;;;;;;;;;1243:128;1180:191;:::o;13843:736::-;14001:1;13983:20;;:6;:20;;;;13975:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14086:1;14065:23;;:9;:23;;;;14057:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14142:47;14163:6;14171:9;14182:6;14142:20;:47::i;:::-;14202:21;14226:9;:17;14236:6;14226:17;;;;;;;;;;;;;;;;14202:41;;14279:6;14262:13;:23;;14254:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14401:6;14385:13;:22;14365:9;:17;14375:6;14365:17;;;;;;;;;;;;;;;:42;;;;14453:6;14429:9;:20;14439:9;14429:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14494:9;14477:35;;14486:6;14477:35;;;14505:6;14477:35;;;;;;:::i;:::-;;;;;;;;14525:46;14545:6;14553:9;14564:6;14525:19;:46::i;:::-;13964:615;13843:736;;;:::o;20991:880::-;21030:23;21056:24;21074:4;21056:9;:24::i;:::-;21030:50;;21091:25;21137:12;;21119:15;;:30;;;;:::i;:::-;21091:58;;21160:12;21208:1;21189:15;:20;:46;;;;21234:1;21213:17;:22;21189:46;21185:72;;;21250:7;;;;;21185:72;21311:2;21291:17;;:22;;;;:::i;:::-;21273:15;:40;21269:99;;;21366:2;21346:17;;:22;;;;:::i;:::-;21328:40;;21269:99;21381:25;21409:21;21381:49;;21441:33;21458:15;21441:16;:33::i;:::-;21487:18;21508:44;21534:17;21508:21;:25;;:44;;;;:::i;:::-;21487:65;;21563:17;21583:51;21616:17;21583:28;21598:12;;21583:10;:14;;:28;;;;:::i;:::-;:32;;:51;;;;:::i;:::-;21563:71;;21665:1;21647:15;:19;;;;21692:1;21677:12;:16;;;;21728:17;;;;;;;;;;;21720:31;;21759:9;21720:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21706:67;;;;;21806:15;;;;;;;;;;;21798:29;;21836:21;21798:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21784:79;;;;;21019:852;;;;;;20991:880;:::o;2730:98::-;2788:7;2819:1;2815;:5;;;;:::i;:::-;2808:12;;2730:98;;;;:::o;2836:::-;2894:7;2925:1;2921;:5;;;;:::i;:::-;2914:12;;2836:98;;;;:::o;14587:125::-;;;;:::o;14720:124::-;;;;:::o;21879:469::-;21945:21;21983:1;21969:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21945:40;;22014:4;21996;22001:1;21996:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22040:13;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22030:4;22035:1;22030:7;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;;;;22073:60;22090:4;22105:13;22121:11;22073:8;:60::i;:::-;22146:13;:64;;;22225:11;22251:1;22267:4;22294;22314:15;22146:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21934:414;21879:469;:::o;2624:98::-;2682:7;2713:1;2709;:5;;;;:::i;:::-;2702:12;;2624:98;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:307::-;1518:1;1528:113;1542:6;1539:1;1536:13;1528:113;;;1627:1;1622:3;1618:11;1612:18;1608:1;1603:3;1599:11;1592:39;1564:2;1561:1;1557:10;1552:15;;1528:113;;;1659:6;1656:1;1653:13;1650:101;;;1739:1;1730:6;1725:3;1721:16;1714:27;1650:101;1499:258;1450:307;;;:::o;1763:102::-;1804:6;1855:2;1851:7;1846:2;1839:5;1835:14;1831:28;1821:38;;1763:102;;;:::o;1871:364::-;1959:3;1987:39;2020:5;1987:39;:::i;:::-;2042:71;2106:6;2101:3;2042:71;:::i;:::-;2035:78;;2122:52;2167:6;2162:3;2155:4;2148:5;2144:16;2122:52;:::i;:::-;2199:29;2221:6;2199:29;:::i;:::-;2194:3;2190:39;2183:46;;1963:272;1871:364;;;;:::o;2241:313::-;2354:4;2392:2;2381:9;2377:18;2369:26;;2441:9;2435:4;2431:20;2427:1;2416:9;2412:17;2405:47;2469:78;2542:4;2533:6;2469:78;:::i;:::-;2461:86;;2241:313;;;;:::o;2560:126::-;2597:7;2637:42;2630:5;2626:54;2615:65;;2560:126;;;:::o;2692:96::-;2729:7;2758:24;2776:5;2758:24;:::i;:::-;2747:35;;2692:96;;;:::o;2794:122::-;2867:24;2885:5;2867:24;:::i;:::-;2860:5;2857:35;2847:63;;2906:1;2903;2896:12;2847:63;2794:122;:::o;2922:139::-;2968:5;3006:6;2993:20;2984:29;;3022:33;3049:5;3022:33;:::i;:::-;2922:139;;;;:::o;3067:474::-;3135:6;3143;3192:2;3180:9;3171:7;3167:23;3163:32;3160:119;;;3198:79;;:::i;:::-;3160:119;3318:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3289:117;3445:2;3471:53;3516:7;3507:6;3496:9;3492:22;3471:53;:::i;:::-;3461:63;;3416:118;3067:474;;;;;:::o;3547:90::-;3581:7;3624:5;3617:13;3610:21;3599:32;;3547:90;;;:::o;3643:109::-;3724:21;3739:5;3724:21;:::i;:::-;3719:3;3712:34;3643:109;;:::o;3758:210::-;3845:4;3883:2;3872:9;3868:18;3860:26;;3896:65;3958:1;3947:9;3943:17;3934:6;3896:65;:::i;:::-;3758:210;;;;:::o;3974:116::-;4044:21;4059:5;4044:21;:::i;:::-;4037:5;4034:32;4024:60;;4080:1;4077;4070:12;4024:60;3974:116;:::o;4096:133::-;4139:5;4177:6;4164:20;4155:29;;4193:30;4217:5;4193:30;:::i;:::-;4096:133;;;;:::o;4235:468::-;4300:6;4308;4357:2;4345:9;4336:7;4332:23;4328:32;4325:119;;;4363:79;;:::i;:::-;4325:119;4483:1;4508:53;4553:7;4544:6;4533:9;4529:22;4508:53;:::i;:::-;4498:63;;4454:117;4610:2;4636:50;4678:7;4669:6;4658:9;4654:22;4636:50;:::i;:::-;4626:60;;4581:115;4235:468;;;;;:::o;4709:118::-;4796:24;4814:5;4796:24;:::i;:::-;4791:3;4784:37;4709:118;;:::o;4833:222::-;4926:4;4964:2;4953:9;4949:18;4941:26;;4977:71;5045:1;5034:9;5030:17;5021:6;4977:71;:::i;:::-;4833:222;;;;:::o;5061:619::-;5138:6;5146;5154;5203:2;5191:9;5182:7;5178:23;5174:32;5171:119;;;5209:79;;:::i;:::-;5171:119;5329:1;5354:53;5399:7;5390:6;5379:9;5375:22;5354:53;:::i;:::-;5344:63;;5300:117;5456:2;5482:53;5527:7;5518:6;5507:9;5503:22;5482:53;:::i;:::-;5472:63;;5427:118;5584:2;5610:53;5655:7;5646:6;5635:9;5631:22;5610:53;:::i;:::-;5600:63;;5555:118;5061:619;;;;;:::o;5686:86::-;5721:7;5761:4;5754:5;5750:16;5739:27;;5686:86;;;:::o;5778:112::-;5861:22;5877:5;5861:22;:::i;:::-;5856:3;5849:35;5778:112;;:::o;5896:214::-;5985:4;6023:2;6012:9;6008:18;6000:26;;6036:67;6100:1;6089:9;6085:17;6076:6;6036:67;:::i;:::-;5896:214;;;;:::o;6116:329::-;6175:6;6224:2;6212:9;6203:7;6199:23;6195:32;6192:119;;;6230:79;;:::i;:::-;6192:119;6350:1;6375:53;6420:7;6411:6;6400:9;6396:22;6375:53;:::i;:::-;6365:63;;6321:117;6116:329;;;;:::o;6451:118::-;6522:22;6538:5;6522:22;:::i;:::-;6515:5;6512:33;6502:61;;6559:1;6556;6549:12;6502:61;6451:118;:::o;6575:135::-;6619:5;6657:6;6644:20;6635:29;;6673:31;6698:5;6673:31;:::i;:::-;6575:135;;;;:::o;6716:77::-;6753:7;6782:5;6771:16;;6716:77;;;:::o;6799:122::-;6872:24;6890:5;6872:24;:::i;:::-;6865:5;6862:35;6852:63;;6911:1;6908;6901:12;6852:63;6799:122;:::o;6927:139::-;6973:5;7011:6;6998:20;6989:29;;7027:33;7054:5;7027:33;:::i;:::-;6927:139;;;;:::o;7072:615::-;7147:6;7155;7163;7212:2;7200:9;7191:7;7187:23;7183:32;7180:119;;;7218:79;;:::i;:::-;7180:119;7338:1;7363:51;7406:7;7397:6;7386:9;7382:22;7363:51;:::i;:::-;7353:61;;7309:115;7463:2;7489:53;7534:7;7525:6;7514:9;7510:22;7489:53;:::i;:::-;7479:63;;7434:118;7591:2;7617:53;7662:7;7653:6;7642:9;7638:22;7617:53;:::i;:::-;7607:63;;7562:118;7072:615;;;;;:::o;7693:329::-;7752:6;7801:2;7789:9;7780:7;7776:23;7772:32;7769:119;;;7807:79;;:::i;:::-;7769:119;7927:1;7952:53;7997:7;7988:6;7977:9;7973:22;7952:53;:::i;:::-;7942:63;;7898:117;7693:329;;;;:::o;8028:60::-;8056:3;8077:5;8070:12;;8028:60;;;:::o;8094:142::-;8144:9;8177:53;8195:34;8204:24;8222:5;8204:24;:::i;:::-;8195:34;:::i;:::-;8177:53;:::i;:::-;8164:66;;8094:142;;;:::o;8242:126::-;8292:9;8325:37;8356:5;8325:37;:::i;:::-;8312:50;;8242:126;;;:::o;8374:152::-;8450:9;8483:37;8514:5;8483:37;:::i;:::-;8470:50;;8374:152;;;:::o;8532:183::-;8645:63;8702:5;8645:63;:::i;:::-;8640:3;8633:76;8532:183;;:::o;8721:274::-;8840:4;8878:2;8867:9;8863:18;8855:26;;8891:97;8985:1;8974:9;8970:17;8961:6;8891:97;:::i;:::-;8721:274;;;;:::o;9001:118::-;9088:24;9106:5;9088:24;:::i;:::-;9083:3;9076:37;9001:118;;:::o;9125:222::-;9218:4;9256:2;9245:9;9241:18;9233:26;;9269:71;9337:1;9326:9;9322:17;9313:6;9269:71;:::i;:::-;9125:222;;;;:::o;9353:323::-;9409:6;9458:2;9446:9;9437:7;9433:23;9429:32;9426:119;;;9464:79;;:::i;:::-;9426:119;9584:1;9609:50;9651:7;9642:6;9631:9;9627:22;9609:50;:::i;:::-;9599:60;;9555:114;9353:323;;;;:::o;9682:474::-;9750:6;9758;9807:2;9795:9;9786:7;9782:23;9778:32;9775:119;;;9813:79;;:::i;:::-;9775:119;9933:1;9958:53;10003:7;9994:6;9983:9;9979:22;9958:53;:::i;:::-;9948:63;;9904:117;10060:2;10086:53;10131:7;10122:6;10111:9;10107:22;10086:53;:::i;:::-;10076:63;;10031:118;9682:474;;;;;:::o;10162:182::-;10302:34;10298:1;10290:6;10286:14;10279:58;10162:182;:::o;10350:366::-;10492:3;10513:67;10577:2;10572:3;10513:67;:::i;:::-;10506:74;;10589:93;10678:3;10589:93;:::i;:::-;10707:2;10702:3;10698:12;10691:19;;10350:366;;;:::o;10722:419::-;10888:4;10926:2;10915:9;10911:18;10903:26;;10975:9;10969:4;10965:20;10961:1;10950:9;10946:17;10939:47;11003:131;11129:4;11003:131;:::i;:::-;10995:139;;10722:419;;;:::o;11147:180::-;11195:77;11192:1;11185:88;11292:4;11289:1;11282:15;11316:4;11313:1;11306:15;11333:305;11373:3;11392:20;11410:1;11392:20;:::i;:::-;11387:25;;11426:20;11444:1;11426:20;:::i;:::-;11421:25;;11580:1;11512:66;11508:74;11505:1;11502:81;11499:107;;;11586:18;;:::i;:::-;11499:107;11630:1;11627;11623:9;11616:16;;11333:305;;;;:::o;11644:180::-;11692:77;11689:1;11682:88;11789:4;11786:1;11779:15;11813:4;11810:1;11803:15;11830:320;11874:6;11911:1;11905:4;11901:12;11891:22;;11958:1;11952:4;11948:12;11979:18;11969:81;;12035:4;12027:6;12023:17;12013:27;;11969:81;12097:2;12089:6;12086:14;12066:18;12063:38;12060:84;;;12116:18;;:::i;:::-;12060:84;11881:269;11830:320;;;:::o;12156:228::-;12296:34;12292:1;12284:6;12280:14;12273:58;12365:11;12360:2;12352:6;12348:15;12341:36;12156:228;:::o;12390:366::-;12532:3;12553:67;12617:2;12612:3;12553:67;:::i;:::-;12546:74;;12629:93;12718:3;12629:93;:::i;:::-;12747:2;12742:3;12738:12;12731:19;;12390:366;;;:::o;12762:419::-;12928:4;12966:2;12955:9;12951:18;12943:26;;13015:9;13009:4;13005:20;13001:1;12990:9;12986:17;12979:47;13043:131;13169:4;13043:131;:::i;:::-;13035:139;;12762:419;;;:::o;13187:227::-;13327:34;13323:1;13315:6;13311:14;13304:58;13396:10;13391:2;13383:6;13379:15;13372:35;13187:227;:::o;13420:366::-;13562:3;13583:67;13647:2;13642:3;13583:67;:::i;:::-;13576:74;;13659:93;13748:3;13659:93;:::i;:::-;13777:2;13772:3;13768:12;13761:19;;13420:366;;;:::o;13792:419::-;13958:4;13996:2;13985:9;13981:18;13973:26;;14045:9;14039:4;14035:20;14031:1;14020:9;14016:17;14009:47;14073:131;14199:4;14073:131;:::i;:::-;14065:139;;13792:419;;;:::o;14217:118::-;14304:24;14322:5;14304:24;:::i;:::-;14299:3;14292:37;14217:118;;:::o;14341:664::-;14546:4;14584:3;14573:9;14569:19;14561:27;;14598:71;14666:1;14655:9;14651:17;14642:6;14598:71;:::i;:::-;14679:72;14747:2;14736:9;14732:18;14723:6;14679:72;:::i;:::-;14761;14829:2;14818:9;14814:18;14805:6;14761:72;:::i;:::-;14843;14911:2;14900:9;14896:18;14887:6;14843:72;:::i;:::-;14925:73;14993:3;14982:9;14978:19;14969:6;14925:73;:::i;:::-;14341:664;;;;;;;;:::o;15011:442::-;15160:4;15198:2;15187:9;15183:18;15175:26;;15211:71;15279:1;15268:9;15264:17;15255:6;15211:71;:::i;:::-;15292:72;15360:2;15349:9;15345:18;15336:6;15292:72;:::i;:::-;15374;15442:2;15431:9;15427:18;15418:6;15374:72;:::i;:::-;15011:442;;;;;;:::o;15459:148::-;15561:11;15598:3;15583:18;;15459:148;;;;:::o;15613:214::-;15753:66;15749:1;15741:6;15737:14;15730:90;15613:214;:::o;15833:400::-;15993:3;16014:84;16096:1;16091:3;16014:84;:::i;:::-;16007:91;;16107:93;16196:3;16107:93;:::i;:::-;16225:1;16220:3;16216:11;16209:18;;15833:400;;;:::o;16239:79::-;16278:7;16307:5;16296:16;;16239:79;;;:::o;16324:157::-;16429:45;16449:24;16467:5;16449:24;:::i;:::-;16429:45;:::i;:::-;16424:3;16417:58;16324:157;;:::o;16487:663::-;16728:3;16750:148;16894:3;16750:148;:::i;:::-;16743:155;;16908:75;16979:3;16970:6;16908:75;:::i;:::-;17008:2;17003:3;16999:12;16992:19;;17021:75;17092:3;17083:6;17021:75;:::i;:::-;17121:2;17116:3;17112:12;17105:19;;17141:3;17134:10;;16487:663;;;;;:::o;17156:545::-;17329:4;17367:3;17356:9;17352:19;17344:27;;17381:71;17449:1;17438:9;17434:17;17425:6;17381:71;:::i;:::-;17462:68;17526:2;17515:9;17511:18;17502:6;17462:68;:::i;:::-;17540:72;17608:2;17597:9;17593:18;17584:6;17540:72;:::i;:::-;17622;17690:2;17679:9;17675:18;17666:6;17622:72;:::i;:::-;17156:545;;;;;;;:::o;17707:167::-;17847:19;17843:1;17835:6;17831:14;17824:43;17707:167;:::o;17880:366::-;18022:3;18043:67;18107:2;18102:3;18043:67;:::i;:::-;18036:74;;18119:93;18208:3;18119:93;:::i;:::-;18237:2;18232:3;18228:12;18221:19;;17880:366;;;:::o;18252:419::-;18418:4;18456:2;18445:9;18441:18;18433:26;;18505:9;18499:4;18495:20;18491:1;18480:9;18476:17;18469:47;18533:131;18659:4;18533:131;:::i;:::-;18525:139;;18252:419;;;:::o;18677:348::-;18717:7;18740:20;18758:1;18740:20;:::i;:::-;18735:25;;18774:20;18792:1;18774:20;:::i;:::-;18769:25;;18962:1;18894:66;18890:74;18887:1;18884:81;18879:1;18872:9;18865:17;18861:105;18858:131;;;18969:18;;:::i;:::-;18858:131;19017:1;19014;19010:9;18999:20;;18677:348;;;;:::o;19031:180::-;19079:77;19076:1;19069:88;19176:4;19173:1;19166:15;19200:4;19197:1;19190:15;19217:185;19257:1;19274:20;19292:1;19274:20;:::i;:::-;19269:25;;19308:20;19326:1;19308:20;:::i;:::-;19303:25;;19347:1;19337:35;;19352:18;;:::i;:::-;19337:35;19394:1;19391;19387:9;19382:14;;19217:185;;;;:::o;19408:239::-;19548:34;19544:1;19536:6;19532:14;19525:58;19617:22;19612:2;19604:6;19600:15;19593:47;19408:239;:::o;19653:366::-;19795:3;19816:67;19880:2;19875:3;19816:67;:::i;:::-;19809:74;;19892:93;19981:3;19892:93;:::i;:::-;20010:2;20005:3;20001:12;19994:19;;19653:366;;;:::o;20025:419::-;20191:4;20229:2;20218:9;20214:18;20206:26;;20278:9;20272:4;20268:20;20264:1;20253:9;20249:17;20242:47;20306:131;20432:4;20306:131;:::i;:::-;20298:139;;20025:419;;;:::o;20450:240::-;20590:34;20586:1;20578:6;20574:14;20567:58;20659:23;20654:2;20646:6;20642:15;20635:48;20450:240;:::o;20696:366::-;20838:3;20859:67;20923:2;20918:3;20859:67;:::i;:::-;20852:74;;20935:93;21024:3;20935:93;:::i;:::-;21053:2;21048:3;21044:12;21037:19;;20696:366;;;:::o;21068:419::-;21234:4;21272:2;21261:9;21257:18;21249:26;;21321:9;21315:4;21311:20;21307:1;21296:9;21292:17;21285:47;21349:131;21475:4;21349:131;:::i;:::-;21341:139;;21068:419;;;:::o;21493:239::-;21633:34;21629:1;21621:6;21617:14;21610:58;21702:22;21697:2;21689:6;21685:15;21678:47;21493:239;:::o;21738:366::-;21880:3;21901:67;21965:2;21960:3;21901:67;:::i;:::-;21894:74;;21977:93;22066:3;21977:93;:::i;:::-;22095:2;22090:3;22086:12;22079:19;;21738:366;;;:::o;22110:419::-;22276:4;22314:2;22303:9;22299:18;22291:26;;22363:9;22357:4;22353:20;22349:1;22338:9;22334:17;22327:47;22391:131;22517:4;22391:131;:::i;:::-;22383:139;;22110:419;;;:::o;22535:225::-;22675:34;22671:1;22663:6;22659:14;22652:58;22744:8;22739:2;22731:6;22727:15;22720:33;22535:225;:::o;22766:366::-;22908:3;22929:67;22993:2;22988:3;22929:67;:::i;:::-;22922:74;;23005:93;23094:3;23005:93;:::i;:::-;23123:2;23118:3;23114:12;23107:19;;22766:366;;;:::o;23138:419::-;23304:4;23342:2;23331:9;23327:18;23319:26;;23391:9;23385:4;23381:20;23377:1;23366:9;23362:17;23355:47;23419:131;23545:4;23419:131;:::i;:::-;23411:139;;23138:419;;;:::o;23563:234::-;23703:34;23699:1;23691:6;23687:14;23680:58;23772:17;23767:2;23759:6;23755:15;23748:42;23563:234;:::o;23803:366::-;23945:3;23966:67;24030:2;24025:3;23966:67;:::i;:::-;23959:74;;24042:93;24131:3;24042:93;:::i;:::-;24160:2;24155:3;24151:12;24144:19;;23803:366;;;:::o;24175:419::-;24341:4;24379:2;24368:9;24364:18;24356:26;;24428:9;24422:4;24418:20;24414:1;24403:9;24399:17;24392:47;24456:131;24582:4;24456:131;:::i;:::-;24448:139;;24175:419;;;:::o;24600:225::-;24740:34;24736:1;24728:6;24724:14;24717:58;24809:8;24804:2;24796:6;24792:15;24785:33;24600:225;:::o;24831:366::-;24973:3;24994:67;25058:2;25053:3;24994:67;:::i;:::-;24987:74;;25070:93;25159:3;25070:93;:::i;:::-;25188:2;25183:3;25179:12;25172:19;;24831:366;;;:::o;25203:419::-;25369:4;25407:2;25396:9;25392:18;25384:26;;25456:9;25450:4;25446:20;25442:1;25431:9;25427:17;25420:47;25484:131;25610:4;25484:131;:::i;:::-;25476:139;;25203:419;;;:::o;25628:224::-;25768:34;25764:1;25756:6;25752:14;25745:58;25837:7;25832:2;25824:6;25820:15;25813:32;25628:224;:::o;25858:366::-;26000:3;26021:67;26085:2;26080:3;26021:67;:::i;:::-;26014:74;;26097:93;26186:3;26097:93;:::i;:::-;26215:2;26210:3;26206:12;26199:19;;25858:366;;;:::o;26230:419::-;26396:4;26434:2;26423:9;26419:18;26411:26;;26483:9;26477:4;26473:20;26469:1;26458:9;26454:17;26447:47;26511:131;26637:4;26511:131;:::i;:::-;26503:139;;26230:419;;;:::o;26655:222::-;26795:34;26791:1;26783:6;26779:14;26772:58;26864:5;26859:2;26851:6;26847:15;26840:30;26655:222;:::o;26883:366::-;27025:3;27046:67;27110:2;27105:3;27046:67;:::i;:::-;27039:74;;27122:93;27211:3;27122:93;:::i;:::-;27240:2;27235:3;27231:12;27224:19;;26883:366;;;:::o;27255:419::-;27421:4;27459:2;27448:9;27444:18;27436:26;;27508:9;27502:4;27498:20;27494:1;27483:9;27479:17;27472:47;27536:131;27662:4;27536:131;:::i;:::-;27528:139;;27255:419;;;:::o;27680:225::-;27820:34;27816:1;27808:6;27804:14;27797:58;27889:8;27884:2;27876:6;27872:15;27865:33;27680:225;:::o;27911:366::-;28053:3;28074:67;28138:2;28133:3;28074:67;:::i;:::-;28067:74;;28150:93;28239:3;28150:93;:::i;:::-;28268:2;28263:3;28259:12;28252:19;;27911:366;;;:::o;28283:419::-;28449:4;28487:2;28476:9;28472:18;28464:26;;28536:9;28530:4;28526:20;28522:1;28511:9;28507:17;28500:47;28564:131;28690:4;28564:131;:::i;:::-;28556:139;;28283:419;;;:::o;28708:223::-;28848:34;28844:1;28836:6;28832:14;28825:58;28917:6;28912:2;28904:6;28900:15;28893:31;28708:223;:::o;28937:366::-;29079:3;29100:67;29164:2;29159:3;29100:67;:::i;:::-;29093:74;;29176:93;29265:3;29176:93;:::i;:::-;29294:2;29289:3;29285:12;29278:19;;28937:366;;;:::o;29309:419::-;29475:4;29513:2;29502:9;29498:18;29490:26;;29562:9;29556:4;29552:20;29548:1;29537:9;29533:17;29526:47;29590:131;29716:4;29590:131;:::i;:::-;29582:139;;29309:419;;;:::o;29734:167::-;29874:19;29870:1;29862:6;29858:14;29851:43;29734:167;:::o;29907:366::-;30049:3;30070:67;30134:2;30129:3;30070:67;:::i;:::-;30063:74;;30146:93;30235:3;30146:93;:::i;:::-;30264:2;30259:3;30255:12;30248:19;;29907:366;;;:::o;30279:419::-;30445:4;30483:2;30472:9;30468:18;30460:26;;30532:9;30526:4;30522:20;30518:1;30507:9;30503:17;30496:47;30560:131;30686:4;30560:131;:::i;:::-;30552:139;;30279:419;;;:::o;30704:165::-;30844:17;30840:1;30832:6;30828:14;30821:41;30704:165;:::o;30875:366::-;31017:3;31038:67;31102:2;31097:3;31038:67;:::i;:::-;31031:74;;31114:93;31203:3;31114:93;:::i;:::-;31232:2;31227:3;31223:12;31216:19;;30875:366;;;:::o;31247:419::-;31413:4;31451:2;31440:9;31436:18;31428:26;;31500:9;31494:4;31490:20;31486:1;31475:9;31471:17;31464:47;31528:131;31654:4;31528:131;:::i;:::-;31520:139;;31247:419;;;:::o;31672:172::-;31812:24;31808:1;31800:6;31796:14;31789:48;31672:172;:::o;31850:366::-;31992:3;32013:67;32077:2;32072:3;32013:67;:::i;:::-;32006:74;;32089:93;32178:3;32089:93;:::i;:::-;32207:2;32202:3;32198:12;32191:19;;31850:366;;;:::o;32222:419::-;32388:4;32426:2;32415:9;32411:18;32403:26;;32475:9;32469:4;32465:20;32461:1;32450:9;32446:17;32439:47;32503:131;32629:4;32503:131;:::i;:::-;32495:139;;32222:419;;;:::o;32647:245::-;32787:34;32783:1;32775:6;32771:14;32764:58;32856:28;32851:2;32843:6;32839:15;32832:53;32647:245;:::o;32898:366::-;33040:3;33061:67;33125:2;33120:3;33061:67;:::i;:::-;33054:74;;33137:93;33226:3;33137:93;:::i;:::-;33255:2;33250:3;33246:12;33239:19;;32898:366;;;:::o;33270:419::-;33436:4;33474:2;33463:9;33459:18;33451:26;;33523:9;33517:4;33513:20;33509:1;33498:9;33494:17;33487:47;33551:131;33677:4;33551:131;:::i;:::-;33543:139;;33270:419;;;:::o;33695:169::-;33835:21;33831:1;33823:6;33819:14;33812:45;33695:169;:::o;33870:366::-;34012:3;34033:67;34097:2;34092:3;34033:67;:::i;:::-;34026:74;;34109:93;34198:3;34109:93;:::i;:::-;34227:2;34222:3;34218:12;34211:19;;33870:366;;;:::o;34242:419::-;34408:4;34446:2;34435:9;34431:18;34423:26;;34495:9;34489:4;34485:20;34481:1;34470:9;34466:17;34459:47;34523:131;34649:4;34523:131;:::i;:::-;34515:139;;34242:419;;;:::o;34667:246::-;34807:34;34803:1;34795:6;34791:14;34784:58;34876:29;34871:2;34863:6;34859:15;34852:54;34667:246;:::o;34919:366::-;35061:3;35082:67;35146:2;35141:3;35082:67;:::i;:::-;35075:74;;35158:93;35247:3;35158:93;:::i;:::-;35276:2;35271:3;35267:12;35260:19;;34919:366;;;:::o;35291:419::-;35457:4;35495:2;35484:9;35480:18;35472:26;;35544:9;35538:4;35534:20;35530:1;35519:9;35515:17;35508:47;35572:131;35698:4;35572:131;:::i;:::-;35564:139;;35291:419;;;:::o;35716:191::-;35756:4;35776:20;35794:1;35776:20;:::i;:::-;35771:25;;35810:20;35828:1;35810:20;:::i;:::-;35805:25;;35849:1;35846;35843:8;35840:34;;;35854:18;;:::i;:::-;35840:34;35899:1;35896;35892:9;35884:17;;35716:191;;;;:::o;35913:226::-;36053:34;36049:1;36041:6;36037:14;36030:58;36122:9;36117:2;36109:6;36105:15;36098:34;35913:226;:::o;36145:366::-;36287:3;36308:67;36372:2;36367:3;36308:67;:::i;:::-;36301:74;;36384:93;36473:3;36384:93;:::i;:::-;36502:2;36497:3;36493:12;36486:19;;36145:366;;;:::o;36517:419::-;36683:4;36721:2;36710:9;36706:18;36698:26;;36770:9;36764:4;36760:20;36756:1;36745:9;36741:17;36734:47;36798:131;36924:4;36798:131;:::i;:::-;36790:139;;36517:419;;;:::o;36942:147::-;37043:11;37080:3;37065:18;;36942:147;;;;:::o;37095:114::-;;:::o;37215:398::-;37374:3;37395:83;37476:1;37471:3;37395:83;:::i;:::-;37388:90;;37487:93;37576:3;37487:93;:::i;:::-;37605:1;37600:3;37596:11;37589:18;;37215:398;;;:::o;37619:379::-;37803:3;37825:147;37968:3;37825:147;:::i;:::-;37818:154;;37989:3;37982:10;;37619:379;;;:::o;38004:180::-;38052:77;38049:1;38042:88;38149:4;38146:1;38139:15;38173:4;38170:1;38163:15;38190:180;38238:77;38235:1;38228:88;38335:4;38332:1;38325:15;38359:4;38356:1;38349:15;38376:143;38433:5;38464:6;38458:13;38449:22;;38480:33;38507:5;38480:33;:::i;:::-;38376:143;;;;:::o;38525:351::-;38595:6;38644:2;38632:9;38623:7;38619:23;38615:32;38612:119;;;38650:79;;:::i;:::-;38612:119;38770:1;38795:64;38851:7;38842:6;38831:9;38827:22;38795:64;:::i;:::-;38785:74;;38741:128;38525:351;;;;:::o;38882:85::-;38927:7;38956:5;38945:16;;38882:85;;;:::o;38973:158::-;39031:9;39064:61;39082:42;39091:32;39117:5;39091:32;:::i;:::-;39082:42;:::i;:::-;39064:61;:::i;:::-;39051:74;;38973:158;;;:::o;39137:147::-;39232:45;39271:5;39232:45;:::i;:::-;39227:3;39220:58;39137:147;;:::o;39290:114::-;39357:6;39391:5;39385:12;39375:22;;39290:114;;;:::o;39410:184::-;39509:11;39543:6;39538:3;39531:19;39583:4;39578:3;39574:14;39559:29;;39410:184;;;;:::o;39600:132::-;39667:4;39690:3;39682:11;;39720:4;39715:3;39711:14;39703:22;;39600:132;;;:::o;39738:108::-;39815:24;39833:5;39815:24;:::i;:::-;39810:3;39803:37;39738:108;;:::o;39852:179::-;39921:10;39942:46;39984:3;39976:6;39942:46;:::i;:::-;40020:4;40015:3;40011:14;39997:28;;39852:179;;;;:::o;40037:113::-;40107:4;40139;40134:3;40130:14;40122:22;;40037:113;;;:::o;40186:732::-;40305:3;40334:54;40382:5;40334:54;:::i;:::-;40404:86;40483:6;40478:3;40404:86;:::i;:::-;40397:93;;40514:56;40564:5;40514:56;:::i;:::-;40593:7;40624:1;40609:284;40634:6;40631:1;40628:13;40609:284;;;40710:6;40704:13;40737:63;40796:3;40781:13;40737:63;:::i;:::-;40730:70;;40823:60;40876:6;40823:60;:::i;:::-;40813:70;;40669:224;40656:1;40653;40649:9;40644:14;;40609:284;;;40613:14;40909:3;40902:10;;40310:608;;;40186:732;;;;:::o;40924:831::-;41187:4;41225:3;41214:9;41210:19;41202:27;;41239:71;41307:1;41296:9;41292:17;41283:6;41239:71;:::i;:::-;41320:80;41396:2;41385:9;41381:18;41372:6;41320:80;:::i;:::-;41447:9;41441:4;41437:20;41432:2;41421:9;41417:18;41410:48;41475:108;41578:4;41569:6;41475:108;:::i;:::-;41467:116;;41593:72;41661:2;41650:9;41646:18;41637:6;41593:72;:::i;:::-;41675:73;41743:3;41732:9;41728:19;41719:6;41675:73;:::i;:::-;40924:831;;;;;;;;:::o

Swarm Source

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