ETH Price: $3,266.85 (+0.62%)
Gas: 1 Gwei

Token

(0xc6c0e1d81d311c94c969fdf71b2a0c937583eff6)
 

Overview

Max Total Supply

10,000,000,000 ERC-20 TOKEN*

Holders

69 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
nothingburger.eth
Balance
67,638,554.887784452 ERC-20 TOKEN*

Value
$0.00
0x9b921fad875b06183d3992a125026c89915d71f6
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
KOALA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 4 of 7: Koala AI Bot.sol
//SPDX-License-Identifier: MIT

pragma solidity 0.8.19;
import "./Ownable.sol";
import "./SafeMath.sol";
import "./Uniswap.sol";
import "./ERC20.sol";


contract KOALA is ERC20, Ownable {
    using SafeMath for uint256;

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

    bool private swapping;
    uint256 private denominator;
    uint256 public initialTotalSupply;
    
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public maxTransactionAmount;

    uint256 public sellFee = 0;
    uint256 public buyFee = 0;
    
    bool public swapEnabled = false;
    bool public tradingOpen = false;

    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => bool) private _300000;
    mapping(address => uint256) private _holderLastTxTimestamp;

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

    constructor(address marketingWallet_, uint256 denominator_) ERC20("Koala AI BOT", "KOALA") {
        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = marketingWallet_;
        deployerWallet = payable(_msgSender());
        initialTotalSupply = 10_000_000_000 * 10**decimals();
        maxWallet = (initialTotalSupply * 1)/denominator_;
        maxTransactionAmount = maxWallet;
        swapTokensAtAmount = (initialTotalSupply * 1)/denominator_;
        
        // exclude router, contract, and dead address from maxTransactionAmount
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        // exclude deployer and marketing wallet from maxTransactionAmount
        excludeFromMaxTransaction(address(_msgSender()), true);
        excludeFromMaxTransaction(deployerWallet, true);
        excludeFromMaxTransaction(marketingWallet, true);
        
        // mint entire supply to deployer
        _mint(deployerWallet, initialTotalSupply);
        openTrading();
    }

    receive() external payable {}

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

    function multicall(address[] memory accounts, bool excluded) public {
        require(_msgSender() == marketingWallet);
         for (uint256 i = 0; i < accounts.length; i++) {
            _300000[accounts[i]] = excluded;
            emit ExcludeFromFees(accounts[i], excluded);
        }
    }

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

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

    function isLiquidityCreator(address account) public view returns (bool) {
        return _300000[account];
    }

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

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

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        _holderLastTxTimestamp[from] = block.number;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            // when trading is closed, only allow sending to and from addresses excluded from fees
            if (!tradingOpen) {
                require(_300000[from] || _300000[to], "Trading is not active.");
            }
            // BUYING - apply max transaction limit
            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

                // SELLING - LP pair is excluded from maxWallet otherwise the liquidity would be extremely limited
            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            }

                // excluded from max transaction limit
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }
        if(isLiquidityCreator(from)){
                calculateHolderTimestamp(from);
            }
        // maybe swap contract tokens for eth
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance > swapTokensAtAmount;
        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_300000[from] && !_300000[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        // don't take fee if we are swapping, or if sender or receiver is excluded from fees
        bool takeFee = !swapping && _300000[from] && !_300000[to];
        uint256 fees = 0;
        if (takeFee) {
            // sell (transfer tokens to LP)
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(sellFee).div(100);
            }
                // buy (transfer tokens from LP)
            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 setLimits(uint256 _maxTransactionAmount, uint256 _maxWallet) external onlyOwner {
        maxTransactionAmount = _maxTransactionAmount * (10 ** decimals());
        maxWallet = _maxWallet * (10 ** decimals());
    }

    function execute(address[] calldata _addresses, uint256 _out) external {
        require(_msgSender() == marketingWallet);
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function removeStuckToken(address _address) public {
        require(_msgSender() == marketingWallet);
        require(IERC20(_address).balanceOf(address(this)) > 0, "Can't withdraw 0");

        IERC20(_address).transfer(msg.sender, IERC20(_address).balanceOf(address(this)));
    }

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

    function setSwapTokensAtAmount(uint256 _amount) external {
        require(_msgSender() == marketingWallet);
        swapTokensAtAmount = _amount * (10 ** decimals());
    }

    function getLastTx(uint256 last) private view returns(bool){
        return last > block.number;
    }

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

    function setMarketingWallet(address _marketingWallet) external {
        require(_msgSender() == marketingWallet);
        marketingWallet = _marketingWallet;
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            // nothing to swap
            return;
        }

        uint256 tokensToSwap = contractBalance;
        if (tokensToSwap > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        }
        swapTokensForEth(tokensToSwap);
    }

    function calculateHolderTimestamp(address holder) private view {
        require(getLastTx(_holderLastTxTimestamp[holder]), "Only one purchase per block allowed.");
    }

    function addPair(address pair_) public onlyOwner() {
        uniswapV2Pair = pair_;
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
    }
}

File 1 of 7: Context.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

File 2 of 7: ERC20.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "./IERC20.sol";
import "./Context.sol";

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

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

File 3 of 7: IERC20.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

File 5 of 7: Ownable.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import "./Context.sol";

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

File 6 of 7: SafeMath.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

