ETH Price: $3,343.89 (-0.99%)

Token

Aragon Protocol (ARG)
 

Overview

Max Total Supply

1,000,000 ARG

Holders

1,055 ( 0.189%)

Market

Price

$2.04 @ 0.000610 ETH (+6.25%)

Onchain Market Cap

$2,040,000.00

Circulating Supply Market Cap

$2,037,314.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000002863189846009 ARG

Value
$0.00 ( ~0 Eth) [0.0000%]
0x828AE1566824A9835Acb6F565E1E9eA22BfB883A
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Aragon is creating a closed-loop privacy-centric ecosystem with a private swap, anti frontrun DEX, VPN, and more!

# Exchange Pair Price  24H Volume % Volume
1
Uniswap V2 (Ethereum)
0XF23114FA21AF278FA342D980740CB8B89FC82105-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$2.05
0.0006108 Eth
$72,994.00
30,695.573 0XF23114FA21AF278FA342D980740CB8B89FC82105
100.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
ARAGON

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

Telegram : t.me/AragonProtocol
X : x.com/aragonprotocol
Web : aragon-protocol.com
Docs : docs.aragon-protocol.com

*/
pragma solidity ^0.8.20;
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 ARAGON is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private devWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);
    

    uint8 private constant _decimals = 18;
    uint256 public initialTotalSupply = 1000000000000000000000000;

    uint256 public buyFee = 15;
    uint256 public sellFee = 35;

    // 1% is max wallet
    uint256 public maxWallet = initialTotalSupply;
    uint256 public maxTransactionAmount = initialTotalSupply / 100;

    bool private swapping;
    

    bool public transferDelayEnabled = false;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    
    //swap for 0.2%
    uint256 public swapTokensAtAmount = (initialTotalSupply * 2)/1000;

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

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


    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() ERC20("Aragon Protocol", "ARG"){
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(msg.sender);
        devWallet = payable(msg.sender);

        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(msg.sender), true);

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        // mint
        _mint(devWallet, initialTotalSupply);
    }

    receive() external payable {}

    function burn(uint256 amount) external {
        _burn(_msgSender(), amount);
    }

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


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

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

    function setMaxTxn(uint256 amount) public onlyOwner {
        maxTransactionAmount = amount;
    }

    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 (transferDelayEnabled && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){
                    if (to != address(_uniswapV2Router) && to != address(uniswapV2Pair)){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number && _holderLastTransferTimestamp[to] < block.number, "_transfer:: Transfer Delay enabled.  Try again later.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
            }

            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 > swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping && !_isExcludedFromFees[from] && !_isExcludedFromFees[to];

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
            else if(automatedMarketMakerPairs[from]) {
                fees = amount.mul(buyFee).div(100);
            }
            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,
            marketingWallet,
            block.timestamp
        );
    }

    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_sellFee <= 31, "Fees must be less than 31");
        require(_buyFee <= 31, "Fees must be less than 31%");
        sellFee = _sellFee;
        buyFee = _buyFee;
    }

    function manualSwapToken(uint256 percent) external {
        require(_msgSender() == marketingWallet);
        uint256 contractBalance = balanceOf(address(this));
        uint256 swapAmount = contractBalance * percent / 100;
        swapTokensForEth(swapAmount);
    }

    function withdrawEth() external {
        require(address(this).balance > 0, "Token: no ETH in the contract");
        require(_msgSender() == devWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function tokensWithdraw() external {
        require(_msgSender() == devWallet);
        uint256 amount = balanceOf(address(this));
        _transfer(address(this), devWallet, amount);
    }

    function swapBack(uint256 tokenAmount) private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }
        uint256 tokensToSwap = contractBalance;

        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }

        if(tokensToSwap > tokenAmount) {
            tokensToSwap = tokenAmount;
        }

        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"},{"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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"manualSwapToken","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxn","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":"tokensWithdraw","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269d3c21bcecceda1000000600955600f600a556023600b55600954600c5560646009546100319190610980565b600d555f600e60016101000a81548160ff0219169083151502179055506103e8600260095461006091906109b0565b61006a9190610980565b6010555f60115f6101000a81548160ff0219169083151502179055505f601160016101000a81548160ff0219169083151502179055503480156100ab575f80fd5b506040518060400160405280600f81526020017f417261676f6e2050726f746f636f6c00000000000000000000000000000000008152506040518060400160405280600381526020017f415247000000000000000000000000000000000000000000000000000000000081525081600390816101279190610c22565b5080600490816101379190610c22565b50505061015661014b61048560201b60201c565b61048c60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250503360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061022f30600161054f60201b60201c565b61024261dead600161054f60201b60201c565b61025333600161054f60201b60201c565b60805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561029e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c29190610d4f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610329573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061034d9190610d4f565b6040518363ffffffff1660e01b815260040161036a929190610d89565b6020604051808303815f875af1158015610386573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103aa9190610d4f565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061041b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161060360201b60201c565b61044d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161066960201b60201c565b61048060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660095461070760201b60201c565b610f1e565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61055d61086160201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516105f79190610dca565b60405180910390a25050565b61061161086160201b60201c565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c90610e3d565b60405180910390fd5b6107865f83836108eb60201b60201c565b8060025f8282546107979190610e5b565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108449190610e9d565b60405180910390a361085d5f83836108f060201b60201c565b5050565b61086f61048560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166108936108f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e090610f00565b60405180910390fd5b565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61098a8261091d565b91506109958361091d565b9250826109a5576109a4610926565b5b828204905092915050565b5f6109ba8261091d565b91506109c58361091d565b92508282026109d38161091d565b915082820484148315176109ea576109e9610953565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a6c57607f821691505b602082108103610a7f57610a7e610a28565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610ae17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610aa6565b610aeb8683610aa6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610b26610b21610b1c8461091d565b610b03565b61091d565b9050919050565b5f819050919050565b610b3f83610b0c565b610b53610b4b82610b2d565b848454610ab2565b825550505050565b5f90565b610b67610b5b565b610b72818484610b36565b505050565b5b81811015610b9557610b8a5f82610b5f565b600181019050610b78565b5050565b601f821115610bda57610bab81610a85565b610bb484610a97565b81016020851015610bc3578190505b610bd7610bcf85610a97565b830182610b77565b50505b505050565b5f82821c905092915050565b5f610bfa5f1984600802610bdf565b1980831691505092915050565b5f610c128383610beb565b9150826002028217905092915050565b610c2b826109f1565b67ffffffffffffffff811115610c4457610c436109fb565b5b610c4e8254610a55565b610c59828285610b99565b5f60209050601f831160018114610c8a575f8415610c78578287015190505b610c828582610c07565b865550610ce9565b601f198416610c9886610a85565b5f5b82811015610cbf57848901518255600182019150602085019450602081019050610c9a565b86831015610cdc5784890151610cd8601f891682610beb565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d1e82610cf5565b9050919050565b610d2e81610d14565b8114610d38575f80fd5b50565b5f81519050610d4981610d25565b92915050565b5f60208284031215610d6457610d63610cf1565b5b5f610d7184828501610d3b565b91505092915050565b610d8381610d14565b82525050565b5f604082019050610d9c5f830185610d7a565b610da96020830184610d7a565b9392505050565b5f8115159050919050565b610dc481610db0565b82525050565b5f602082019050610ddd5f830184610dbb565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610e27601f83610de3565b9150610e3282610df3565b602082019050919050565b5f6020820190508181035f830152610e5481610e1b565b9050919050565b5f610e658261091d565b9150610e708361091d565b9250828201905080821115610e8857610e87610953565b5b92915050565b610e978161091d565b82525050565b5f602082019050610eb05f830184610e8e565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610eea602083610de3565b9150610ef582610eb6565b602082019050919050565b5f6020820190508181035f830152610f1781610ede565b9050919050565b608051613aae610f525f395f8181610b37015281816117c5015281816123aa0152818161248901526124b00152613aae5ff3fe608060405260043610610212575f3560e01c806371f5f01a11610117578063c876d0b91161009f578063e2f456051161006e578063e2f4560514610767578063f2fde38b14610791578063f8b45b05146107b9578063fc588c04146107e3578063ffb54a991461080b57610219565b8063c876d0b9146106c1578063c8c8ebe4146106eb578063c9567bf914610715578063dd62ed3e1461072b57610219565b80639a7a23d6116100e65780639a7a23d6146105e3578063a0ef91df1461060b578063a457c2d714610621578063a9059cbb1461065d578063c02466681461069957610219565b806371f5f01a1461053f5780637571336a146105675780638da5cb5b1461058f57806395d89b41146105b957610219565b806342966c681161019a57806352f7c9881161016957806352f7c98814610471578063583e0568146104995780636ddd1713146104c357806370a08231146104ed578063715018a61461052957610219565b806342966c68146103b957806347062402146103e157806349bd5a5e1461040b5780634fbee1931461043557610219565b80632b14ca56116101e15780632b14ca56146102e95780632cb743f714610313578063311028af14610329578063313ce56714610353578063395093511461037d57610219565b806306fdde031461021d578063095ea7b31461024757806318160ddd1461028357806323b872dd146102ad57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610835565b60405161023e9190612957565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190612a08565b6108c5565b60405161027a9190612a60565b60405180910390f35b34801561028e575f80fd5b506102976108e7565b6040516102a49190612a88565b60405180910390f35b3480156102b8575f80fd5b506102d360048036038101906102ce9190612aa1565b6108f0565b6040516102e09190612a60565b60405180910390f35b3480156102f4575f80fd5b506102fd61091e565b60405161030a9190612a88565b60405180910390f35b34801561031e575f80fd5b50610327610924565b005b348015610334575f80fd5b5061033d6109be565b60405161034a9190612a88565b60405180910390f35b34801561035e575f80fd5b506103676109c4565b6040516103749190612b0c565b60405180910390f35b348015610388575f80fd5b506103a3600480360381019061039e9190612a08565b6109cc565b6040516103b09190612a60565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da9190612b25565b610a02565b005b3480156103ec575f80fd5b506103f5610a16565b6040516104029190612a88565b60405180910390f35b348015610416575f80fd5b5061041f610a1c565b60405161042c9190612b5f565b60405180910390f35b348015610440575f80fd5b5061045b60048036038101906104569190612b78565b610a41565b6040516104689190612a60565b60405180910390f35b34801561047c575f80fd5b5061049760048036038101906104929190612ba3565b610a93565b005b3480156104a4575f80fd5b506104ad610b35565b6040516104ba9190612c3c565b60405180910390f35b3480156104ce575f80fd5b506104d7610b59565b6040516104e49190612a60565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e9190612b78565b610b6c565b6040516105209190612a88565b60405180910390f35b348015610534575f80fd5b5061053d610bb1565b005b34801561054a575f80fd5b5061056560048036038101906105609190612b25565b610bc4565b005b348015610572575f80fd5b5061058d60048036038101906105889190612c7f565b610c58565b005b34801561059a575f80fd5b506105a3610cb8565b6040516105b09190612b5f565b60405180910390f35b3480156105c4575f80fd5b506105cd610ce0565b6040516105da9190612957565b60405180910390f35b3480156105ee575f80fd5b5061060960048036038101906106049190612c7f565b610d70565b005b348015610616575f80fd5b5061061f610e15565b005b34801561062c575f80fd5b5061064760048036038101906106429190612a08565b610efc565b6040516106549190612a60565b60405180910390f35b348015610668575f80fd5b50610683600480360381019061067e9190612a08565b610f71565b6040516106909190612a60565b60405180910390f35b3480156106a4575f80fd5b506106bf60048036038101906106ba9190612c7f565b610f93565b005b3480156106cc575f80fd5b506106d5611041565b6040516106e29190612a60565b60405180910390f35b3480156106f6575f80fd5b506106ff611054565b60405161070c9190612a88565b60405180910390f35b348015610720575f80fd5b5061072961105a565b005b348015610736575f80fd5b50610751600480360381019061074c9190612cbd565b611099565b60405161075e9190612a88565b60405180910390f35b348015610772575f80fd5b5061077b61111b565b6040516107889190612a88565b60405180910390f35b34801561079c575f80fd5b506107b760048036038101906107b29190612b78565b611121565b005b3480156107c4575f80fd5b506107cd6111a3565b6040516107da9190612a88565b60405180910390f35b3480156107ee575f80fd5b5061080960048036038101906108049190612b25565b6111a9565b005b348015610816575f80fd5b5061081f6111bb565b60405161082c9190612a60565b60405180910390f35b60606003805461084490612d28565b80601f016020809104026020016040519081016040528092919081815260200182805461087090612d28565b80156108bb5780601f10610892576101008083540402835291602001916108bb565b820191905f5260205f20905b81548152906001019060200180831161089e57829003601f168201915b5050505050905090565b5f806108cf6111cd565b90506108dc8185856111d4565b600191505092915050565b5f600254905090565b5f806108fa6111cd565b9050610907858285611397565b610912858585611422565b60019150509392505050565b600b5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109646111cd565b73ffffffffffffffffffffffffffffffffffffffff1614610983575f80fd5b5f61098d30610b6c565b90506109bb3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611422565b50565b60095481565b5f6012905090565b5f806109d66111cd565b90506109f78185856109e88589611099565b6109f29190612d85565b6111d4565b600191505092915050565b610a13610a0d6111cd565b82612009565b50565b600a5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610a9b6121cc565b601f811115610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad690612e02565b60405180910390fd5b601f821115610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612e6a565b60405180910390fd5b80600b8190555081600a819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601160019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bb96121cc565b610bc25f61224a565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c046111cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c23575f80fd5b5f610c2d30610b6c565b90505f60648383610c3e9190612e88565b610c489190612ef6565b9050610c538161230d565b505050565b610c606121cc565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610cef90612d28565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1b90612d28565b8015610d665780601f10610d3d57610100808354040283529160200191610d66565b820191905f5260205f20905b815481529060010190602001808311610d4957829003601f168201915b5050505050905090565b610d786121cc565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90612f96565b60405180910390fd5b610e118282612561565b5050565b5f4711610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612ffe565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e976111cd565b73ffffffffffffffffffffffffffffffffffffffff1614610eb6575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ef9573d5f803e3d5ffd5b50565b5f80610f066111cd565b90505f610f138286611099565b905083811015610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f9061308c565b60405180910390fd5b610f6582868684036111d4565b60019250505092915050565b5f80610f7b6111cd565b9050610f88818585611422565b600191505092915050565b610f9b6121cc565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516110359190612a60565b60405180910390a25050565b600e60019054906101000a900460ff1681565b600d5481565b6110626121cc565b6001601160016101000a81548160ff021916908315150217905550600160115f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b6111296121cc565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e9061311a565b60405180910390fd5b6111a08161224a565b50565b600c5481565b6111b16121cc565b80600d8190555050565b60115f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906131a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790613236565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138a9190612a88565b60405180910390a3505050565b5f6113a28484611099565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461141c578181101561140e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114059061329e565b60405180910390fd5b61141b84848484036111d4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611490576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114879061332c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f5906133ba565b60405180910390fd5b5f81036115155761151083835f6125ff565b612004565b61151d610cb8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158b575061155b610cb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115c357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115fd575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116155750600e5f9054906101000a900460ff16155b15611c985760115f9054906101000a900460ff166117085760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806116c8575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fe90613422565b60405180910390fd5b5b600e60019054906101000a900460ff16801561176b575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117be575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119be577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561186c575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119bd5743600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541080156118f9575043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f906134b0565b60405180910390fd5b43600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611a5b575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0257600d54811115611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c9061353e565b60405180910390fd5b600c54611ab183610b6c565b82611abc9190612d85565b1115611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906135a6565b60405180910390fd5b611c97565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b9f575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bee57600d54811115611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090613634565b60405180910390fd5b611c96565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611c9557600c54611c4883610b6c565b82611c539190612d85565b1115611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b906135a6565b60405180910390fd5b5b5b5b5b5f611ca230610b6c565b90505f60105482119050808015611cc55750601160019054906101000a900460ff165b8015611cdd5750600e5f9054906101000a900460ff16155b8015611d30575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d83575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611dd6575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e18576001600e5f6101000a81548160ff021916908315150217905550611dfe8361286b565b5f600e5f6101000a81548160ff0219169083151502179055505b5f600e5f9054906101000a900460ff16158015611e7c575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ecf575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f8115611ff45760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f5657611f4f6064611f41600b54886128b390919063ffffffff16565b6128c890919063ffffffff16565b9050611fd1565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611fd057611fcd6064611fbf600a54886128b390919063ffffffff16565b6128c890919063ffffffff16565b90505b5b5f811115611fe557611fe48730836125ff565b5b8085611ff19190613652565b94505b611fff8787876125ff565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206e906136f5565b60405180910390fd5b612082825f836128dd565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fc90613783565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121b49190612a88565b60405180910390a36121c7835f846128e2565b505050565b6121d46111cd565b73ffffffffffffffffffffffffffffffffffffffff166121f2610cb8565b73ffffffffffffffffffffffffffffffffffffffff1614612248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223f906137eb565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561232957612328613809565b5b6040519080825280602002602001820160405280156123575781602001602082028036833780820191505090505b50905030815f8151811061236e5761236d613836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612411573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124359190613877565b8160018151811061244957612448613836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124ae307f0000000000000000000000000000000000000000000000000000000000000000846111d4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612530959493929190613992565b5f604051808303815f87803b158015612547575f80fd5b505af1158015612559573d5f803e3d5ffd5b505050505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361266d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126649061332c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d2906133ba565b60405180910390fd5b6126e68383836128dd565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276090613a5a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128529190612a88565b60405180910390a36128658484846128e2565b50505050565b5f61287530610b6c565b90505f810361288457506128b0565b5f8190506010548111156128985760105490505b828111156128a4578290505b6128ad8161230d565b50505b50565b5f81836128c09190612e88565b905092915050565b5f81836128d59190612ef6565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612929826128e7565b61293381856128f1565b9350612943818560208601612901565b61294c8161290f565b840191505092915050565b5f6020820190508181035f83015261296f818461291f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129a48261297b565b9050919050565b6129b48161299a565b81146129be575f80fd5b50565b5f813590506129cf816129ab565b92915050565b5f819050919050565b6129e7816129d5565b81146129f1575f80fd5b50565b5f81359050612a02816129de565b92915050565b5f8060408385031215612a1e57612a1d612977565b5b5f612a2b858286016129c1565b9250506020612a3c858286016129f4565b9150509250929050565b5f8115159050919050565b612a5a81612a46565b82525050565b5f602082019050612a735f830184612a51565b92915050565b612a82816129d5565b82525050565b5f602082019050612a9b5f830184612a79565b92915050565b5f805f60608486031215612ab857612ab7612977565b5b5f612ac5868287016129c1565b9350506020612ad6868287016129c1565b9250506040612ae7868287016129f4565b9150509250925092565b5f60ff82169050919050565b612b0681612af1565b82525050565b5f602082019050612b1f5f830184612afd565b92915050565b5f60208284031215612b3a57612b39612977565b5b5f612b47848285016129f4565b91505092915050565b612b598161299a565b82525050565b5f602082019050612b725f830184612b50565b92915050565b5f60208284031215612b8d57612b8c612977565b5b5f612b9a848285016129c1565b91505092915050565b5f8060408385031215612bb957612bb8612977565b5b5f612bc6858286016129f4565b9250506020612bd7858286016129f4565b9150509250929050565b5f819050919050565b5f612c04612bff612bfa8461297b565b612be1565b61297b565b9050919050565b5f612c1582612bea565b9050919050565b5f612c2682612c0b565b9050919050565b612c3681612c1c565b82525050565b5f602082019050612c4f5f830184612c2d565b92915050565b612c5e81612a46565b8114612c68575f80fd5b50565b5f81359050612c7981612c55565b92915050565b5f8060408385031215612c9557612c94612977565b5b5f612ca2858286016129c1565b9250506020612cb385828601612c6b565b9150509250929050565b5f8060408385031215612cd357612cd2612977565b5b5f612ce0858286016129c1565b9250506020612cf1858286016129c1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d3f57607f821691505b602082108103612d5257612d51612cfb565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d8f826129d5565b9150612d9a836129d5565b9250828201905080821115612db257612db1612d58565b5b92915050565b7f46656573206d757374206265206c657373207468616e203331000000000000005f82015250565b5f612dec6019836128f1565b9150612df782612db8565b602082019050919050565b5f6020820190508181035f830152612e1981612de0565b9050919050565b7f46656573206d757374206265206c657373207468616e203331250000000000005f82015250565b5f612e54601a836128f1565b9150612e5f82612e20565b602082019050919050565b5f6020820190508181035f830152612e8181612e48565b9050919050565b5f612e92826129d5565b9150612e9d836129d5565b9250828202612eab816129d5565b91508282048414831517612ec257612ec1612d58565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f00826129d5565b9150612f0b836129d5565b925082612f1b57612f1a612ec9565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612f806039836128f1565b9150612f8b82612f26565b604082019050919050565b5f6020820190508181035f830152612fad81612f74565b9050919050565b7f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000005f82015250565b5f612fe8601d836128f1565b9150612ff382612fb4565b602082019050919050565b5f6020820190508181035f83015261301581612fdc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6130766025836128f1565b91506130818261301c565b604082019050919050565b5f6020820190508181035f8301526130a38161306a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6131046026836128f1565b915061310f826130aa565b604082019050919050565b5f6020820190508181035f830152613131816130f8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131926024836128f1565b915061319d82613138565b604082019050919050565b5f6020820190508181035f8301526131bf81613186565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132206022836128f1565b915061322b826131c6565b604082019050919050565b5f6020820190508181035f83015261324d81613214565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613288601d836128f1565b915061329382613254565b602082019050919050565b5f6020820190508181035f8301526132b58161327c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133166025836128f1565b9150613321826132bc565b604082019050919050565b5f6020820190508181035f8301526133438161330a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133a46023836128f1565b91506133af8261334a565b604082019050919050565b5f6020820190508181035f8301526133d181613398565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61340c6016836128f1565b9150613417826133d8565b602082019050919050565b5f6020820190508181035f83015261343981613400565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b5f61349a6035836128f1565b91506134a582613440565b604082019050919050565b5f6020820190508181035f8301526134c78161348e565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6135286035836128f1565b9150613533826134ce565b604082019050919050565b5f6020820190508181035f8301526135558161351c565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6135906013836128f1565b915061359b8261355c565b602082019050919050565b5f6020820190508181035f8301526135bd81613584565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61361e6036836128f1565b9150613629826135c4565b604082019050919050565b5f6020820190508181035f83015261364b81613612565b9050919050565b5f61365c826129d5565b9150613667836129d5565b925082820390508181111561367f5761367e612d58565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136df6021836128f1565b91506136ea82613685565b604082019050919050565b5f6020820190508181035f83015261370c816136d3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f61376d6022836128f1565b915061377882613713565b604082019050919050565b5f6020820190508181035f83015261379a81613761565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137d56020836128f1565b91506137e0826137a1565b602082019050919050565b5f6020820190508181035f830152613802816137c9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613871816129ab565b92915050565b5f6020828403121561388c5761388b612977565b5b5f61389984828501613863565b91505092915050565b5f819050919050565b5f6138c56138c06138bb846138a2565b612be1565b6129d5565b9050919050565b6138d5816138ab565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61390d8161299a565b82525050565b5f61391e8383613904565b60208301905092915050565b5f602082019050919050565b5f613940826138db565b61394a81856138e5565b9350613955836138f5565b805f5b8381101561398557815161396c8882613913565b97506139778361392a565b925050600181019050613958565b5085935050505092915050565b5f60a0820190506139a55f830188612a79565b6139b260208301876138cc565b81810360408301526139c48186613936565b90506139d36060830185612b50565b6139e06080830184612a79565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613a446026836128f1565b9150613a4f826139ea565b604082019050919050565b5f6020820190508181035f830152613a7181613a38565b905091905056fea2646970667358221220a0a5931afd6fb3ca8ddf184a850dc3225b894f962c9e013f662a387d1e01715b64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610212575f3560e01c806371f5f01a11610117578063c876d0b91161009f578063e2f456051161006e578063e2f4560514610767578063f2fde38b14610791578063f8b45b05146107b9578063fc588c04146107e3578063ffb54a991461080b57610219565b8063c876d0b9146106c1578063c8c8ebe4146106eb578063c9567bf914610715578063dd62ed3e1461072b57610219565b80639a7a23d6116100e65780639a7a23d6146105e3578063a0ef91df1461060b578063a457c2d714610621578063a9059cbb1461065d578063c02466681461069957610219565b806371f5f01a1461053f5780637571336a146105675780638da5cb5b1461058f57806395d89b41146105b957610219565b806342966c681161019a57806352f7c9881161016957806352f7c98814610471578063583e0568146104995780636ddd1713146104c357806370a08231146104ed578063715018a61461052957610219565b806342966c68146103b957806347062402146103e157806349bd5a5e1461040b5780634fbee1931461043557610219565b80632b14ca56116101e15780632b14ca56146102e95780632cb743f714610313578063311028af14610329578063313ce56714610353578063395093511461037d57610219565b806306fdde031461021d578063095ea7b31461024757806318160ddd1461028357806323b872dd146102ad57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610231610835565b60405161023e9190612957565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190612a08565b6108c5565b60405161027a9190612a60565b60405180910390f35b34801561028e575f80fd5b506102976108e7565b6040516102a49190612a88565b60405180910390f35b3480156102b8575f80fd5b506102d360048036038101906102ce9190612aa1565b6108f0565b6040516102e09190612a60565b60405180910390f35b3480156102f4575f80fd5b506102fd61091e565b60405161030a9190612a88565b60405180910390f35b34801561031e575f80fd5b50610327610924565b005b348015610334575f80fd5b5061033d6109be565b60405161034a9190612a88565b60405180910390f35b34801561035e575f80fd5b506103676109c4565b6040516103749190612b0c565b60405180910390f35b348015610388575f80fd5b506103a3600480360381019061039e9190612a08565b6109cc565b6040516103b09190612a60565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da9190612b25565b610a02565b005b3480156103ec575f80fd5b506103f5610a16565b6040516104029190612a88565b60405180910390f35b348015610416575f80fd5b5061041f610a1c565b60405161042c9190612b5f565b60405180910390f35b348015610440575f80fd5b5061045b60048036038101906104569190612b78565b610a41565b6040516104689190612a60565b60405180910390f35b34801561047c575f80fd5b5061049760048036038101906104929190612ba3565b610a93565b005b3480156104a4575f80fd5b506104ad610b35565b6040516104ba9190612c3c565b60405180910390f35b3480156104ce575f80fd5b506104d7610b59565b6040516104e49190612a60565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e9190612b78565b610b6c565b6040516105209190612a88565b60405180910390f35b348015610534575f80fd5b5061053d610bb1565b005b34801561054a575f80fd5b5061056560048036038101906105609190612b25565b610bc4565b005b348015610572575f80fd5b5061058d60048036038101906105889190612c7f565b610c58565b005b34801561059a575f80fd5b506105a3610cb8565b6040516105b09190612b5f565b60405180910390f35b3480156105c4575f80fd5b506105cd610ce0565b6040516105da9190612957565b60405180910390f35b3480156105ee575f80fd5b5061060960048036038101906106049190612c7f565b610d70565b005b348015610616575f80fd5b5061061f610e15565b005b34801561062c575f80fd5b5061064760048036038101906106429190612a08565b610efc565b6040516106549190612a60565b60405180910390f35b348015610668575f80fd5b50610683600480360381019061067e9190612a08565b610f71565b6040516106909190612a60565b60405180910390f35b3480156106a4575f80fd5b506106bf60048036038101906106ba9190612c7f565b610f93565b005b3480156106cc575f80fd5b506106d5611041565b6040516106e29190612a60565b60405180910390f35b3480156106f6575f80fd5b506106ff611054565b60405161070c9190612a88565b60405180910390f35b348015610720575f80fd5b5061072961105a565b005b348015610736575f80fd5b50610751600480360381019061074c9190612cbd565b611099565b60405161075e9190612a88565b60405180910390f35b348015610772575f80fd5b5061077b61111b565b6040516107889190612a88565b60405180910390f35b34801561079c575f80fd5b506107b760048036038101906107b29190612b78565b611121565b005b3480156107c4575f80fd5b506107cd6111a3565b6040516107da9190612a88565b60405180910390f35b3480156107ee575f80fd5b5061080960048036038101906108049190612b25565b6111a9565b005b348015610816575f80fd5b5061081f6111bb565b60405161082c9190612a60565b60405180910390f35b60606003805461084490612d28565b80601f016020809104026020016040519081016040528092919081815260200182805461087090612d28565b80156108bb5780601f10610892576101008083540402835291602001916108bb565b820191905f5260205f20905b81548152906001019060200180831161089e57829003601f168201915b5050505050905090565b5f806108cf6111cd565b90506108dc8185856111d4565b600191505092915050565b5f600254905090565b5f806108fa6111cd565b9050610907858285611397565b610912858585611422565b60019150509392505050565b600b5481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109646111cd565b73ffffffffffffffffffffffffffffffffffffffff1614610983575f80fd5b5f61098d30610b6c565b90506109bb3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611422565b50565b60095481565b5f6012905090565b5f806109d66111cd565b90506109f78185856109e88589611099565b6109f29190612d85565b6111d4565b600191505092915050565b610a13610a0d6111cd565b82612009565b50565b600a5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610a9b6121cc565b601f811115610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad690612e02565b60405180910390fd5b601f821115610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612e6a565b60405180910390fd5b80600b8190555081600a819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601160019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bb96121cc565b610bc25f61224a565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c046111cd565b73ffffffffffffffffffffffffffffffffffffffff1614610c23575f80fd5b5f610c2d30610b6c565b90505f60648383610c3e9190612e88565b610c489190612ef6565b9050610c538161230d565b505050565b610c606121cc565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610cef90612d28565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1b90612d28565b8015610d665780601f10610d3d57610100808354040283529160200191610d66565b820191905f5260205f20905b815481529060010190602001808311610d4957829003601f168201915b5050505050905090565b610d786121cc565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90612f96565b60405180910390fd5b610e118282612561565b5050565b5f4711610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612ffe565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e976111cd565b73ffffffffffffffffffffffffffffffffffffffff1614610eb6575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610ef9573d5f803e3d5ffd5b50565b5f80610f066111cd565b90505f610f138286611099565b905083811015610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f9061308c565b60405180910390fd5b610f6582868684036111d4565b60019250505092915050565b5f80610f7b6111cd565b9050610f88818585611422565b600191505092915050565b610f9b6121cc565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516110359190612a60565b60405180910390a25050565b600e60019054906101000a900460ff1681565b600d5481565b6110626121cc565b6001601160016101000a81548160ff021916908315150217905550600160115f6101000a81548160ff021916908315150217905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b6111296121cc565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e9061311a565b60405180910390fd5b6111a08161224a565b50565b600c5481565b6111b16121cc565b80600d8190555050565b60115f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611239906131a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790613236565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138a9190612a88565b60405180910390a3505050565b5f6113a28484611099565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461141c578181101561140e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114059061329e565b60405180910390fd5b61141b84848484036111d4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611490576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114879061332c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f5906133ba565b60405180910390fd5b5f81036115155761151083835f6125ff565b612004565b61151d610cb8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158b575061155b610cb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115c357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115fd575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116155750600e5f9054906101000a900460ff16155b15611c985760115f9054906101000a900460ff166117085760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806116c8575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fe90613422565b60405180910390fd5b5b600e60019054906101000a900460ff16801561176b575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156117be575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119be577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561186c575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119bd5743600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541080156118f9575043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b611938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192f906134b0565b60405180910390fd5b43600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555043600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611a5b575060135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b0257600d54811115611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c9061353e565b60405180910390fd5b600c54611ab183610b6c565b82611abc9190612d85565b1115611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906135a6565b60405180910390fd5b611c97565b60145f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b9f575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bee57600d54811115611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be090613634565b60405180910390fd5b611c96565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611c9557600c54611c4883610b6c565b82611c539190612d85565b1115611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b906135a6565b60405180910390fd5b5b5b5b5b5f611ca230610b6c565b90505f60105482119050808015611cc55750601160019054906101000a900460ff165b8015611cdd5750600e5f9054906101000a900460ff16155b8015611d30575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d83575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611dd6575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e18576001600e5f6101000a81548160ff021916908315150217905550611dfe8361286b565b5f600e5f6101000a81548160ff0219169083151502179055505b5f600e5f9054906101000a900460ff16158015611e7c575060125f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ecf575060125f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b90505f8115611ff45760145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f5657611f4f6064611f41600b54886128b390919063ffffffff16565b6128c890919063ffffffff16565b9050611fd1565b60145f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611fd057611fcd6064611fbf600a54886128b390919063ffffffff16565b6128c890919063ffffffff16565b90505b5b5f811115611fe557611fe48730836125ff565b5b8085611ff19190613652565b94505b611fff8787876125ff565b505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206e906136f5565b60405180910390fd5b612082825f836128dd565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fc90613783565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121b49190612a88565b60405180910390a36121c7835f846128e2565b505050565b6121d46111cd565b73ffffffffffffffffffffffffffffffffffffffff166121f2610cb8565b73ffffffffffffffffffffffffffffffffffffffff1614612248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223f906137eb565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff81111561232957612328613809565b5b6040519080825280602002602001820160405280156123575781602001602082028036833780820191505090505b50905030815f8151811061236e5761236d613836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612411573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124359190613877565b8160018151811061244957612448613836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124ae307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846111d4565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612530959493929190613992565b5f604051808303815f87803b158015612547575f80fd5b505af1158015612559573d5f803e3d5ffd5b505050505050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361266d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126649061332c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d2906133ba565b60405180910390fd5b6126e68383836128dd565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276090613a5a565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128529190612a88565b60405180910390a36128658484846128e2565b50505050565b5f61287530610b6c565b90505f810361288457506128b0565b5f8190506010548111156128985760105490505b828111156128a4578290505b6128ad8161230d565b50505b50565b5f81836128c09190612e88565b905092915050565b5f81836128d59190612ef6565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612929826128e7565b61293381856128f1565b9350612943818560208601612901565b61294c8161290f565b840191505092915050565b5f6020820190508181035f83015261296f818461291f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6129a48261297b565b9050919050565b6129b48161299a565b81146129be575f80fd5b50565b5f813590506129cf816129ab565b92915050565b5f819050919050565b6129e7816129d5565b81146129f1575f80fd5b50565b5f81359050612a02816129de565b92915050565b5f8060408385031215612a1e57612a1d612977565b5b5f612a2b858286016129c1565b9250506020612a3c858286016129f4565b9150509250929050565b5f8115159050919050565b612a5a81612a46565b82525050565b5f602082019050612a735f830184612a51565b92915050565b612a82816129d5565b82525050565b5f602082019050612a9b5f830184612a79565b92915050565b5f805f60608486031215612ab857612ab7612977565b5b5f612ac5868287016129c1565b9350506020612ad6868287016129c1565b9250506040612ae7868287016129f4565b9150509250925092565b5f60ff82169050919050565b612b0681612af1565b82525050565b5f602082019050612b1f5f830184612afd565b92915050565b5f60208284031215612b3a57612b39612977565b5b5f612b47848285016129f4565b91505092915050565b612b598161299a565b82525050565b5f602082019050612b725f830184612b50565b92915050565b5f60208284031215612b8d57612b8c612977565b5b5f612b9a848285016129c1565b91505092915050565b5f8060408385031215612bb957612bb8612977565b5b5f612bc6858286016129f4565b9250506020612bd7858286016129f4565b9150509250929050565b5f819050919050565b5f612c04612bff612bfa8461297b565b612be1565b61297b565b9050919050565b5f612c1582612bea565b9050919050565b5f612c2682612c0b565b9050919050565b612c3681612c1c565b82525050565b5f602082019050612c4f5f830184612c2d565b92915050565b612c5e81612a46565b8114612c68575f80fd5b50565b5f81359050612c7981612c55565b92915050565b5f8060408385031215612c9557612c94612977565b5b5f612ca2858286016129c1565b9250506020612cb385828601612c6b565b9150509250929050565b5f8060408385031215612cd357612cd2612977565b5b5f612ce0858286016129c1565b9250506020612cf1858286016129c1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d3f57607f821691505b602082108103612d5257612d51612cfb565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d8f826129d5565b9150612d9a836129d5565b9250828201905080821115612db257612db1612d58565b5b92915050565b7f46656573206d757374206265206c657373207468616e203331000000000000005f82015250565b5f612dec6019836128f1565b9150612df782612db8565b602082019050919050565b5f6020820190508181035f830152612e1981612de0565b9050919050565b7f46656573206d757374206265206c657373207468616e203331250000000000005f82015250565b5f612e54601a836128f1565b9150612e5f82612e20565b602082019050919050565b5f6020820190508181035f830152612e8181612e48565b9050919050565b5f612e92826129d5565b9150612e9d836129d5565b9250828202612eab816129d5565b91508282048414831517612ec257612ec1612d58565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f00826129d5565b9150612f0b836129d5565b925082612f1b57612f1a612ec9565b5b828204905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612f806039836128f1565b9150612f8b82612f26565b604082019050919050565b5f6020820190508181035f830152612fad81612f74565b9050919050565b7f546f6b656e3a206e6f2045544820696e2074686520636f6e74726163740000005f82015250565b5f612fe8601d836128f1565b9150612ff382612fb4565b602082019050919050565b5f6020820190508181035f83015261301581612fdc565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6130766025836128f1565b91506130818261301c565b604082019050919050565b5f6020820190508181035f8301526130a38161306a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6131046026836128f1565b915061310f826130aa565b604082019050919050565b5f6020820190508181035f830152613131816130f8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131926024836128f1565b915061319d82613138565b604082019050919050565b5f6020820190508181035f8301526131bf81613186565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132206022836128f1565b915061322b826131c6565b604082019050919050565b5f6020820190508181035f83015261324d81613214565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613288601d836128f1565b915061329382613254565b602082019050919050565b5f6020820190508181035f8301526132b58161327c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6133166025836128f1565b9150613321826132bc565b604082019050919050565b5f6020820190508181035f8301526133438161330a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133a46023836128f1565b91506133af8261334a565b604082019050919050565b5f6020820190508181035f8301526133d181613398565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61340c6016836128f1565b9150613417826133d8565b602082019050919050565b5f6020820190508181035f83015261343981613400565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e202054727920616761696e206c617465722e0000000000000000000000602082015250565b5f61349a6035836128f1565b91506134a582613440565b604082019050919050565b5f6020820190508181035f8301526134c78161348e565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6135286035836128f1565b9150613533826134ce565b604082019050919050565b5f6020820190508181035f8301526135558161351c565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6135906013836128f1565b915061359b8261355c565b602082019050919050565b5f6020820190508181035f8301526135bd81613584565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f61361e6036836128f1565b9150613629826135c4565b604082019050919050565b5f6020820190508181035f83015261364b81613612565b9050919050565b5f61365c826129d5565b9150613667836129d5565b925082820390508181111561367f5761367e612d58565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136df6021836128f1565b91506136ea82613685565b604082019050919050565b5f6020820190508181035f83015261370c816136d3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f61376d6022836128f1565b915061377882613713565b604082019050919050565b5f6020820190508181035f83015261379a81613761565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137d56020836128f1565b91506137e0826137a1565b602082019050919050565b5f6020820190508181035f830152613802816137c9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613871816129ab565b92915050565b5f6020828403121561388c5761388b612977565b5b5f61389984828501613863565b91505092915050565b5f819050919050565b5f6138c56138c06138bb846138a2565b612be1565b6129d5565b9050919050565b6138d5816138ab565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61390d8161299a565b82525050565b5f61391e8383613904565b60208301905092915050565b5f602082019050919050565b5f613940826138db565b61394a81856138e5565b9350613955836138f5565b805f5b8381101561398557815161396c8882613913565b97506139778361392a565b925050600181019050613958565b5085935050505092915050565b5f60a0820190506139a55f830188612a79565b6139b260208301876138cc565b81810360408301526139c48186613936565b90506139d36060830185612b50565b6139e06080830184612a79565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613a446026836128f1565b9150613a4f826139ea565b604082019050919050565b5f6020820190508181035f830152613a7181613a38565b905091905056fea2646970667358221220a0a5931afd6fb3ca8ddf184a850dc3225b894f962c9e013f662a387d1e01715b64736f6c634300081a0033

