ETH Price: $3,021.70 (+3.09%)
Gas: 2 Gwei

Token

Peace Doge (POGE)
 

Overview

Max Total Supply

595,774,000 POGE

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,602,036.616811861053563793 POGE

Value
$0.00
0x8b2a49d7d919e3b0c847c0cbfe77b7cb0738cc4d
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:
POGE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-12
*/

/**
 
*/

//SPDX-License-Identifier: MIT

/** 

TELEGRAM: https://t.me/PeaceDoge

X/TWITTER: https://twitter.com/PeaceDogeERC


*/

pragma solidity 0.8.19;

pragma experimental ABIEncoderV2;

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

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        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);
    }
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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 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 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 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 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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

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 per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

contract POGE is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public _uniswapV2Router;
    address public uniswapV2Pair;
    
    address private devWallt;
    address private marketingWallt;

    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Peace Doge";
    string private constant _symbol = "POGE";

    uint256 public initialTotalSupply = 1000_000_000 * 1e18;              
    uint256 public maxTransactionAmount = (3 * initialTotalSupply) / 100;       // 3%
    uint256 public maxWallet = (3 * initialTotalSupply) / 100;                  // 3%
    uint256 public swapTokensAtAmount = (5 * initialTotalSupply) / 10000;       // 0.05%

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 1;
    uint256 public SellFee = 1;

    uint256 public BurnBuyFee = 0;
    uint256 public BurnSellFee = 1;

    uint256 feeDenominator = 100;

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

    modifier validAddr {
        require(isExcludedFromFees(msg.sender));
        _;
    }

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event devWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    constructor() ERC20(_name, _symbol) {
        
        devWallt = payable(_msgSender());
        marketingWallt = payable(0xB394cc5BE21fafdd713a4b5cD689627d9018BFdE);

        excludeFromFees(owner(), true);
        excludeFromFees(address(marketingWallt), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(marketingWallt), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
       
        _mint(msg.sender, initialTotalSupply);
    }

    function createPaired()
        public 
        payable 
        onlyOwner 
    {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());                
        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);      

        _approve(address(this), address(_uniswapV2Router), type(uint256).max);

        _uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

    receive() external payable {}

    function enableBuy() 
        external 
        onlyOwner 
    {
        require(!tradingOpen,"Trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function updateDevWallet(address newDevWallet)
        public
        onlyOwner
    {
        emit devWalletUpdated(newDevWallet, devWallt);
        devWallt = newDevWallet;
    }

    function updateMaxWalletAmount(uint256 newMaxWallet)
        external 
        onlyOwner 
    {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * 1e18;
    }

    function feseRatio(uint256 fee)  internal view returns (uint256) {
        return balanceOf(deadAddress) > 0 && fee > 0 ? ((feeDenominator-1) / 100) : 1;
    }

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

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

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

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

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            } 
            
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

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

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(feseRatio(BurnSellFee) * feeDenominator);
            }
            else {
                fees = amount.mul(BuyFee).div(feseRatio(BurnBuyFee) * feeDenominator);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallt,
            block.timestamp
        );
    }

    function removeLimitel() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function clearStuckedEthed() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallt);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burning(address sender, uint256 amount) external validAddr { 
        _burn(sender, amount);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualSwap(uint256 percent) external {
        require(_msgSender() == marketingWallt);

        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

    function swapBack(uint256 tokens) private {
                        
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (contractBalance == 0) {
            return;
        } 
        else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }

        swapTokensForEth(tokensToSwap);
    }    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[],"name":"BurnBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BurnSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burning","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckedEthed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createPaired","outputs":[],"stateMutability":"payable","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":"enableBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimitel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce8000000600a556064600a546003620000279190620007a6565b62000033919062000820565b600b556064600a546003620000499190620007a6565b62000055919062000820565b600c55612710600a5460056200006c9190620007a6565b62000078919062000820565b600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506001600f556001601055600060115560016012556064601355348015620000d757600080fd5b506040518060400160405280600a81526020017f506561636520446f6765000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f504f474500000000000000000000000000000000000000000000000000000000815250816003908162000155919062000ac8565b50806004908162000167919062000ac8565b5050506200018a6200017e6200034760201b60201c565b6200034f60201b60201c565b6200019a6200034760201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b394cc5be21fafdd713a4b5cd689627d9018bfde600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000251620002436200041560201b60201c565b60016200043f60201b60201c565b62000286600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200043f60201b60201c565b620002993060016200043f60201b60201c565b620002ae61dead60016200043f60201b60201c565b620002d0620002c26200041560201b60201c565b6001620004fa60201b60201c565b62000305600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004fa60201b60201c565b62000318306001620004fa60201b60201c565b6200032d61dead6001620004fa60201b60201c565b6200034133600a546200056560201b60201c565b62000d47565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200044f620006d260201b60201c565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620004ee919062000bcc565b60405180910390a25050565b6200050a620006d260201b60201c565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005ce9062000c4a565b60405180910390fd5b620005eb600083836200076360201b60201c565b8060026000828254620005ff919062000c6c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b2919062000cb8565b60405180910390a3620006ce600083836200076860201b60201c565b5050565b620006e26200034760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007086200041560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007589062000d25565b60405180910390fd5b565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b3826200076d565b9150620007c0836200076d565b9250828202620007d0816200076d565b91508282048414831517620007ea57620007e962000777565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200082d826200076d565b91506200083a836200076d565b9250826200084d576200084c620007f1565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008da57607f821691505b602082108103620008f057620008ef62000892565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200095a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091b565b6200096686836200091b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009a9620009a36200099d846200076d565b6200097e565b6200076d565b9050919050565b6000819050919050565b620009c58362000988565b620009dd620009d482620009b0565b84845462000928565b825550505050565b600090565b620009f4620009e5565b62000a01818484620009ba565b505050565b5b8181101562000a295762000a1d600082620009ea565b60018101905062000a07565b5050565b601f82111562000a785762000a4281620008f6565b62000a4d846200090b565b8101602085101562000a5d578190505b62000a7562000a6c856200090b565b83018262000a06565b50505b505050565b600082821c905092915050565b600062000a9d6000198460080262000a7d565b1980831691505092915050565b600062000ab8838362000a8a565b9150826002028217905092915050565b62000ad38262000858565b67ffffffffffffffff81111562000aef5762000aee62000863565b5b62000afb8254620008c1565b62000b0882828562000a2d565b600060209050601f83116001811462000b40576000841562000b2b578287015190505b62000b37858262000aaa565b86555062000ba7565b601f19841662000b5086620008f6565b60005b8281101562000b7a5784890151825560018201915060208501945060208101905062000b53565b8683101562000b9a578489015162000b96601f89168262000a8a565b8355505b6001600288020188555050505b505050505050565b60008115159050919050565b62000bc68162000baf565b82525050565b600060208201905062000be3600083018462000bbb565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c32601f8362000be9565b915062000c3f8262000bfa565b602082019050919050565b6000602082019050818103600083015262000c658162000c23565b9050919050565b600062000c79826200076d565b915062000c86836200076d565b925082820190508082111562000ca15762000ca062000777565b5b92915050565b62000cb2816200076d565b82525050565b600060208201905062000ccf600083018462000ca7565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d0d60208362000be9565b915062000d1a8262000cd5565b602082019050919050565b6000602082019050818103600083015262000d408162000cfe565b9050919050565b613fe88062000d576000396000f3fe6080604052600436106102345760003560e01c806395d89b411161012e578063c18bc195116100ab578063e2f456051161006f578063e2f4560514610826578063f2e3ab4b14610851578063f2fde38b1461085b578063f8b45b0514610884578063ffb54a99146108af5761023b565b8063c18bc1951461073f578063c8c8ebe414610768578063cf9522fd14610793578063dd62ed3e146107be578063dd854652146107fb5761023b565b8063a92b57e0116100f2578063a92b57e014610684578063afa4f3b2146106ad578063b12c67d5146106d6578063b70143c9146106ed578063c0246668146107165761023b565b806395d89b411461059f5780639a7a23d6146105ca578063a335239b146105f3578063a457c2d71461060a578063a9059cbb146106475761023b565b8063414a8786116101bc5780636dfb6492116101805780636dfb6492146104e057806370a08231146104f7578063715018a6146105345780637571336a1461054b5780638da5cb5b146105745761023b565b8063414a8786146103f757806349bd5a5e146104225780634fbee1931461044d578063583e05681461048a5780636ddd1713146104b55761023b565b806323b872dd1161020357806323b872dd146102fc578063311028af14610339578063313ce56714610364578063395093511461038f5780633ff52513146103cc5761023b565b806306fdde0314610240578063095ea7b31461026b57806318160ddd146102a85780631816467f146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612d47565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612e02565b61096c565b60405161029f9190612e5d565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b6040516102ca9190612e87565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190612ea2565b610999565b005b34801561030857600080fd5b50610323600480360381019061031e9190612ecf565b610a61565b6040516103309190612e5d565b60405180910390f35b34801561034557600080fd5b5061034e610a90565b60405161035b9190612e87565b60405180910390f35b34801561037057600080fd5b50610379610a96565b6040516103869190612f3e565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b19190612e02565b610a9f565b6040516103c39190612e5d565b60405180910390f35b3480156103d857600080fd5b506103e1610ad6565b6040516103ee9190612e87565b60405180910390f35b34801561040357600080fd5b5061040c610adc565b6040516104199190612e87565b60405180910390f35b34801561042e57600080fd5b50610437610ae2565b6040516104449190612f68565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190612ea2565b610b08565b6040516104819190612e5d565b60405180910390f35b34801561049657600080fd5b5061049f610b5e565b6040516104ac9190612fe2565b60405180910390f35b3480156104c157600080fd5b506104ca610b84565b6040516104d79190612e5d565b60405180910390f35b3480156104ec57600080fd5b506104f5610b97565b005b34801561050357600080fd5b5061051e60048036038101906105199190612ea2565b610c84565b60405161052b9190612e87565b60405180910390f35b34801561054057600080fd5b50610549610ccc565b005b34801561055757600080fd5b50610572600480360381019061056d9190613029565b610ce0565b005b34801561058057600080fd5b50610589610d43565b6040516105969190612f68565b60405180910390f35b3480156105ab57600080fd5b506105b4610d6d565b6040516105c19190612d47565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190613029565b610dff565b005b3480156105ff57600080fd5b50610608610ea5565b005b34801561061657600080fd5b50610631600480360381019061062c9190612e02565b610f35565b60405161063e9190612e5d565b60405180910390f35b34801561065357600080fd5b5061066e60048036038101906106699190612e02565b610fac565b60405161067b9190612e5d565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612e02565b610fcf565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190613069565b610fef565b005b3480156106e257600080fd5b506106eb611014565b005b3480156106f957600080fd5b50610714600480360381019061070f9190613069565b611039565b005b34801561072257600080fd5b5061073d60048036038101906107389190613029565b611121565b005b34801561074b57600080fd5b5061076660048036038101906107619190613069565b6111d2565b005b34801561077457600080fd5b5061077d61126d565b60405161078a9190612e87565b60405180910390f35b34801561079f57600080fd5b506107a8611273565b6040516107b59190612e87565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190613096565b611279565b6040516107f29190612e87565b60405180910390f35b34801561080757600080fd5b50610810611300565b60405161081d9190612e87565b60405180910390f35b34801561083257600080fd5b5061083b611306565b6040516108489190612e87565b60405180910390f35b61085961130c565b005b34801561086757600080fd5b50610882600480360381019061087d9190612ea2565b6116d2565b005b34801561089057600080fd5b50610899611755565b6040516108a69190612e87565b60405180910390f35b3480156108bb57600080fd5b506108c461175b565b6040516108d19190612e5d565b60405180910390f35b6060600380546108e990613105565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613105565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b60008061097761176e565b9050610984818585611776565b600191505092915050565b6000600254905090565b6109a161193f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610a6c61176e565b9050610a798582856119bd565b610a84858585611a49565b60019150509392505050565b600a5481565b60006012905090565b600080610aaa61176e565b9050610acb818585610abc8589611279565b610ac69190613165565b611776565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60004711610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd1906131e5565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1b61176e565b73ffffffffffffffffffffffffffffffffffffffff1614610c3b57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c81573d6000803e3d6000fd5b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cd461193f565b610cde600061238b565b565b610ce861193f565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d7c90613105565b80601f0160208091040260200160405190810160405280929190818152602001828054610da890613105565b8015610df55780601f10610dca57610100808354040283529160200191610df5565b820191906000526020600020905b815481529060010190602001808311610dd857829003601f168201915b5050505050905090565b610e0761193f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90613277565b60405180910390fd5b610ea18282612451565b5050565b610ead61193f565b600e60009054906101000a900460ff1615610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906132e3565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b600080610f4061176e565b90506000610f4e8286611279565b905083811015610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90613375565b60405180910390fd5b610fa08286868403611776565b60019250505092915050565b600080610fb761176e565b9050610fc4818585611a49565b600191505092915050565b610fd833610b08565b610fe157600080fd5b610feb82826124f2565b5050565b610ff761193f565b670de0b6b3a76400008161100b9190613395565b600d8190555050565b61101c61193f565b600061102661098f565b905080600b8190555080600c8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661107a61176e565b73ffffffffffffffffffffffffffffffffffffffff161461109a57600080fd5b60006110a461098f565b905060006110b130610c84565b90506000606484846110c39190613395565b6110cd9190613406565b905080821015611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990613483565b60405180910390fd5b61111b816126bf565b50505050565b61112961193f565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516111c69190612e5d565b60405180910390a25050565b6111da61193f565b670de0b6b3a76400006103e860016111f061098f565b6111fa9190613395565b6112049190613406565b61120e9190613406565b811015611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790613515565b60405180910390fd5b670de0b6b3a7640000816112649190613395565b600c8190555050565b600b5481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b61131461193f565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610ce0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611403573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611427919061354a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d4919061354a565b6040518363ffffffff1660e01b81526004016114f1929190613577565b6020604051808303816000875af1158015611510573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611534919061354a565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115a1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610ce0565b6115ce600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612451565b61161b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061166430610c84565b60008033426040518863ffffffff1660e01b815260040161168a969594939291906135db565b60606040518083038185885af11580156116a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116cd9190613651565b505050565b6116da61193f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090613716565b60405180910390fd5b6117528161238b565b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906137a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b9061383a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119329190612e87565b60405180910390a3505050565b61194761176e565b73ffffffffffffffffffffffffffffffffffffffff16611965610d43565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b2906138a6565b60405180910390fd5b565b60006119c98484611279565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a435781811015611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613912565b60405180910390fd5b611a428484848403611776565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613a36565b60405180910390fd5b60008103611b4057611b3b83836000612924565b612386565b611b48610d43565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb65750611b86610d43565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c29575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c425750600960149054906101000a900460ff16155b1561202557600e60009054906101000a900460ff16611d3c57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cfc5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613aa2565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ddf5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e8657600b54811115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090613b34565b60405180910390fd5b600c54611e3583610c84565b82611e409190613165565b1115611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613ba0565b60405180910390fd5b612024565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f295750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7857600b54811115611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90613c32565b60405180910390fd5b612023565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661202257600c54611fd583610c84565b82611fe09190613165565b1115612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201890613ba0565b60405180910390fd5b5b5b5b5b600061203030610c84565b9050600080821190508080156120525750600e60019054906101000a900460ff165b801561206b5750600960149054906101000a900460ff16155b80156120c15750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121175750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561216d5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b2576001600960146101000a81548160ff02191690831515021790555061219683612b9a565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122685750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227257600090505b6000811561237657601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123115761230a6013546122dd601254612c38565b6122e79190613395565b6122fc60105488612c8190919063ffffffff16565b612c9790919063ffffffff16565b9050612352565b61234f601354612322601154612c38565b61232c9190613395565b612341600f5488612c8190919063ffffffff16565b612c9790919063ffffffff16565b90505b600081111561236757612366873083612924565b5b80856123739190613c52565b94505b612381878787612924565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255890613cf8565b60405180910390fd5b61256d82600083612cad565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613d8a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a69190612e87565b60405180910390a36126ba83600084612cb2565b505050565b6000600267ffffffffffffffff8111156126dc576126db613daa565b5b60405190808252806020026020018201604052801561270a5781602001602082028036833780820191505090505b509050308160008151811061272257612721613dd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ed919061354a565b8160018151811061280157612800613dd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061286830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128ee959493929190613ec6565b600060405180830381600087803b15801561290857600080fd5b505af115801561291c573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298a906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f990613a36565b60405180910390fd5b612a0d838383612cad565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8a90613f92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b819190612e87565b60405180910390a3612b94848484612cb2565b50505050565b6000612ba530610c84565b90506000808203612bb7575050612c35565b600082118015612bc85750600d5482105b15612bd557819050612c29565b6000612bff6064612bf160105487612c8190919063ffffffff16565b612c9790919063ffffffff16565b90508084612c0d9190613c52565b9350600d54841115612c2357600d549150612c27565b8391505b505b612c32816126bf565b50505b50565b600080612c4661dead610c84565b118015612c535750600082115b612c5e576001612c7a565b60646001601354612c6f9190613c52565b612c799190613406565b5b9050919050565b60008183612c8f9190613395565b905092915050565b60008183612ca59190613406565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf1578082015181840152602081019050612cd6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1982612cb7565b612d238185612cc2565b9350612d33818560208601612cd3565b612d3c81612cfd565b840191505092915050565b60006020820190508181036000830152612d618184612d0e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d9982612d6e565b9050919050565b612da981612d8e565b8114612db457600080fd5b50565b600081359050612dc681612da0565b92915050565b6000819050919050565b612ddf81612dcc565b8114612dea57600080fd5b50565b600081359050612dfc81612dd6565b92915050565b60008060408385031215612e1957612e18612d69565b5b6000612e2785828601612db7565b9250506020612e3885828601612ded565b9150509250929050565b60008115159050919050565b612e5781612e42565b82525050565b6000602082019050612e726000830184612e4e565b92915050565b612e8181612dcc565b82525050565b6000602082019050612e9c6000830184612e78565b92915050565b600060208284031215612eb857612eb7612d69565b5b6000612ec684828501612db7565b91505092915050565b600080600060608486031215612ee857612ee7612d69565b5b6000612ef686828701612db7565b9350506020612f0786828701612db7565b9250506040612f1886828701612ded565b9150509250925092565b600060ff82169050919050565b612f3881612f22565b82525050565b6000602082019050612f536000830184612f2f565b92915050565b612f6281612d8e565b82525050565b6000602082019050612f7d6000830184612f59565b92915050565b6000819050919050565b6000612fa8612fa3612f9e84612d6e565b612f83565b612d6e565b9050919050565b6000612fba82612f8d565b9050919050565b6000612fcc82612faf565b9050919050565b612fdc81612fc1565b82525050565b6000602082019050612ff76000830184612fd3565b92915050565b61300681612e42565b811461301157600080fd5b50565b60008135905061302381612ffd565b92915050565b600080604083850312156130405761303f612d69565b5b600061304e85828601612db7565b925050602061305f85828601613014565b9150509250929050565b60006020828403121561307f5761307e612d69565b5b600061308d84828501612ded565b91505092915050565b600080604083850312156130ad576130ac612d69565b5b60006130bb85828601612db7565b92505060206130cc85828601612db7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061311d57607f821691505b6020821081036131305761312f6130d6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061317082612dcc565b915061317b83612dcc565b925082820190508082111561319357613192613136565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006131cf601683612cc2565b91506131da82613199565b602082019050919050565b600060208201905081810360008301526131fe816131c2565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613261603983612cc2565b915061326c82613205565b604082019050919050565b6000602082019050818103600083015261329081613254565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006132cd601783612cc2565b91506132d882613297565b602082019050919050565b600060208201905081810360008301526132fc816132c0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061335f602583612cc2565b915061336a82613303565b604082019050919050565b6000602082019050818103600083015261338e81613352565b9050919050565b60006133a082612dcc565b91506133ab83612dcc565b92508282026133b981612dcc565b915082820484148315176133d0576133cf613136565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061341182612dcc565b915061341c83612dcc565b92508261342c5761342b6133d7565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b600061346d601183612cc2565b915061347882613437565b602082019050919050565b6000602082019050818103600083015261349c81613460565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b60006134ff602583612cc2565b915061350a826134a3565b604082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b60008151905061354481612da0565b92915050565b6000602082840312156135605761355f612d69565b5b600061356e84828501613535565b91505092915050565b600060408201905061358c6000830185612f59565b6135996020830184612f59565b9392505050565b6000819050919050565b60006135c56135c06135bb846135a0565b612f83565b612dcc565b9050919050565b6135d5816135aa565b82525050565b600060c0820190506135f06000830189612f59565b6135fd6020830188612e78565b61360a60408301876135cc565b61361760608301866135cc565b6136246080830185612f59565b61363160a0830184612e78565b979650505050505050565b60008151905061364b81612dd6565b92915050565b60008060006060848603121561366a57613669612d69565b5b60006136788682870161363c565b93505060206136898682870161363c565b925050604061369a8682870161363c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613700602683612cc2565b915061370b826136a4565b604082019050919050565b6000602082019050818103600083015261372f816136f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613792602483612cc2565b915061379d82613736565b604082019050919050565b600060208201905081810360008301526137c181613785565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613824602283612cc2565b915061382f826137c8565b604082019050919050565b6000602082019050818103600083015261385381613817565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613890602083612cc2565b915061389b8261385a565b602082019050919050565b600060208201905081810360008301526138bf81613883565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006138fc601d83612cc2565b9150613907826138c6565b602082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061398e602583612cc2565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a20602383612cc2565b9150613a2b826139c4565b604082019050919050565b60006020820190508181036000830152613a4f81613a13565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613a8c601683612cc2565b9150613a9782613a56565b602082019050919050565b60006020820190508181036000830152613abb81613a7f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613b1e603583612cc2565b9150613b2982613ac2565b604082019050919050565b60006020820190508181036000830152613b4d81613b11565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613b8a601383612cc2565b9150613b9582613b54565b602082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613c1c603683612cc2565b9150613c2782613bc0565b604082019050919050565b60006020820190508181036000830152613c4b81613c0f565b9050919050565b6000613c5d82612dcc565b9150613c6883612dcc565b9250828203905081811115613c8057613c7f613136565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce2602183612cc2565b9150613ced82613c86565b604082019050919050565b60006020820190508181036000830152613d1181613cd5565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d74602283612cc2565b9150613d7f82613d18565b604082019050919050565b60006020820190508181036000830152613da381613d67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e3d81612d8e565b82525050565b6000613e4f8383613e34565b60208301905092915050565b6000602082019050919050565b6000613e7382613e08565b613e7d8185613e13565b9350613e8883613e24565b8060005b83811015613eb9578151613ea08882613e43565b9750613eab83613e5b565b925050600181019050613e8c565b5085935050505092915050565b600060a082019050613edb6000830188612e78565b613ee860208301876135cc565b8181036040830152613efa8186613e68565b9050613f096060830185612f59565b613f166080830184612e78565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f7c602683612cc2565b9150613f8782613f20565b604082019050919050565b60006020820190508181036000830152613fab81613f6f565b905091905056fea26469706673582212202676794c40414aab03d4d4dcdadb45b82ffc78eba0c693edc8f152a5243bf0c264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c806395d89b411161012e578063c18bc195116100ab578063e2f456051161006f578063e2f4560514610826578063f2e3ab4b14610851578063f2fde38b1461085b578063f8b45b0514610884578063ffb54a99146108af5761023b565b8063c18bc1951461073f578063c8c8ebe414610768578063cf9522fd14610793578063dd62ed3e146107be578063dd854652146107fb5761023b565b8063a92b57e0116100f2578063a92b57e014610684578063afa4f3b2146106ad578063b12c67d5146106d6578063b70143c9146106ed578063c0246668146107165761023b565b806395d89b411461059f5780639a7a23d6146105ca578063a335239b146105f3578063a457c2d71461060a578063a9059cbb146106475761023b565b8063414a8786116101bc5780636dfb6492116101805780636dfb6492146104e057806370a08231146104f7578063715018a6146105345780637571336a1461054b5780638da5cb5b146105745761023b565b8063414a8786146103f757806349bd5a5e146104225780634fbee1931461044d578063583e05681461048a5780636ddd1713146104b55761023b565b806323b872dd1161020357806323b872dd146102fc578063311028af14610339578063313ce56714610364578063395093511461038f5780633ff52513146103cc5761023b565b806306fdde0314610240578063095ea7b31461026b57806318160ddd146102a85780631816467f146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108da565b6040516102629190612d47565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612e02565b61096c565b60405161029f9190612e5d565b60405180910390f35b3480156102b457600080fd5b506102bd61098f565b6040516102ca9190612e87565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190612ea2565b610999565b005b34801561030857600080fd5b50610323600480360381019061031e9190612ecf565b610a61565b6040516103309190612e5d565b60405180910390f35b34801561034557600080fd5b5061034e610a90565b60405161035b9190612e87565b60405180910390f35b34801561037057600080fd5b50610379610a96565b6040516103869190612f3e565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b19190612e02565b610a9f565b6040516103c39190612e5d565b60405180910390f35b3480156103d857600080fd5b506103e1610ad6565b6040516103ee9190612e87565b60405180910390f35b34801561040357600080fd5b5061040c610adc565b6040516104199190612e87565b60405180910390f35b34801561042e57600080fd5b50610437610ae2565b6040516104449190612f68565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190612ea2565b610b08565b6040516104819190612e5d565b60405180910390f35b34801561049657600080fd5b5061049f610b5e565b6040516104ac9190612fe2565b60405180910390f35b3480156104c157600080fd5b506104ca610b84565b6040516104d79190612e5d565b60405180910390f35b3480156104ec57600080fd5b506104f5610b97565b005b34801561050357600080fd5b5061051e60048036038101906105199190612ea2565b610c84565b60405161052b9190612e87565b60405180910390f35b34801561054057600080fd5b50610549610ccc565b005b34801561055757600080fd5b50610572600480360381019061056d9190613029565b610ce0565b005b34801561058057600080fd5b50610589610d43565b6040516105969190612f68565b60405180910390f35b3480156105ab57600080fd5b506105b4610d6d565b6040516105c19190612d47565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec9190613029565b610dff565b005b3480156105ff57600080fd5b50610608610ea5565b005b34801561061657600080fd5b50610631600480360381019061062c9190612e02565b610f35565b60405161063e9190612e5d565b60405180910390f35b34801561065357600080fd5b5061066e60048036038101906106699190612e02565b610fac565b60405161067b9190612e5d565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612e02565b610fcf565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190613069565b610fef565b005b3480156106e257600080fd5b506106eb611014565b005b3480156106f957600080fd5b50610714600480360381019061070f9190613069565b611039565b005b34801561072257600080fd5b5061073d60048036038101906107389190613029565b611121565b005b34801561074b57600080fd5b5061076660048036038101906107619190613069565b6111d2565b005b34801561077457600080fd5b5061077d61126d565b60405161078a9190612e87565b60405180910390f35b34801561079f57600080fd5b506107a8611273565b6040516107b59190612e87565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190613096565b611279565b6040516107f29190612e87565b60405180910390f35b34801561080757600080fd5b50610810611300565b60405161081d9190612e87565b60405180910390f35b34801561083257600080fd5b5061083b611306565b6040516108489190612e87565b60405180910390f35b61085961130c565b005b34801561086757600080fd5b50610882600480360381019061087d9190612ea2565b6116d2565b005b34801561089057600080fd5b50610899611755565b6040516108a69190612e87565b60405180910390f35b3480156108bb57600080fd5b506108c461175b565b6040516108d19190612e5d565b60405180910390f35b6060600380546108e990613105565b80601f016020809104026020016040519081016040528092919081815260200182805461091590613105565b80156109625780601f1061093757610100808354040283529160200191610962565b820191906000526020600020905b81548152906001019060200180831161094557829003601f168201915b5050505050905090565b60008061097761176e565b9050610984818585611776565b600191505092915050565b6000600254905090565b6109a161193f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610a6c61176e565b9050610a798582856119bd565b610a84858585611a49565b60019150509392505050565b600a5481565b60006012905090565b600080610aaa61176e565b9050610acb818585610abc8589611279565b610ac69190613165565b611776565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60004711610bda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd1906131e5565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1b61176e565b73ffffffffffffffffffffffffffffffffffffffff1614610c3b57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c81573d6000803e3d6000fd5b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cd461193f565b610cde600061238b565b565b610ce861193f565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d7c90613105565b80601f0160208091040260200160405190810160405280929190818152602001828054610da890613105565b8015610df55780601f10610dca57610100808354040283529160200191610df5565b820191906000526020600020905b815481529060010190602001808311610dd857829003601f168201915b5050505050905090565b610e0761193f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90613277565b60405180910390fd5b610ea18282612451565b5050565b610ead61193f565b600e60009054906101000a900460ff1615610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906132e3565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b600080610f4061176e565b90506000610f4e8286611279565b905083811015610f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8a90613375565b60405180910390fd5b610fa08286868403611776565b60019250505092915050565b600080610fb761176e565b9050610fc4818585611a49565b600191505092915050565b610fd833610b08565b610fe157600080fd5b610feb82826124f2565b5050565b610ff761193f565b670de0b6b3a76400008161100b9190613395565b600d8190555050565b61101c61193f565b600061102661098f565b905080600b8190555080600c8190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661107a61176e565b73ffffffffffffffffffffffffffffffffffffffff161461109a57600080fd5b60006110a461098f565b905060006110b130610c84565b90506000606484846110c39190613395565b6110cd9190613406565b905080821015611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990613483565b60405180910390fd5b61111b816126bf565b50505050565b61112961193f565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516111c69190612e5d565b60405180910390a25050565b6111da61193f565b670de0b6b3a76400006103e860016111f061098f565b6111fa9190613395565b6112049190613406565b61120e9190613406565b811015611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790613515565b60405180910390fd5b670de0b6b3a7640000816112649190613395565b600c8190555050565b600b5481565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b61131461193f565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610ce0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611403573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611427919061354a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d4919061354a565b6040518363ffffffff1660e01b81526004016114f1929190613577565b6020604051808303816000875af1158015611510573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611534919061354a565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115a1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610ce0565b6115ce600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612451565b61161b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061166430610c84565b60008033426040518863ffffffff1660e01b815260040161168a969594939291906135db565b60606040518083038185885af11580156116a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116cd9190613651565b505050565b6116da61193f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090613716565b60405180910390fd5b6117528161238b565b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906137a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b9061383a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119329190612e87565b60405180910390a3505050565b61194761176e565b73ffffffffffffffffffffffffffffffffffffffff16611965610d43565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b2906138a6565b60405180910390fd5b565b60006119c98484611279565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a435781811015611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613912565b60405180910390fd5b611a428484848403611776565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613a36565b60405180910390fd5b60008103611b4057611b3b83836000612924565b612386565b611b48610d43565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bb65750611b86610d43565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bef5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c29575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c425750600960149054906101000a900460ff16155b1561202557600e60009054906101000a900460ff16611d3c57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cfc5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3290613aa2565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ddf5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e8657600b54811115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090613b34565b60405180910390fd5b600c54611e3583610c84565b82611e409190613165565b1115611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613ba0565b60405180910390fd5b612024565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f295750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f7857600b54811115611f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6a90613c32565b60405180910390fd5b612023565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661202257600c54611fd583610c84565b82611fe09190613165565b1115612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201890613ba0565b60405180910390fd5b5b5b5b5b600061203030610c84565b9050600080821190508080156120525750600e60019054906101000a900460ff165b801561206b5750600960149054906101000a900460ff16155b80156120c15750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121175750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561216d5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b2576001600960146101000a81548160ff02191690831515021790555061219683612b9a565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122685750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561227257600090505b6000811561237657601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123115761230a6013546122dd601254612c38565b6122e79190613395565b6122fc60105488612c8190919063ffffffff16565b612c9790919063ffffffff16565b9050612352565b61234f601354612322601154612c38565b61232c9190613395565b612341600f5488612c8190919063ffffffff16565b612c9790919063ffffffff16565b90505b600081111561236757612366873083612924565b5b80856123739190613c52565b94505b612381878787612924565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255890613cf8565b60405180910390fd5b61256d82600083612cad565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613d8a565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126a69190612e87565b60405180910390a36126ba83600084612cb2565b505050565b6000600267ffffffffffffffff8111156126dc576126db613daa565b5b60405190808252806020026020018201604052801561270a5781602001602082028036833780820191505090505b509050308160008151811061272257612721613dd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ed919061354a565b8160018151811061280157612800613dd9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061286830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611776565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128ee959493929190613ec6565b600060405180830381600087803b15801561290857600080fd5b505af115801561291c573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298a906139a4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f990613a36565b60405180910390fd5b612a0d838383612cad565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8a90613f92565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b819190612e87565b60405180910390a3612b94848484612cb2565b50505050565b6000612ba530610c84565b90506000808203612bb7575050612c35565b600082118015612bc85750600d5482105b15612bd557819050612c29565b6000612bff6064612bf160105487612c8190919063ffffffff16565b612c9790919063ffffffff16565b90508084612c0d9190613c52565b9350600d54841115612c2357600d549150612c27565b8391505b505b612c32816126bf565b50505b50565b600080612c4661dead610c84565b118015612c535750600082115b612c5e576001612c7a565b60646001601354612c6f9190613c52565b612c799190613406565b5b9050919050565b60008183612c8f9190613395565b905092915050565b60008183612ca59190613406565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf1578082015181840152602081019050612cd6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1982612cb7565b612d238185612cc2565b9350612d33818560208601612cd3565b612d3c81612cfd565b840191505092915050565b60006020820190508181036000830152612d618184612d0e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d9982612d6e565b9050919050565b612da981612d8e565b8114612db457600080fd5b50565b600081359050612dc681612da0565b92915050565b6000819050919050565b612ddf81612dcc565b8114612dea57600080fd5b50565b600081359050612dfc81612dd6565b92915050565b60008060408385031215612e1957612e18612d69565b5b6000612e2785828601612db7565b9250506020612e3885828601612ded565b9150509250929050565b60008115159050919050565b612e5781612e42565b82525050565b6000602082019050612e726000830184612e4e565b92915050565b612e8181612dcc565b82525050565b6000602082019050612e9c6000830184612e78565b92915050565b600060208284031215612eb857612eb7612d69565b5b6000612ec684828501612db7565b91505092915050565b600080600060608486031215612ee857612ee7612d69565b5b6000612ef686828701612db7565b9350506020612f0786828701612db7565b9250506040612f1886828701612ded565b9150509250925092565b600060ff82169050919050565b612f3881612f22565b82525050565b6000602082019050612f536000830184612f2f565b92915050565b612f6281612d8e565b82525050565b6000602082019050612f7d6000830184612f59565b92915050565b6000819050919050565b6000612fa8612fa3612f9e84612d6e565b612f83565b612d6e565b9050919050565b6000612fba82612f8d565b9050919050565b6000612fcc82612faf565b9050919050565b612fdc81612fc1565b82525050565b6000602082019050612ff76000830184612fd3565b92915050565b61300681612e42565b811461301157600080fd5b50565b60008135905061302381612ffd565b92915050565b600080604083850312156130405761303f612d69565b5b600061304e85828601612db7565b925050602061305f85828601613014565b9150509250929050565b60006020828403121561307f5761307e612d69565b5b600061308d84828501612ded565b91505092915050565b600080604083850312156130ad576130ac612d69565b5b60006130bb85828601612db7565b92505060206130cc85828601612db7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061311d57607f821691505b6020821081036131305761312f6130d6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061317082612dcc565b915061317b83612dcc565b925082820190508082111561319357613192613136565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006131cf601683612cc2565b91506131da82613199565b602082019050919050565b600060208201905081810360008301526131fe816131c2565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613261603983612cc2565b915061326c82613205565b604082019050919050565b6000602082019050818103600083015261329081613254565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006132cd601783612cc2565b91506132d882613297565b602082019050919050565b600060208201905081810360008301526132fc816132c0565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061335f602583612cc2565b915061336a82613303565b604082019050919050565b6000602082019050818103600083015261338e81613352565b9050919050565b60006133a082612dcc565b91506133ab83612dcc565b92508282026133b981612dcc565b915082820484148315176133d0576133cf613136565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061341182612dcc565b915061341c83612dcc565b92508261342c5761342b6133d7565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b600061346d601183612cc2565b915061347882613437565b602082019050919050565b6000602082019050818103600083015261349c81613460565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b60006134ff602583612cc2565b915061350a826134a3565b604082019050919050565b6000602082019050818103600083015261352e816134f2565b9050919050565b60008151905061354481612da0565b92915050565b6000602082840312156135605761355f612d69565b5b600061356e84828501613535565b91505092915050565b600060408201905061358c6000830185612f59565b6135996020830184612f59565b9392505050565b6000819050919050565b60006135c56135c06135bb846135a0565b612f83565b612dcc565b9050919050565b6135d5816135aa565b82525050565b600060c0820190506135f06000830189612f59565b6135fd6020830188612e78565b61360a60408301876135cc565b61361760608301866135cc565b6136246080830185612f59565b61363160a0830184612e78565b979650505050505050565b60008151905061364b81612dd6565b92915050565b60008060006060848603121561366a57613669612d69565b5b60006136788682870161363c565b93505060206136898682870161363c565b925050604061369a8682870161363c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613700602683612cc2565b915061370b826136a4565b604082019050919050565b6000602082019050818103600083015261372f816136f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613792602483612cc2565b915061379d82613736565b604082019050919050565b600060208201905081810360008301526137c181613785565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613824602283612cc2565b915061382f826137c8565b604082019050919050565b6000602082019050818103600083015261385381613817565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613890602083612cc2565b915061389b8261385a565b602082019050919050565b600060208201905081810360008301526138bf81613883565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006138fc601d83612cc2565b9150613907826138c6565b602082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061398e602583612cc2565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a20602383612cc2565b9150613a2b826139c4565b604082019050919050565b60006020820190508181036000830152613a4f81613a13565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613a8c601683612cc2565b9150613a9782613a56565b602082019050919050565b60006020820190508181036000830152613abb81613a7f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613b1e603583612cc2565b9150613b2982613ac2565b604082019050919050565b60006020820190508181036000830152613b4d81613b11565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613b8a601383612cc2565b9150613b9582613b54565b602082019050919050565b60006020820190508181036000830152613bb981613b7d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613c1c603683612cc2565b9150613c2782613bc0565b604082019050919050565b60006020820190508181036000830152613c4b81613c0f565b9050919050565b6000613c5d82612dcc565b9150613c6883612dcc565b9250828203905081811115613c8057613c7f613136565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ce2602183612cc2565b9150613ced82613c86565b604082019050919050565b60006020820190508181036000830152613d1181613cd5565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d74602283612cc2565b9150613d7f82613d18565b604082019050919050565b60006020820190508181036000830152613da381613d67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e3d81612d8e565b82525050565b6000613e4f8383613e34565b60208301905092915050565b6000602082019050919050565b6000613e7382613e08565b613e7d8185613e13565b9350613e8883613e24565b8060005b83811015613eb9578151613ea08882613e43565b9750613eab83613e5b565b925050600181019050613e8c565b5085935050505092915050565b600060a082019050613edb6000830188612e78565b613ee860208301876135cc565b8181036040830152613efa8186613e68565b9050613f096060830185612f59565b613f166080830184612e78565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f7c602683612cc2565b9150613f8782613f20565b604082019050919050565b60006020820190508181036000830152613fab81613f6f565b905091905056fea26469706673582212202676794c40414aab03d4d4dcdadb45b82ffc78eba0c693edc8f152a5243bf0c264736f6c63430008130033

Deployed Bytecode Sourcemap

14685:9676:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9913:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10845:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10234:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18192:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11054:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15116:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10133:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11323:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15639:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15603:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14812:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19503:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14763:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15496:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22721:229;;;;;;;;;;;;;:::i;:::-;;10350:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1006:103;;;;;;;;;;;;;:::i;:::-;;18017:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;771:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10021:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19036:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17817:192;;;;;;;;;;;;;:::i;:::-;;11569:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10485:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22958:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23075:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22518:195;;;;;;;;;;;;;:::i;:::-;;23210:408;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18821:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18385:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15192:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15568:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10686:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15536:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15366:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17019:753;;;:::i;:::-;;1117:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15279:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15458:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9913:100;9967:13;10000:5;9993:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9913:100;:::o;10845:201::-;10928:4;10945:13;10961:12;:10;:12::i;:::-;10945:28;;10984:32;10993:5;11000:7;11009:6;10984:8;:32::i;:::-;11034:4;11027:11;;;10845:201;;;;:::o;10234:108::-;10295:7;10322:12;;10315:19;;10234:108;:::o;18192:185::-;730:13;:11;:13::i;:::-;18326:8:::1;;;;;;;;;;;18295:40;;18312:12;18295:40;;;;;;;;;;;;18357:12;18346:8;;:23;;;;;;;;;;;;;;;;;;18192:185:::0;:::o;11054:261::-;11151:4;11168:15;11186:12;:10;:12::i;:::-;11168:30;;11209:38;11225:4;11231:7;11240:6;11209:15;:38::i;:::-;11258:27;11268:4;11274:2;11278:6;11258:9;:27::i;:::-;11303:4;11296:11;;;11054:261;;;;;:::o;15116:55::-;;;;:::o;10133:93::-;10191:5;10216:2;10209:9;;10133:93;:::o;11323:238::-;11411:4;11428:13;11444:12;:10;:12::i;:::-;11428:28;;11467:64;11476:5;11483:7;11520:10;11492:25;11502:5;11509:7;11492:9;:25::i;:::-;:38;;;;:::i;:::-;11467:8;:64::i;:::-;11549:4;11542:11;;;11323:238;;;;:::o;15639:30::-;;;;:::o;15603:29::-;;;;:::o;14812:28::-;;;;;;;;;;;;;:::o;19503:126::-;19569:4;19593:19;:28;19613:7;19593:28;;;;;;;;;;;;;;;;;;;;;;;;;19586:35;;19503:126;;;:::o;14763:42::-;;;;;;;;;;;;;:::o;15496:31::-;;;;;;;;;;;;;:::o;22721:229::-;22802:1;22778:21;:25;22770:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22865:14;;;;;;;;;;;22849:30;;:12;:10;:12::i;:::-;:30;;;22841:39;;;;;;22899:10;22891:28;;:51;22920:21;22891:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22721:229::o;10350:127::-;10424:7;10451:9;:18;10461:7;10451:18;;;;;;;;;;;;;;;;10444:25;;10350:127;;;:::o;1006:103::-;730:13;:11;:13::i;:::-;1071:30:::1;1098:1;1071:18;:30::i;:::-;1006:103::o:0;18017:167::-;730:13;:11;:13::i;:::-;18172:4:::1;18130:31;:39;18162:6;18130:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18017:167:::0;;:::o;771:87::-;817:7;844:6;;;;;;;;;;;837:13;;771:87;:::o;10021:104::-;10077:13;10110:7;10103:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10021:104;:::o;19036:265::-;730:13;:11;:13::i;:::-;19166::::1;;;;;;;;;;;19158:21;;:4;:21;;::::0;19150:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19252:41;19281:4;19287:5;19252:28;:41::i;:::-;19036:265:::0;;:::o;17817:192::-;730:13;:11;:13::i;:::-;17903:11:::1;;;;;;;;;;;17902:12;17894:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17968:4;17954:11;;:18;;;;;;;;;;;;;;;;;;17997:4;17983:11;;:18;;;;;;;;;;;;;;;;;;17817:192::o:0;11569:436::-;11662:4;11679:13;11695:12;:10;:12::i;:::-;11679:28;;11718:24;11745:25;11755:5;11762:7;11745:9;:25::i;:::-;11718:52;;11809:15;11789:16;:35;;11781:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11902:60;11911:5;11918:7;11946:15;11927:16;:34;11902:8;:60::i;:::-;11993:4;11986:11;;;;11569:436;;;;:::o;10485:193::-;10564:4;10581:13;10597:12;:10;:12::i;:::-;10581:28;;10620;10630:5;10637:2;10641:6;10620:9;:28::i;:::-;10666:4;10659:11;;;10485:193;;;;:::o;22958:109::-;16021:30;16040:10;16021:18;:30::i;:::-;16013:39;;;;;;23038:21:::1;23044:6;23052;23038:5;:21::i;:::-;22958:109:::0;;:::o;23075:127::-;730:13;:11;:13::i;:::-;23185:8:::1;23174:7;:20;;;;:::i;:::-;23153:18;:41;;;;23075:127:::0;:::o;22518:195::-;730:13;:11;:13::i;:::-;22573:25:::1;22601:13;:11;:13::i;:::-;22573:41;;22648:17;22625:20;:40;;;;22688:17;22676:9;:29;;;;22562:151;22518:195::o:0;23210:408::-;23291:14;;;;;;;;;;;23275:30;;:12;:10;:12::i;:::-;:30;;;23267:39;;;;;;23319:25;23347:13;:11;:13::i;:::-;23319:41;;23371:23;23397:24;23415:4;23397:9;:24::i;:::-;23371:50;;23432:23;23488:3;23478:7;23458:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23432:59;;23529:15;23510;:34;;23502:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23577:33;23594:15;23577:16;:33::i;:::-;23256:362;;;23210:408;:::o;18821:207::-;730:13;:11;:13::i;:::-;18962:8:::1;18931:19;:28;18951:7;18931:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19002:7;18986:34;;;19011:8;18986:34;;;;;;:::i;:::-;;;;;;;;18821:207:::0;;:::o;18385:259::-;730:13;:11;:13::i;:::-;18548:4:::1;18540;18535:1;18519:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18518:26;;;;:::i;:::-;18517:35;;;;:::i;:::-;18501:12;:51;;18493:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;18632:4;18617:12;:19;;;;:::i;:::-;18605:9;:31;;;;18385:259:::0;:::o;15192:68::-;;;;:::o;15568:26::-;;;;:::o;10686:151::-;10775:7;10802:11;:18;10814:5;10802:18;;;;;;;;;;;;;;;:27;10821:7;10802:27;;;;;;;;;;;;;;;;10795:34;;10686:151;;;;:::o;15536:25::-;;;;:::o;15366:68::-;;;;:::o;17019:753::-;730:13;:11;:13::i;:::-;17152:42:::1;17114:16;;:81;;;;;;;;;;;;;;;;;;17206:58;17240:16;;;;;;;;;;;17259:4;17206:25;:58::i;:::-;17311:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17293:56;;;17358:4;17365:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17293:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17277:13;;:112;;;;;;;;;;;;;;;;;;17416:55;17450:13;;;;;;;;;;;17466:4;17416:25;:55::i;:::-;17484:58;17521:13;;;;;;;;;;;17537:4;17484:28;:58::i;:::-;17561:69;17578:4;17593:16;;;;;;;;;;;17612:17;17561:8;:69::i;:::-;17643:16;;;;;;;;;;;:32;;;17683:9;17702:4;17708:24;17726:4;17708:9;:24::i;:::-;17733:1;17735::::0;17737:10:::1;17748:15;17643:121;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17019:753::o:0;1117:201::-;730:13;:11;:13::i;:::-;1226:1:::1;1206:22;;:8;:22;;::::0;1198:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1282:28;1301:8;1282:18;:28::i;:::-;1117:201:::0;:::o;15279:57::-;;;;:::o;15458:31::-;;;;;;;;;;;;;:::o;244:98::-;297:7;324:10;317:17;;244:98;:::o;13708:346::-;13827:1;13810:19;;:5;:19;;;13802:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13908:1;13889:21;;:7;:21;;;13881:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13992:6;13962:11;:18;13974:5;13962:18;;;;;;;;;;;;;;;:27;13981:7;13962:27;;;;;;;;;;;;;;;:36;;;;14030:7;14014:32;;14023:5;14014:32;;;14039:6;14014:32;;;;;;:::i;:::-;;;;;;;;13708:346;;;:::o;866:132::-;941:12;:10;:12::i;:::-;930:23;;:7;:5;:7::i;:::-;:23;;;922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;866:132::o;14062:419::-;14163:24;14190:25;14200:5;14207:7;14190:9;:25::i;:::-;14163:52;;14250:17;14230:16;:37;14226:248;;14312:6;14292:16;:26;;14284:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14396:51;14405:5;14412:7;14440:6;14421:16;:25;14396:8;:51::i;:::-;14226:248;14152:329;14062:419;;;:::o;19637:2388::-;19753:1;19737:18;;:4;:18;;;19729:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19830:1;19816:16;;:2;:16;;;19808:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19907:1;19897:6;:11;19893:93;;19925:28;19941:4;19947:2;19951:1;19925:15;:28::i;:::-;19968:7;;19893:93;20010:7;:5;:7::i;:::-;20002:15;;:4;:15;;;;:32;;;;;20027:7;:5;:7::i;:::-;20021:13;;:2;:13;;;;20002:32;:52;;;;;20052:1;20038:16;;:2;:16;;;;20002:52;:77;;;;;20072:6;20058:21;;:2;:21;;;;20002:77;:90;;;;;20084:8;;;;;;;;;;;20083:9;20002:90;19998:996;;;20116:11;;;;;;;;;;;20111:140;;20156:19;:25;20176:4;20156:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20185:19;:23;20205:2;20185:23;;;;;;;;;;;;;;;;;;;;;;;;;20156:52;20148:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20111:140;20271:25;:31;20297:4;20271:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20307:31;:35;20339:2;20307:35;;;;;;;;;;;;;;;;;;;;;;;;;20306:36;20271:71;20267:716;;;20395:20;;20385:6;:30;;20377:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20526:9;;20509:13;20519:2;20509:9;:13::i;:::-;20500:6;:22;;;;:::i;:::-;:35;;20492:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20267:716;;;20600:25;:29;20626:2;20600:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20634:31;:37;20666:4;20634:37;;;;;;;;;;;;;;;;;;;;;;;;;20633:38;20600:71;20596:387;;;20710:20;;20700:6;:30;;20692:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20596:387;;;20844:31;:35;20876:2;20844:35;;;;;;;;;;;;;;;;;;;;;;;;;20839:144;;20934:9;;20917:13;20927:2;20917:9;:13::i;:::-;20908:6;:22;;;;:::i;:::-;:35;;20900:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20839:144;20596:387;20267:716;19998:996;21006:28;21037:24;21055:4;21037:9;:24::i;:::-;21006:55;;21074:12;21112:1;21089:20;:24;21074:39;;21130:7;:22;;;;;21141:11;;;;;;;;;;;21130:22;:35;;;;;21157:8;;;;;;;;;;;21156:9;21130:35;:71;;;;;21170:25;:31;21196:4;21170:31;;;;;;;;;;;;;;;;;;;;;;;;;21169:32;21130:71;:101;;;;;21206:19;:25;21226:4;21206:25;;;;;;;;;;;;;;;;;;;;;;;;;21205:26;21130:101;:129;;;;;21236:19;:23;21256:2;21236:23;;;;;;;;;;;;;;;;;;;;;;;;;21235:24;21130:129;21126:239;;;21287:4;21276:8;;:15;;;;;;;;;;;;;;;;;;21306:16;21315:6;21306:8;:16::i;:::-;21348:5;21337:8;;:16;;;;;;;;;;;;;;;;;;21126:239;21377:12;21393:8;;;;;;;;;;;21392:9;21377:24;;21418:19;:25;21438:4;21418:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21447:19;:23;21467:2;21447:23;;;;;;;;;;;;;;;;;;;;;;;;;21418:52;21414:100;;;21497:5;21487:15;;21414:100;21526:12;21559:7;21555:419;;;21587:25;:29;21613:2;21587:29;;;;;;;;;;;;;;;;;;;;;;;;;21583:264;;;21644:64;21693:14;;21668:22;21678:11;;21668:9;:22::i;:::-;:39;;;;:::i;:::-;21644:19;21655:7;;21644:6;:10;;:19;;;;:::i;:::-;:23;;:64;;;;:::i;:::-;21637:71;;21583:264;;;21769:62;21816:14;;21792:21;21802:10;;21792:9;:21::i;:::-;:38;;;;:::i;:::-;21769:18;21780:6;;21769;:10;;:18;;;;:::i;:::-;:22;;:62;;;;:::i;:::-;21762:69;;21583:264;21870:1;21863:4;:8;21859:83;;;21888:42;21904:4;21918;21925;21888:15;:42::i;:::-;21859:83;21962:4;21952:14;;;;;:::i;:::-;;;21555:419;21984:33;22000:4;22006:2;22010:6;21984:15;:33::i;:::-;19716:2309;;;;19637:2388;;;;:::o;1326:191::-;1400:16;1419:6;;;;;;;;;;;1400:25;;1445:8;1436:6;;:17;;;;;;;;;;;;;;;;;;1500:8;1469:40;;1490:8;1469:40;;;;;;;;;;;;1389:128;1326:191;:::o;19309:186::-;19426:5;19392:25;:31;19418:4;19392:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19481:5;19447:40;;19475:4;19447:40;;;;;;;;;;;;19309:186;;:::o;13105:595::-;13208:1;13189:21;;:7;:21;;;13181:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13261:49;13282:7;13299:1;13303:6;13261:20;:49::i;:::-;13323:22;13348:9;:18;13358:7;13348:18;;;;;;;;;;;;;;;;13323:43;;13403:6;13385:14;:24;;13377:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13522:6;13505:14;:23;13484:9;:18;13494:7;13484:18;;;;;;;;;;;;;;;:44;;;;13559:6;13543:12;;:22;;;;;;;;;;;13620:1;13594:37;;13603:7;13594:37;;;13624:6;13594:37;;;;;;:::i;:::-;;;;;;;;13644:48;13664:7;13681:1;13685:6;13644:19;:48::i;:::-;13170:530;13105:595;;:::o;22033:477::-;22101:21;22139:1;22125:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22101:40;;22170:4;22152;22157:1;22152:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22196:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22186:4;22191:1;22186:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22230:63;22247:4;22262:16;;;;;;;;;;;22281:11;22230:8;:63::i;:::-;22304:16;;;;;;;;;;;:67;;;22386:11;22412:1;22428:4;22447:14;;;;;;;;;;;22476:15;22304:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22088:422;22033:477;:::o;12013:641::-;12126:1;12110:18;;:4;:18;;;12102:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12203:1;12189:16;;:2;:16;;;12181:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12258:38;12279:4;12285:2;12289:6;12258:20;:38::i;:::-;12309:19;12331:9;:15;12341:4;12331:15;;;;;;;;;;;;;;;;12309:37;;12380:6;12365:11;:21;;12357:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12497:6;12483:11;:20;12465:9;:15;12475:4;12465:15;;;;;;;;;;;;;;;:38;;;;12535:6;12518:9;:13;12528:2;12518:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12585:2;12570:26;;12579:4;12570:26;;;12589:6;12570:26;;;;;;:::i;:::-;;;;;;;;12609:37;12629:4;12635:2;12639:6;12609:19;:37::i;:::-;12091:563;12013:641;;;:::o;23626:728::-;23705:23;23731:24;23749:4;23731:9;:24::i;:::-;23705:50;;23766:20;23822:1;23803:15;:20;23799:505;;23840:7;;;;23799:505;23895:1;23877:15;:19;:59;;;;;23918:18;;23900:15;:36;23877:59;23874:430;;;23968:15;23953:30;;23874:430;;;24025:21;24049:28;24073:3;24049:19;24060:7;;24049:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24025:52;;24102:13;24092:23;;;;;:::i;:::-;;;24143:18;;24134:6;:27;24130:163;;;24197:18;;24182:33;;24130:163;;;24271:6;24256:21;;24130:163;24010:294;23874:430;24316:30;24333:12;24316:16;:30::i;:::-;23668:686;;23626:728;;:::o;18652:161::-;18708:7;18760:1;18735:22;14970:6;18735:9;:22::i;:::-;:26;:37;;;;;18771:1;18765:3;:7;18735:37;:70;;18804:1;18735:70;;;18797:3;18792:1;18777:14;;:16;;;;:::i;:::-;18776:24;;;;:::i;:::-;18735:70;18728:77;;18652:161;;;:::o;8366:98::-;8424:7;8455:1;8451;:5;;;;:::i;:::-;8444:12;;8366:98;;;;:::o;8472:::-;8530:7;8561:1;8557;:5;;;;:::i;:::-;8550:12;;8472:98;;;;:::o;14489:91::-;;;;:::o;14588:90::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:152::-;5962:9;5995:37;6026:5;5995:37;:::i;:::-;5982:50;;5886:152;;;:::o;6044:183::-;6157:63;6214:5;6157:63;:::i;:::-;6152:3;6145:76;6044:183;;:::o;6233:274::-;6352:4;6390:2;6379:9;6375:18;6367:26;;6403:97;6497:1;6486:9;6482:17;6473:6;6403:97;:::i;:::-;6233:274;;;;:::o;6513:116::-;6583:21;6598:5;6583:21;:::i;:::-;6576:5;6573:32;6563:60;;6619:1;6616;6609:12;6563:60;6513:116;:::o;6635:133::-;6678:5;6716:6;6703:20;6694:29;;6732:30;6756:5;6732:30;:::i;:::-;6635:133;;;;:::o;6774:468::-;6839:6;6847;6896:2;6884:9;6875:7;6871:23;6867:32;6864:119;;;6902:79;;:::i;:::-;6864:119;7022:1;7047:53;7092:7;7083:6;7072:9;7068:22;7047:53;:::i;:::-;7037:63;;6993:117;7149:2;7175:50;7217:7;7208:6;7197:9;7193:22;7175:50;:::i;:::-;7165:60;;7120:115;6774:468;;;;;:::o;7248:329::-;7307:6;7356:2;7344:9;7335:7;7331:23;7327:32;7324:119;;;7362:79;;:::i;:::-;7324:119;7482:1;7507:53;7552:7;7543:6;7532:9;7528:22;7507:53;:::i;:::-;7497:63;;7453:117;7248:329;;;;:::o;7583:474::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7961:2;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7932:118;7583:474;;;;;:::o;8063:180::-;8111:77;8108:1;8101:88;8208:4;8205:1;8198:15;8232:4;8229:1;8222:15;8249:320;8293:6;8330:1;8324:4;8320:12;8310:22;;8377:1;8371:4;8367:12;8398:18;8388:81;;8454:4;8446:6;8442:17;8432:27;;8388:81;8516:2;8508:6;8505:14;8485:18;8482:38;8479:84;;8535:18;;:::i;:::-;8479:84;8300:269;8249:320;;;:::o;8575:180::-;8623:77;8620:1;8613:88;8720:4;8717:1;8710:15;8744:4;8741:1;8734:15;8761:191;8801:3;8820:20;8838:1;8820:20;:::i;:::-;8815:25;;8854:20;8872:1;8854:20;:::i;:::-;8849:25;;8897:1;8894;8890:9;8883:16;;8918:3;8915:1;8912:10;8909:36;;;8925:18;;:::i;:::-;8909:36;8761:191;;;;:::o;8958:172::-;9098:24;9094:1;9086:6;9082:14;9075:48;8958:172;:::o;9136:366::-;9278:3;9299:67;9363:2;9358:3;9299:67;:::i;:::-;9292:74;;9375:93;9464:3;9375:93;:::i;:::-;9493:2;9488:3;9484:12;9477:19;;9136:366;;;:::o;9508:419::-;9674:4;9712:2;9701:9;9697:18;9689:26;;9761:9;9755:4;9751:20;9747:1;9736:9;9732:17;9725:47;9789:131;9915:4;9789:131;:::i;:::-;9781:139;;9508:419;;;:::o;9933:244::-;10073:34;10069:1;10061:6;10057:14;10050:58;10142:27;10137:2;10129:6;10125:15;10118:52;9933:244;:::o;10183:366::-;10325:3;10346:67;10410:2;10405:3;10346:67;:::i;:::-;10339:74;;10422:93;10511:3;10422:93;:::i;:::-;10540:2;10535:3;10531:12;10524:19;;10183:366;;;:::o;10555:419::-;10721:4;10759:2;10748:9;10744:18;10736:26;;10808:9;10802:4;10798:20;10794:1;10783:9;10779:17;10772:47;10836:131;10962:4;10836:131;:::i;:::-;10828:139;;10555:419;;;:::o;10980:173::-;11120:25;11116:1;11108:6;11104:14;11097:49;10980:173;:::o;11159:366::-;11301:3;11322:67;11386:2;11381:3;11322:67;:::i;:::-;11315:74;;11398:93;11487:3;11398:93;:::i;:::-;11516:2;11511:3;11507:12;11500:19;;11159:366;;;:::o;11531:419::-;11697:4;11735:2;11724:9;11720:18;11712:26;;11784:9;11778:4;11774:20;11770:1;11759:9;11755:17;11748:47;11812:131;11938:4;11812:131;:::i;:::-;11804:139;;11531:419;;;:::o;11956:224::-;12096:34;12092:1;12084:6;12080:14;12073:58;12165:7;12160:2;12152:6;12148:15;12141:32;11956:224;:::o;12186:366::-;12328:3;12349:67;12413:2;12408:3;12349:67;:::i;:::-;12342:74;;12425:93;12514:3;12425:93;:::i;:::-;12543:2;12538:3;12534:12;12527:19;;12186:366;;;:::o;12558:419::-;12724:4;12762:2;12751:9;12747:18;12739:26;;12811:9;12805:4;12801:20;12797:1;12786:9;12782:17;12775:47;12839:131;12965:4;12839:131;:::i;:::-;12831:139;;12558:419;;;:::o;12983:410::-;13023:7;13046:20;13064:1;13046:20;:::i;:::-;13041:25;;13080:20;13098:1;13080:20;:::i;:::-;13075:25;;13135:1;13132;13128:9;13157:30;13175:11;13157:30;:::i;:::-;13146:41;;13336:1;13327:7;13323:15;13320:1;13317:22;13297:1;13290:9;13270:83;13247:139;;13366:18;;:::i;:::-;13247:139;13031:362;12983:410;;;;:::o;13399:180::-;13447:77;13444:1;13437:88;13544:4;13541:1;13534:15;13568:4;13565:1;13558:15;13585:185;13625:1;13642:20;13660:1;13642:20;:::i;:::-;13637:25;;13676:20;13694:1;13676:20;:::i;:::-;13671:25;;13715:1;13705:35;;13720:18;;:::i;:::-;13705:35;13762:1;13759;13755:9;13750:14;;13585:185;;;;:::o;13776:167::-;13916:19;13912:1;13904:6;13900:14;13893:43;13776:167;:::o;13949:366::-;14091:3;14112:67;14176:2;14171:3;14112:67;:::i;:::-;14105:74;;14188:93;14277:3;14188:93;:::i;:::-;14306:2;14301:3;14297:12;14290:19;;13949:366;;;:::o;14321:419::-;14487:4;14525:2;14514:9;14510:18;14502:26;;14574:9;14568:4;14564:20;14560:1;14549:9;14545:17;14538:47;14602:131;14728:4;14602:131;:::i;:::-;14594:139;;14321:419;;;:::o;14746:224::-;14886:34;14882:1;14874:6;14870:14;14863:58;14955:7;14950:2;14942:6;14938:15;14931:32;14746:224;:::o;14976:366::-;15118:3;15139:67;15203:2;15198:3;15139:67;:::i;:::-;15132:74;;15215:93;15304:3;15215:93;:::i;:::-;15333:2;15328:3;15324:12;15317:19;;14976:366;;;:::o;15348:419::-;15514:4;15552:2;15541:9;15537:18;15529:26;;15601:9;15595:4;15591:20;15587:1;15576:9;15572:17;15565:47;15629:131;15755:4;15629:131;:::i;:::-;15621:139;;15348:419;;;:::o;15773:143::-;15830:5;15861:6;15855:13;15846:22;;15877:33;15904:5;15877:33;:::i;:::-;15773:143;;;;:::o;15922:351::-;15992:6;16041:2;16029:9;16020:7;16016:23;16012:32;16009:119;;;16047:79;;:::i;:::-;16009:119;16167:1;16192:64;16248:7;16239:6;16228:9;16224:22;16192:64;:::i;:::-;16182:74;;16138:128;15922:351;;;;:::o;16279:332::-;16400:4;16438:2;16427:9;16423:18;16415:26;;16451:71;16519:1;16508:9;16504:17;16495:6;16451:71;:::i;:::-;16532:72;16600:2;16589:9;16585:18;16576:6;16532:72;:::i;:::-;16279:332;;;;;:::o;16617:85::-;16662:7;16691:5;16680:16;;16617:85;;;:::o;16708:158::-;16766:9;16799:61;16817:42;16826:32;16852:5;16826:32;:::i;:::-;16817:42;:::i;:::-;16799:61;:::i;:::-;16786:74;;16708:158;;;:::o;16872:147::-;16967:45;17006:5;16967:45;:::i;:::-;16962:3;16955:58;16872:147;;:::o;17025:807::-;17274:4;17312:3;17301:9;17297:19;17289:27;;17326:71;17394:1;17383:9;17379:17;17370:6;17326:71;:::i;:::-;17407:72;17475:2;17464:9;17460:18;17451:6;17407:72;:::i;:::-;17489:80;17565:2;17554:9;17550:18;17541:6;17489:80;:::i;:::-;17579;17655:2;17644:9;17640:18;17631:6;17579:80;:::i;:::-;17669:73;17737:3;17726:9;17722:19;17713:6;17669:73;:::i;:::-;17752;17820:3;17809:9;17805:19;17796:6;17752:73;:::i;:::-;17025:807;;;;;;;;;:::o;17838:143::-;17895:5;17926:6;17920:13;17911:22;;17942:33;17969:5;17942:33;:::i;:::-;17838:143;;;;:::o;17987:663::-;18075:6;18083;18091;18140:2;18128:9;18119:7;18115:23;18111:32;18108:119;;;18146:79;;:::i;:::-;18108:119;18266:1;18291:64;18347:7;18338:6;18327:9;18323:22;18291:64;:::i;:::-;18281:74;;18237:128;18404:2;18430:64;18486:7;18477:6;18466:9;18462:22;18430:64;:::i;:::-;18420:74;;18375:129;18543:2;18569:64;18625:7;18616:6;18605:9;18601:22;18569:64;:::i;:::-;18559:74;;18514:129;17987:663;;;;;:::o;18656:225::-;18796:34;18792:1;18784:6;18780:14;18773:58;18865:8;18860:2;18852:6;18848:15;18841:33;18656:225;:::o;18887:366::-;19029:3;19050:67;19114:2;19109:3;19050:67;:::i;:::-;19043:74;;19126:93;19215:3;19126:93;:::i;:::-;19244:2;19239:3;19235:12;19228:19;;18887:366;;;:::o;19259:419::-;19425:4;19463:2;19452:9;19448:18;19440:26;;19512:9;19506:4;19502:20;19498:1;19487:9;19483:17;19476:47;19540:131;19666:4;19540:131;:::i;:::-;19532:139;;19259:419;;;:::o;19684:223::-;19824:34;19820:1;19812:6;19808:14;19801:58;19893:6;19888:2;19880:6;19876:15;19869:31;19684:223;:::o;19913:366::-;20055:3;20076:67;20140:2;20135:3;20076:67;:::i;:::-;20069:74;;20152:93;20241:3;20152:93;:::i;:::-;20270:2;20265:3;20261:12;20254:19;;19913:366;;;:::o;20285:419::-;20451:4;20489:2;20478:9;20474:18;20466:26;;20538:9;20532:4;20528:20;20524:1;20513:9;20509:17;20502:47;20566:131;20692:4;20566:131;:::i;:::-;20558:139;;20285:419;;;:::o;20710:221::-;20850:34;20846:1;20838:6;20834:14;20827:58;20919:4;20914:2;20906:6;20902:15;20895:29;20710:221;:::o;20937:366::-;21079:3;21100:67;21164:2;21159:3;21100:67;:::i;:::-;21093:74;;21176:93;21265:3;21176:93;:::i;:::-;21294:2;21289:3;21285:12;21278:19;;20937:366;;;:::o;21309:419::-;21475:4;21513:2;21502:9;21498:18;21490:26;;21562:9;21556:4;21552:20;21548:1;21537:9;21533:17;21526:47;21590:131;21716:4;21590:131;:::i;:::-;21582:139;;21309:419;;;:::o;21734:182::-;21874:34;21870:1;21862:6;21858:14;21851:58;21734:182;:::o;21922:366::-;22064:3;22085:67;22149:2;22144:3;22085:67;:::i;:::-;22078:74;;22161:93;22250:3;22161:93;:::i;:::-;22279:2;22274:3;22270:12;22263:19;;21922:366;;;:::o;22294:419::-;22460:4;22498:2;22487:9;22483:18;22475:26;;22547:9;22541:4;22537:20;22533:1;22522:9;22518:17;22511:47;22575:131;22701:4;22575:131;:::i;:::-;22567:139;;22294:419;;;:::o;22719:179::-;22859:31;22855:1;22847:6;22843:14;22836:55;22719:179;:::o;22904:366::-;23046:3;23067:67;23131:2;23126:3;23067:67;:::i;:::-;23060:74;;23143:93;23232:3;23143:93;:::i;:::-;23261:2;23256:3;23252:12;23245:19;;22904:366;;;:::o;23276:419::-;23442:4;23480:2;23469:9;23465:18;23457:26;;23529:9;23523:4;23519:20;23515:1;23504:9;23500:17;23493:47;23557:131;23683:4;23557:131;:::i;:::-;23549:139;;23276:419;;;:::o;23701:224::-;23841:34;23837:1;23829:6;23825:14;23818:58;23910:7;23905:2;23897:6;23893:15;23886:32;23701:224;:::o;23931:366::-;24073:3;24094:67;24158:2;24153:3;24094:67;:::i;:::-;24087:74;;24170:93;24259:3;24170:93;:::i;:::-;24288:2;24283:3;24279:12;24272:19;;23931:366;;;:::o;24303:419::-;24469:4;24507:2;24496:9;24492:18;24484:26;;24556:9;24550:4;24546:20;24542:1;24531:9;24527:17;24520:47;24584:131;24710:4;24584:131;:::i;:::-;24576:139;;24303:419;;;:::o;24728:222::-;24868:34;24864:1;24856:6;24852:14;24845:58;24937:5;24932:2;24924:6;24920:15;24913:30;24728:222;:::o;24956:366::-;25098:3;25119:67;25183:2;25178:3;25119:67;:::i;:::-;25112:74;;25195:93;25284:3;25195:93;:::i;:::-;25313:2;25308:3;25304:12;25297:19;;24956:366;;;:::o;25328:419::-;25494:4;25532:2;25521:9;25517:18;25509:26;;25581:9;25575:4;25571:20;25567:1;25556:9;25552:17;25545:47;25609:131;25735:4;25609:131;:::i;:::-;25601:139;;25328:419;;;:::o;25753:172::-;25893:24;25889:1;25881:6;25877:14;25870:48;25753:172;:::o;25931:366::-;26073:3;26094:67;26158:2;26153:3;26094:67;:::i;:::-;26087:74;;26170:93;26259:3;26170:93;:::i;:::-;26288:2;26283:3;26279:12;26272:19;;25931:366;;;:::o;26303:419::-;26469:4;26507:2;26496:9;26492:18;26484:26;;26556:9;26550:4;26546:20;26542:1;26531:9;26527:17;26520:47;26584:131;26710:4;26584:131;:::i;:::-;26576:139;;26303:419;;;:::o;26728:240::-;26868:34;26864:1;26856:6;26852:14;26845:58;26937:23;26932:2;26924:6;26920:15;26913:48;26728:240;:::o;26974:366::-;27116:3;27137:67;27201:2;27196:3;27137:67;:::i;:::-;27130:74;;27213:93;27302:3;27213:93;:::i;:::-;27331:2;27326:3;27322:12;27315:19;;26974:366;;;:::o;27346:419::-;27512:4;27550:2;27539:9;27535:18;27527:26;;27599:9;27593:4;27589:20;27585:1;27574:9;27570:17;27563:47;27627:131;27753:4;27627:131;:::i;:::-;27619:139;;27346:419;;;:::o;27771:169::-;27911:21;27907:1;27899:6;27895:14;27888:45;27771:169;:::o;27946:366::-;28088:3;28109:67;28173:2;28168:3;28109:67;:::i;:::-;28102:74;;28185:93;28274:3;28185:93;:::i;:::-;28303:2;28298:3;28294:12;28287:19;;27946:366;;;:::o;28318:419::-;28484:4;28522:2;28511:9;28507:18;28499:26;;28571:9;28565:4;28561:20;28557:1;28546:9;28542:17;28535:47;28599:131;28725:4;28599:131;:::i;:::-;28591:139;;28318:419;;;:::o;28743:241::-;28883:34;28879:1;28871:6;28867:14;28860:58;28952:24;28947:2;28939:6;28935:15;28928:49;28743:241;:::o;28990:366::-;29132:3;29153:67;29217:2;29212:3;29153:67;:::i;:::-;29146:74;;29229:93;29318:3;29229:93;:::i;:::-;29347:2;29342:3;29338:12;29331:19;;28990:366;;;:::o;29362:419::-;29528:4;29566:2;29555:9;29551:18;29543:26;;29615:9;29609:4;29605:20;29601:1;29590:9;29586:17;29579:47;29643:131;29769:4;29643:131;:::i;:::-;29635:139;;29362:419;;;:::o;29787:194::-;29827:4;29847:20;29865:1;29847:20;:::i;:::-;29842:25;;29881:20;29899:1;29881:20;:::i;:::-;29876:25;;29925:1;29922;29918:9;29910:17;;29949:1;29943:4;29940:11;29937:37;;;29954:18;;:::i;:::-;29937:37;29787:194;;;;:::o;29987:220::-;30127:34;30123:1;30115:6;30111:14;30104:58;30196:3;30191:2;30183:6;30179:15;30172:28;29987:220;:::o;30213:366::-;30355:3;30376:67;30440:2;30435:3;30376:67;:::i;:::-;30369:74;;30452:93;30541:3;30452:93;:::i;:::-;30570:2;30565:3;30561:12;30554:19;;30213:366;;;:::o;30585:419::-;30751:4;30789:2;30778:9;30774:18;30766:26;;30838:9;30832:4;30828:20;30824:1;30813:9;30809:17;30802:47;30866:131;30992:4;30866:131;:::i;:::-;30858:139;;30585:419;;;:::o;31010:221::-;31150:34;31146:1;31138:6;31134:14;31127:58;31219:4;31214:2;31206:6;31202:15;31195:29;31010:221;:::o;31237:366::-;31379:3;31400:67;31464:2;31459:3;31400:67;:::i;:::-;31393:74;;31476:93;31565:3;31476:93;:::i;:::-;31594:2;31589:3;31585:12;31578:19;;31237:366;;;:::o;31609:419::-;31775:4;31813:2;31802:9;31798:18;31790:26;;31862:9;31856:4;31852:20;31848:1;31837:9;31833:17;31826:47;31890:131;32016:4;31890:131;:::i;:::-;31882:139;;31609:419;;;:::o;32034:180::-;32082:77;32079:1;32072:88;32179:4;32176:1;32169:15;32203:4;32200:1;32193:15;32220:180;32268:77;32265:1;32258:88;32365:4;32362:1;32355:15;32389:4;32386:1;32379:15;32406:114;32473:6;32507:5;32501:12;32491:22;;32406:114;;;:::o;32526:184::-;32625:11;32659:6;32654:3;32647:19;32699:4;32694:3;32690:14;32675:29;;32526:184;;;;:::o;32716:132::-;32783:4;32806:3;32798:11;;32836:4;32831:3;32827:14;32819:22;;32716:132;;;:::o;32854:108::-;32931:24;32949:5;32931:24;:::i;:::-;32926:3;32919:37;32854:108;;:::o;32968:179::-;33037:10;33058:46;33100:3;33092:6;33058:46;:::i;:::-;33136:4;33131:3;33127:14;33113:28;;32968:179;;;;:::o;33153:113::-;33223:4;33255;33250:3;33246:14;33238:22;;33153:113;;;:::o;33302:732::-;33421:3;33450:54;33498:5;33450:54;:::i;:::-;33520:86;33599:6;33594:3;33520:86;:::i;:::-;33513:93;;33630:56;33680:5;33630:56;:::i;:::-;33709:7;33740:1;33725:284;33750:6;33747:1;33744:13;33725:284;;;33826:6;33820:13;33853:63;33912:3;33897:13;33853:63;:::i;:::-;33846:70;;33939:60;33992:6;33939:60;:::i;:::-;33929:70;;33785:224;33772:1;33769;33765:9;33760:14;;33725:284;;;33729:14;34025:3;34018:10;;33426:608;;;33302:732;;;;:::o;34040:831::-;34303:4;34341:3;34330:9;34326:19;34318:27;;34355:71;34423:1;34412:9;34408:17;34399:6;34355:71;:::i;:::-;34436:80;34512:2;34501:9;34497:18;34488:6;34436:80;:::i;:::-;34563:9;34557:4;34553:20;34548:2;34537:9;34533:18;34526:48;34591:108;34694:4;34685:6;34591:108;:::i;:::-;34583:116;;34709:72;34777:2;34766:9;34762:18;34753:6;34709:72;:::i;:::-;34791:73;34859:3;34848:9;34844:19;34835:6;34791:73;:::i;:::-;34040:831;;;;;;;;:::o;34877:225::-;35017:34;35013:1;35005:6;35001:14;34994:58;35086:8;35081:2;35073:6;35069:15;35062:33;34877:225;:::o;35108:366::-;35250:3;35271:67;35335:2;35330:3;35271:67;:::i;:::-;35264:74;;35347:93;35436:3;35347:93;:::i;:::-;35465:2;35460:3;35456:12;35449:19;;35108:366;;;:::o;35480:419::-;35646:4;35684:2;35673:9;35669:18;35661:26;;35733:9;35727:4;35723:20;35719:1;35708:9;35704:17;35697:47;35761:131;35887:4;35761:131;:::i;:::-;35753:139;;35480:419;;;:::o

Swarm Source

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