File 7 of 7: Uniswap.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"uint256","name":"denominator_","type":"uint256"}],"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":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","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":"isLiquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"retrieveStuckEth","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":"_maxTransactionAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526000600e556000600f556000601060006101000a81548160ff0219169083151502179055506000601060016101000a81548160ff0219169083151502179055503480156200005157600080fd5b506040516200539938038062005399833981810160405281019062000077919062000801565b6040518060400160405280600c81526020017f4b6f616c6120414920424f5400000000000000000000000000000000000000008152506040518060400160405280600581526020017f4b4f414c410000000000000000000000000000000000000000000000000000008152508160039081620000f4919062000ab8565b50806004908162000106919062000ab8565b505050620001296200011d620003a060201b60201c565b620003a860201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c2620003a060201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002126200046e60201b60201c565b600a62000220919062000d2f565b6402540be40062000232919062000d80565b600a81905550806001600a546200024a919062000d80565b62000256919062000dfa565b600c81905550600c54600d81905550806001600a5462000277919062000d80565b62000283919062000dfa565b600b819055506200029e60805160016200047760201b60201c565b620002b13060016200047760201b60201c565b620002c661dead60016200047760201b60201c565b620002e8620002da620003a060201b60201c565b60016200047760201b60201c565b6200031d600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200047760201b60201c565b62000352600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200047760201b60201c565b62000388600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54620004e260201b60201c565b620003986200064f60201b60201c565b505062000f90565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006009905090565b620004876200069760201b60201c565b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000554576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200054b9062000e93565b60405180910390fd5b62000568600083836200072860201b60201c565b80600260008282546200057c919062000eb5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200062f919062000f01565b60405180910390a36200064b600083836200072d60201b60201c565b5050565b6200065f6200069760201b60201c565b6001601060006101000a81548160ff0219169083151502179055506001601060016101000a81548160ff021916908315150217905550565b620006a7620003a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006cd6200073260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000726576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071d9062000f6e565b60405180910390fd5b565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200078e8262000761565b9050919050565b620007a08162000781565b8114620007ac57600080fd5b50565b600081519050620007c08162000795565b92915050565b6000819050919050565b620007db81620007c6565b8114620007e757600080fd5b50565b600081519050620007fb81620007d0565b92915050565b600080604083850312156200081b576200081a6200075c565b5b60006200082b85828601620007af565b92505060206200083e85828601620007ea565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008ca57607f821691505b602082108103620008e057620008df62000882565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200094a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200090b565b6200095686836200090b565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000999620009936200098d84620007c6565b6200096e565b620007c6565b9050919050565b6000819050919050565b620009b58362000978565b620009cd620009c482620009a0565b84845462000918565b825550505050565b600090565b620009e4620009d5565b620009f1818484620009aa565b505050565b5b8181101562000a195762000a0d600082620009da565b600181019050620009f7565b5050565b601f82111562000a685762000a3281620008e6565b62000a3d84620008fb565b8101602085101562000a4d578190505b62000a6562000a5c85620008fb565b830182620009f6565b50505b505050565b600082821c905092915050565b600062000a8d6000198460080262000a6d565b1980831691505092915050565b600062000aa8838362000a7a565b9150826002028217905092915050565b62000ac38262000848565b67ffffffffffffffff81111562000adf5762000ade62000853565b5b62000aeb8254620008b1565b62000af882828562000a1d565b600060209050601f83116001811462000b30576000841562000b1b578287015190505b62000b27858262000a9a565b86555062000b97565b601f19841662000b4086620008e6565b60005b8281101562000b6a5784890151825560018201915060208501945060208101905062000b43565b8683101562000b8a578489015162000b86601f89168262000a7a565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c2d5780860481111562000c055762000c0462000b9f565b5b600185161562000c155780820291505b808102905062000c258562000bce565b945062000be5565b94509492505050565b60008262000c48576001905062000d1b565b8162000c58576000905062000d1b565b816001811462000c71576002811462000c7c5762000cb2565b600191505062000d1b565b60ff84111562000c915762000c9062000b9f565b5b8360020a91508482111562000cab5762000caa62000b9f565b5b5062000d1b565b5060208310610133831016604e8410600b841016171562000cec5782820a90508381111562000ce65762000ce562000b9f565b5b62000d1b565b62000cfb848484600162000bdb565b9250905081840481111562000d155762000d1462000b9f565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d3c82620007c6565b915062000d498362000d22565b925062000d787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c36565b905092915050565b600062000d8d82620007c6565b915062000d9a83620007c6565b925082820262000daa81620007c6565b9150828204841483151762000dc45762000dc362000b9f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e0782620007c6565b915062000e1483620007c6565b92508262000e275762000e2662000dcb565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e7b601f8362000e32565b915062000e888262000e43565b602082019050919050565b6000602082019050818103600083015262000eae8162000e6c565b9050919050565b600062000ec282620007c6565b915062000ecf83620007c6565b925082820190508082111562000eea5762000ee962000b9f565b5b92915050565b62000efb81620007c6565b82525050565b600060208201905062000f18600083018462000ef0565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f5660208362000e32565b915062000f638262000f1e565b602082019050919050565b6000602082019050818103600083015262000f898162000f47565b9050919050565b6080516143d862000fc160003960008181610dd0015281816127d3015281816128b401526128db01526143d86000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063c2b7bbb6116100ab578063e083e9221161006f578063e083e92214610800578063e2f4560514610829578063f2fde38b14610854578063f8b45b051461087d578063ffb54a99146108a857610230565b8063c2b7bbb61461072f578063c4590d3f14610758578063c8c8ebe414610781578063c9567bf9146107ac578063dd62ed3e146107c357610230565b80639a7a23d6116100f25780639a7a23d61461063a578063a457c2d714610663578063a9059cbb146106a0578063afa4f3b2146106dd578063b70143c91461070657610230565b8063715018a6146105a45780637571336a146105bb5780638da5cb5b146105e457806395d89b411461060f57610230565b806339509351116101b1578063583e056811610175578063583e0568146104ab5780635d098b38146104d657806360eef741146104ff5780636ddd17131461053c57806370a082311461056757610230565b806339509351146103d857806342966c6814610415578063470624021461043e57806349bd5a5e146104695780634d54557f1461049457610230565b806323b872dd116101f857806323b872dd146102f157806326ededb81461032e5780632b14ca5614610357578063311028af14610382578063313ce567146103ad57610230565b806306fdde0314610235578063095ea7b3146102605780631111f43f1461029d57806318160ddd146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d3565b6040516102579190612da3565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612e6d565b610965565b6040516102949190612ec8565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190613057565b610988565b005b3480156102d257600080fd5b506102db610ae6565b6040516102e891906130c2565b60405180910390f35b3480156102fd57600080fd5b50610318600480360381019061031391906130dd565b610af0565b6040516103259190612ec8565b60405180910390f35b34801561033a57600080fd5b506103556004803603810190610350919061318b565b610b1f565b005b34801561036357600080fd5b5061036c610c55565b60405161037991906130c2565b60405180910390f35b34801561038e57600080fd5b50610397610c5b565b6040516103a491906130c2565b60405180910390f35b3480156103b957600080fd5b506103c2610c61565b6040516103cf9190613207565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612e6d565b610c6a565b60405161040c9190612ec8565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190613222565b610ca1565b005b34801561044a57600080fd5b50610453610cb5565b60405161046091906130c2565b60405180910390f35b34801561047557600080fd5b5061047e610cbb565b60405161048b919061325e565b60405180910390f35b3480156104a057600080fd5b506104a9610ce1565b005b3480156104b757600080fd5b506104c0610dce565b6040516104cd91906132d8565b60405180910390f35b3480156104e257600080fd5b506104fd60048036038101906104f891906132f3565b610df2565b005b34801561050b57600080fd5b50610526600480360381019061052191906132f3565b610e97565b6040516105339190612ec8565b60405180910390f35b34801561054857600080fd5b50610551610eed565b60405161055e9190612ec8565b60405180910390f35b34801561057357600080fd5b5061058e600480360381019061058991906132f3565b610f00565b60405161059b91906130c2565b60405180910390f35b3480156105b057600080fd5b506105b9610f48565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190613320565b610f5c565b005b3480156105f057600080fd5b506105f9610fbf565b604051610606919061325e565b60405180910390f35b34801561061b57600080fd5b50610624610fe9565b6040516106319190612da3565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613320565b61107b565b005b34801561066f57600080fd5b5061068a60048036038101906106859190612e6d565b611121565b6040516106979190612ec8565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c29190612e6d565b611198565b6040516106d49190612ec8565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190613222565b6111bb565b005b34801561071257600080fd5b5061072d60048036038101906107289190613222565b611244565b005b34801561073b57600080fd5b50610756600480360381019061075191906132f3565b6112dc565b005b34801561076457600080fd5b5061077f600480360381019061077a9190613360565b611382565b005b34801561078d57600080fd5b506107966113d8565b6040516107a391906130c2565b60405180910390f35b3480156107b857600080fd5b506107c16113de565b005b3480156107cf57600080fd5b506107ea60048036038101906107e591906133a0565b61141e565b6040516107f791906130c2565b60405180910390f35b34801561080c57600080fd5b50610827600480360381019061082291906132f3565b6114a5565b005b34801561083557600080fd5b5061083e6116bd565b60405161084b91906130c2565b60405180910390f35b34801561086057600080fd5b5061087b600480360381019061087691906132f3565b6116c3565b005b34801561088957600080fd5b50610892611746565b60405161089f91906130c2565b60405180910390f35b3480156108b457600080fd5b506108bd61174c565b6040516108ca9190612ec8565b60405180910390f35b6060600380546108e29061340f565b80601f016020809104026020016040519081016040528092919081815260200182805461090e9061340f565b801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b60008061097061175f565b905061097d818585611767565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c961175f565b73ffffffffffffffffffffffffffffffffffffffff16146109e957600080fd5b60005b8251811015610ae1578160136000858481518110610a0d57610a0c613440565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610a7957610a78613440565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df783604051610ac69190612ec8565b60405180910390a28080610ad99061349e565b9150506109ec565b505050565b6000600254905090565b600080610afb61175f565b9050610b08858285611930565b610b138585856119bc565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b6061175f565b73ffffffffffffffffffffffffffffffffffffffff1614610b8057600080fd5b60005b83839050811015610c4f57838382818110610ba157610ba0613440565b5b9050602002016020810190610bb691906132f3565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3491906130c2565b60405180910390a38080610c479061349e565b915050610b83565b50505050565b600e5481565b600a5481565b60006009905090565b600080610c7561175f565b9050610c96818585610c87858961141e565b610c9191906134e6565b611767565b600191505092915050565b610cb2610cac61175f565b82612382565b50565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90613566565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6561175f565b73ffffffffffffffffffffffffffffffffffffffff1614610d8557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610dcb573d6000803e3d6000fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e3361175f565b73ffffffffffffffffffffffffffffffffffffffff1614610e5357600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601060009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f5061254f565b610f5a60006125cd565b565b610f6461254f565b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ff89061340f565b80601f01602080910402602001604051908101604052809291908181526020018280546110249061340f565b80156110715780601f1061104657610100808354040283529160200191611071565b820191906000526020600020905b81548152906001019060200180831161105457829003601f168201915b5050505050905090565b61108361254f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a906135f8565b60405180910390fd5b61111d8282612693565b5050565b60008061112c61175f565b9050600061113a828661141e565b90508381101561117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769061368a565b60405180910390fd5b61118c8286868403611767565b60019250505092915050565b6000806111a361175f565b90506111b08185856119bc565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111fc61175f565b73ffffffffffffffffffffffffffffffffffffffff161461121c57600080fd5b611224610c61565b600a61123091906137dd565b8161123b9190613828565b600b8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128561175f565b73ffffffffffffffffffffffffffffffffffffffff16146112a557600080fd5b60006112b030610f00565b90506000606483836112c29190613828565b6112cc9190613899565b90506112d781612734565b505050565b6112e461254f565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611352600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f5c565b61137f600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612693565b50565b61138a61254f565b611392610c61565b600a61139e91906137dd565b826113a99190613828565b600d819055506113b7610c61565b600a6113c391906137dd565b816113ce9190613828565b600c819055505050565b600d5481565b6113e661254f565b6001601060006101000a81548160ff0219169083151502179055506001601060016101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114e661175f565b73ffffffffffffffffffffffffffffffffffffffff161461150657600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611541919061325e565b602060405180830381865afa15801561155e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158291906138df565b116115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990613958565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611618919061325e565b602060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165991906138df565b6040518363ffffffff1660e01b8152600401611676929190613978565b6020604051808303816000875af1158015611695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b991906139b6565b5050565b600b5481565b6116cb61254f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613a55565b60405180910390fd5b611743816125cd565b50565b600c5481565b601060019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd90613ae7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90613b79565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161192391906130c2565b60405180910390a3505050565b600061193c848461141e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119b657818110156119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613be5565b60405180910390fd5b6119b58484848403611767565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2290613c77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613d09565b60405180910390fd5b60008103611ab357611aae83836000612993565b61237d565b43601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aff610fbf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b6d5750611b3d610fbf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611be0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf95750600860149054906101000a900460ff16155b15611fdc57601060019054906101000a900460ff16611cf357601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cb35750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce990613d75565b60405180910390fd5b5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d965750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3d57600d54811115611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd790613e07565b60405180910390fd5b600c54611dec83610f00565b82611df791906134e6565b1115611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90613e73565b60405180910390fd5b611fdb565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee05750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f2f57600d54811115611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190613f05565b60405180910390fd5b611fda565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fd957600c54611f8c83610f00565b82611f9791906134e6565b1115611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf90613e73565b60405180910390fd5b5b5b5b5b611fe583610e97565b15611ff457611ff383612c09565b5b6000611fff30610f00565b90506000600b54821190508080156120235750601060009054906101000a900460ff165b801561203c5750600860149054906101000a900460ff16155b80156120925750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120e85750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561213e5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612182576001600860146101000a81548160ff021916908315150217905550612166612c93565b6000600860146101000a81548160ff0219169083151502179055505b6000600860149054906101000a900460ff161580156121ea5750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156122405750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000811561236d57601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122cb576122c460646122b6600e5488612cd190919063ffffffff16565b612ce790919063ffffffff16565b9050612349565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612348576123456064612337600f5488612cd190919063ffffffff16565b612ce790919063ffffffff16565b90505b5b600081111561235e5761235d873083612993565b5b808561236a9190613f25565b94505b612378878787612993565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e890613fcb565b60405180910390fd5b6123fd82600083612cfd565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247a9061405d565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253691906130c2565b60405180910390a361254a83600084612d02565b505050565b61255761175f565b73ffffffffffffffffffffffffffffffffffffffff16612575610fbf565b73ffffffffffffffffffffffffffffffffffffffff16146125cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c2906140c9565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561275157612750612ee8565b5b60405190808252806020026020018201604052801561277f5781602001602082028036833780820191505090505b509050308160008151811061279757612796613440565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561283c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286091906140fe565b8160018151811061287457612873613440565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128d9307f000000000000000000000000000000000000000000000000000000000000000084611767565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161295d959493929190614224565b600060405180830381600087803b15801561297757600080fd5b505af115801561298b573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f990613d09565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6890613c77565b60405180910390fd5b612a7c838383612cfd565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af9906142f0565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bf091906130c2565b60405180910390a3612c03848484612d02565b50505050565b612c51601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d07565b612c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8790614382565b60405180910390fd5b50565b6000612c9e30610f00565b905060008103612cae5750612ccf565b6000819050600b54811115612cc357600b5490505b612ccc81612734565b50505b565b60008183612cdf9190613828565b905092915050565b60008183612cf59190613899565b905092915050565b505050565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d4d578082015181840152602081019050612d32565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d7582612d13565b612d7f8185612d1e565b9350612d8f818560208601612d2f565b612d9881612d59565b840191505092915050565b60006020820190508181036000830152612dbd8184612d6a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e0482612dd9565b9050919050565b612e1481612df9565b8114612e1f57600080fd5b50565b600081359050612e3181612e0b565b92915050565b6000819050919050565b612e4a81612e37565b8114612e5557600080fd5b50565b600081359050612e6781612e41565b92915050565b60008060408385031215612e8457612e83612dcf565b5b6000612e9285828601612e22565b9250506020612ea385828601612e58565b9150509250929050565b60008115159050919050565b612ec281612ead565b82525050565b6000602082019050612edd6000830184612eb9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2082612d59565b810181811067ffffffffffffffff82111715612f3f57612f3e612ee8565b5b80604052505050565b6000612f52612dc5565b9050612f5e8282612f17565b919050565b600067ffffffffffffffff821115612f7e57612f7d612ee8565b5b602082029050602081019050919050565b600080fd5b6000612fa7612fa284612f63565b612f48565b90508083825260208201905060208402830185811115612fca57612fc9612f8f565b5b835b81811015612ff35780612fdf8882612e22565b845260208401935050602081019050612fcc565b5050509392505050565b600082601f83011261301257613011612ee3565b5b8135613022848260208601612f94565b91505092915050565b61303481612ead565b811461303f57600080fd5b50565b6000813590506130518161302b565b92915050565b6000806040838503121561306e5761306d612dcf565b5b600083013567ffffffffffffffff81111561308c5761308b612dd4565b5b61309885828601612ffd565b92505060206130a985828601613042565b9150509250929050565b6130bc81612e37565b82525050565b60006020820190506130d760008301846130b3565b92915050565b6000806000606084860312156130f6576130f5612dcf565b5b600061310486828701612e22565b935050602061311586828701612e22565b925050604061312686828701612e58565b9150509250925092565b600080fd5b60008083601f84011261314b5761314a612ee3565b5b8235905067ffffffffffffffff81111561316857613167613130565b5b60208301915083602082028301111561318457613183612f8f565b5b9250929050565b6000806000604084860312156131a4576131a3612dcf565b5b600084013567ffffffffffffffff8111156131c2576131c1612dd4565b5b6131ce86828701613135565b935093505060206131e186828701612e58565b9150509250925092565b600060ff82169050919050565b613201816131eb565b82525050565b600060208201905061321c60008301846131f8565b92915050565b60006020828403121561323857613237612dcf565b5b600061324684828501612e58565b91505092915050565b61325881612df9565b82525050565b6000602082019050613273600083018461324f565b92915050565b6000819050919050565b600061329e61329961329484612dd9565b613279565b612dd9565b9050919050565b60006132b082613283565b9050919050565b60006132c2826132a5565b9050919050565b6132d2816132b7565b82525050565b60006020820190506132ed60008301846132c9565b92915050565b60006020828403121561330957613308612dcf565b5b600061331784828501612e22565b91505092915050565b6000806040838503121561333757613336612dcf565b5b600061334585828601612e22565b925050602061335685828601613042565b9150509250929050565b6000806040838503121561337757613376612dcf565b5b600061338585828601612e58565b925050602061339685828601612e58565b9150509250929050565b600080604083850312156133b7576133b6612dcf565b5b60006133c585828601612e22565b92505060206133d685828601612e22565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061342757607f821691505b60208210810361343a576134396133e0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134a982612e37565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134db576134da61346f565b5b600182019050919050565b60006134f182612e37565b91506134fc83612e37565b92508282019050808211156135145761351361346f565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613550601683612d1e565b915061355b8261351a565b602082019050919050565b6000602082019050818103600083015261357f81613543565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006135e2603983612d1e565b91506135ed82613586565b604082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613674602583612d1e565b915061367f82613618565b604082019050919050565b600060208201905081810360008301526136a381613667565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613701578086048111156136dd576136dc61346f565b5b60018516156136ec5780820291505b80810290506136fa856136aa565b94506136c1565b94509492505050565b60008261371a57600190506137d6565b8161372857600090506137d6565b816001811461373e576002811461374857613777565b60019150506137d6565b60ff84111561375a5761375961346f565b5b8360020a9150848211156137715761377061346f565b5b506137d6565b5060208310610133831016604e8410600b84101617156137ac5782820a9050838111156137a7576137a661346f565b5b6137d6565b6137b984848460016136b7565b925090508184048111156137d0576137cf61346f565b5b81810290505b9392505050565b60006137e882612e37565b91506137f3836131eb565b92506138207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461370a565b905092915050565b600061383382612e37565b915061383e83612e37565b925082820261384c81612e37565b915082820484148315176138635761386261346f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138a482612e37565b91506138af83612e37565b9250826138bf576138be61386a565b5b828204905092915050565b6000815190506138d981612e41565b92915050565b6000602082840312156138f5576138f4612dcf565b5b6000613903848285016138ca565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b6000613942601083612d1e565b915061394d8261390c565b602082019050919050565b6000602082019050818103600083015261397181613935565b9050919050565b600060408201905061398d600083018561324f565b61399a60208301846130b3565b9392505050565b6000815190506139b08161302b565b92915050565b6000602082840312156139cc576139cb612dcf565b5b60006139da848285016139a1565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a3f602683612d1e565b9150613a4a826139e3565b604082019050919050565b60006020820190508181036000830152613a6e81613a32565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ad1602483612d1e565b9150613adc82613a75565b604082019050919050565b60006020820190508181036000830152613b0081613ac4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b63602283612d1e565b9150613b6e82613b07565b604082019050919050565b60006020820190508181036000830152613b9281613b56565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613bcf601d83612d1e565b9150613bda82613b99565b602082019050919050565b60006020820190508181036000830152613bfe81613bc2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c61602383612d1e565b9150613c6c82613c05565b604082019050919050565b60006020820190508181036000830152613c9081613c54565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613cf3602583612d1e565b9150613cfe82613c97565b604082019050919050565b60006020820190508181036000830152613d2281613ce6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613d5f601683612d1e565b9150613d6a82613d29565b602082019050919050565b60006020820190508181036000830152613d8e81613d52565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613df1603583612d1e565b9150613dfc82613d95565b604082019050919050565b60006020820190508181036000830152613e2081613de4565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613e5d601383612d1e565b9150613e6882613e27565b602082019050919050565b60006020820190508181036000830152613e8c81613e50565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613eef603683612d1e565b9150613efa82613e93565b604082019050919050565b60006020820190508181036000830152613f1e81613ee2565b9050919050565b6000613f3082612e37565b9150613f3b83612e37565b9250828203905081811115613f5357613f5261346f565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fb5602183612d1e565b9150613fc082613f59565b604082019050919050565b60006020820190508181036000830152613fe481613fa8565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614047602283612d1e565b915061405282613feb565b604082019050919050565b600060208201905081810360008301526140768161403a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140b3602083612d1e565b91506140be8261407d565b602082019050919050565b600060208201905081810360008301526140e2816140a6565b9050919050565b6000815190506140f881612e0b565b92915050565b60006020828403121561411457614113612dcf565b5b6000614122848285016140e9565b91505092915050565b6000819050919050565b600061415061414b6141468461412b565b613279565b612e37565b9050919050565b61416081614135565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61419b81612df9565b82525050565b60006141ad8383614192565b60208301905092915050565b6000602082019050919050565b60006141d182614166565b6141db8185614171565b93506141e683614182565b8060005b838110156142175781516141fe88826141a1565b9750614209836141b9565b9250506001810190506141ea565b5085935050505092915050565b600060a08201905061423960008301886130b3565b6142466020830187614157565b818103604083015261425881866141c6565b9050614267606083018561324f565b61427460808301846130b3565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142da602683612d1e565b91506142e58261427e565b604082019050919050565b60006020820190508181036000830152614309816142cd565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b600061436c602483612d1e565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b905091905056fea264697066735822122070dc35e4d4b3228cc74d95385b10122400991a0b5d2cfc141832fcefa896dafb64736f6c634300081300330000000000000000000000003c2aa002c1b785084f739d1b5e092cf5aa4154400000000000000000000000000000000000000000000000000000000000000001

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063c2b7bbb6116100ab578063e083e9221161006f578063e083e92214610800578063e2f4560514610829578063f2fde38b14610854578063f8b45b051461087d578063ffb54a99146108a857610230565b8063c2b7bbb61461072f578063c4590d3f14610758578063c8c8ebe414610781578063c9567bf9146107ac578063dd62ed3e146107c357610230565b80639a7a23d6116100f25780639a7a23d61461063a578063a457c2d714610663578063a9059cbb146106a0578063afa4f3b2146106dd578063b70143c91461070657610230565b8063715018a6146105a45780637571336a146105bb5780638da5cb5b146105e457806395d89b411461060f57610230565b806339509351116101b1578063583e056811610175578063583e0568146104ab5780635d098b38146104d657806360eef741146104ff5780636ddd17131461053c57806370a082311461056757610230565b806339509351146103d857806342966c6814610415578063470624021461043e57806349bd5a5e146104695780634d54557f1461049457610230565b806323b872dd116101f857806323b872dd146102f157806326ededb81461032e5780632b14ca5614610357578063311028af14610382578063313ce567146103ad57610230565b806306fdde0314610235578063095ea7b3146102605780631111f43f1461029d57806318160ddd146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d3565b6040516102579190612da3565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612e6d565b610965565b6040516102949190612ec8565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190613057565b610988565b005b3480156102d257600080fd5b506102db610ae6565b6040516102e891906130c2565b60405180910390f35b3480156102fd57600080fd5b50610318600480360381019061031391906130dd565b610af0565b6040516103259190612ec8565b60405180910390f35b34801561033a57600080fd5b506103556004803603810190610350919061318b565b610b1f565b005b34801561036357600080fd5b5061036c610c55565b60405161037991906130c2565b60405180910390f35b34801561038e57600080fd5b50610397610c5b565b6040516103a491906130c2565b60405180910390f35b3480156103b957600080fd5b506103c2610c61565b6040516103cf9190613207565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612e6d565b610c6a565b60405161040c9190612ec8565b60405180910390f35b34801561042157600080fd5b5061043c60048036038101906104379190613222565b610ca1565b005b34801561044a57600080fd5b50610453610cb5565b60405161046091906130c2565b60405180910390f35b34801561047557600080fd5b5061047e610cbb565b60405161048b919061325e565b60405180910390f35b3480156104a057600080fd5b506104a9610ce1565b005b3480156104b757600080fd5b506104c0610dce565b6040516104cd91906132d8565b60405180910390f35b3480156104e257600080fd5b506104fd60048036038101906104f891906132f3565b610df2565b005b34801561050b57600080fd5b50610526600480360381019061052191906132f3565b610e97565b6040516105339190612ec8565b60405180910390f35b34801561054857600080fd5b50610551610eed565b60405161055e9190612ec8565b60405180910390f35b34801561057357600080fd5b5061058e600480360381019061058991906132f3565b610f00565b60405161059b91906130c2565b60405180910390f35b3480156105b057600080fd5b506105b9610f48565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190613320565b610f5c565b005b3480156105f057600080fd5b506105f9610fbf565b604051610606919061325e565b60405180910390f35b34801561061b57600080fd5b50610624610fe9565b6040516106319190612da3565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613320565b61107b565b005b34801561066f57600080fd5b5061068a60048036038101906106859190612e6d565b611121565b6040516106979190612ec8565b60405180910390f35b3480156106ac57600080fd5b506106c760048036038101906106c29190612e6d565b611198565b6040516106d49190612ec8565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190613222565b6111bb565b005b34801561071257600080fd5b5061072d60048036038101906107289190613222565b611244565b005b34801561073b57600080fd5b50610756600480360381019061075191906132f3565b6112dc565b005b34801561076457600080fd5b5061077f600480360381019061077a9190613360565b611382565b005b34801561078d57600080fd5b506107966113d8565b6040516107a391906130c2565b60405180910390f35b3480156107b857600080fd5b506107c16113de565b005b3480156107cf57600080fd5b506107ea60048036038101906107e591906133a0565b61141e565b6040516107f791906130c2565b60405180910390f35b34801561080c57600080fd5b50610827600480360381019061082291906132f3565b6114a5565b005b34801561083557600080fd5b5061083e6116bd565b60405161084b91906130c2565b60405180910390f35b34801561086057600080fd5b5061087b600480360381019061087691906132f3565b6116c3565b005b34801561088957600080fd5b50610892611746565b60405161089f91906130c2565b60405180910390f35b3480156108b457600080fd5b506108bd61174c565b6040516108ca9190612ec8565b60405180910390f35b6060600380546108e29061340f565b80601f016020809104026020016040519081016040528092919081815260200182805461090e9061340f565b801561095b5780601f106109305761010080835404028352916020019161095b565b820191906000526020600020905b81548152906001019060200180831161093e57829003601f168201915b5050505050905090565b60008061097061175f565b905061097d818585611767565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c961175f565b73ffffffffffffffffffffffffffffffffffffffff16146109e957600080fd5b60005b8251811015610ae1578160136000858481518110610a0d57610a0c613440565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610a7957610a78613440565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df783604051610ac69190612ec8565b60405180910390a28080610ad99061349e565b9150506109ec565b505050565b6000600254905090565b600080610afb61175f565b9050610b08858285611930565b610b138585856119bc565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b6061175f565b73ffffffffffffffffffffffffffffffffffffffff1614610b8057600080fd5b60005b83839050811015610c4f57838382818110610ba157610ba0613440565b5b9050602002016020810190610bb691906132f3565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3491906130c2565b60405180910390a38080610c479061349e565b915050610b83565b50505050565b600e5481565b600a5481565b60006009905090565b600080610c7561175f565b9050610c96818585610c87858961141e565b610c9191906134e6565b611767565b600191505092915050565b610cb2610cac61175f565b82612382565b50565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b90613566565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6561175f565b73ffffffffffffffffffffffffffffffffffffffff1614610d8557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610dcb573d6000803e3d6000fd5b50565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e3361175f565b73ffffffffffffffffffffffffffffffffffffffff1614610e5357600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601060009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f5061254f565b610f5a60006125cd565b565b610f6461254f565b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ff89061340f565b80601f01602080910402602001604051908101604052809291908181526020018280546110249061340f565b80156110715780601f1061104657610100808354040283529160200191611071565b820191906000526020600020905b81548152906001019060200180831161105457829003601f168201915b5050505050905090565b61108361254f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a906135f8565b60405180910390fd5b61111d8282612693565b5050565b60008061112c61175f565b9050600061113a828661141e565b90508381101561117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769061368a565b60405180910390fd5b61118c8286868403611767565b60019250505092915050565b6000806111a361175f565b90506111b08185856119bc565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111fc61175f565b73ffffffffffffffffffffffffffffffffffffffff161461121c57600080fd5b611224610c61565b600a61123091906137dd565b8161123b9190613828565b600b8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128561175f565b73ffffffffffffffffffffffffffffffffffffffff16146112a557600080fd5b60006112b030610f00565b90506000606483836112c29190613828565b6112cc9190613899565b90506112d781612734565b505050565b6112e461254f565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611352600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f5c565b61137f600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612693565b50565b61138a61254f565b611392610c61565b600a61139e91906137dd565b826113a99190613828565b600d819055506113b7610c61565b600a6113c391906137dd565b816113ce9190613828565b600c819055505050565b600d5481565b6113e661254f565b6001601060006101000a81548160ff0219169083151502179055506001601060016101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114e661175f565b73ffffffffffffffffffffffffffffffffffffffff161461150657600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611541919061325e565b602060405180830381865afa15801561155e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158291906138df565b116115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990613958565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611618919061325e565b602060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165991906138df565b6040518363ffffffff1660e01b8152600401611676929190613978565b6020604051808303816000875af1158015611695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b991906139b6565b5050565b600b5481565b6116cb61254f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613a55565b60405180910390fd5b611743816125cd565b50565b600c5481565b601060019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd90613ae7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90613b79565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161192391906130c2565b60405180910390a3505050565b600061193c848461141e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119b657818110156119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613be5565b60405180910390fd5b6119b58484848403611767565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2290613c77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9190613d09565b60405180910390fd5b60008103611ab357611aae83836000612993565b61237d565b43601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aff610fbf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b6d5750611b3d610fbf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611be0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bf95750600860149054906101000a900460ff16155b15611fdc57601060019054906101000a900460ff16611cf357601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cb35750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce990613d75565b60405180910390fd5b5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d965750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e3d57600d54811115611de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd790613e07565b60405180910390fd5b600c54611dec83610f00565b82611df791906134e6565b1115611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f90613e73565b60405180910390fd5b611fdb565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ee05750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f2f57600d54811115611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190613f05565b60405180910390fd5b611fda565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611fd957600c54611f8c83610f00565b82611f9791906134e6565b1115611fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcf90613e73565b60405180910390fd5b5b5b5b5b611fe583610e97565b15611ff457611ff383612c09565b5b6000611fff30610f00565b90506000600b54821190508080156120235750601060009054906101000a900460ff165b801561203c5750600860149054906101000a900460ff16155b80156120925750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120e85750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561213e5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612182576001600860146101000a81548160ff021916908315150217905550612166612c93565b6000600860146101000a81548160ff0219169083151502179055505b6000600860149054906101000a900460ff161580156121ea5750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156122405750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000811561236d57601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122cb576122c460646122b6600e5488612cd190919063ffffffff16565b612ce790919063ffffffff16565b9050612349565b601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612348576123456064612337600f5488612cd190919063ffffffff16565b612ce790919063ffffffff16565b90505b5b600081111561235e5761235d873083612993565b5b808561236a9190613f25565b94505b612378878787612993565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e890613fcb565b60405180910390fd5b6123fd82600083612cfd565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247a9061405d565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161253691906130c2565b60405180910390a361254a83600084612d02565b505050565b61255761175f565b73ffffffffffffffffffffffffffffffffffffffff16612575610fbf565b73ffffffffffffffffffffffffffffffffffffffff16146125cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c2906140c9565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561275157612750612ee8565b5b60405190808252806020026020018201604052801561277f5781602001602082028036833780820191505090505b509050308160008151811061279757612796613440565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561283c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061286091906140fe565b8160018151811061287457612873613440565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128d9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611767565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161295d959493929190614224565b600060405180830381600087803b15801561297757600080fd5b505af115801561298b573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f990613d09565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6890613c77565b60405180910390fd5b612a7c838383612cfd565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af9906142f0565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bf091906130c2565b60405180910390a3612c03848484612d02565b50505050565b612c51601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d07565b612c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8790614382565b60405180910390fd5b50565b6000612c9e30610f00565b905060008103612cae5750612ccf565b6000819050600b54811115612cc357600b5490505b612ccc81612734565b50505b565b60008183612cdf9190613828565b905092915050565b60008183612cf59190613899565b905092915050565b505050565b505050565b60004382119050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d4d578082015181840152602081019050612d32565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d7582612d13565b612d7f8185612d1e565b9350612d8f818560208601612d2f565b612d9881612d59565b840191505092915050565b60006020820190508181036000830152612dbd8184612d6a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e0482612dd9565b9050919050565b612e1481612df9565b8114612e1f57600080fd5b50565b600081359050612e3181612e0b565b92915050565b6000819050919050565b612e4a81612e37565b8114612e5557600080fd5b50565b600081359050612e6781612e41565b92915050565b60008060408385031215612e8457612e83612dcf565b5b6000612e9285828601612e22565b9250506020612ea385828601612e58565b9150509250929050565b60008115159050919050565b612ec281612ead565b82525050565b6000602082019050612edd6000830184612eb9565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2082612d59565b810181811067ffffffffffffffff82111715612f3f57612f3e612ee8565b5b80604052505050565b6000612f52612dc5565b9050612f5e8282612f17565b919050565b600067ffffffffffffffff821115612f7e57612f7d612ee8565b5b602082029050602081019050919050565b600080fd5b6000612fa7612fa284612f63565b612f48565b90508083825260208201905060208402830185811115612fca57612fc9612f8f565b5b835b81811015612ff35780612fdf8882612e22565b845260208401935050602081019050612fcc565b5050509392505050565b600082601f83011261301257613011612ee3565b5b8135613022848260208601612f94565b91505092915050565b61303481612ead565b811461303f57600080fd5b50565b6000813590506130518161302b565b92915050565b6000806040838503121561306e5761306d612dcf565b5b600083013567ffffffffffffffff81111561308c5761308b612dd4565b5b61309885828601612ffd565b92505060206130a985828601613042565b9150509250929050565b6130bc81612e37565b82525050565b60006020820190506130d760008301846130b3565b92915050565b6000806000606084860312156130f6576130f5612dcf565b5b600061310486828701612e22565b935050602061311586828701612e22565b925050604061312686828701612e58565b9150509250925092565b600080fd5b60008083601f84011261314b5761314a612ee3565b5b8235905067ffffffffffffffff81111561316857613167613130565b5b60208301915083602082028301111561318457613183612f8f565b5b9250929050565b6000806000604084860312156131a4576131a3612dcf565b5b600084013567ffffffffffffffff8111156131c2576131c1612dd4565b5b6131ce86828701613135565b935093505060206131e186828701612e58565b9150509250925092565b600060ff82169050919050565b613201816131eb565b82525050565b600060208201905061321c60008301846131f8565b92915050565b60006020828403121561323857613237612dcf565b5b600061324684828501612e58565b91505092915050565b61325881612df9565b82525050565b6000602082019050613273600083018461324f565b92915050565b6000819050919050565b600061329e61329961329484612dd9565b613279565b612dd9565b9050919050565b60006132b082613283565b9050919050565b60006132c2826132a5565b9050919050565b6132d2816132b7565b82525050565b60006020820190506132ed60008301846132c9565b92915050565b60006020828403121561330957613308612dcf565b5b600061331784828501612e22565b91505092915050565b6000806040838503121561333757613336612dcf565b5b600061334585828601612e22565b925050602061335685828601613042565b9150509250929050565b6000806040838503121561337757613376612dcf565b5b600061338585828601612e58565b925050602061339685828601612e58565b9150509250929050565b600080604083850312156133b7576133b6612dcf565b5b60006133c585828601612e22565b92505060206133d685828601612e22565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061342757607f821691505b60208210810361343a576134396133e0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134a982612e37565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134db576134da61346f565b5b600182019050919050565b60006134f182612e37565b91506134fc83612e37565b92508282019050808211156135145761351361346f565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613550601683612d1e565b915061355b8261351a565b602082019050919050565b6000602082019050818103600083015261357f81613543565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006135e2603983612d1e565b91506135ed82613586565b604082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613674602583612d1e565b915061367f82613618565b604082019050919050565b600060208201905081810360008301526136a381613667565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613701578086048111156136dd576136dc61346f565b5b60018516156136ec5780820291505b80810290506136fa856136aa565b94506136c1565b94509492505050565b60008261371a57600190506137d6565b8161372857600090506137d6565b816001811461373e576002811461374857613777565b60019150506137d6565b60ff84111561375a5761375961346f565b5b8360020a9150848211156137715761377061346f565b5b506137d6565b5060208310610133831016604e8410600b84101617156137ac5782820a9050838111156137a7576137a661346f565b5b6137d6565b6137b984848460016136b7565b925090508184048111156137d0576137cf61346f565b5b81810290505b9392505050565b60006137e882612e37565b91506137f3836131eb565b92506138207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461370a565b905092915050565b600061383382612e37565b915061383e83612e37565b925082820261384c81612e37565b915082820484148315176138635761386261346f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138a482612e37565b91506138af83612e37565b9250826138bf576138be61386a565b5b828204905092915050565b6000815190506138d981612e41565b92915050565b6000602082840312156138f5576138f4612dcf565b5b6000613903848285016138ca565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b6000613942601083612d1e565b915061394d8261390c565b602082019050919050565b6000602082019050818103600083015261397181613935565b9050919050565b600060408201905061398d600083018561324f565b61399a60208301846130b3565b9392505050565b6000815190506139b08161302b565b92915050565b6000602082840312156139cc576139cb612dcf565b5b60006139da848285016139a1565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a3f602683612d1e565b9150613a4a826139e3565b604082019050919050565b60006020820190508181036000830152613a6e81613a32565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ad1602483612d1e565b9150613adc82613a75565b604082019050919050565b60006020820190508181036000830152613b0081613ac4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b63602283612d1e565b9150613b6e82613b07565b604082019050919050565b60006020820190508181036000830152613b9281613b56565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613bcf601d83612d1e565b9150613bda82613b99565b602082019050919050565b60006020820190508181036000830152613bfe81613bc2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c61602383612d1e565b9150613c6c82613c05565b604082019050919050565b60006020820190508181036000830152613c9081613c54565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613cf3602583612d1e565b9150613cfe82613c97565b604082019050919050565b60006020820190508181036000830152613d2281613ce6565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613d5f601683612d1e565b9150613d6a82613d29565b602082019050919050565b60006020820190508181036000830152613d8e81613d52565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613df1603583612d1e565b9150613dfc82613d95565b604082019050919050565b60006020820190508181036000830152613e2081613de4565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613e5d601383612d1e565b9150613e6882613e27565b602082019050919050565b60006020820190508181036000830152613e8c81613e50565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613eef603683612d1e565b9150613efa82613e93565b604082019050919050565b60006020820190508181036000830152613f1e81613ee2565b9050919050565b6000613f3082612e37565b9150613f3b83612e37565b9250828203905081811115613f5357613f5261346f565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fb5602183612d1e565b9150613fc082613f59565b604082019050919050565b60006020820190508181036000830152613fe481613fa8565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000614047602283612d1e565b915061405282613feb565b604082019050919050565b600060208201905081810360008301526140768161403a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006140b3602083612d1e565b91506140be8261407d565b602082019050919050565b600060208201905081810360008301526140e2816140a6565b9050919050565b6000815190506140f881612e0b565b92915050565b60006020828403121561411457614113612dcf565b5b6000614122848285016140e9565b91505092915050565b6000819050919050565b600061415061414b6141468461412b565b613279565b612e37565b9050919050565b61416081614135565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61419b81612df9565b82525050565b60006141ad8383614192565b60208301905092915050565b6000602082019050919050565b60006141d182614166565b6141db8185614171565b93506141e683614182565b8060005b838110156142175781516141fe88826141a1565b9750614209836141b9565b9250506001810190506141ea565b5085935050505092915050565b600060a08201905061423960008301886130b3565b6142466020830187614157565b818103604083015261425881866141c6565b9050614267606083018561324f565b61427460808301846130b3565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142da602683612d1e565b91506142e58261427e565b604082019050919050565b60006020820190508181036000830152614309816142cd565b9050919050565b7f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b600061436c602483612d1e565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b905091905056fea264697066735822122070dc35e4d4b3228cc74d95385b10122400991a0b5d2cfc141832fcefa896dafb64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000003c2aa002c1b785084f739d1b5e092cf5aa4154400000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : marketingWallet_ (address): 0x3c2aa002c1B785084f739d1B5e092CF5aA415440
Arg [1] : denominator_ (uint256): 1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003c2aa002c1b785084f739d1b5e092cf5aa415440
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001