Deployed Bytecode Sourcemap

14584:8167:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9812:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10744:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10133:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10953:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15040:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22062:194;;;;;;;;;;;;;:::i;:::-;;14937:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10032:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11222:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16665:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15007:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14719:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17787:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21280:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14660:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15517:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10249:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1023:103;;;;;;;;;;;;;:::i;:::-;;21548:273;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16758:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;788:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9920:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17328:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21829:225;;;;;;;;;;;;;:::i;:::-;;11468:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10384:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17030:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15260:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15153:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16912:110;;;;;;;;;;;;;:::i;:::-;;10585:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15405:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1134:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15101:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17220:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15479:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9812:100;9866:13;9899:5;9892:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9812:100;:::o;10744:201::-;10827:4;10844:13;10860:12;:10;:12::i;:::-;10844:28;;10883:32;10892:5;10899:7;10908:6;10883:8;:32::i;:::-;10933:4;10926:11;;;10744:201;;;;:::o;10133:108::-;10194:7;10221:12;;10214:19;;10133:108;:::o;10953:261::-;11050:4;11067:15;11085:12;:10;:12::i;:::-;11067:30;;11108:38;11124:4;11130:7;11139:6;11108:15;:38::i;:::-;11157:27;11167:4;11173:2;11177:6;11157:9;:27::i;:::-;11202:4;11195:11;;;10953:261;;;;;:::o;15040:27::-;;;;:::o;22062:194::-;22132:9;;;;;;;;;;;22116:25;;:12;:10;:12::i;:::-;:25;;;22108:34;;;;;;22153:14;22170:24;22188:4;22170:9;:24::i;:::-;22153:41;;22205:43;22223:4;22230:9;;;;;;;;;;;22241:6;22205:9;:43::i;:::-;22097:159;22062:194::o;14937:61::-;;;;:::o;10032:93::-;10090:5;10115:2;10108:9;;10032:93;:::o;11222:238::-;11310:4;11327:13;11343:12;:10;:12::i;:::-;11327:28;;11366:64;11375:5;11382:7;11419:10;11391:25;11401:5;11408:7;11391:9;:25::i;:::-;:38;;;;:::i;:::-;11366:8;:64::i;:::-;11448:4;11441:11;;;11222:238;;;;:::o;16665:85::-;16715:27;16721:12;:10;:12::i;:::-;16735:6;16715:5;:27::i;:::-;16665:85;:::o;15007:26::-;;;;:::o;14719:28::-;;;;;;;;;;;;;:::o;17787:126::-;17853:4;17877:19;:28;17897:7;17877:28;;;;;;;;;;;;;;;;;;;;;;;;;17870:35;;17787:126;;;:::o;21280:260::-;747:13;:11;:13::i;:::-;21381:2:::1;21369:8;:14;;21361:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21443:2;21432:7;:13;;21424:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21497:8;21487:7;:18;;;;21525:7;21516:6;:16;;;;21280:260:::0;;:::o;14660:52::-;;;:::o;15517:31::-;;;;;;;;;;;;;:::o;10249:127::-;10323:7;10350:9;:18;10360:7;10350:18;;;;;;;;;;;;;;;;10343:25;;10249:127;;;:::o;1023:103::-;747:13;:11;:13::i;:::-;1088:30:::1;1115:1;1088:18;:30::i;:::-;1023:103::o:0;21548:273::-;21634:15;;;;;;;;;;;21618:31;;:12;:10;:12::i;:::-;:31;;;21610:40;;;;;;21661:23;21687:24;21705:4;21687:9;:24::i;:::-;21661:50;;21722:18;21771:3;21761:7;21743:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;21722:52;;21785:28;21802:10;21785:16;:28::i;:::-;21599:222;;21548:273;:::o;16758:144::-;747:13;:11;:13::i;:::-;16890:4:::1;16848:31;:39;16880:6;16848:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16758:144:::0;;:::o;788:87::-;834:7;861:6;;;;;;;;;;;854:13;;788:87;:::o;9920:104::-;9976:13;10009:7;10002:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9920:104;:::o;17328:257::-;747:13;:11;:13::i;:::-;17450::::1;;;;;;;;;;;17442:21;;:4;:21;;::::0;17434:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17536:41;17565:4;17571:5;17536:28;:41::i;:::-;17328:257:::0;;:::o;21829:225::-;21904:1;21880:21;:25;21872:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21974:9;;;;;;;;;;;21958:25;;:12;:10;:12::i;:::-;:25;;;21950:34;;;;;;22003:10;21995:28;;:51;22024:21;21995:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21829:225::o;11468:436::-;11561:4;11578:13;11594:12;:10;:12::i;:::-;11578:28;;11617:24;11644:25;11654:5;11661:7;11644:9;:25::i;:::-;11617:52;;11708:15;11688:16;:35;;11680:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11801:60;11810:5;11817:7;11845:15;11826:16;:34;11801:8;:60::i;:::-;11892:4;11885:11;;;;11468:436;;;;:::o;10384:193::-;10463:4;10480:13;10496:12;:10;:12::i;:::-;10480:28;;10519;10529:5;10536:2;10540:6;10519:9;:28::i;:::-;10565:4;10558:11;;;10384:193;;;;:::o;17030:182::-;747:13;:11;:13::i;:::-;17146:8:::1;17115:19;:28;17135:7;17115:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17186:7;17170:34;;;17195:8;17170:34;;;;;;:::i;:::-;;;;;;;;17030:182:::0;;:::o;15260:40::-;;;;;;;;;;;;;:::o;15153:62::-;;;;:::o;16912:110::-;747:13;:11;:13::i;:::-;16981:4:::1;16967:11;;:18;;;;;;;;;;;;;;;;;;17010:4;16996:11;;:18;;;;;;;;;;;;;;;;;;16912:110::o:0;10585:151::-;10674:7;10701:11;:18;10713:5;10701:18;;;;;;;;;;;;;;;:27;10720:7;10701:27;;;;;;;;;;;;;;;;10694:34;;10585:151;;;;:::o;15405:65::-;;;;:::o;1134:201::-;747:13;:11;:13::i;:::-;1243:1:::1;1223:22;;:8;:22;;::::0;1215:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:28;1318:8;1299:18;:28::i;:::-;1134:201:::0;:::o;15101:45::-;;;;:::o;17220:100::-;747:13;:11;:13::i;:::-;17306:6:::1;17283:20;:29;;;;17220:100:::0;:::o;15479:31::-;;;;;;;;;;;;;:::o;261:98::-;314:7;341:10;334:17;;261:98;:::o;13607:346::-;13726:1;13709:19;;:5;:19;;;13701:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13807:1;13788:21;;:7;:21;;;13780:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13891:6;13861:11;:18;13873:5;13861:18;;;;;;;;;;;;;;;:27;13880:7;13861:27;;;;;;;;;;;;;;;:36;;;;13929:7;13913:32;;13922:5;13913:32;;;13938:6;13913:32;;;;;;:::i;:::-;;;;;;;;13607:346;;;:::o;13961:419::-;14062:24;14089:25;14099:5;14106:7;14089:9;:25::i;:::-;14062:52;;14149:17;14129:16;:37;14125:248;;14211:6;14191:16;:26;;14183:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14295:51;14304:5;14311:7;14339:6;14320:16;:25;14295:8;:51::i;:::-;14125:248;14051:329;13961:419;;;:::o;17921:2867::-;18035:1;18019:18;;:4;:18;;;18011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18112:1;18098:16;;:2;:16;;;18090:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18181:1;18171:6;:11;18167:93;;18199:28;18215:4;18221:2;18225:1;18199:15;:28::i;:::-;18242:7;;18167:93;18284:7;:5;:7::i;:::-;18276:15;;:4;:15;;;;:32;;;;;18301:7;:5;:7::i;:::-;18295:13;;:2;:13;;;;18276:32;:52;;;;;18326:1;18312:16;;:2;:16;;;;18276:52;:77;;;;;18346:6;18332:21;;:2;:21;;;;18276:77;:90;;;;;18358:8;;;;;;;;;;;18357:9;18276:90;18272:1545;;;18388:11;;;;;;;;;;;18383:140;;18428:19;:25;18448:4;18428:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;18457:19;:23;18477:2;18457:23;;;;;;;;;;;;;;;;;;;;;;;;;18428:52;18420:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;18383:140;18543:20;;;;;;;;;;;:50;;;;;18568:19;:25;18588:4;18568:25;;;;;;;;;;;;;;;;;;;;;;;;;18567:26;18543:50;:78;;;;;18598:19;:23;18618:2;18598:23;;;;;;;;;;;;;;;;;;;;;;;;;18597:24;18543:78;18539:566;;;18663:16;18649:31;;:2;:31;;;;:63;;;;;18698:13;;;;;;;;;;;18684:28;;:2;:28;;;;18649:63;18645:445;;;18790:12;18748:28;:39;18777:9;18748:39;;;;;;;;;;;;;;;;:54;:105;;;;;18841:12;18806:28;:32;18835:2;18806:32;;;;;;;;;;;;;;;;:47;18748:105;18740:171;;;;;;;;;;;;:::i;:::-;;;;;;;;;18980:12;18938:28;:39;18967:9;18938:39;;;;;;;;;;;;;;;:54;;;;19054:12;19019:28;:32;19048:2;19019:32;;;;;;;;;;;;;;;:47;;;;18645:445;18539:566;19125:25;:31;19151:4;19125:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19161:31;:35;19193:2;19161:35;;;;;;;;;;;;;;;;;;;;;;;;;19160:36;19125:71;19121:685;;;19235:20;;19225:6;:30;;19217:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19366:9;;19349:13;19359:2;19349:9;:13::i;:::-;19340:6;:22;;;;:::i;:::-;:35;;19332:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19121:685;;;19438:25;:29;19464:2;19438:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19472:31;:37;19504:4;19472:37;;;;;;;;;;;;;;;;;;;;;;;;;19471:38;19438:71;19434:372;;;19548:20;;19538:6;:30;;19530:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19434:372;;;19667:31;:35;19699:2;19667:35;;;;;;;;;;;;;;;;;;;;;;;;;19662:144;;19757:9;;19740:13;19750:2;19740:9;:13::i;:::-;19731:6;:22;;;;:::i;:::-;:35;;19723:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19662:144;19434:372;19121:685;18272:1545;19829:28;19860:24;19878:4;19860:9;:24::i;:::-;19829:55;;19895:12;19933:18;;19910:20;:41;19895:56;;19966:7;:22;;;;;19977:11;;;;;;;;;;;19966:22;:35;;;;;19993:8;;;;;;;;;;;19992:9;19966:35;:71;;;;;20006:25;:31;20032:4;20006:31;;;;;;;;;;;;;;;;;;;;;;;;;20005:32;19966:71;:101;;;;;20042:19;:25;20062:4;20042:25;;;;;;;;;;;;;;;;;;;;;;;;;20041:26;19966:101;:129;;;;;20072:19;:23;20092:2;20072:23;;;;;;;;;;;;;;;;;;;;;;;;;20071:24;19966:129;19962:239;;;20123:4;20112:8;;:15;;;;;;;;;;;;;;;;;;20142:16;20151:6;20142:8;:16::i;:::-;20184:5;20173:8;;:16;;;;;;;;;;;;;;;;;;19962:239;20213:12;20229:8;;;;;;;;;;;20228:9;:39;;;;;20242:19;:25;20262:4;20242:25;;;;;;;;;;;;;;;;;;;;;;;;;20241:26;20228:39;:67;;;;;20272:19;:23;20292:2;20272:23;;;;;;;;;;;;;;;;;;;;;;;;;20271:24;20228:67;20213:82;;20308:12;20339:7;20335:402;;;20367:25;:29;20393:2;20367:29;;;;;;;;;;;;;;;;;;;;;;;;;20363:229;;;20424:28;20448:3;20424:19;20435:7;;20424:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;20417:35;;20363:229;;;20490:25;:31;20516:4;20490:31;;;;;;;;;;;;;;;;;;;;;;;;;20487:105;;;20549:27;20572:3;20549:18;20560:6;;20549;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;20542:34;;20487:105;20363:229;20617:1;20610:4;:8;20606:91;;;20639:42;20655:4;20669;20676;20639:15;:42::i;:::-;20606:91;20721:4;20711:14;;;;;:::i;:::-;;;20335:402;20747:33;20763:4;20769:2;20773:6;20747:15;:33::i;:::-;18000:2788;;;;17921:2867;;;;:::o;13004:595::-;13107:1;13088:21;;:7;:21;;;13080:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13160:49;13181:7;13198:1;13202:6;13160:20;:49::i;:::-;13222:22;13247:9;:18;13257:7;13247:18;;;;;;;;;;;;;;;;13222:43;;13302:6;13284:14;:24;;13276:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13421:6;13404:14;:23;13383:9;:18;13393:7;13383:18;;;;;;;;;;;;;;;:44;;;;13458:6;13442:12;;:22;;;;;;;;;;;13519:1;13493:37;;13502:7;13493:37;;;13523:6;13493:37;;;;;;:::i;:::-;;;;;;;;13543:48;13563:7;13580:1;13584:6;13543:19;:48::i;:::-;13069:530;13004:595;;:::o;883:132::-;958:12;:10;:12::i;:::-;947:23;;:7;:5;:7::i;:::-;:23;;;939:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;883:132::o;1343:191::-;1417:16;1436:6;;;;;;;;;;;1417:25;;1462:8;1453:6;;:17;;;;;;;;;;;;;;;;;;1517:8;1486:40;;1507:8;1486:40;;;;;;;;;;;;1406:128;1343:191;:::o;20796:476::-;20862:21;20900:1;20886:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20862:40;;20931:4;20913;20918:1;20913:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20957:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20947:4;20952:1;20947:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;20991:63;21008:4;21023:16;21042:11;20991:8;:63::i;:::-;21065:16;:67;;;21147:11;21173:1;21189:4;21208:15;;;;;;;;;;;21238;21065:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20851:421;20796:476;:::o;17593:186::-;17710:5;17676:25;:31;17702:4;17676:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17765:5;17731:40;;17759:4;17731:40;;;;;;;;;;;;17593:186;;:::o;11912:641::-;12025:1;12009:18;;:4;:18;;;12001:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12102:1;12088:16;;:2;:16;;;12080:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12157:38;12178:4;12184:2;12188:6;12157:20;:38::i;:::-;12208:19;12230:9;:15;12240:4;12230:15;;;;;;;;;;;;;;;;12208:37;;12279:6;12264:11;:21;;12256:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12396:6;12382:11;:20;12364:9;:15;12374:4;12364:15;;;;;;;;;;;;;;;:38;;;;12434:6;12417:9;:13;12427:2;12417:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12484:2;12469:26;;12478:4;12469:26;;;12488:6;12469:26;;;;;;:::i;:::-;;;;;;;;12508:37;12528:4;12534:2;12538:6;12508:19;:37::i;:::-;11990:563;11912:641;;;:::o;22264:484::-;22322:23;22348:24;22366:4;22348:9;:24::i;:::-;22322:50;;22406:1;22387:15;:20;22383:59;;22424:7;;;22383:59;22452:20;22475:15;22452:38;;22522:18;;22507:12;:33;22503:99;;;22572:18;;22557:33;;22503:99;22632:11;22617:12;:26;22614:84;;;22675:11;22660:26;;22614:84;22710:30;22727:12;22710:16;:30::i;:::-;22311:437;;22264:484;;:::o;8269:98::-;8327:7;8358:1;8354;:5;;;;:::i;:::-;8347:12;;8269:98;;;;:::o;8375:::-;8433:7;8464:1;8460;:5;;;;:::i;:::-;8453:12;;8375:98;;;;:::o;14388:91::-;;;;:::o;14487: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:329::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:60::-;6276:3;6297:5;6290:12;;6248:60;;;:::o;6314:142::-;6364:9;6397:53;6415:34;6424:24;6442:5;6424:24;:::i;:::-;6415:34;:::i;:::-;6397:53;:::i;:::-;6384:66;;6314:142;;;:::o;6462:126::-;6512:9;6545:37;6576:5;6545:37;:::i;:::-;6532:50;;6462:126;;;:::o;6594:152::-;6670:9;6703:37;6734:5;6703:37;:::i;:::-;6690:50;;6594:152;;;:::o;6752:183::-;6865:63;6922:5;6865:63;:::i;:::-;6860:3;6853:76;6752:183;;:::o;6941:274::-;7060:4;7098:2;7087:9;7083:18;7075:26;;7111:97;7205:1;7194:9;7190:17;7181:6;7111:97;:::i;:::-;6941:274;;;;:::o;7221:116::-;7291:21;7306:5;7291:21;:::i;:::-;7284:5;7281:32;7271:60;;7327:1;7324;7317:12;7271:60;7221:116;:::o;7343:133::-;7386:5;7424:6;7411:20;7402:29;;7440:30;7464:5;7440:30;:::i;:::-;7343:133;;;;:::o;7482:468::-;7547:6;7555;7604:2;7592:9;7583:7;7579:23;7575:32;7572:119;;;7610:79;;:::i;:::-;7572:119;7730:1;7755:53;7800:7;7791:6;7780:9;7776:22;7755:53;:::i;:::-;7745:63;;7701:117;7857:2;7883:50;7925:7;7916:6;7905:9;7901:22;7883:50;:::i;:::-;7873:60;;7828:115;7482:468;;;;;:::o;7956:474::-;8024:6;8032;8081:2;8069:9;8060:7;8056:23;8052:32;8049:119;;;8087:79;;:::i;:::-;8049:119;8207:1;8232:53;8277:7;8268:6;8257:9;8253:22;8232:53;:::i;:::-;8222:63;;8178:117;8334:2;8360:53;8405:7;8396:6;8385:9;8381:22;8360:53;:::i;:::-;8350:63;;8305:118;7956:474;;;;;:::o;8436:180::-;8484:77;8481:1;8474:88;8581:4;8578:1;8571:15;8605:4;8602:1;8595:15;8622:320;8666:6;8703:1;8697:4;8693:12;8683:22;;8750:1;8744:4;8740:12;8771:18;8761:81;;8827:4;8819:6;8815:17;8805:27;;8761:81;8889:2;8881:6;8878:14;8858:18;8855:38;8852:84;;8908:18;;:::i;:::-;8852:84;8673:269;8622:320;;;:::o;8948:180::-;8996:77;8993:1;8986:88;9093:4;9090:1;9083:15;9117:4;9114:1;9107:15;9134:191;9174:3;9193:20;9211:1;9193:20;:::i;:::-;9188:25;;9227:20;9245:1;9227:20;:::i;:::-;9222:25;;9270:1;9267;9263:9;9256:16;;9291:3;9288:1;9285:10;9282:36;;;9298:18;;:::i;:::-;9282:36;9134:191;;;;:::o;9331:175::-;9471:27;9467:1;9459:6;9455:14;9448:51;9331:175;:::o;9512:366::-;9654:3;9675:67;9739:2;9734:3;9675:67;:::i;:::-;9668:74;;9751:93;9840:3;9751:93;:::i;:::-;9869:2;9864:3;9860:12;9853:19;;9512:366;;;:::o;9884:419::-;10050:4;10088:2;10077:9;10073:18;10065:26;;10137:9;10131:4;10127:20;10123:1;10112:9;10108:17;10101:47;10165:131;10291:4;10165:131;:::i;:::-;10157:139;;9884:419;;;:::o;10309:176::-;10449:28;10445:1;10437:6;10433:14;10426:52;10309:176;:::o;10491:366::-;10633:3;10654:67;10718:2;10713:3;10654:67;:::i;:::-;10647:74;;10730:93;10819:3;10730:93;:::i;:::-;10848:2;10843:3;10839:12;10832:19;;10491:366;;;:::o;10863:419::-;11029:4;11067:2;11056:9;11052:18;11044:26;;11116:9;11110:4;11106:20;11102:1;11091:9;11087:17;11080:47;11144:131;11270:4;11144:131;:::i;:::-;11136:139;;10863:419;;;:::o;11288:410::-;11328:7;11351:20;11369:1;11351:20;:::i;:::-;11346:25;;11385:20;11403:1;11385:20;:::i;:::-;11380:25;;11440:1;11437;11433:9;11462:30;11480:11;11462:30;:::i;:::-;11451:41;;11641:1;11632:7;11628:15;11625:1;11622:22;11602:1;11595:9;11575:83;11552:139;;11671:18;;:::i;:::-;11552:139;11336:362;11288:410;;;;:::o;11704:180::-;11752:77;11749:1;11742:88;11849:4;11846:1;11839:15;11873:4;11870:1;11863:15;11890:185;11930:1;11947:20;11965:1;11947:20;:::i;:::-;11942:25;;11981:20;11999:1;11981:20;:::i;:::-;11976:25;;12020:1;12010:35;;12025:18;;:::i;:::-;12010:35;12067:1;12064;12060:9;12055:14;;11890:185;;;;:::o;12081:244::-;12221:34;12217:1;12209:6;12205:14;12198:58;12290:27;12285:2;12277:6;12273:15;12266:52;12081:244;:::o;12331:366::-;12473:3;12494:67;12558:2;12553:3;12494:67;:::i;:::-;12487:74;;12570:93;12659:3;12570:93;:::i;:::-;12688:2;12683:3;12679:12;12672:19;;12331:366;;;:::o;12703:419::-;12869:4;12907:2;12896:9;12892:18;12884:26;;12956:9;12950:4;12946:20;12942:1;12931:9;12927:17;12920:47;12984:131;13110:4;12984:131;:::i;:::-;12976:139;;12703:419;;;:::o;13128:179::-;13268:31;13264:1;13256:6;13252:14;13245:55;13128:179;:::o;13313:366::-;13455:3;13476:67;13540:2;13535:3;13476:67;:::i;:::-;13469:74;;13552:93;13641:3;13552:93;:::i;:::-;13670:2;13665:3;13661:12;13654:19;;13313:366;;;:::o;13685:419::-;13851:4;13889:2;13878:9;13874:18;13866:26;;13938:9;13932:4;13928:20;13924:1;13913:9;13909:17;13902:47;13966:131;14092:4;13966:131;:::i;:::-;13958:139;;13685:419;;;:::o;14110:224::-;14250:34;14246:1;14238:6;14234:14;14227:58;14319:7;14314:2;14306:6;14302:15;14295:32;14110:224;:::o;14340:366::-;14482:3;14503:67;14567:2;14562:3;14503:67;:::i;:::-;14496:74;;14579:93;14668:3;14579:93;:::i;:::-;14697:2;14692:3;14688:12;14681:19;;14340:366;;;:::o;14712:419::-;14878:4;14916:2;14905:9;14901:18;14893:26;;14965:9;14959:4;14955:20;14951:1;14940:9;14936:17;14929:47;14993:131;15119:4;14993:131;:::i;:::-;14985:139;;14712:419;;;:::o;15137:225::-;15277:34;15273:1;15265:6;15261:14;15254:58;15346:8;15341:2;15333:6;15329:15;15322:33;15137:225;:::o;15368:366::-;15510:3;15531:67;15595:2;15590:3;15531:67;:::i;:::-;15524:74;;15607:93;15696:3;15607:93;:::i;:::-;15725:2;15720:3;15716:12;15709:19;;15368:366;;;:::o;15740:419::-;15906:4;15944:2;15933:9;15929:18;15921:26;;15993:9;15987:4;15983:20;15979:1;15968:9;15964:17;15957:47;16021:131;16147:4;16021:131;:::i;:::-;16013:139;;15740:419;;;:::o;16165:223::-;16305:34;16301:1;16293:6;16289:14;16282:58;16374:6;16369:2;16361:6;16357:15;16350:31;16165:223;:::o;16394:366::-;16536:3;16557:67;16621:2;16616:3;16557:67;:::i;:::-;16550:74;;16633:93;16722:3;16633:93;:::i;:::-;16751:2;16746:3;16742:12;16735:19;;16394:366;;;:::o;16766:419::-;16932:4;16970:2;16959:9;16955:18;16947:26;;17019:9;17013:4;17009:20;17005:1;16994:9;16990:17;16983:47;17047:131;17173:4;17047:131;:::i;:::-;17039:139;;16766:419;;;:::o;17191:221::-;17331:34;17327:1;17319:6;17315:14;17308:58;17400:4;17395:2;17387:6;17383:15;17376:29;17191:221;:::o;17418:366::-;17560:3;17581:67;17645:2;17640:3;17581:67;:::i;:::-;17574:74;;17657:93;17746:3;17657:93;:::i;:::-;17775:2;17770:3;17766:12;17759:19;;17418:366;;;:::o;17790:419::-;17956:4;17994:2;17983:9;17979:18;17971:26;;18043:9;18037:4;18033:20;18029:1;18018:9;18014:17;18007:47;18071:131;18197:4;18071:131;:::i;:::-;18063:139;;17790:419;;;:::o;18215:179::-;18355:31;18351:1;18343:6;18339:14;18332:55;18215:179;:::o;18400:366::-;18542:3;18563:67;18627:2;18622:3;18563:67;:::i;:::-;18556:74;;18639:93;18728:3;18639:93;:::i;:::-;18757:2;18752:3;18748:12;18741:19;;18400:366;;;:::o;18772:419::-;18938:4;18976:2;18965:9;18961:18;18953:26;;19025:9;19019:4;19015:20;19011:1;19000:9;18996:17;18989:47;19053:131;19179:4;19053:131;:::i;:::-;19045:139;;18772:419;;;:::o;19197:224::-;19337:34;19333:1;19325:6;19321:14;19314:58;19406:7;19401:2;19393:6;19389:15;19382:32;19197:224;:::o;19427:366::-;19569:3;19590:67;19654:2;19649:3;19590:67;:::i;:::-;19583:74;;19666:93;19755:3;19666:93;:::i;:::-;19784:2;19779:3;19775:12;19768:19;;19427:366;;;:::o;19799:419::-;19965:4;20003:2;19992:9;19988:18;19980:26;;20052:9;20046:4;20042:20;20038:1;20027:9;20023:17;20016:47;20080:131;20206:4;20080:131;:::i;:::-;20072:139;;19799:419;;;:::o;20224:222::-;20364:34;20360:1;20352:6;20348:14;20341:58;20433:5;20428:2;20420:6;20416:15;20409:30;20224:222;:::o;20452:366::-;20594:3;20615:67;20679:2;20674:3;20615:67;:::i;:::-;20608:74;;20691:93;20780:3;20691:93;:::i;:::-;20809:2;20804:3;20800:12;20793:19;;20452:366;;;:::o;20824:419::-;20990:4;21028:2;21017:9;21013:18;21005:26;;21077:9;21071:4;21067:20;21063:1;21052:9;21048:17;21041:47;21105:131;21231:4;21105:131;:::i;:::-;21097:139;;20824:419;;;:::o;21249:172::-;21389:24;21385:1;21377:6;21373:14;21366:48;21249:172;:::o;21427:366::-;21569:3;21590:67;21654:2;21649:3;21590:67;:::i;:::-;21583:74;;21666:93;21755:3;21666:93;:::i;:::-;21784:2;21779:3;21775:12;21768:19;;21427:366;;;:::o;21799:419::-;21965:4;22003:2;21992:9;21988:18;21980:26;;22052:9;22046:4;22042:20;22038:1;22027:9;22023:17;22016:47;22080:131;22206:4;22080:131;:::i;:::-;22072:139;;21799:419;;;:::o;22224:240::-;22364:34;22360:1;22352:6;22348:14;22341:58;22433:23;22428:2;22420:6;22416:15;22409:48;22224:240;:::o;22470:366::-;22612:3;22633:67;22697:2;22692:3;22633:67;:::i;:::-;22626:74;;22709:93;22798:3;22709:93;:::i;:::-;22827:2;22822:3;22818:12;22811:19;;22470:366;;;:::o;22842:419::-;23008:4;23046:2;23035:9;23031:18;23023:26;;23095:9;23089:4;23085:20;23081:1;23070:9;23066:17;23059:47;23123:131;23249:4;23123:131;:::i;:::-;23115:139;;22842:419;;;:::o;23267:240::-;23407:34;23403:1;23395:6;23391:14;23384:58;23476:23;23471:2;23463:6;23459:15;23452:48;23267:240;:::o;23513:366::-;23655:3;23676:67;23740:2;23735:3;23676:67;:::i;:::-;23669:74;;23752:93;23841:3;23752:93;:::i;:::-;23870:2;23865:3;23861:12;23854:19;;23513:366;;;:::o;23885:419::-;24051:4;24089:2;24078:9;24074:18;24066:26;;24138:9;24132:4;24128:20;24124:1;24113:9;24109:17;24102:47;24166:131;24292:4;24166:131;:::i;:::-;24158:139;;23885:419;;;:::o;24310:169::-;24450:21;24446:1;24438:6;24434:14;24427:45;24310:169;:::o;24485:366::-;24627:3;24648:67;24712:2;24707:3;24648:67;:::i;:::-;24641:74;;24724:93;24813:3;24724:93;:::i;:::-;24842:2;24837:3;24833:12;24826:19;;24485:366;;;:::o;24857:419::-;25023:4;25061:2;25050:9;25046:18;25038:26;;25110:9;25104:4;25100:20;25096:1;25085:9;25081:17;25074:47;25138:131;25264:4;25138:131;:::i;:::-;25130:139;;24857:419;;;:::o;25282:241::-;25422:34;25418:1;25410:6;25406:14;25399:58;25491:24;25486:2;25478:6;25474:15;25467:49;25282:241;:::o;25529:366::-;25671:3;25692:67;25756:2;25751:3;25692:67;:::i;:::-;25685:74;;25768:93;25857:3;25768:93;:::i;:::-;25886:2;25881:3;25877:12;25870:19;;25529:366;;;:::o;25901:419::-;26067:4;26105:2;26094:9;26090:18;26082:26;;26154:9;26148:4;26144:20;26140:1;26129:9;26125:17;26118:47;26182:131;26308:4;26182:131;:::i;:::-;26174:139;;25901:419;;;:::o;26326:194::-;26366:4;26386:20;26404:1;26386:20;:::i;:::-;26381:25;;26420:20;26438:1;26420:20;:::i;:::-;26415:25;;26464:1;26461;26457:9;26449:17;;26488:1;26482:4;26479:11;26476:37;;;26493:18;;:::i;:::-;26476:37;26326:194;;;;:::o;26526:220::-;26666:34;26662:1;26654:6;26650:14;26643:58;26735:3;26730:2;26722:6;26718:15;26711:28;26526:220;:::o;26752:366::-;26894:3;26915:67;26979:2;26974:3;26915:67;:::i;:::-;26908:74;;26991:93;27080:3;26991:93;:::i;:::-;27109:2;27104:3;27100:12;27093:19;;26752:366;;;:::o;27124:419::-;27290:4;27328:2;27317:9;27313:18;27305:26;;27377:9;27371:4;27367:20;27363:1;27352:9;27348:17;27341:47;27405:131;27531:4;27405:131;:::i;:::-;27397:139;;27124:419;;;:::o;27549:221::-;27689:34;27685:1;27677:6;27673:14;27666:58;27758:4;27753:2;27745:6;27741:15;27734:29;27549:221;:::o;27776:366::-;27918:3;27939:67;28003:2;27998:3;27939:67;:::i;:::-;27932:74;;28015:93;28104:3;28015:93;:::i;:::-;28133:2;28128:3;28124:12;28117:19;;27776:366;;;:::o;28148:419::-;28314:4;28352:2;28341:9;28337:18;28329:26;;28401:9;28395:4;28391:20;28387:1;28376:9;28372:17;28365:47;28429:131;28555:4;28429:131;:::i;:::-;28421:139;;28148:419;;;:::o;28573:182::-;28713:34;28709:1;28701:6;28697:14;28690:58;28573:182;:::o;28761:366::-;28903:3;28924:67;28988:2;28983:3;28924:67;:::i;:::-;28917:74;;29000:93;29089:3;29000:93;:::i;:::-;29118:2;29113:3;29109:12;29102:19;;28761:366;;;:::o;29133:419::-;29299:4;29337:2;29326:9;29322:18;29314:26;;29386:9;29380:4;29376:20;29372:1;29361:9;29357:17;29350:47;29414:131;29540:4;29414:131;:::i;:::-;29406:139;;29133:419;;;:::o;29558:180::-;29606:77;29603:1;29596:88;29703:4;29700:1;29693:15;29727:4;29724:1;29717:15;29744:180;29792:77;29789:1;29782:88;29889:4;29886:1;29879:15;29913:4;29910:1;29903:15;29930:143;29987:5;30018:6;30012:13;30003:22;;30034:33;30061:5;30034:33;:::i;:::-;29930:143;;;;:::o;30079:351::-;30149:6;30198:2;30186:9;30177:7;30173:23;30169:32;30166:119;;;30204:79;;:::i;:::-;30166:119;30324:1;30349:64;30405:7;30396:6;30385:9;30381:22;30349:64;:::i;:::-;30339:74;;30295:128;30079:351;;;;:::o;30436:85::-;30481:7;30510:5;30499:16;;30436:85;;;:::o;30527:158::-;30585:9;30618:61;30636:42;30645:32;30671:5;30645:32;:::i;:::-;30636:42;:::i;:::-;30618:61;:::i;:::-;30605:74;;30527:158;;;:::o;30691:147::-;30786:45;30825:5;30786:45;:::i;:::-;30781:3;30774:58;30691:147;;:::o;30844:114::-;30911:6;30945:5;30939:12;30929:22;;30844:114;;;:::o;30964:184::-;31063:11;31097:6;31092:3;31085:19;31137:4;31132:3;31128:14;31113:29;;30964:184;;;;:::o;31154:132::-;31221:4;31244:3;31236:11;;31274:4;31269:3;31265:14;31257:22;;31154:132;;;:::o;31292:108::-;31369:24;31387:5;31369:24;:::i;:::-;31364:3;31357:37;31292:108;;:::o;31406:179::-;31475:10;31496:46;31538:3;31530:6;31496:46;:::i;:::-;31574:4;31569:3;31565:14;31551:28;;31406:179;;;;:::o;31591:113::-;31661:4;31693;31688:3;31684:14;31676:22;;31591:113;;;:::o;31740:732::-;31859:3;31888:54;31936:5;31888:54;:::i;:::-;31958:86;32037:6;32032:3;31958:86;:::i;:::-;31951:93;;32068:56;32118:5;32068:56;:::i;:::-;32147:7;32178:1;32163:284;32188:6;32185:1;32182:13;32163:284;;;32264:6;32258:13;32291:63;32350:3;32335:13;32291:63;:::i;:::-;32284:70;;32377:60;32430:6;32377:60;:::i;:::-;32367:70;;32223:224;32210:1;32207;32203:9;32198:14;;32163:284;;;32167:14;32463:3;32456:10;;31864:608;;;31740:732;;;;:::o;32478:831::-;32741:4;32779:3;32768:9;32764:19;32756:27;;32793:71;32861:1;32850:9;32846:17;32837:6;32793:71;:::i;:::-;32874:80;32950:2;32939:9;32935:18;32926:6;32874:80;:::i;:::-;33001:9;32995:4;32991:20;32986:2;32975:9;32971:18;32964:48;33029:108;33132:4;33123:6;33029:108;:::i;:::-;33021:116;;33147:72;33215:2;33204:9;33200:18;33191:6;33147:72;:::i;:::-;33229:73;33297:3;33286:9;33282:19;33273:6;33229:73;:::i;:::-;32478:831;;;;;;;;:::o;33315:225::-;33455:34;33451:1;33443:6;33439:14;33432:58;33524:8;33519:2;33511:6;33507:15;33500:33;33315:225;:::o;33546:366::-;33688:3;33709:67;33773:2;33768:3;33709:67;:::i;:::-;33702:74;;33785:93;33874:3;33785:93;:::i;:::-;33903:2;33898:3;33894:12;33887:19;;33546:366;;;:::o;33918:419::-;34084:4;34122:2;34111:9;34107:18;34099:26;;34171:9;34165:4;34161:20;34157:1;34146:9;34142:17;34135:47;34199:131;34325:4;34199:131;:::i;:::-;34191:139;;33918:419;;;:::o

Swarm Source

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