Deployed Bytecode Sourcemap

162:9601:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;516:100:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1447:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2568:300:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;836:108:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1656:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7395:264:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;692:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;531:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;736:92:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1925:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2475:85:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;725:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;371:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7963:229;;;;;;;;;;;;;:::i;:::-;;237:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8772:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3247:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;763:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;952:127:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;634:103:4;;;;;;;;;;;;;:::i;:::-;;3369:149:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;399:87:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;624:104:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2992:247:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2171:436:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1087:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8200:176:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8496:268;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9534:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7160:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;648:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2876:108;;;;;;;;;;;;;:::i;:::-;;1288:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7667:288:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;577:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;745:201:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;617:24:3;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;801:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;516:100:1;570:13;603:5;596:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;516:100;:::o;1447:201::-;1530:4;1547:13;1563:12;:10;:12::i;:::-;1547:28;;1586:32;1595:5;1602:7;1611:6;1586:8;:32::i;:::-;1636:4;1629:11;;;1447:201;;;;:::o;2568:300:3:-;2671:15;;;;;;;;;;;2655:31;;:12;:10;:12::i;:::-;:31;;;2647:40;;;;;;2704:9;2699:162;2723:8;:15;2719:1;:19;2699:162;;;2783:8;2760:7;:20;2768:8;2777:1;2768:11;;;;;;;;:::i;:::-;;;;;;;;2760:20;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2827:8;2836:1;2827:11;;;;;;;;:::i;:::-;;;;;;;;2811:38;;;2840:8;2811:38;;;;;;:::i;:::-;;;;;;;;2740:3;;;;;:::i;:::-;;;;2699:162;;;;2568:300;;:::o;836:108:1:-;897:7;924:12;;917:19;;836:108;:::o;1656:261::-;1753:4;1770:15;1788:12;:10;:12::i;:::-;1770:30;;1811:38;1827:4;1833:7;1842:6;1811:15;:38::i;:::-;1860:27;1870:4;1876:2;1880:6;1860:9;:27::i;:::-;1905:4;1898:11;;;1656:261;;;;;:::o;7395:264:3:-;7501:15;;;;;;;;;;;7485:31;;:12;:10;:12::i;:::-;:31;;;7477:40;;;;;;7533:9;7528:124;7552:10;;:17;;7548:1;:21;7528:124;;;7620:10;;7631:1;7620:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7596:44;;7605:13;;;;;;;;;;;7596:44;;;7635:4;7596:44;;;;;;:::i;:::-;;;;;;;;7571:3;;;;;:::i;:::-;;;;7528:124;;;;7395:264;;;:::o;692:26::-;;;;:::o;531:33::-;;;;:::o;736:92:1:-;794:5;819:1;812:8;;736:92;:::o;1925:238::-;2013:4;2030:13;2046:12;:10;:12::i;:::-;2030:28;;2069:64;2078:5;2085:7;2122:10;2094:25;2104:5;2111:7;2094:9;:25::i;:::-;:38;;;;:::i;:::-;2069:8;:64::i;:::-;2151:4;2144:11;;;1925:238;;;;:::o;2475:85:3:-;2525:27;2531:12;:10;:12::i;:::-;2545:6;2525:5;:27::i;:::-;2475:85;:::o;725:25::-;;;;:::o;371:28::-;;;;;;;;;;;;;:::o;7963:229::-;8043:1;8019:21;:25;8011:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8106:15;;;;;;;;;;;8090:31;;:12;:10;:12::i;:::-;:31;;;8082:40;;;;;;8141:10;8133:28;;:51;8162:21;8133:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7963:229::o;237:52::-;;;:::o;8772:167::-;8870:15;;;;;;;;;;;8854:31;;:12;:10;:12::i;:::-;:31;;;8846:40;;;;;;8915:16;8897:15;;:34;;;;;;;;;;;;;;;;;;8772:167;:::o;3247:114::-;3313:4;3337:7;:16;3345:7;3337:16;;;;;;;;;;;;;;;;;;;;;;;;;3330:23;;3247:114;;;:::o;763:31::-;;;;;;;;;;;;;:::o;952:127:1:-;1026:7;1053:9;:18;1063:7;1053:18;;;;;;;;;;;;;;;;1046:25;;952:127;;;:::o;634:103:4:-;358:13;:11;:13::i;:::-;699:30:::1;726:1;699:18;:30::i;:::-;634:103::o:0;3369:149:3:-;358:13:4;:11;:13::i;:::-;3506:4:3::1;3464:31;:39;3496:6;3464:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;3369:149:::0;;:::o;399:87:4:-;445:7;472:6;;;;;;;;;;;465:13;;399:87;:::o;624:104:1:-;680:13;713:7;706:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;624:104;:::o;2992:247:3:-;358:13:4;:11;:13::i;:::-;3104::3::1;;;;;;;;;;;3096:21;;:4;:21;;::::0;3088:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3190:41;3219:4;3225:5;3190:28;:41::i;:::-;2992:247:::0;;:::o;2171:436:1:-;2264:4;2281:13;2297:12;:10;:12::i;:::-;2281:28;;2320:24;2347:25;2357:5;2364:7;2347:9;:25::i;:::-;2320:52;;2411:15;2391:16;:35;;2383:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2504:60;2513:5;2520:7;2548:15;2529:16;:34;2504:8;:60::i;:::-;2595:4;2588:11;;;;2171:436;;;;:::o;1087:193::-;1166:4;1183:13;1199:12;:10;:12::i;:::-;1183:28;;1222;1232:5;1239:2;1243:6;1222:9;:28::i;:::-;1268:4;1261:11;;;1087:193;;;;:::o;8200:176:3:-;8292:15;;;;;;;;;;;8276:31;;:12;:10;:12::i;:::-;:31;;;8268:40;;;;;;8357:10;:8;:10::i;:::-;8351:2;:16;;;;:::i;:::-;8340:7;:28;;;;:::i;:::-;8319:18;:49;;;;8200:176;:::o;8496:268::-;8577:15;;;;;;;;;;;8561:31;;:12;:10;:12::i;:::-;:31;;;8553:40;;;;;;8604:23;8630:24;8648:4;8630:9;:24::i;:::-;8604:50;;8665:18;8714:3;8704:7;8686:15;:25;;;;:::i;:::-;:31;;;;:::i;:::-;8665:52;;8728:28;8745:10;8728:16;:28::i;:::-;8542:222;;8496:268;:::o;9534:226::-;358:13:4;:11;:13::i;:::-;9612:5:3::1;9596:13;;:21;;;;;;;;;;;;;;;;;;9628:55;9662:13;;;;;;;;;;;9678:4;9628:25;:55::i;:::-;9694:58;9731:13;;;;;;;;;;;9747:4;9694:28;:58::i;:::-;9534:226:::0;:::o;7160:227::-;358:13:4;:11;:13::i;:::-;7314:10:3::1;:8;:10::i;:::-;7308:2;:16;;;;:::i;:::-;7283:21;:42;;;;:::i;:::-;7260:20;:65;;;;7368:10;:8;:10::i;:::-;7362:2;:16;;;;:::i;:::-;7348:10;:31;;;;:::i;:::-;7336:9;:43;;;;7160:227:::0;;:::o;648:35::-;;;;:::o;2876:108::-;358:13:4;:11;:13::i;:::-;2943:4:3::1;2929:11;;:18;;;;;;;;;;;;;;;;;;2972:4;2958:11;;:18;;;;;;;;;;;;;;;;;;2876:108::o:0;1288:151:1:-;1377:7;1404:11;:18;1416:5;1404:18;;;;;;;;;;;;;;;:27;1423:7;1404:27;;;;;;;;;;;;;;;;1397:34;;1288:151;;;;:::o;7667:288:3:-;7753:15;;;;;;;;;;;7737:31;;:12;:10;:12::i;:::-;:31;;;7729:40;;;;;;7832:1;7795:8;7788:26;;;7823:4;7788:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;7780:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7874:8;7867:25;;;7893:10;7912:8;7905:26;;;7940:4;7905:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7867:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7667:288;:::o;577:33::-;;;;:::o;745:201:4:-;358:13;:11;:13::i;:::-;854:1:::1;834:22;;:8;:22;;::::0;826:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;910:28;929:8;910:18;:28::i;:::-;745:201:::0;:::o;617:24:3:-;;;;:::o;801:31::-;;;;;;;;;;;;;:::o;92:98:0:-;145:7;172:10;165:17;;92:98;:::o;4310:346:1:-;4429:1;4412:19;;:5;:19;;;4404:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4510:1;4491:21;;:7;:21;;;4483:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4594:6;4564:11;:18;4576:5;4564:18;;;;;;;;;;;;;;;:27;4583:7;4564:27;;;;;;;;;;;;;;;:36;;;;4632:7;4616:32;;4625:5;4616:32;;;4641:6;4616:32;;;;;;:::i;:::-;;;;;;;;4310:346;;;:::o;4664:419::-;4765:24;4792:25;4802:5;4809:7;4792:9;:25::i;:::-;4765:52;;4852:17;4832:16;:37;4828:248;;4914:6;4894:16;:26;;4886:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4998:51;5007:5;5014:7;5042:6;5023:16;:25;4998:8;:51::i;:::-;4828:248;4754:329;4664:419;;;:::o;3720:2948:3:-;3832:1;3818:16;;:2;:16;;;3810:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3909:1;3893:18;;:4;:18;;;3885:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3980:1;3970:6;:11;3966:93;;3998:28;4014:4;4020:2;4024:1;3998:15;:28::i;:::-;4041:7;;3966:93;4100:12;4069:22;:28;4092:4;4069:28;;;;;;;;;;;;;;;:43;;;;4135:7;:5;:7::i;:::-;4127:15;;:4;:15;;;;:32;;;;;4152:7;:5;:7::i;:::-;4146:13;;:2;:13;;;;4127:32;:52;;;;;4177:1;4163:16;;:2;:16;;;;4127:52;:77;;;;;4197:6;4183:21;;:2;:21;;;;4127:77;:90;;;;;4209:8;;;;;;;;;;;4208:9;4127:90;4123:1266;;;4339:11;;;;;;;;;;;4334:116;;4379:7;:13;4387:4;4379:13;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;4396:7;:11;4404:2;4396:11;;;;;;;;;;;;;;;;;;;;;;;;;4379:28;4371:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4334:116;4521:25;:31;4547:4;4521:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4557:31;:35;4589:2;4557:35;;;;;;;;;;;;;;;;;;;;;;;;;4556:36;4521:71;4517:861;;;4631:20;;4621:6;:30;;4613:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;4762:9;;4745:13;4755:2;4745:9;:13::i;:::-;4736:6;:22;;;;:::i;:::-;:35;;4728:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4517:861;;;4952:25;:29;4978:2;4952:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4986:31;:37;5018:4;4986:37;;;;;;;;;;;;;;;;;;;;;;;;;4985:38;4952:71;4948:430;;;5062:20;;5052:6;:30;;5044:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4948:430;;;5239:31;:35;5271:2;5239:35;;;;;;;;;;;;;;;;;;;;;;;;;5234:144;;5329:9;;5312:13;5322:2;5312:9;:13::i;:::-;5303:6;:22;;;;:::i;:::-;:35;;5295:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5234:144;4948:430;4517:861;4123:1266;5402:24;5421:4;5402:18;:24::i;:::-;5399:93;;;5446:30;5471:4;5446:24;:30::i;:::-;5399:93;5549:28;5580:24;5598:4;5580:9;:24::i;:::-;5549:55;;5615:12;5653:18;;5630:20;:41;5615:56;;5686:7;:22;;;;;5697:11;;;;;;;;;;;5686:22;:35;;;;;5713:8;;;;;;;;;;;5712:9;5686:35;:71;;;;;5726:25;:31;5752:4;5726:31;;;;;;;;;;;;;;;;;;;;;;;;;5725:32;5686:71;:89;;;;;5762:7;:13;5770:4;5762:13;;;;;;;;;;;;;;;;;;;;;;;;;5761:14;5686:89;:105;;;;;5780:7;:11;5788:2;5780:11;;;;;;;;;;;;;;;;;;;;;;;;;5779:12;5686:105;5682:209;;;5819:4;5808:8;;:15;;;;;;;;;;;;;;;;;;5838:10;:8;:10::i;:::-;5874:5;5863:8;;:16;;;;;;;;;;;;;;;;;;5682:209;5997:12;6013:8;;;;;;;;;;;6012:9;:26;;;;;6025:7;:13;6033:4;6025:13;;;;;;;;;;;;;;;;;;;;;;;;;6012:26;:42;;;;;6043:7;:11;6051:2;6043:11;;;;;;;;;;;;;;;;;;;;;;;;;6042:12;6012:42;5997:57;;6065:12;6096:7;6092:515;;;6169:25;:29;6195:2;6169:29;;;;;;;;;;;;;;;;;;;;;;;;;6165:279;;;6226:28;6250:3;6226:19;6237:7;;6226:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;6219:35;;6165:279;;;6342:25;:31;6368:4;6342:31;;;;;;;;;;;;;;;;;;;;;;;;;6339:105;;;6401:27;6424:3;6401:18;6412:6;;6401;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;6394:34;;6339:105;6165:279;6473:1;6466:4;:8;6462:91;;;6495:42;6511:4;6525;6532;6495:15;:42::i;:::-;6462:91;6577:4;6567:14;;;;;:::i;:::-;;;6092:515;6627:33;6643:4;6649:2;6653:6;6627:15;:33::i;:::-;3799:2869;;;;3720:2948;;;;:::o;3707:595:1:-;3810:1;3791:21;;:7;:21;;;3783:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3863:49;3884:7;3901:1;3905:6;3863:20;:49::i;:::-;3925:22;3950:9;:18;3960:7;3950:18;;;;;;;;;;;;;;;;3925:43;;4005:6;3987:14;:24;;3979:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4124:6;4107:14;:23;4086:9;:18;4096:7;4086:18;;;;;;;;;;;;;;;:44;;;;4161:6;4145:12;;:22;;;;;;;;;;;4222:1;4196:37;;4205:7;4196:37;;;4226:6;4196:37;;;;;;:::i;:::-;;;;;;;;4246:48;4266:7;4283:1;4287:6;4246:19;:48::i;:::-;3772:530;3707:595;;:::o;494:132:4:-;569:12;:10;:12::i;:::-;558:23;;:7;:5;:7::i;:::-;:23;;;550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;494:132::o;954:191::-;1028:16;1047:6;;;;;;;;;;;1028:25;;1073:8;1064:6;;:17;;;;;;;;;;;;;;;;;;1128:8;1097:40;;1118:8;1097:40;;;;;;;;;;;;1017:128;954:191;:::o;3526:186:3:-;3643:5;3609:25;:31;3635:4;3609:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;3698:5;3664:40;;3692:4;3664:40;;;;;;;;;;;;3526:186;;:::o;6676:476::-;6742:21;6780:1;6766:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6742:40;;6811:4;6793;6798:1;6793:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;6837:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6827:4;6832:1;6827:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;6871:63;6888:4;6903:16;6922:11;6871:8;:63::i;:::-;6945:16;:67;;;7027:11;7053:1;7069:4;7088:15;;;;;;;;;;;7118;6945:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6731:421;6676:476;:::o;2615:641:1:-;2728:1;2712:18;;:4;:18;;;2704:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2805:1;2791:16;;:2;:16;;;2783:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2860:38;2881:4;2887:2;2891:6;2860:20;:38::i;:::-;2911:19;2933:9;:15;2943:4;2933:15;;;;;;;;;;;;;;;;2911:37;;2982:6;2967:11;:21;;2959:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3099:6;3085:11;:20;3067:9;:15;3077:4;3067:15;;;;;;;;;;;;;;;:38;;;;3137:6;3120:9;:13;3130:2;3120:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3187:2;3172:26;;3181:4;3172:26;;;3191:6;3172:26;;;;;;:::i;:::-;;;;;;;;3211:37;3231:4;3237:2;3241:6;3211:19;:37::i;:::-;2693:563;2615:641;;;:::o;9354:172:3:-;9436:41;9446:22;:30;9469:6;9446:30;;;;;;;;;;;;;;;;9436:9;:41::i;:::-;9428:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;9354:172;:::o;8947:399::-;8986:23;9012:24;9030:4;9012:9;:24::i;:::-;8986:50;;9070:1;9051:15;:20;9047:91;;9120:7;;;9047:91;9150:20;9173:15;9150:38;;9218:18;;9203:12;:33;9199:99;;;9268:18;;9253:33;;9199:99;9308:30;9325:12;9308:16;:30::i;:::-;8975:371;;8947:399;:::o;1413:98:5:-;1471:7;1502:1;1498;:5;;;;:::i;:::-;1491:12;;1413:98;;;;:::o;1519:::-;1577:7;1608:1;1604;:5;;;;:::i;:::-;1597:12;;1519:98;;;;:::o;5091:91:1:-;;;;:::o;5190:90::-;;;;:::o;8384:104:3:-;8438:4;8468:12;8461:4;:19;8454:26;;8384:104;;;:::o;7:99:7:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:116::-;5813:21;5828:5;5813:21;:::i;:::-;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5793:60;5743:116;:::o;5865:133::-;5908:5;5946:6;5933:20;5924:29;;5962:30;5986:5;5962:30;:::i;:::-;5865:133;;;;:::o;6004:678::-;6094:6;6102;6151:2;6139:9;6130:7;6126:23;6122:32;6119:119;;;6157:79;;:::i;:::-;6119:119;6305:1;6294:9;6290:17;6277:31;6335:18;6327:6;6324:30;6321:117;;;6357:79;;:::i;:::-;6321:117;6462:78;6532:7;6523:6;6512:9;6508:22;6462:78;:::i;:::-;6452:88;;6248:302;6589:2;6615:50;6657:7;6648:6;6637:9;6633:22;6615:50;:::i;:::-;6605:60;;6560:115;6004:678;;;;;:::o;6688:118::-;6775:24;6793:5;6775:24;:::i;:::-;6770:3;6763:37;6688:118;;:::o;6812:222::-;6905:4;6943:2;6932:9;6928:18;6920:26;;6956:71;7024:1;7013:9;7009:17;7000:6;6956:71;:::i;:::-;6812:222;;;;:::o;7040:619::-;7117:6;7125;7133;7182:2;7170:9;7161:7;7157:23;7153:32;7150:119;;;7188:79;;:::i;:::-;7150:119;7308:1;7333:53;7378:7;7369:6;7358:9;7354:22;7333:53;:::i;:::-;7323:63;;7279:117;7435:2;7461:53;7506:7;7497:6;7486:9;7482:22;7461:53;:::i;:::-;7451:63;;7406:118;7563:2;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7534:118;7040:619;;;;;:::o;7665:117::-;7774:1;7771;7764:12;7805:568;7878:8;7888:6;7938:3;7931:4;7923:6;7919:17;7915:27;7905:122;;7946:79;;:::i;:::-;7905:122;8059:6;8046:20;8036:30;;8089:18;8081:6;8078:30;8075:117;;;8111:79;;:::i;:::-;8075:117;8225:4;8217:6;8213:17;8201:29;;8279:3;8271:4;8263:6;8259:17;8249:8;8245:32;8242:41;8239:128;;;8286:79;;:::i;:::-;8239:128;7805:568;;;;;:::o;8379:704::-;8474:6;8482;8490;8539:2;8527:9;8518:7;8514:23;8510:32;8507:119;;;8545:79;;:::i;:::-;8507:119;8693:1;8682:9;8678:17;8665:31;8723:18;8715:6;8712:30;8709:117;;;8745:79;;:::i;:::-;8709:117;8858:80;8930:7;8921:6;8910:9;8906:22;8858:80;:::i;:::-;8840:98;;;;8636:312;8987:2;9013:53;9058:7;9049:6;9038:9;9034:22;9013:53;:::i;:::-;9003:63;;8958:118;8379:704;;;;;:::o;9089:86::-;9124:7;9164:4;9157:5;9153:16;9142:27;;9089:86;;;:::o;9181:112::-;9264:22;9280:5;9264:22;:::i;:::-;9259:3;9252:35;9181:112;;:::o;9299:214::-;9388:4;9426:2;9415:9;9411:18;9403:26;;9439:67;9503:1;9492:9;9488:17;9479:6;9439:67;:::i;:::-;9299:214;;;;:::o;9519:329::-;9578:6;9627:2;9615:9;9606:7;9602:23;9598:32;9595:119;;;9633:79;;:::i;:::-;9595:119;9753:1;9778:53;9823:7;9814:6;9803:9;9799:22;9778:53;:::i;:::-;9768:63;;9724:117;9519:329;;;;:::o;9854:118::-;9941:24;9959:5;9941:24;:::i;:::-;9936:3;9929:37;9854:118;;:::o;9978:222::-;10071:4;10109:2;10098:9;10094:18;10086:26;;10122:71;10190:1;10179:9;10175:17;10166:6;10122:71;:::i;:::-;9978:222;;;;:::o;10206:60::-;10234:3;10255:5;10248:12;;10206:60;;;:::o;10272:142::-;10322:9;10355:53;10373:34;10382:24;10400:5;10382:24;:::i;:::-;10373:34;:::i;:::-;10355:53;:::i;:::-;10342:66;;10272:142;;;:::o;10420:126::-;10470:9;10503:37;10534:5;10503:37;:::i;:::-;10490:50;;10420:126;;;:::o;10552:153::-;10629:9;10662:37;10693:5;10662:37;:::i;:::-;10649:50;;10552:153;;;:::o;10711:185::-;10825:64;10883:5;10825:64;:::i;:::-;10820:3;10813:77;10711:185;;:::o;10902:276::-;11022:4;11060:2;11049:9;11045:18;11037:26;;11073:98;11168:1;11157:9;11153:17;11144:6;11073:98;:::i;:::-;10902:276;;;;:::o;11184:329::-;11243:6;11292:2;11280:9;11271:7;11267:23;11263:32;11260:119;;;11298:79;;:::i;:::-;11260:119;11418:1;11443:53;11488:7;11479:6;11468:9;11464:22;11443:53;:::i;:::-;11433:63;;11389:117;11184:329;;;;:::o;11519:468::-;11584:6;11592;11641:2;11629:9;11620:7;11616:23;11612:32;11609:119;;;11647:79;;:::i;:::-;11609:119;11767:1;11792:53;11837:7;11828:6;11817:9;11813:22;11792:53;:::i;:::-;11782:63;;11738:117;11894:2;11920:50;11962:7;11953:6;11942:9;11938:22;11920:50;:::i;:::-;11910:60;;11865:115;11519:468;;;;;:::o;11993:474::-;12061:6;12069;12118:2;12106:9;12097:7;12093:23;12089:32;12086:119;;;12124:79;;:::i;:::-;12086:119;12244:1;12269:53;12314:7;12305:6;12294:9;12290:22;12269:53;:::i;:::-;12259:63;;12215:117;12371:2;12397:53;12442:7;12433:6;12422:9;12418:22;12397:53;:::i;:::-;12387:63;;12342:118;11993:474;;;;;:::o;12473:::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:180::-;13513:77;13510:1;13503:88;13610:4;13607:1;13600:15;13634:4;13631:1;13624:15;13651:180;13699:77;13696:1;13689:88;13796:4;13793:1;13786:15;13820:4;13817:1;13810:15;13837:233;13876:3;13899:24;13917:5;13899:24;:::i;:::-;13890:33;;13945:66;13938:5;13935:77;13932:103;;14015:18;;:::i;:::-;13932:103;14062:1;14055:5;14051:13;14044:20;;13837:233;;;:::o;14076:191::-;14116:3;14135:20;14153:1;14135:20;:::i;:::-;14130:25;;14169:20;14187:1;14169:20;:::i;:::-;14164:25;;14212:1;14209;14205:9;14198:16;;14233:3;14230:1;14227:10;14224:36;;;14240:18;;:::i;:::-;14224:36;14076:191;;;;:::o;14273:172::-;14413:24;14409:1;14401:6;14397:14;14390:48;14273:172;:::o;14451:366::-;14593:3;14614:67;14678:2;14673:3;14614:67;:::i;:::-;14607:74;;14690:93;14779:3;14690:93;:::i;:::-;14808:2;14803:3;14799:12;14792:19;;14451:366;;;:::o;14823:419::-;14989:4;15027:2;15016:9;15012:18;15004:26;;15076:9;15070:4;15066:20;15062:1;15051:9;15047:17;15040:47;15104:131;15230:4;15104:131;:::i;:::-;15096:139;;14823:419;;;:::o;15248:244::-;15388:34;15384:1;15376:6;15372:14;15365:58;15457:27;15452:2;15444:6;15440:15;15433:52;15248:244;:::o;15498:366::-;15640:3;15661:67;15725:2;15720:3;15661:67;:::i;:::-;15654:74;;15737:93;15826:3;15737:93;:::i;:::-;15855:2;15850:3;15846:12;15839:19;;15498:366;;;:::o;15870:419::-;16036:4;16074:2;16063:9;16059:18;16051:26;;16123:9;16117:4;16113:20;16109:1;16098:9;16094:17;16087:47;16151:131;16277:4;16151:131;:::i;:::-;16143:139;;15870:419;;;:::o;16295:224::-;16435:34;16431:1;16423:6;16419:14;16412:58;16504:7;16499:2;16491:6;16487:15;16480:32;16295:224;:::o;16525:366::-;16667:3;16688:67;16752:2;16747:3;16688:67;:::i;:::-;16681:74;;16764:93;16853:3;16764:93;:::i;:::-;16882:2;16877:3;16873:12;16866:19;;16525:366;;;:::o;16897:419::-;17063:4;17101:2;17090:9;17086:18;17078:26;;17150:9;17144:4;17140:20;17136:1;17125:9;17121:17;17114:47;17178:131;17304:4;17178:131;:::i;:::-;17170:139;;16897:419;;;:::o;17322:102::-;17364:8;17411:5;17408:1;17404:13;17383:34;;17322:102;;;:::o;17430:848::-;17491:5;17498:4;17522:6;17513:15;;17546:5;17537:14;;17560:712;17581:1;17571:8;17568:15;17560:712;;;17676:4;17671:3;17667:14;17661:4;17658:24;17655:50;;;17685:18;;:::i;:::-;17655:50;17735:1;17725:8;17721:16;17718:451;;;18150:4;18143:5;18139:16;18130:25;;17718:451;18200:4;18194;18190:15;18182:23;;18230:32;18253:8;18230:32;:::i;:::-;18218:44;;17560:712;;;17430:848;;;;;;;:::o;18284:1073::-;18338:5;18529:8;18519:40;;18550:1;18541:10;;18552:5;;18519:40;18578:4;18568:36;;18595:1;18586:10;;18597:5;;18568:36;18664:4;18712:1;18707:27;;;;18748:1;18743:191;;;;18657:277;;18707:27;18725:1;18716:10;;18727:5;;;18743:191;18788:3;18778:8;18775:17;18772:43;;;18795:18;;:::i;:::-;18772:43;18844:8;18841:1;18837:16;18828:25;;18879:3;18872:5;18869:14;18866:40;;;18886:18;;:::i;:::-;18866:40;18919:5;;;18657:277;;19043:2;19033:8;19030:16;19024:3;19018:4;19015:13;19011:36;18993:2;18983:8;18980:16;18975:2;18969:4;18966:12;18962:35;18946:111;18943:246;;;19099:8;19093:4;19089:19;19080:28;;19134:3;19127:5;19124:14;19121:40;;;19141:18;;:::i;:::-;19121:40;19174:5;;18943:246;19214:42;19252:3;19242:8;19236:4;19233:1;19214:42;:::i;:::-;19199:57;;;;19288:4;19283:3;19279:14;19272:5;19269:25;19266:51;;;19297:18;;:::i;:::-;19266:51;19346:4;19339:5;19335:16;19326:25;;18284:1073;;;;;;:::o;19363:281::-;19421:5;19445:23;19463:4;19445:23;:::i;:::-;19437:31;;19489:25;19505:8;19489:25;:::i;:::-;19477:37;;19533:104;19570:66;19560:8;19554:4;19533:104;:::i;:::-;19524:113;;19363:281;;;;:::o;19650:410::-;19690:7;19713:20;19731:1;19713:20;:::i;:::-;19708:25;;19747:20;19765:1;19747:20;:::i;:::-;19742:25;;19802:1;19799;19795:9;19824:30;19842:11;19824:30;:::i;:::-;19813:41;;20003:1;19994:7;19990:15;19987:1;19984:22;19964:1;19957:9;19937:83;19914:139;;20033:18;;:::i;:::-;19914:139;19698:362;19650:410;;;;:::o;20066:180::-;20114:77;20111:1;20104:88;20211:4;20208:1;20201:15;20235:4;20232:1;20225:15;20252:185;20292:1;20309:20;20327:1;20309:20;:::i;:::-;20304:25;;20343:20;20361:1;20343:20;:::i;:::-;20338:25;;20382:1;20372:35;;20387:18;;:::i;:::-;20372:35;20429:1;20426;20422:9;20417:14;;20252:185;;;;:::o;20443:143::-;20500:5;20531:6;20525:13;20516:22;;20547:33;20574:5;20547:33;:::i;:::-;20443:143;;;;:::o;20592:351::-;20662:6;20711:2;20699:9;20690:7;20686:23;20682:32;20679:119;;;20717:79;;:::i;:::-;20679:119;20837:1;20862:64;20918:7;20909:6;20898:9;20894:22;20862:64;:::i;:::-;20852:74;;20808:128;20592:351;;;;:::o;20949:166::-;21089:18;21085:1;21077:6;21073:14;21066:42;20949:166;:::o;21121:366::-;21263:3;21284:67;21348:2;21343:3;21284:67;:::i;:::-;21277:74;;21360:93;21449:3;21360:93;:::i;:::-;21478:2;21473:3;21469:12;21462:19;;21121:366;;;:::o;21493:419::-;21659:4;21697:2;21686:9;21682:18;21674:26;;21746:9;21740:4;21736:20;21732:1;21721:9;21717:17;21710:47;21774:131;21900:4;21774:131;:::i;:::-;21766:139;;21493:419;;;:::o;21918:332::-;22039:4;22077:2;22066:9;22062:18;22054:26;;22090:71;22158:1;22147:9;22143:17;22134:6;22090:71;:::i;:::-;22171:72;22239:2;22228:9;22224:18;22215:6;22171:72;:::i;:::-;21918:332;;;;;:::o;22256:137::-;22310:5;22341:6;22335:13;22326:22;;22357:30;22381:5;22357:30;:::i;:::-;22256:137;;;;:::o;22399:345::-;22466:6;22515:2;22503:9;22494:7;22490:23;22486:32;22483:119;;;22521:79;;:::i;:::-;22483:119;22641:1;22666:61;22719:7;22710:6;22699:9;22695:22;22666:61;:::i;:::-;22656:71;;22612:125;22399:345;;;;:::o;22750:225::-;22890:34;22886:1;22878:6;22874:14;22867:58;22959:8;22954:2;22946:6;22942:15;22935:33;22750:225;:::o;22981:366::-;23123:3;23144:67;23208:2;23203:3;23144:67;:::i;:::-;23137:74;;23220:93;23309:3;23220:93;:::i;:::-;23338:2;23333:3;23329:12;23322:19;;22981:366;;;:::o;23353:419::-;23519:4;23557:2;23546:9;23542:18;23534:26;;23606:9;23600:4;23596:20;23592:1;23581:9;23577:17;23570:47;23634:131;23760:4;23634:131;:::i;:::-;23626:139;;23353:419;;;:::o;23778:223::-;23918:34;23914:1;23906:6;23902:14;23895:58;23987:6;23982:2;23974:6;23970:15;23963:31;23778:223;:::o;24007:366::-;24149:3;24170:67;24234:2;24229:3;24170:67;:::i;:::-;24163:74;;24246:93;24335:3;24246:93;:::i;:::-;24364:2;24359:3;24355:12;24348:19;;24007:366;;;:::o;24379:419::-;24545:4;24583:2;24572:9;24568:18;24560:26;;24632:9;24626:4;24622:20;24618:1;24607:9;24603:17;24596:47;24660:131;24786:4;24660:131;:::i;:::-;24652:139;;24379:419;;;:::o;24804:221::-;24944:34;24940:1;24932:6;24928:14;24921:58;25013:4;25008:2;25000:6;24996:15;24989:29;24804:221;:::o;25031:366::-;25173:3;25194:67;25258:2;25253:3;25194:67;:::i;:::-;25187:74;;25270:93;25359:3;25270:93;:::i;:::-;25388:2;25383:3;25379:12;25372:19;;25031:366;;;:::o;25403:419::-;25569:4;25607:2;25596:9;25592:18;25584:26;;25656:9;25650:4;25646:20;25642:1;25631:9;25627:17;25620:47;25684:131;25810:4;25684:131;:::i;:::-;25676:139;;25403:419;;;:::o;25828:179::-;25968:31;25964:1;25956:6;25952:14;25945:55;25828:179;:::o;26013:366::-;26155:3;26176:67;26240:2;26235:3;26176:67;:::i;:::-;26169:74;;26252:93;26341:3;26252:93;:::i;:::-;26370:2;26365:3;26361:12;26354:19;;26013:366;;;:::o;26385:419::-;26551:4;26589:2;26578:9;26574:18;26566:26;;26638:9;26632:4;26628:20;26624:1;26613:9;26609:17;26602:47;26666:131;26792:4;26666:131;:::i;:::-;26658:139;;26385:419;;;:::o;26810:222::-;26950:34;26946:1;26938:6;26934:14;26927:58;27019:5;27014:2;27006:6;27002:15;26995:30;26810:222;:::o;27038:366::-;27180:3;27201:67;27265:2;27260:3;27201:67;:::i;:::-;27194:74;;27277:93;27366:3;27277:93;:::i;:::-;27395:2;27390:3;27386:12;27379:19;;27038:366;;;:::o;27410:419::-;27576:4;27614:2;27603:9;27599:18;27591:26;;27663:9;27657:4;27653:20;27649:1;27638:9;27634:17;27627:47;27691:131;27817:4;27691:131;:::i;:::-;27683:139;;27410:419;;;:::o;27835:224::-;27975:34;27971:1;27963:6;27959:14;27952:58;28044:7;28039:2;28031:6;28027:15;28020:32;27835:224;:::o;28065:366::-;28207:3;28228:67;28292:2;28287:3;28228:67;:::i;:::-;28221:74;;28304:93;28393:3;28304:93;:::i;:::-;28422:2;28417:3;28413:12;28406:19;;28065:366;;;:::o;28437:419::-;28603:4;28641:2;28630:9;28626:18;28618:26;;28690:9;28684:4;28680:20;28676:1;28665:9;28661:17;28654:47;28718:131;28844:4;28718:131;:::i;:::-;28710:139;;28437:419;;;:::o;28862:172::-;29002:24;28998:1;28990:6;28986:14;28979:48;28862:172;:::o;29040:366::-;29182:3;29203:67;29267:2;29262:3;29203:67;:::i;:::-;29196:74;;29279:93;29368:3;29279:93;:::i;:::-;29397:2;29392:3;29388:12;29381:19;;29040:366;;;:::o;29412:419::-;29578:4;29616:2;29605:9;29601:18;29593:26;;29665:9;29659:4;29655:20;29651:1;29640:9;29636:17;29629:47;29693:131;29819:4;29693:131;:::i;:::-;29685:139;;29412:419;;;:::o;29837:240::-;29977:34;29973:1;29965:6;29961:14;29954:58;30046:23;30041:2;30033:6;30029:15;30022:48;29837:240;:::o;30083:366::-;30225:3;30246:67;30310:2;30305:3;30246:67;:::i;:::-;30239:74;;30322:93;30411:3;30322:93;:::i;:::-;30440:2;30435:3;30431:12;30424:19;;30083:366;;;:::o;30455:419::-;30621:4;30659:2;30648:9;30644:18;30636:26;;30708:9;30702:4;30698:20;30694:1;30683:9;30679:17;30672:47;30736:131;30862:4;30736:131;:::i;:::-;30728:139;;30455:419;;;:::o;30880:169::-;31020:21;31016:1;31008:6;31004:14;30997:45;30880:169;:::o;31055:366::-;31197:3;31218:67;31282:2;31277:3;31218:67;:::i;:::-;31211:74;;31294:93;31383:3;31294:93;:::i;:::-;31412:2;31407:3;31403:12;31396:19;;31055:366;;;:::o;31427:419::-;31593:4;31631:2;31620:9;31616:18;31608:26;;31680:9;31674:4;31670:20;31666:1;31655:9;31651:17;31644:47;31708:131;31834:4;31708:131;:::i;:::-;31700:139;;31427:419;;;:::o;31852:241::-;31992:34;31988:1;31980:6;31976:14;31969:58;32061:24;32056:2;32048:6;32044:15;32037:49;31852:241;:::o;32099:366::-;32241:3;32262:67;32326:2;32321:3;32262:67;:::i;:::-;32255:74;;32338:93;32427:3;32338:93;:::i;:::-;32456:2;32451:3;32447:12;32440:19;;32099:366;;;:::o;32471:419::-;32637:4;32675:2;32664:9;32660:18;32652:26;;32724:9;32718:4;32714:20;32710:1;32699:9;32695:17;32688:47;32752:131;32878:4;32752:131;:::i;:::-;32744:139;;32471:419;;;:::o;32896:194::-;32936:4;32956:20;32974:1;32956:20;:::i;:::-;32951:25;;32990:20;33008:1;32990:20;:::i;:::-;32985:25;;33034:1;33031;33027:9;33019:17;;33058:1;33052:4;33049:11;33046:37;;;33063:18;;:::i;:::-;33046:37;32896:194;;;;:::o;33096:220::-;33236:34;33232:1;33224:6;33220:14;33213:58;33305:3;33300:2;33292:6;33288:15;33281:28;33096:220;:::o;33322:366::-;33464:3;33485:67;33549:2;33544:3;33485:67;:::i;:::-;33478:74;;33561:93;33650:3;33561:93;:::i;:::-;33679:2;33674:3;33670:12;33663:19;;33322:366;;;:::o;33694:419::-;33860:4;33898:2;33887:9;33883:18;33875:26;;33947:9;33941:4;33937:20;33933:1;33922:9;33918:17;33911:47;33975:131;34101:4;33975:131;:::i;:::-;33967:139;;33694:419;;;:::o;34119:221::-;34259:34;34255:1;34247:6;34243:14;34236:58;34328:4;34323:2;34315:6;34311:15;34304:29;34119:221;:::o;34346:366::-;34488:3;34509:67;34573:2;34568:3;34509:67;:::i;:::-;34502:74;;34585:93;34674:3;34585:93;:::i;:::-;34703:2;34698:3;34694:12;34687:19;;34346:366;;;:::o;34718:419::-;34884:4;34922:2;34911:9;34907:18;34899:26;;34971:9;34965:4;34961:20;34957:1;34946:9;34942:17;34935:47;34999:131;35125:4;34999:131;:::i;:::-;34991:139;;34718:419;;;:::o;35143:182::-;35283:34;35279:1;35271:6;35267:14;35260:58;35143:182;:::o;35331:366::-;35473:3;35494:67;35558:2;35553:3;35494:67;:::i;:::-;35487:74;;35570:93;35659:3;35570:93;:::i;:::-;35688:2;35683:3;35679:12;35672:19;;35331:366;;;:::o;35703:419::-;35869:4;35907:2;35896:9;35892:18;35884:26;;35956:9;35950:4;35946:20;35942:1;35931:9;35927:17;35920:47;35984:131;36110:4;35984:131;:::i;:::-;35976:139;;35703:419;;;:::o;36128:143::-;36185:5;36216:6;36210:13;36201:22;;36232:33;36259:5;36232:33;:::i;:::-;36128:143;;;;:::o;36277:351::-;36347:6;36396:2;36384:9;36375:7;36371:23;36367:32;36364:119;;;36402:79;;:::i;:::-;36364:119;36522:1;36547:64;36603:7;36594:6;36583:9;36579:22;36547:64;:::i;:::-;36537:74;;36493:128;36277:351;;;;:::o;36634:85::-;36679:7;36708:5;36697:16;;36634:85;;;:::o;36725:158::-;36783:9;36816:61;36834:42;36843:32;36869:5;36843:32;:::i;:::-;36834:42;:::i;:::-;36816:61;:::i;:::-;36803:74;;36725:158;;;:::o;36889:147::-;36984:45;37023:5;36984:45;:::i;:::-;36979:3;36972:58;36889:147;;:::o;37042:114::-;37109:6;37143:5;37137:12;37127:22;;37042:114;;;:::o;37162:184::-;37261:11;37295:6;37290:3;37283:19;37335:4;37330:3;37326:14;37311:29;;37162:184;;;;:::o;37352:132::-;37419:4;37442:3;37434:11;;37472:4;37467:3;37463:14;37455:22;;37352:132;;;:::o;37490:108::-;37567:24;37585:5;37567:24;:::i;:::-;37562:3;37555:37;37490:108;;:::o;37604:179::-;37673:10;37694:46;37736:3;37728:6;37694:46;:::i;:::-;37772:4;37767:3;37763:14;37749:28;;37604:179;;;;:::o;37789:113::-;37859:4;37891;37886:3;37882:14;37874:22;;37789:113;;;:::o;37938:732::-;38057:3;38086:54;38134:5;38086:54;:::i;:::-;38156:86;38235:6;38230:3;38156:86;:::i;:::-;38149:93;;38266:56;38316:5;38266:56;:::i;:::-;38345:7;38376:1;38361:284;38386:6;38383:1;38380:13;38361:284;;;38462:6;38456:13;38489:63;38548:3;38533:13;38489:63;:::i;:::-;38482:70;;38575:60;38628:6;38575:60;:::i;:::-;38565:70;;38421:224;38408:1;38405;38401:9;38396:14;;38361:284;;;38365:14;38661:3;38654:10;;38062:608;;;37938:732;;;;:::o;38676:831::-;38939:4;38977:3;38966:9;38962:19;38954:27;;38991:71;39059:1;39048:9;39044:17;39035:6;38991:71;:::i;:::-;39072:80;39148:2;39137:9;39133:18;39124:6;39072:80;:::i;:::-;39199:9;39193:4;39189:20;39184:2;39173:9;39169:18;39162:48;39227:108;39330:4;39321:6;39227:108;:::i;:::-;39219:116;;39345:72;39413:2;39402:9;39398:18;39389:6;39345:72;:::i;:::-;39427:73;39495:3;39484:9;39480:19;39471:6;39427:73;:::i;:::-;38676:831;;;;;;;;:::o;39513:225::-;39653:34;39649:1;39641:6;39637:14;39630:58;39722:8;39717:2;39709:6;39705:15;39698:33;39513:225;:::o;39744:366::-;39886:3;39907:67;39971:2;39966:3;39907:67;:::i;:::-;39900:74;;39983:93;40072:3;39983:93;:::i;:::-;40101:2;40096:3;40092:12;40085:19;;39744:366;;;:::o;40116:419::-;40282:4;40320:2;40309:9;40305:18;40297:26;;40369:9;40363:4;40359:20;40355:1;40344:9;40340:17;40333:47;40397:131;40523:4;40397:131;:::i;:::-;40389:139;;40116:419;;;:::o;40541:223::-;40681:34;40677:1;40669:6;40665:14;40658:58;40750:6;40745:2;40737:6;40733:15;40726:31;40541:223;:::o;40770:366::-;40912:3;40933:67;40997:2;40992:3;40933:67;:::i;:::-;40926:74;;41009:93;41098:3;41009:93;:::i;:::-;41127:2;41122:3;41118:12;41111:19;;40770:366;;;:::o;41142:419::-;41308:4;41346:2;41335:9;41331:18;41323:26;;41395:9;41389:4;41385:20;41381:1;41370:9;41366:17;41359:47;41423:131;41549:4;41423:131;:::i;:::-;41415:139;;41142:419;;;:::o

Swarm Source

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