ETH Price: $3,310.03 (+1.17%)
Gas: 4 Gwei

Token

United Altcoin Emirates (UAE)
 

Overview

Max Total Supply

1,000,000,000,000 UAE

Holders

113

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,863,149,631.87564757 UAE

Value
$0.00
0x748f60c65dd4ea0bc103977c7bad38d21cb5b49a
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:
UAE

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-24
*/

/**
 * SPDX-License-Identifier: UNLICENSED 
 * website: https://www.unitedaltcoinemirates.com/
*/

pragma solidity ^0.8.20;

interface IERC20 {

    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
 
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract UAE is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "United Altcoin Emirates";
    string private constant _symbol = "UAE";
    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private minContractTokensToSwap = 1e9 * 10**9;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWallet;
    mapping (address => bool) private _bots;
    uint256 private _taxFee = 0;
    uint256 private _teamFee = 0;
    uint256 private _maxWalletSize = 1e10 * 10**9;
    uint256 private _maxBuy = 0;
    uint256 private _buyFee = 12;
    uint256 private _sellFee = 12;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _developmentWallet;
    address payable private _marketingWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _swapAll = true;
    bool private inSwap = false;
    mapping(address => bool) private automatedMarketMakerPairs;

    event Response(bool dev, bool marketing);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor () {

        _developmentWallet = payable(0xD1E515e69E4db55e817941b2F477375F0ff32015);
        _marketingWallet = payable(0x87B5854FE6ce8e579f90058c675269F0c6946DB5);
        
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentWallet] = true;
        _isExcludedFromFee[_marketingWallet] = true;
        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[_developmentWallet] = true;
        _isExcludedFromMaxWallet[_marketingWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);

            if(to != uniswapV2Pair && !_isExcludedFromMaxWallet[to] && _maxWalletSize != 0) {
                require(balanceOf(address(to)) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");

                if(_maxBuy != 0) {
                    require(amount <= _maxBuy, "TOKEN: Max buy exceeded!");
                }

                _teamFee = _buyFee;
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {

                _teamFee = _sellFee;

                if (automatedMarketMakerPairs[to]) {
                    if(contractTokenBalance > minContractTokensToSwap) {
                        if(!_swapAll) {
                            contractTokenBalance = minContractTokensToSwap;
                        }
                        swapBack(contractTokenBalance);
                    }
                }

            }
        }
        bool takeFee = true;

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

        if(!automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]) {
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function swapBack(uint256 contractTokenBalance) private {
        
        swapTokensForEth(contractTokenBalance);

        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            sendETHToFee(address(this).balance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        (bool development, ) = _developmentWallet.call{value: amount.div(2)}("");
        (bool marketing, ) = _marketingWallet.call{value: amount.div(2)}("");

        emit Response(development, marketing);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        automatedMarketMakerPairs[uniswapV2Pair] = true;
    }

    function setDevelopmentWallet (address payable development) external onlyOwner() {
        _isExcludedFromFee[_developmentWallet] = false;
        _developmentWallet = development;
        _isExcludedFromFee[development] = true;
    }
    
    function setMarketingWallet (address payable marketing) external onlyOwner {
        _isExcludedFromFee[_marketingWallet] = false;
        _marketingWallet = marketing;
        _isExcludedFromFee[marketing] = true;
    }

    function excludeFromFee(address[] calldata ads, bool onoff) public onlyOwner {
        for (uint i = 0; i < ads.length; i++) {
            _isExcludedFromFee[ads[i]] = onoff;
        }
    }

    function isExcludedFromFee(address ad) public view returns (bool) {
        return _isExcludedFromFee[ad];
    }

    function excludeFromMaxWallet(address[] calldata ads, bool onoff) public onlyOwner {
        for (uint i = 0; i < ads.length; i++) {
            _isExcludedFromMaxWallet[ads[i]] = onoff;
        }
    }
    
    function isExcludedMaxWallet(address ad) public view returns (bool) {
        return _isExcludedFromMaxWallet[ad];
    }

    function setBuyFee(uint256 buy) external onlyOwner {
        _buyFee = buy;
    }

    function setSellFee(uint256 sell) external onlyOwner {
        _sellFee = sell;
    }

    function setTaxFee(uint256 tax) external onlyOwner {
        _taxFee = tax;
    }
    
    function getTaxFee() public view returns (uint) {
        return _taxFee;
    }
    
    function setMinContractTokensToSwap(uint256 numToken) external onlyOwner {
        minContractTokensToSwap = numToken * 10**9;
    }

    function setMaxWallet(uint256 amt) external onlyOwner {
        _maxWalletSize = amt * 10**9;
    }

    function setMaxBuy(uint256 amt) external onlyOwner {
        _maxBuy = amt * 10**9;
    }

    function setSwapAll(bool onoff) external onlyOwner {
        _swapAll = onoff;
    }

    function setBots(address[] calldata bots_, bool onoff) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            _bots[bots_[i]] = onoff;
        }
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }

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

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

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

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

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

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"dev","type":"bool"},{"indexed":false,"internalType":"bool","name":"marketing","type":"bool"}],"name":"Response","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"ads","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"ads","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"development","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numToken","type":"uint256"}],"name":"setMinContractTokensToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000005f196200001c91906200069d565b5f196200002a919062000701565b600255670de0b6b3a76400006004555f600b555f600c55678ac7230489e80000600d555f600e55600c600f55600c601055600b54601155600c546012555f601660146101000a81548160ff0219169083151502179055506001601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff021916908315150217905550348015620000c1575f80fd5b505f620000d36200063960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d1e515e69e4db55e817941b2f477375f0ff3201560135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507387b5854fe6ce8e579f90058c675269f0c6946db560145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060025460055f6200022d6200063960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160085f6200027f6200064060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f620004246200064060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620005c46200063960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200062b91906200074c565b60405180910390a362000767565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006a98262000667565b9150620006b68362000667565b925082620006c957620006c862000670565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200070d8262000667565b91506200071a8362000667565b9250828203905081811115620007355762000734620006d4565b5b92915050565b620007468162000667565b82525050565b5f602082019050620007615f8301846200073b565b92915050565b61467480620007755f395ff3fe6080604052600436106101f1575f3560e01c806372ac24861161010c578063c4081a4c1161009f578063dd62ed3e1161006e578063dd62ed3e1461069a578063de30aad1146106d6578063e1ab04c9146106fe578063f53bc8351461073a578063f66608fe14610762576101f8565b8063c4081a4c1461060a578063c9567bf914610632578063db8aeab114610648578063db92dbb614610670576101f8565b80639a7a23d6116100db5780639a7a23d6146105685780639c0db5f314610590578063a9059cbb146105b8578063c3c8cd80146105f4576101f8565b806372ac2486146104c45780638b4cee08146104ec5780638da5cb5b1461051457806395d89b411461053e576101f8565b8063313ce567116101845780635d098b38116101535780635d098b38146104345780636fc3eaec1461045c57806370a0823114610472578063715018a6146104ae576101f8565b8063313ce5671461036a5780633bbac579146103945780635342acb4146103d05780635d0044ca1461040c576101f8565b806318160ddd116101c057806318160ddd146102b257806323b872dd146102dc57806327f3a72a1461031857806328875c1614610342576101f8565b806306fdde03146101fc578063095ea7b3146102265780630cc835a31461026257806312dfbd331461028a576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b5061021061078c565b60405161021d91906135b1565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190613666565b6107c9565b60405161025991906136be565b60405180910390f35b34801561026d575f80fd5b50610288600480360381019061028391906136d7565b6107e6565b005b348015610295575f80fd5b506102b060048036038101906102ab91906136d7565b610884565b005b3480156102bd575f80fd5b506102c6610931565b6040516102d39190613711565b60405180910390f35b3480156102e7575f80fd5b5061030260048036038101906102fd919061372a565b610941565b60405161030f91906136be565b60405180910390f35b348015610323575f80fd5b5061032c610a15565b6040516103399190613711565b60405180910390f35b34801561034d575f80fd5b5061036860048036038101906103639190613805565b610a24565b005b348015610375575f80fd5b5061037e610b59565b60405161038b919061387d565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b59190613896565b610b61565b6040516103c791906136be565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190613896565b610bb3565b60405161040391906136be565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906136d7565b610c05565b005b34801561043f575f80fd5b5061045a600480360381019061045591906138fc565b610cb2565b005b348015610467575f80fd5b50610470610e53565b005b34801561047d575f80fd5b5061049860048036038101906104939190613896565b610ef7565b6040516104a59190613711565b60405180910390f35b3480156104b9575f80fd5b506104c2610f45565b005b3480156104cf575f80fd5b506104ea60048036038101906104e591906138fc565b611093565b005b3480156104f7575f80fd5b50610512600480360381019061050d91906136d7565b611234565b005b34801561051f575f80fd5b506105286112d2565b6040516105359190613936565b60405180910390f35b348015610549575f80fd5b506105526112f9565b60405161055f91906135b1565b60405180910390f35b348015610573575f80fd5b5061058e6004803603810190610589919061394f565b611336565b005b34801561059b575f80fd5b506105b660048036038101906105b19190613805565b611467565b005b3480156105c3575f80fd5b506105de60048036038101906105d99190613666565b61159c565b6040516105eb91906136be565b60405180910390f35b3480156105ff575f80fd5b506106086115b9565b005b348015610615575f80fd5b50610630600480360381019061062b91906136d7565b611665565b005b34801561063d575f80fd5b50610646611703565b005b348015610653575f80fd5b5061066e60048036038101906106699190613805565b611c30565b005b34801561067b575f80fd5b50610684611d65565b6040516106919190613711565b60405180910390f35b3480156106a5575f80fd5b506106c060048036038101906106bb919061398d565b611d95565b6040516106cd9190613711565b60405180910390f35b3480156106e1575f80fd5b506106fc60048036038101906106f791906139cb565b611e17565b005b348015610709575f80fd5b50610724600480360381019061071f9190613896565b611ec8565b60405161073191906136be565b60405180910390f35b348015610745575f80fd5b50610760600480360381019061075b91906136d7565b611f1a565b005b34801561076d575f80fd5b50610776611fc7565b6040516107839190613711565b60405180910390f35b60606040518060400160405280601781526020017f556e6974656420416c74636f696e20456d697261746573000000000000000000815250905090565b5f6107dc6107d5611fd0565b8484611fd7565b6001905092915050565b6107ee611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087190613a40565b60405180910390fd5b80600f8190555050565b61088c611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090f90613a40565b60405180910390fd5b633b9aca00816109289190613a8b565b60048190555050565b5f683635c9adc5dea00000905090565b5f61094d84848461219a565b610a0a84610959611fd0565b610a05856040518060600160405280602881526020016146176028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109bc611fd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461290f9092919063ffffffff16565b611fd7565b600190509392505050565b5f610a1f30610ef7565b905090565b610a2c611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaf90613a40565b60405180910390fd5b5f5b83839050811015610b53578160085f868685818110610adc57610adb613acc565b5b9050602002016020810190610af19190613896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610b4b90613af9565b915050610aba565b50505050565b5f6009905090565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610c0d611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9090613a40565b60405180910390fd5b633b9aca0081610ca99190613a8b565b600d8190555050565b610cba611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90613a40565b60405180910390fd5b5f60085f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610e5b611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ede90613a40565b60405180910390fd5b5f479050610ef481612971565b50565b5f610f3e60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ae7565b9050919050565b610f4d611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd090613a40565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61109b611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111e90613a40565b60405180910390fd5b5f60085f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61123c611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613a40565b60405180910390fd5b8060108190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5541450000000000000000000000000000000000000000000000000000000000815250905090565b61133e611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190613a40565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613bb0565b60405180910390fd5b6114638282612b53565b5050565b61146f611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290613a40565b60405180910390fd5b5f5b838390508110156115965781600a5f86868581811061151f5761151e613acc565b5b90506020020160208101906115349190613896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061158e90613af9565b9150506114fd565b50505050565b5f6115af6115a8611fd0565b848461219a565b6001905092915050565b6115c1611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490613a40565b60405180910390fd5b5f61165730610ef7565b905061166281612bab565b50565b61166d611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090613a40565b60405180910390fd5b80600b8190555050565b61170b611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90613a40565b60405180910390fd5b601660149054906101000a900460ff16156117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de90613c18565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118743060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611fd7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118e19190613c4a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611946573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061196a9190613c4a565b6040518363ffffffff1660e01b8152600401611987929190613c75565b6020604051808303815f875af11580156119a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c79190613c4a565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611a4e30610ef7565b5f80611a586112d2565b426040518863ffffffff1660e01b8152600401611a7a96959493929190613cde565b60606040518083038185885af1158015611a96573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611abb9190613d51565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b5b929190613da1565b6020604051808303815f875af1158015611b77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9b9190613ddc565b506001601660146101000a81548160ff021916908315150217905550600160175f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b611c38611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613a40565b60405180910390fd5b5f5b83839050811015611d5f578160095f868685818110611ce857611ce7613acc565b5b9050602002016020810190611cfd9190613896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611d5790613af9565b915050611cc6565b50505050565b5f611d9060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ef7565b905090565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611e1f611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea290613a40565b60405180910390fd5b80601660156101000a81548160ff02191690831515021790555050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b611f22611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa590613a40565b60405180910390fd5b633b9aca0081611fbe9190613a8b565b600e8190555050565b5f600b54905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203c90613e77565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613f05565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161218d9190613711565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ff90613f93565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226d90614021565b60405180910390fd5b5f81116122b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122af906140af565b60405180910390fd5b6122c06112d2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561232e57506122fe6112d2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127ad57600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123d15750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6123d9575f80fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561247d575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561248b57505f600d5414155b156124e957600d548161249d84610ef7565b6124a791906140cd565b11156124e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124df90614170565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612592575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125e5575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561269257601660149054906101000a900460ff16612639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612630906141d8565b60405180910390fd5b5f600e541461268857600e54811115612687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267e90614240565b60405180910390fd5b5b600f54600c819055505b5f61269c30610ef7565b905060168054906101000a900460ff16158015612706575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561271e5750601660149054906101000a900460ff165b156127ab57601054600c8190555060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156127aa576004548111156127a957601660159054906101000a900460ff1661279f5760045490505b6127a881612e14565b5b5b5b505b5f6001905060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061284d575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612856575f90505b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156128f4575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128fd575f90505b61290984848484612e37565b50505050565b5f838311158290612956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294d91906135b1565b60405180910390fd5b505f8385612964919061425e565b9050809150509392505050565b5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166129be600284612e6490919063ffffffff16565b6040516129ca906142be565b5f6040518083038185875af1925050503d805f8114612a04576040519150601f19603f3d011682016040523d82523d5f602084013e612a09565b606091505b505090505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a5a600285612e6490919063ffffffff16565b604051612a66906142be565b5f6040518083038185875af1925050503d805f8114612aa0576040519150601f19603f3d011682016040523d82523d5f602084013e612aa5565b606091505b505090507fc45e9b3ac19bf635feaed560109cb8931031fbbc86809d50d65d41a2cf2fe8b98282604051612ada9291906142d2565b60405180910390a1505050565b5f600254821115612b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2490614369565b60405180910390fd5b5f612b36612ead565b9050612b4b8184612e6490919063ffffffff16565b915050919050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60016016806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612be157612be0614387565b5b604051908082528060200260200182016040528015612c0f5781602001602082028036833780820191505090505b50905030815f81518110612c2657612c25613acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cee9190613c4a565b81600181518110612d0257612d01613acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d683060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fd7565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612dca95949392919061446b565b5f604051808303815f87803b158015612de1575f80fd5b505af1158015612df3573d5f803e3d5ffd5b50505050505f6016806101000a81548160ff02191690831515021790555050565b612e1d81612bab565b5f4790505f811115612e3357612e3247612971565b5b5050565b80612e4557612e44612ed6565b5b612e50848484612f0f565b80612e5e57612e5d6130cf565b5b50505050565b5f612ea583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130e3565b905092915050565b5f805f612eb8613144565b91509150612ecf8183612e6490919063ffffffff16565b9250505090565b5f600b54148015612ee857505f600c54145b612f0d57600b54601181905550600c546012819055505f600b819055505f600c819055505b565b5f805f805f80612f1e876131a3565b955095509550955095509550612f7a8660055f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461320390919063ffffffff16565b60055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061300b8560055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461324c90919063ffffffff16565b60055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550613055816132a9565b61305f8483613360565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130bc9190613711565b60405180910390a3505050505050505050565b601154600b81905550601254600c81905550565b5f8083118290613129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312091906135b1565b60405180910390fd5b505f838561313791906144f0565b9050809150509392505050565b5f805f60025490505f683635c9adc5dea000009050613177683635c9adc5dea00000600254612e6490919063ffffffff16565b82101561319657600254683635c9adc5dea0000093509350505061319f565b81819350935050505b9091565b5f805f805f805f805f6131bb8a600b54600c5461339a565b9250925092505f6131ca612ead565b90505f805f6131db8e87878761342c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61324483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061290f565b905092915050565b5f80828461325a91906140cd565b90508381101561329f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132969061456a565b60405180910390fd5b8091505092915050565b5f6132b2612ead565b90505f6132c882846134b090919063ffffffff16565b905061331a8160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461324c90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6133758260025461320390919063ffffffff16565b6002819055506133908160035461324c90919063ffffffff16565b6003819055505050565b5f805f806133c460646133b6888a6134b090919063ffffffff16565b612e6490919063ffffffff16565b90505f6133ed60646133df888b6134b090919063ffffffff16565b612e6490919063ffffffff16565b90505f61341582613407858c61320390919063ffffffff16565b61320390919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061344385896134b090919063ffffffff16565b90505f61345986896134b090919063ffffffff16565b90505f61346f87896134b090919063ffffffff16565b90505f61349782613489858761320390919063ffffffff16565b61320390919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036134c0575f9050613521565b5f82846134cd9190613a8b565b90508284826134dc91906144f0565b1461351c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613513906145f8565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561355e578082015181840152602081019050613543565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61358382613527565b61358d8185613531565b935061359d818560208601613541565b6135a681613569565b840191505092915050565b5f6020820190508181035f8301526135c98184613579565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613602826135d9565b9050919050565b613612816135f8565b811461361c575f80fd5b50565b5f8135905061362d81613609565b92915050565b5f819050919050565b61364581613633565b811461364f575f80fd5b50565b5f813590506136608161363c565b92915050565b5f806040838503121561367c5761367b6135d1565b5b5f6136898582860161361f565b925050602061369a85828601613652565b9150509250929050565b5f8115159050919050565b6136b8816136a4565b82525050565b5f6020820190506136d15f8301846136af565b92915050565b5f602082840312156136ec576136eb6135d1565b5b5f6136f984828501613652565b91505092915050565b61370b81613633565b82525050565b5f6020820190506137245f830184613702565b92915050565b5f805f60608486031215613741576137406135d1565b5b5f61374e8682870161361f565b935050602061375f8682870161361f565b925050604061377086828701613652565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261379b5761379a61377a565b5b8235905067ffffffffffffffff8111156137b8576137b761377e565b5b6020830191508360208202830111156137d4576137d3613782565b5b9250929050565b6137e4816136a4565b81146137ee575f80fd5b50565b5f813590506137ff816137db565b92915050565b5f805f6040848603121561381c5761381b6135d1565b5b5f84013567ffffffffffffffff811115613839576138386135d5565b5b61384586828701613786565b93509350506020613858868287016137f1565b9150509250925092565b5f60ff82169050919050565b61387781613862565b82525050565b5f6020820190506138905f83018461386e565b92915050565b5f602082840312156138ab576138aa6135d1565b5b5f6138b88482850161361f565b91505092915050565b5f6138cb826135d9565b9050919050565b6138db816138c1565b81146138e5575f80fd5b50565b5f813590506138f6816138d2565b92915050565b5f60208284031215613911576139106135d1565b5b5f61391e848285016138e8565b91505092915050565b613930816135f8565b82525050565b5f6020820190506139495f830184613927565b92915050565b5f8060408385031215613965576139646135d1565b5b5f6139728582860161361f565b9250506020613983858286016137f1565b9150509250929050565b5f80604083850312156139a3576139a26135d1565b5b5f6139b08582860161361f565b92505060206139c18582860161361f565b9150509250929050565b5f602082840312156139e0576139df6135d1565b5b5f6139ed848285016137f1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a2a602083613531565b9150613a35826139f6565b602082019050919050565b5f6020820190508181035f830152613a5781613a1e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a9582613633565b9150613aa083613633565b9250828202613aae81613633565b91508282048414831517613ac557613ac4613a5e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613b0382613633565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b3557613b34613a5e565b5b600182019050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613b9a603983613531565b9150613ba582613b40565b604082019050919050565b5f6020820190508181035f830152613bc781613b8e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613c02601783613531565b9150613c0d82613bce565b602082019050919050565b5f6020820190508181035f830152613c2f81613bf6565b9050919050565b5f81519050613c4481613609565b92915050565b5f60208284031215613c5f57613c5e6135d1565b5b5f613c6c84828501613c36565b91505092915050565b5f604082019050613c885f830185613927565b613c956020830184613927565b9392505050565b5f819050919050565b5f819050919050565b5f613cc8613cc3613cbe84613c9c565b613ca5565b613633565b9050919050565b613cd881613cae565b82525050565b5f60c082019050613cf15f830189613927565b613cfe6020830188613702565b613d0b6040830187613ccf565b613d186060830186613ccf565b613d256080830185613927565b613d3260a0830184613702565b979650505050505050565b5f81519050613d4b8161363c565b92915050565b5f805f60608486031215613d6857613d676135d1565b5b5f613d7586828701613d3d565b9350506020613d8686828701613d3d565b9250506040613d9786828701613d3d565b9150509250925092565b5f604082019050613db45f830185613927565b613dc16020830184613702565b9392505050565b5f81519050613dd6816137db565b92915050565b5f60208284031215613df157613df06135d1565b5b5f613dfe84828501613dc8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613e61602483613531565b9150613e6c82613e07565b604082019050919050565b5f6020820190508181035f830152613e8e81613e55565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613eef602283613531565b9150613efa82613e95565b604082019050919050565b5f6020820190508181035f830152613f1c81613ee3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613f7d602583613531565b9150613f8882613f23565b604082019050919050565b5f6020820190508181035f830152613faa81613f71565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61400b602383613531565b915061401682613fb1565b604082019050919050565b5f6020820190508181035f83015261403881613fff565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614099602983613531565b91506140a48261403f565b604082019050919050565b5f6020820190508181035f8301526140c68161408d565b9050919050565b5f6140d782613633565b91506140e283613633565b92508282019050808211156140fa576140f9613a5e565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f61415a602383613531565b915061416582614100565b604082019050919050565b5f6020820190508181035f8301526141878161414e565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e00000000000000005f82015250565b5f6141c2601883613531565b91506141cd8261418e565b602082019050919050565b5f6020820190508181035f8301526141ef816141b6565b9050919050565b7f544f4b454e3a204d6178206275792065786365656465642100000000000000005f82015250565b5f61422a601883613531565b9150614235826141f6565b602082019050919050565b5f6020820190508181035f8301526142578161421e565b9050919050565b5f61426882613633565b915061427383613633565b925082820390508181111561428b5761428a613a5e565b5b92915050565b5f81905092915050565b50565b5f6142a95f83614291565b91506142b48261429b565b5f82019050919050565b5f6142c88261429e565b9150819050919050565b5f6040820190506142e55f8301856136af565b6142f260208301846136af565b9392505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f614353602a83613531565b915061435e826142f9565b604082019050919050565b5f6020820190508181035f83015261438081614347565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6143e6816135f8565b82525050565b5f6143f783836143dd565b60208301905092915050565b5f602082019050919050565b5f614419826143b4565b61442381856143be565b935061442e836143ce565b805f5b8381101561445e57815161444588826143ec565b975061445083614403565b925050600181019050614431565b5085935050505092915050565b5f60a08201905061447e5f830188613702565b61448b6020830187613ccf565b818103604083015261449d818661440f565b90506144ac6060830185613927565b6144b96080830184613702565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6144fa82613633565b915061450583613633565b925082614515576145146144c3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614554601b83613531565b915061455f82614520565b602082019050919050565b5f6020820190508181035f83015261458181614548565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6145e2602183613531565b91506145ed82614588565b604082019050919050565b5f6020820190508181035f83015261460f816145d6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220137e3aea749fc8cd892a2aa663adc7290bb512a5f2493bbcb0b9364f569b6e4a64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101f1575f3560e01c806372ac24861161010c578063c4081a4c1161009f578063dd62ed3e1161006e578063dd62ed3e1461069a578063de30aad1146106d6578063e1ab04c9146106fe578063f53bc8351461073a578063f66608fe14610762576101f8565b8063c4081a4c1461060a578063c9567bf914610632578063db8aeab114610648578063db92dbb614610670576101f8565b80639a7a23d6116100db5780639a7a23d6146105685780639c0db5f314610590578063a9059cbb146105b8578063c3c8cd80146105f4576101f8565b806372ac2486146104c45780638b4cee08146104ec5780638da5cb5b1461051457806395d89b411461053e576101f8565b8063313ce567116101845780635d098b38116101535780635d098b38146104345780636fc3eaec1461045c57806370a0823114610472578063715018a6146104ae576101f8565b8063313ce5671461036a5780633bbac579146103945780635342acb4146103d05780635d0044ca1461040c576101f8565b806318160ddd116101c057806318160ddd146102b257806323b872dd146102dc57806327f3a72a1461031857806328875c1614610342576101f8565b806306fdde03146101fc578063095ea7b3146102265780630cc835a31461026257806312dfbd331461028a576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b5061021061078c565b60405161021d91906135b1565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190613666565b6107c9565b60405161025991906136be565b60405180910390f35b34801561026d575f80fd5b50610288600480360381019061028391906136d7565b6107e6565b005b348015610295575f80fd5b506102b060048036038101906102ab91906136d7565b610884565b005b3480156102bd575f80fd5b506102c6610931565b6040516102d39190613711565b60405180910390f35b3480156102e7575f80fd5b5061030260048036038101906102fd919061372a565b610941565b60405161030f91906136be565b60405180910390f35b348015610323575f80fd5b5061032c610a15565b6040516103399190613711565b60405180910390f35b34801561034d575f80fd5b5061036860048036038101906103639190613805565b610a24565b005b348015610375575f80fd5b5061037e610b59565b60405161038b919061387d565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b59190613896565b610b61565b6040516103c791906136be565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190613896565b610bb3565b60405161040391906136be565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d91906136d7565b610c05565b005b34801561043f575f80fd5b5061045a600480360381019061045591906138fc565b610cb2565b005b348015610467575f80fd5b50610470610e53565b005b34801561047d575f80fd5b5061049860048036038101906104939190613896565b610ef7565b6040516104a59190613711565b60405180910390f35b3480156104b9575f80fd5b506104c2610f45565b005b3480156104cf575f80fd5b506104ea60048036038101906104e591906138fc565b611093565b005b3480156104f7575f80fd5b50610512600480360381019061050d91906136d7565b611234565b005b34801561051f575f80fd5b506105286112d2565b6040516105359190613936565b60405180910390f35b348015610549575f80fd5b506105526112f9565b60405161055f91906135b1565b60405180910390f35b348015610573575f80fd5b5061058e6004803603810190610589919061394f565b611336565b005b34801561059b575f80fd5b506105b660048036038101906105b19190613805565b611467565b005b3480156105c3575f80fd5b506105de60048036038101906105d99190613666565b61159c565b6040516105eb91906136be565b60405180910390f35b3480156105ff575f80fd5b506106086115b9565b005b348015610615575f80fd5b50610630600480360381019061062b91906136d7565b611665565b005b34801561063d575f80fd5b50610646611703565b005b348015610653575f80fd5b5061066e60048036038101906106699190613805565b611c30565b005b34801561067b575f80fd5b50610684611d65565b6040516106919190613711565b60405180910390f35b3480156106a5575f80fd5b506106c060048036038101906106bb919061398d565b611d95565b6040516106cd9190613711565b60405180910390f35b3480156106e1575f80fd5b506106fc60048036038101906106f791906139cb565b611e17565b005b348015610709575f80fd5b50610724600480360381019061071f9190613896565b611ec8565b60405161073191906136be565b60405180910390f35b348015610745575f80fd5b50610760600480360381019061075b91906136d7565b611f1a565b005b34801561076d575f80fd5b50610776611fc7565b6040516107839190613711565b60405180910390f35b60606040518060400160405280601781526020017f556e6974656420416c74636f696e20456d697261746573000000000000000000815250905090565b5f6107dc6107d5611fd0565b8484611fd7565b6001905092915050565b6107ee611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087190613a40565b60405180910390fd5b80600f8190555050565b61088c611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090f90613a40565b60405180910390fd5b633b9aca00816109289190613a8b565b60048190555050565b5f683635c9adc5dea00000905090565b5f61094d84848461219a565b610a0a84610959611fd0565b610a05856040518060600160405280602881526020016146176028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109bc611fd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461290f9092919063ffffffff16565b611fd7565b600190509392505050565b5f610a1f30610ef7565b905090565b610a2c611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaf90613a40565b60405180910390fd5b5f5b83839050811015610b53578160085f868685818110610adc57610adb613acc565b5b9050602002016020810190610af19190613896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610b4b90613af9565b915050610aba565b50505050565b5f6009905090565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b610c0d611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9090613a40565b60405180910390fd5b633b9aca0081610ca99190613a8b565b600d8190555050565b610cba611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90613a40565b60405180910390fd5b5f60085f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610e5b611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ede90613a40565b60405180910390fd5b5f479050610ef481612971565b50565b5f610f3e60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612ae7565b9050919050565b610f4d611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd090613a40565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61109b611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111e90613a40565b60405180910390fd5b5f60085f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61123c611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf90613a40565b60405180910390fd5b8060108190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5541450000000000000000000000000000000000000000000000000000000000815250905090565b61133e611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c190613a40565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090613bb0565b60405180910390fd5b6114638282612b53565b5050565b61146f611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290613a40565b60405180910390fd5b5f5b838390508110156115965781600a5f86868581811061151f5761151e613acc565b5b90506020020160208101906115349190613896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061158e90613af9565b9150506114fd565b50505050565b5f6115af6115a8611fd0565b848461219a565b6001905092915050565b6115c1611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490613a40565b60405180910390fd5b5f61165730610ef7565b905061166281612bab565b50565b61166d611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090613a40565b60405180910390fd5b80600b8190555050565b61170b611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90613a40565b60405180910390fd5b601660149054906101000a900460ff16156117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de90613c18565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506118743060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611fd7565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118e19190613c4a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611946573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061196a9190613c4a565b6040518363ffffffff1660e01b8152600401611987929190613c75565b6020604051808303815f875af11580156119a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c79190613c4a565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611a4e30610ef7565b5f80611a586112d2565b426040518863ffffffff1660e01b8152600401611a7a96959493929190613cde565b60606040518083038185885af1158015611a96573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611abb9190613d51565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b5b929190613da1565b6020604051808303815f875af1158015611b77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b9b9190613ddc565b506001601660146101000a81548160ff021916908315150217905550600160175f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b611c38611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613a40565b60405180910390fd5b5f5b83839050811015611d5f578160095f868685818110611ce857611ce7613acc565b5b9050602002016020810190611cfd9190613896565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611d5790613af9565b915050611cc6565b50505050565b5f611d9060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ef7565b905090565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611e1f611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea290613a40565b60405180910390fd5b80601660156101000a81548160ff02191690831515021790555050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b611f22611fd0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa590613a40565b60405180910390fd5b633b9aca0081611fbe9190613a8b565b600e8190555050565b5f600b54905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203c90613e77565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613f05565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161218d9190613711565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ff90613f93565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226d90614021565b60405180910390fd5b5f81116122b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122af906140af565b60405180910390fd5b6122c06112d2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561232e57506122fe6112d2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127ad57600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123d15750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6123d9575f80fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561247d575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561248b57505f600d5414155b156124e957600d548161249d84610ef7565b6124a791906140cd565b11156124e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124df90614170565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612592575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125e5575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561269257601660149054906101000a900460ff16612639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612630906141d8565b60405180910390fd5b5f600e541461268857600e54811115612687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267e90614240565b60405180910390fd5b5b600f54600c819055505b5f61269c30610ef7565b905060168054906101000a900460ff16158015612706575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561271e5750601660149054906101000a900460ff165b156127ab57601054600c8190555060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156127aa576004548111156127a957601660159054906101000a900460ff1661279f5760045490505b6127a881612e14565b5b5b5b505b5f6001905060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061284d575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612856575f90505b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156128f4575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128fd575f90505b61290984848484612e37565b50505050565b5f838311158290612956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294d91906135b1565b60405180910390fd5b505f8385612964919061425e565b9050809150509392505050565b5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166129be600284612e6490919063ffffffff16565b6040516129ca906142be565b5f6040518083038185875af1925050503d805f8114612a04576040519150601f19603f3d011682016040523d82523d5f602084013e612a09565b606091505b505090505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a5a600285612e6490919063ffffffff16565b604051612a66906142be565b5f6040518083038185875af1925050503d805f8114612aa0576040519150601f19603f3d011682016040523d82523d5f602084013e612aa5565b606091505b505090507fc45e9b3ac19bf635feaed560109cb8931031fbbc86809d50d65d41a2cf2fe8b98282604051612ada9291906142d2565b60405180910390a1505050565b5f600254821115612b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2490614369565b60405180910390fd5b5f612b36612ead565b9050612b4b8184612e6490919063ffffffff16565b915050919050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60016016806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115612be157612be0614387565b5b604051908082528060200260200182016040528015612c0f5781602001602082028036833780820191505090505b50905030815f81518110612c2657612c25613acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cee9190613c4a565b81600181518110612d0257612d01613acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d683060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fd7565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612dca95949392919061446b565b5f604051808303815f87803b158015612de1575f80fd5b505af1158015612df3573d5f803e3d5ffd5b50505050505f6016806101000a81548160ff02191690831515021790555050565b612e1d81612bab565b5f4790505f811115612e3357612e3247612971565b5b5050565b80612e4557612e44612ed6565b5b612e50848484612f0f565b80612e5e57612e5d6130cf565b5b50505050565b5f612ea583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506130e3565b905092915050565b5f805f612eb8613144565b91509150612ecf8183612e6490919063ffffffff16565b9250505090565b5f600b54148015612ee857505f600c54145b612f0d57600b54601181905550600c546012819055505f600b819055505f600c819055505b565b5f805f805f80612f1e876131a3565b955095509550955095509550612f7a8660055f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461320390919063ffffffff16565b60055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061300b8560055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461324c90919063ffffffff16565b60055f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550613055816132a9565b61305f8483613360565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130bc9190613711565b60405180910390a3505050505050505050565b601154600b81905550601254600c81905550565b5f8083118290613129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312091906135b1565b60405180910390fd5b505f838561313791906144f0565b9050809150509392505050565b5f805f60025490505f683635c9adc5dea000009050613177683635c9adc5dea00000600254612e6490919063ffffffff16565b82101561319657600254683635c9adc5dea0000093509350505061319f565b81819350935050505b9091565b5f805f805f805f805f6131bb8a600b54600c5461339a565b9250925092505f6131ca612ead565b90505f805f6131db8e87878761342c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61324483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061290f565b905092915050565b5f80828461325a91906140cd565b90508381101561329f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132969061456a565b60405180910390fd5b8091505092915050565b5f6132b2612ead565b90505f6132c882846134b090919063ffffffff16565b905061331a8160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461324c90919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6133758260025461320390919063ffffffff16565b6002819055506133908160035461324c90919063ffffffff16565b6003819055505050565b5f805f806133c460646133b6888a6134b090919063ffffffff16565b612e6490919063ffffffff16565b90505f6133ed60646133df888b6134b090919063ffffffff16565b612e6490919063ffffffff16565b90505f61341582613407858c61320390919063ffffffff16565b61320390919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061344385896134b090919063ffffffff16565b90505f61345986896134b090919063ffffffff16565b90505f61346f87896134b090919063ffffffff16565b90505f61349782613489858761320390919063ffffffff16565b61320390919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036134c0575f9050613521565b5f82846134cd9190613a8b565b90508284826134dc91906144f0565b1461351c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613513906145f8565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561355e578082015181840152602081019050613543565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61358382613527565b61358d8185613531565b935061359d818560208601613541565b6135a681613569565b840191505092915050565b5f6020820190508181035f8301526135c98184613579565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613602826135d9565b9050919050565b613612816135f8565b811461361c575f80fd5b50565b5f8135905061362d81613609565b92915050565b5f819050919050565b61364581613633565b811461364f575f80fd5b50565b5f813590506136608161363c565b92915050565b5f806040838503121561367c5761367b6135d1565b5b5f6136898582860161361f565b925050602061369a85828601613652565b9150509250929050565b5f8115159050919050565b6136b8816136a4565b82525050565b5f6020820190506136d15f8301846136af565b92915050565b5f602082840312156136ec576136eb6135d1565b5b5f6136f984828501613652565b91505092915050565b61370b81613633565b82525050565b5f6020820190506137245f830184613702565b92915050565b5f805f60608486031215613741576137406135d1565b5b5f61374e8682870161361f565b935050602061375f8682870161361f565b925050604061377086828701613652565b9150509250925092565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261379b5761379a61377a565b5b8235905067ffffffffffffffff8111156137b8576137b761377e565b5b6020830191508360208202830111156137d4576137d3613782565b5b9250929050565b6137e4816136a4565b81146137ee575f80fd5b50565b5f813590506137ff816137db565b92915050565b5f805f6040848603121561381c5761381b6135d1565b5b5f84013567ffffffffffffffff811115613839576138386135d5565b5b61384586828701613786565b93509350506020613858868287016137f1565b9150509250925092565b5f60ff82169050919050565b61387781613862565b82525050565b5f6020820190506138905f83018461386e565b92915050565b5f602082840312156138ab576138aa6135d1565b5b5f6138b88482850161361f565b91505092915050565b5f6138cb826135d9565b9050919050565b6138db816138c1565b81146138e5575f80fd5b50565b5f813590506138f6816138d2565b92915050565b5f60208284031215613911576139106135d1565b5b5f61391e848285016138e8565b91505092915050565b613930816135f8565b82525050565b5f6020820190506139495f830184613927565b92915050565b5f8060408385031215613965576139646135d1565b5b5f6139728582860161361f565b9250506020613983858286016137f1565b9150509250929050565b5f80604083850312156139a3576139a26135d1565b5b5f6139b08582860161361f565b92505060206139c18582860161361f565b9150509250929050565b5f602082840312156139e0576139df6135d1565b5b5f6139ed848285016137f1565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a2a602083613531565b9150613a35826139f6565b602082019050919050565b5f6020820190508181035f830152613a5781613a1e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a9582613633565b9150613aa083613633565b9250828202613aae81613633565b91508282048414831517613ac557613ac4613a5e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613b0382613633565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b3557613b34613a5e565b5b600182019050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613b9a603983613531565b9150613ba582613b40565b604082019050919050565b5f6020820190508181035f830152613bc781613b8e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613c02601783613531565b9150613c0d82613bce565b602082019050919050565b5f6020820190508181035f830152613c2f81613bf6565b9050919050565b5f81519050613c4481613609565b92915050565b5f60208284031215613c5f57613c5e6135d1565b5b5f613c6c84828501613c36565b91505092915050565b5f604082019050613c885f830185613927565b613c956020830184613927565b9392505050565b5f819050919050565b5f819050919050565b5f613cc8613cc3613cbe84613c9c565b613ca5565b613633565b9050919050565b613cd881613cae565b82525050565b5f60c082019050613cf15f830189613927565b613cfe6020830188613702565b613d0b6040830187613ccf565b613d186060830186613ccf565b613d256080830185613927565b613d3260a0830184613702565b979650505050505050565b5f81519050613d4b8161363c565b92915050565b5f805f60608486031215613d6857613d676135d1565b5b5f613d7586828701613d3d565b9350506020613d8686828701613d3d565b9250506040613d9786828701613d3d565b9150509250925092565b5f604082019050613db45f830185613927565b613dc16020830184613702565b9392505050565b5f81519050613dd6816137db565b92915050565b5f60208284031215613df157613df06135d1565b5b5f613dfe84828501613dc8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613e61602483613531565b9150613e6c82613e07565b604082019050919050565b5f6020820190508181035f830152613e8e81613e55565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613eef602283613531565b9150613efa82613e95565b604082019050919050565b5f6020820190508181035f830152613f1c81613ee3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613f7d602583613531565b9150613f8882613f23565b604082019050919050565b5f6020820190508181035f830152613faa81613f71565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61400b602383613531565b915061401682613fb1565b604082019050919050565b5f6020820190508181035f83015261403881613fff565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614099602983613531565b91506140a48261403f565b604082019050919050565b5f6020820190508181035f8301526140c68161408d565b9050919050565b5f6140d782613633565b91506140e283613633565b92508282019050808211156140fa576140f9613a5e565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f61415a602383613531565b915061416582614100565b604082019050919050565b5f6020820190508181035f8301526141878161414e565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e00000000000000005f82015250565b5f6141c2601883613531565b91506141cd8261418e565b602082019050919050565b5f6020820190508181035f8301526141ef816141b6565b9050919050565b7f544f4b454e3a204d6178206275792065786365656465642100000000000000005f82015250565b5f61422a601883613531565b9150614235826141f6565b602082019050919050565b5f6020820190508181035f8301526142578161421e565b9050919050565b5f61426882613633565b915061427383613633565b925082820390508181111561428b5761428a613a5e565b5b92915050565b5f81905092915050565b50565b5f6142a95f83614291565b91506142b48261429b565b5f82019050919050565b5f6142c88261429e565b9150819050919050565b5f6040820190506142e55f8301856136af565b6142f260208301846136af565b9392505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f614353602a83613531565b915061435e826142f9565b604082019050919050565b5f6020820190508181035f83015261438081614347565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6143e6816135f8565b82525050565b5f6143f783836143dd565b60208301905092915050565b5f602082019050919050565b5f614419826143b4565b61442381856143be565b935061442e836143ce565b805f5b8381101561445e57815161444588826143ec565b975061445083614403565b925050600181019050614431565b5085935050505092915050565b5f60a08201905061447e5f830188613702565b61448b6020830187613ccf565b818103604083015261449d818661440f565b90506144ac6060830185613927565b6144b96080830184613702565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6144fa82613633565b915061450583613633565b925082614515576145146144c3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614554601b83613531565b915061455f82614520565b602082019050919050565b5f6020820190508181035f83015261458181614548565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6145e2602183613531565b91506145ed82614588565b604082019050919050565b5f6020820190508181035f83015261460f816145d6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220137e3aea749fc8cd892a2aa663adc7290bb512a5f2493bbcb0b9364f569b6e4a64736f6c63430008140033

Deployed Bytecode Sourcemap

9049:15071:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11460:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22221:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19879:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20253:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23679:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22910:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21317:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19207:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23588:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20889:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19409:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20395:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18975:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21156:153;;;;;;;;;;;;;:::i;:::-;;21924:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8130:148;;;;;;;;;;;;;:::i;:::-;;18725:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19970:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7916:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23493:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21534:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20697:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22735:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20990:154;;;;;;;;;;;;;:::i;:::-;;20065:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17950:767;;;;;;;;;;;;;:::i;:::-;;19531:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21425:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22070:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20603:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19749:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20504:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20160:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11460:83;11497:13;11530:5;;;;;;;;;;;;;;;;;11523:12;;11460:83;:::o;22221:161::-;22296:4;22313:39;22322:12;:10;:12::i;:::-;22336:7;22345:6;22313:8;:39::i;:::-;22370:4;22363:11;;22221:161;;;;:::o;19879:83::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19951:3:::1;19941:7;:13;;;;19879:83:::0;:::o;20253:134::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20374:5:::1;20363:8;:16;;;;:::i;:::-;20337:23;:42;;;;20253:134:::0;:::o;23679:95::-;23732:7;9369:12;23752:14;;23679:95;:::o;22910:313::-;23008:4;23025:36;23035:6;23043:9;23054:6;23025:9;:36::i;:::-;23072:121;23081:6;23089:12;:10;:12::i;:::-;23103:89;23141:6;23103:89;;;;;;;;;;;;;;;;;:11;:19;23115:6;23103:19;;;;;;;;;;;;;;;:33;23123:12;:10;:12::i;:::-;23103:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;23072:8;:121::i;:::-;23211:4;23204:11;;22910:313;;;;;:::o;21317:100::-;21361:4;21385:24;21403:4;21385:9;:24::i;:::-;21378:31;;21317:100;:::o;19207:194::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19300:6:::1;19295:99;19316:3;;:10;;19312:1;:14;19295:99;;;19377:5;19348:18;:26;19367:3;;19371:1;19367:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19348:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19328:3;;;;;:::i;:::-;;;;19295:99;;;;19207:194:::0;;;:::o;23588:83::-;23629:5;9277:1;23647:16;;23588:83;:::o;20889:89::-;20937:4;20961:5;:9;20967:2;20961:9;;;;;;;;;;;;;;;;;;;;;;;;;20954:16;;20889:89;;;:::o;19409:114::-;19469:4;19493:18;:22;19512:2;19493:22;;;;;;;;;;;;;;;;;;;;;;;;;19486:29;;19409:114;;;:::o;20395:101::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20483:5:::1;20477:3;:11;;;;:::i;:::-;20460:14;:28;;;;20395:101:::0;:::o;18975:224::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19100:5:::1;19061:18;:36;19080:16;;;;;;;;;;;19061:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;19135:9;19116:16;;:28;;;;;;;;;;;;;;;;;;19187:4;19155:18;:29;19174:9;19155:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18975:224:::0;:::o;21156:153::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21208:26:::1;21237:21;21208:50;;21269:32;21282:18;21269:12;:32::i;:::-;21197:112;21156:153::o:0;21924:138::-;21990:7;22017:37;22037:7;:16;22045:7;22037:16;;;;;;;;;;;;;;;;22017:19;:37::i;:::-;22010:44;;21924:138;;;:::o;8130:148::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8237:1:::1;8200:40;;8221:6;::::0;::::1;;;;;;;;8200:40;;;;;;;;;;;;8268:1;8251:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8130:148::o:0;18725:238::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18858:5:::1;18817:18;:38;18836:18;;;;;;;;;;;18817:38;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18895:11;18874:18;;:32;;;;;;;;;;;;;;;;;;18951:4;18917:18;:31;18936:11;18917:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18725:238:::0;:::o;19970:87::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20045:4:::1;20034:8;:15;;;;19970:87:::0;:::o;7916:79::-;7954:7;7981:6;;;;;;;;;;;7974:13;;7916:79;:::o;23493:87::-;23532:13;23565:7;;;;;;;;;;;;;;;;;23558:14;;23493:87;:::o;21534:244::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21643:13:::1;;;;;;;;;;;21635:21;;:4;:21;;::::0;21627:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21729:41;21758:4;21764:5;21729:28;:41::i;:::-;21534:244:::0;;:::o;20697:180::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20785:6:::1;20780:90;20801:5;;:12;;20797:1;:16;20780:90;;;20853:5;20835;:15;20841:5;;20847:1;20841:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20835:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20815:3;;;;;:::i;:::-;;;;20780:90;;;;20697:180:::0;;;:::o;22735:167::-;22813:4;22830:42;22840:12;:10;:12::i;:::-;22854:9;22865:6;22830:9;:42::i;:::-;22890:4;22883:11;;22735:167;;;;:::o;20990:154::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21042:23:::1;21068:24;21086:4;21068:9;:24::i;:::-;21042:50;;21103:33;21120:15;21103:16;:33::i;:::-;21031:113;20990:154::o:0;20065:83::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20137:3:::1;20127:7;:13;;;;20065:83:::0;:::o;17950:767::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18014:11:::1;;;;;;;;;;;18013:12;18005:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18063:35;18120:42;18063:100;;18192:16;18174:15;;:34;;;;;;;;;;;;;;;;;;18219:58;18236:4;18251:15;;;;;;;;;;;9369:12;18219:8;:58::i;:::-;18322:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18304:56;;;18369:4;18376:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18304:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18288:13;;:112;;;;;;;;;;;;;;;;;;18411:15;;;;;;;;;;;:31;;;18450:21;18481:4;18487:24;18505:4;18487:9;:24::i;:::-;18512:1;18514::::0;18516:7:::1;:5;:7::i;:::-;18524:15;18411:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18558:13;;;;;;;;;;;18551:29;;;18589:15;;;;;;;;;;;18607:14;18551:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18647:4;18633:11;;:18;;;;;;;;;;;;;;;;;;18705:4;18662:25;:40;18688:13;;;;;;;;;;;18662:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;17994:723;17950:767::o:0;19531:206::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19630:6:::1;19625:105;19646:3;;:10;;19642:1;:14;19625:105;;;19713:5;19678:24;:32;19703:3;;19707:1;19703:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19678:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;19658:3;;;;;:::i;:::-;;;;19625:105;;;;19531:206:::0;;;:::o;21425:101::-;21470:4;21494:24;21504:13;;;;;;;;;;;21494:9;:24::i;:::-;21487:31;;21425:101;:::o;22070:143::-;22151:7;22178:11;:18;22190:5;22178:18;;;;;;;;;;;;;;;:27;22197:7;22178:27;;;;;;;;;;;;;;;;22171:34;;22070:143;;;;:::o;20603:86::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20676:5:::1;20665:8;;:16;;;;;;;;;;;;;;;;;;20603:86:::0;:::o;19749:122::-;19811:4;19835:24;:28;19860:2;19835:28;;;;;;;;;;;;;;;;;;;;;;;;;19828:35;;19749:122;;;:::o;20504:91::-;8053:12;:10;:12::i;:::-;8043:22;;:6;;;;;;;;;;:22;;;8035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20582:5:::1;20576:3;:11;;;;:::i;:::-;20566:7;:21;;;;20504:91:::0;:::o;20160:81::-;20202:4;20226:7;;20219:14;;20160:81;:::o;7456:98::-;7509:7;7536:10;7529:17;;7456:98;:::o;23782:335::-;23892:1;23875:19;;:5;:19;;;23867:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23973:1;23954:21;;:7;:21;;;23946:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24055:6;24025:11;:18;24037:5;24025:18;;;;;;;;;;;;;;;:27;24044:7;24025:27;;;;;;;;;;;;;;;:36;;;;24093:7;24077:32;;24086:5;24077:32;;;24102:6;24077:32;;;;;;:::i;:::-;;;;;;;;23782:335;;;:::o;11555:1923::-;11659:1;11643:18;;:4;:18;;;11635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11736:1;11722:16;;:2;:16;;;11714:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11806:1;11797:6;:10;11789:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11877:7;:5;:7::i;:::-;11869:15;;:4;:15;;;;:32;;;;;11894:7;:5;:7::i;:::-;11888:13;;:2;:13;;;;11869:32;11866:1282;;;11941:5;:11;11947:4;11941:11;;;;;;;;;;;;;;;;;;;;;;;;;11940:12;:26;;;;;11957:5;:9;11963:2;11957:9;;;;;;;;;;;;;;;;;;;;;;;;;11956:10;11940:26;11932:35;;;;;;11993:13;;;;;;;;;;;11987:19;;:2;:19;;;;:52;;;;;12011:24;:28;12036:2;12011:28;;;;;;;;;;;;;;;;;;;;;;;;;12010:29;11987:52;:75;;;;;12061:1;12043:14;;:19;;11987:75;11984:212;;;12126:14;;12116:6;12091:22;12109:2;12091:9;:22::i;:::-;:31;;;;:::i;:::-;:49;;12083:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;11984:212;12235:13;;;;;;;;;;;12227:21;;:4;:21;;;:55;;;;;12266:15;;;;;;;;;;;12252:30;;:2;:30;;;;12227:55;:82;;;;;12287:18;:22;12306:2;12287:22;;;;;;;;;;;;;;;;;;;;;;;;;12286:23;12227:82;12224:343;;;12338:11;;;;;;;;;;;12330:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12413:1;12402:7;;:12;12399:114;;12457:7;;12447:6;:17;;12439:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;12399:114;12544:7;;12533:8;:18;;;;12224:343;12581:28;12612:24;12630:4;12612:9;:24::i;:::-;12581:55;;12657:6;;;;;;;;;;12656:7;:32;;;;;12675:13;;;;;;;;;;;12667:21;;:4;:21;;;;12656:32;:47;;;;;12692:11;;;;;;;;;;;12656:47;12653:484;;;12737:8;;12726;:19;;;;12770:25;:29;12796:2;12770:29;;;;;;;;;;;;;;;;;;;;;;;;;12766:354;;;12850:23;;12827:20;:46;12824:277;;;12906:8;;;;;;;;;;;12902:119;;12970:23;;12947:46;;12902:119;13047:30;13056:20;13047:8;:30::i;:::-;12824:277;12766:354;12653:484;11903:1245;11866:1282;13158:12;13173:4;13158:19;;13193:18;:24;13212:4;13193:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13221:18;:22;13240:2;13221:22;;;;;;;;;;;;;;;;;;;;;;;;;13193:50;13190:97;;;13270:5;13260:15;;13190:97;13303:25;:31;13329:4;13303:31;;;;;;;;;;;;;;;;;;;;;;;;;13302:32;:66;;;;;13339:25;:29;13365:2;13339:29;;;;;;;;;;;;;;;;;;;;;;;;;13338:30;13302:66;13299:113;;;13395:5;13385:15;;13299:113;13432:38;13447:4;13452:2;13455:6;13462:7;13432:14;:38::i;:::-;11624:1854;11555:1923;;;:::o;3866:192::-;3952:7;3985:1;3980;:6;;3988:12;3972:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4012:9;4028:1;4024;:5;;;;:::i;:::-;4012:17;;4049:1;4042:8;;;3866:192;;;;;:::o;14799:266::-;14857:16;14879:18;;;;;;;;;;;:23;;14910:13;14921:1;14910:6;:10;;:13;;;;:::i;:::-;14879:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14856:72;;;14940:14;14960:16;;;;;;;;;;;:21;;14989:13;15000:1;14989:6;:10;;:13;;;;:::i;:::-;14960:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14939:68;;;15025:32;15034:11;15047:9;15025:32;;;;;;;:::i;:::-;;;;;;;;14845:220;;14799:266;:::o;23231:254::-;23298:7;23337;;23326;:18;;23318:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;23402:19;23425:10;:8;:10::i;:::-;23402:33;;23453:24;23465:11;23453:7;:11;;:24;;;;:::i;:::-;23446:31;;;23231:254;;;:::o;21786:130::-;21903:5;21869:25;:31;21895:4;21869:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21786:130;;:::o;14300:483::-;10655:4;10646:6;;:13;;;;;;;;;;;;;;;;;;14378:21:::1;14416:1;14402:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14378:40;;14447:4;14429;14434:1;14429:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14473:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14463:4;14468:1;14463:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14506:62;14523:4;14538:15;;;;;;;;;;;14556:11;14506:8;:62::i;:::-;14579:15;;;;;;;;;;;:66;;;14660:11;14686:1;14702:4;14729;14749:15;14579:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14367:416;10691:5:::0;10682:6;;:14;;;;;;;;;;;;;;;;;;14300:483;:::o;14007:285::-;14084:38;14101:20;14084:16;:38::i;:::-;14135:26;14164:21;14135:50;;14220:1;14199:18;:22;14196:89;;;14238:35;14251:21;14238:12;:35::i;:::-;14196:89;14063:229;14007:285;:::o;15077:263::-;15189:7;15185:40;;15211:14;:12;:14::i;:::-;15185:40;15236:44;15254:6;15262:9;15273:6;15236:17;:44::i;:::-;15295:7;15291:41;;15317:15;:13;:15::i;:::-;15291:41;15077:263;;;;:::o;5264:132::-;5322:7;5349:39;5353:1;5356;5349:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5342:46;;5264:132;;;;:::o;16681:163::-;16722:7;16743:15;16760;16779:19;:17;:19::i;:::-;16742:56;;;;16816:20;16828:7;16816;:11;;:20;;;;:::i;:::-;16809:27;;;;16681:163;:::o;22390:210::-;22447:1;22436:7;;:12;:29;;;;;22464:1;22452:8;;:13;22436:29;22467:7;22433:41;22502:7;;22484:15;:25;;;;22539:8;;22520:16;:27;;;;22568:1;22558:7;:11;;;;22591:1;22580:8;:12;;;;22390:210;:::o;15348:490::-;15447:15;15464:23;15489:12;15503:23;15528:12;15542:13;15559:19;15570:7;15559:10;:19::i;:::-;15446:132;;;;;;;;;;;;15607:28;15627:7;15607;:15;15615:6;15607:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15589:7;:15;15597:6;15589:15;;;;;;;;;;;;;;;:46;;;;15667:39;15690:15;15667:7;:18;15675:9;15667:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15646:7;:18;15654:9;15646:18;;;;;;;;;;;;;;;:60;;;;15720:16;15730:5;15720:9;:16::i;:::-;15747:23;15759:4;15765;15747:11;:23::i;:::-;15803:9;15786:44;;15795:6;15786:44;;;15814:15;15786:44;;;;;;:::i;:::-;;;;;;;;15435:403;;;;;;15348:490;;;:::o;22612:115::-;22666:15;;22656:7;:25;;;;22703:16;;22692:8;:27;;;;22612:115::o;5892:278::-;5978:7;6010:1;6006;:5;6013:12;5998:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6037:9;6053:1;6049;:5;;;;:::i;:::-;6037:17;;6161:1;6154:8;;;5892:278;;;;;:::o;16852:255::-;16902:7;16911;16931:15;16949:7;;16931:25;;16967:15;9369:12;16967:25;;17016:20;9369:12;17016:7;;:11;;:20;;;;:::i;:::-;17006:7;:30;17003:60;;;17046:7;;9369:12;17038:25;;;;;;;;17003:60;17082:7;17091;17074:25;;;;;;16852:255;;;:::o;15846:468::-;15905:7;15914;15923;15932;15941;15950;15971:23;15996:12;16010:13;16027:39;16039:7;16048;;16057:8;;16027:11;:39::i;:::-;15970:96;;;;;;16077:19;16100:10;:8;:10::i;:::-;16077:33;;16122:15;16139:23;16164:12;16180:46;16192:7;16201:4;16207:5;16214:11;16180;:46::i;:::-;16121:105;;;;;;16245:7;16254:15;16271:4;16277:15;16294:4;16300:5;16237:69;;;;;;;;;;;;;;;;;;;15846:468;;;;;;;:::o;3427:136::-;3485:7;3512:43;3516:1;3519;3512:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3505:50;;3427:136;;;;:::o;2963:181::-;3021:7;3041:9;3057:1;3053;:5;;;;:::i;:::-;3041:17;;3082:1;3077;:6;;3069:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3135:1;3128:8;;;2963:181;;;;:::o;17532:214::-;17585:19;17608:10;:8;:10::i;:::-;17585:33;;17629:13;17645:22;17655:11;17645:5;:9;;:22;;;;:::i;:::-;17629:38;;17705:33;17732:5;17705:7;:22;17721:4;17705:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17680:7;:22;17696:4;17680:22;;;;;;;;;;;;;;;:58;;;;17574:172;;17532:214;:::o;17754:147::-;17832:17;17844:4;17832:7;;:11;;:17;;;;:::i;:::-;17822:7;:27;;;;17873:20;17888:4;17873:10;;:14;;:20;;;;:::i;:::-;17860:10;:33;;;;17754:147;;:::o;16322:351::-;16415:7;16424;16433;16453:12;16468:28;16492:3;16468:19;16480:6;16468:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16453:43;;16507:13;16523:29;16548:3;16523:20;16535:7;16523;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;16507:45;;16563:23;16589:28;16611:5;16589:17;16601:4;16589:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16563:54;;16636:15;16653:4;16659:5;16628:37;;;;;;;;;16322:351;;;;;;;:::o;17115:409::-;17225:7;17234;17243;17263:15;17281:24;17293:11;17281:7;:11;;:24;;;;:::i;:::-;17263:42;;17316:12;17331:21;17340:11;17331:4;:8;;:21;;;;:::i;:::-;17316:36;;17363:13;17379:22;17389:11;17379:5;:9;;:22;;;;:::i;:::-;17363:38;;17412:23;17438:28;17460:5;17438:17;17450:4;17438:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17412:54;;17485:7;17494:15;17511:4;17477:39;;;;;;;;;;17115:409;;;;;;;;:::o;4317:471::-;4375:7;4625:1;4620;:6;4616:47;;4650:1;4643:8;;;;4616:47;4675:9;4691:1;4687;:5;;;;:::i;:::-;4675:17;;4720:1;4715;4711;:5;;;;:::i;:::-;:10;4703:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4779:1;4772:8;;;4317:471;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:117::-;4867:1;4864;4857:12;4881:117;4990:1;4987;4980:12;5004:117;5113:1;5110;5103:12;5144:568;5217:8;5227:6;5277:3;5270:4;5262:6;5258:17;5254:27;5244:122;;5285:79;;:::i;:::-;5244:122;5398:6;5385:20;5375:30;;5428:18;5420:6;5417:30;5414:117;;;5450:79;;:::i;:::-;5414:117;5564:4;5556:6;5552:17;5540:29;;5618:3;5610:4;5602:6;5598:17;5588:8;5584:32;5581:41;5578:128;;;5625:79;;:::i;:::-;5578:128;5144:568;;;;;:::o;5718:116::-;5788:21;5803:5;5788:21;:::i;:::-;5781:5;5778:32;5768:60;;5824:1;5821;5814:12;5768:60;5718:116;:::o;5840:133::-;5883:5;5921:6;5908:20;5899:29;;5937:30;5961:5;5937:30;:::i;:::-;5840:133;;;;:::o;5979:698::-;6071:6;6079;6087;6136:2;6124:9;6115:7;6111:23;6107:32;6104:119;;;6142:79;;:::i;:::-;6104:119;6290:1;6279:9;6275:17;6262:31;6320:18;6312:6;6309:30;6306:117;;;6342:79;;:::i;:::-;6306:117;6455:80;6527:7;6518:6;6507:9;6503:22;6455:80;:::i;:::-;6437:98;;;;6233:312;6584:2;6610:50;6652:7;6643:6;6632:9;6628:22;6610:50;:::i;:::-;6600:60;;6555:115;5979:698;;;;;:::o;6683:86::-;6718:7;6758:4;6751:5;6747:16;6736:27;;6683:86;;;:::o;6775:112::-;6858:22;6874:5;6858:22;:::i;:::-;6853:3;6846:35;6775:112;;:::o;6893:214::-;6982:4;7020:2;7009:9;7005:18;6997:26;;7033:67;7097:1;7086:9;7082:17;7073:6;7033:67;:::i;:::-;6893:214;;;;:::o;7113:329::-;7172:6;7221:2;7209:9;7200:7;7196:23;7192:32;7189:119;;;7227:79;;:::i;:::-;7189:119;7347:1;7372:53;7417:7;7408:6;7397:9;7393:22;7372:53;:::i;:::-;7362:63;;7318:117;7113:329;;;;:::o;7448:104::-;7493:7;7522:24;7540:5;7522:24;:::i;:::-;7511:35;;7448:104;;;:::o;7558:138::-;7639:32;7665:5;7639:32;:::i;:::-;7632:5;7629:43;7619:71;;7686:1;7683;7676:12;7619:71;7558:138;:::o;7702:155::-;7756:5;7794:6;7781:20;7772:29;;7810:41;7845:5;7810:41;:::i;:::-;7702:155;;;;:::o;7863:345::-;7930:6;7979:2;7967:9;7958:7;7954:23;7950:32;7947:119;;;7985:79;;:::i;:::-;7947:119;8105:1;8130:61;8183:7;8174:6;8163:9;8159:22;8130:61;:::i;:::-;8120:71;;8076:125;7863:345;;;;:::o;8214:118::-;8301:24;8319:5;8301:24;:::i;:::-;8296:3;8289:37;8214:118;;:::o;8338:222::-;8431:4;8469:2;8458:9;8454:18;8446:26;;8482:71;8550:1;8539:9;8535:17;8526:6;8482:71;:::i;:::-;8338:222;;;;:::o;8566:468::-;8631:6;8639;8688:2;8676:9;8667:7;8663:23;8659:32;8656:119;;;8694:79;;:::i;:::-;8656:119;8814:1;8839:53;8884:7;8875:6;8864:9;8860:22;8839:53;:::i;:::-;8829:63;;8785:117;8941:2;8967:50;9009:7;9000:6;8989:9;8985:22;8967:50;:::i;:::-;8957:60;;8912:115;8566:468;;;;;:::o;9040:474::-;9108:6;9116;9165:2;9153:9;9144:7;9140:23;9136:32;9133:119;;;9171:79;;:::i;:::-;9133:119;9291:1;9316:53;9361:7;9352:6;9341:9;9337:22;9316:53;:::i;:::-;9306:63;;9262:117;9418:2;9444:53;9489:7;9480:6;9469:9;9465:22;9444:53;:::i;:::-;9434:63;;9389:118;9040:474;;;;;:::o;9520:323::-;9576:6;9625:2;9613:9;9604:7;9600:23;9596:32;9593:119;;;9631:79;;:::i;:::-;9593:119;9751:1;9776:50;9818:7;9809:6;9798:9;9794:22;9776:50;:::i;:::-;9766:60;;9722:114;9520:323;;;;:::o;9849:182::-;9989:34;9985:1;9977:6;9973:14;9966:58;9849:182;:::o;10037:366::-;10179:3;10200:67;10264:2;10259:3;10200:67;:::i;:::-;10193:74;;10276:93;10365:3;10276:93;:::i;:::-;10394:2;10389:3;10385:12;10378:19;;10037:366;;;:::o;10409:419::-;10575:4;10613:2;10602:9;10598:18;10590:26;;10662:9;10656:4;10652:20;10648:1;10637:9;10633:17;10626:47;10690:131;10816:4;10690:131;:::i;:::-;10682:139;;10409:419;;;:::o;10834:180::-;10882:77;10879:1;10872:88;10979:4;10976:1;10969:15;11003:4;11000:1;10993:15;11020:410;11060:7;11083:20;11101:1;11083:20;:::i;:::-;11078:25;;11117:20;11135:1;11117:20;:::i;:::-;11112:25;;11172:1;11169;11165:9;11194:30;11212:11;11194:30;:::i;:::-;11183:41;;11373:1;11364:7;11360:15;11357:1;11354:22;11334:1;11327:9;11307:83;11284:139;;11403:18;;:::i;:::-;11284:139;11068:362;11020:410;;;;:::o;11436:180::-;11484:77;11481:1;11474:88;11581:4;11578:1;11571:15;11605:4;11602:1;11595:15;11622:233;11661:3;11684:24;11702:5;11684:24;:::i;:::-;11675:33;;11730:66;11723:5;11720:77;11717:103;;11800:18;;:::i;:::-;11717:103;11847:1;11840:5;11836:13;11829:20;;11622:233;;;:::o;11861:244::-;12001:34;11997:1;11989:6;11985:14;11978:58;12070:27;12065:2;12057:6;12053:15;12046:52;11861:244;:::o;12111:366::-;12253:3;12274:67;12338:2;12333:3;12274:67;:::i;:::-;12267:74;;12350:93;12439:3;12350:93;:::i;:::-;12468:2;12463:3;12459:12;12452:19;;12111:366;;;:::o;12483:419::-;12649:4;12687:2;12676:9;12672:18;12664:26;;12736:9;12730:4;12726:20;12722:1;12711:9;12707:17;12700:47;12764:131;12890:4;12764:131;:::i;:::-;12756:139;;12483:419;;;:::o;12908:173::-;13048:25;13044:1;13036:6;13032:14;13025:49;12908:173;:::o;13087:366::-;13229:3;13250:67;13314:2;13309:3;13250:67;:::i;:::-;13243:74;;13326:93;13415:3;13326:93;:::i;:::-;13444:2;13439:3;13435:12;13428:19;;13087:366;;;:::o;13459:419::-;13625:4;13663:2;13652:9;13648:18;13640:26;;13712:9;13706:4;13702:20;13698:1;13687:9;13683:17;13676:47;13740:131;13866:4;13740:131;:::i;:::-;13732:139;;13459:419;;;:::o;13884:143::-;13941:5;13972:6;13966:13;13957:22;;13988:33;14015:5;13988:33;:::i;:::-;13884:143;;;;:::o;14033:351::-;14103:6;14152:2;14140:9;14131:7;14127:23;14123:32;14120:119;;;14158:79;;:::i;:::-;14120:119;14278:1;14303:64;14359:7;14350:6;14339:9;14335:22;14303:64;:::i;:::-;14293:74;;14249:128;14033:351;;;;:::o;14390:332::-;14511:4;14549:2;14538:9;14534:18;14526:26;;14562:71;14630:1;14619:9;14615:17;14606:6;14562:71;:::i;:::-;14643:72;14711:2;14700:9;14696:18;14687:6;14643:72;:::i;:::-;14390:332;;;;;:::o;14728:85::-;14773:7;14802:5;14791:16;;14728:85;;;:::o;14819:60::-;14847:3;14868:5;14861:12;;14819:60;;;:::o;14885:158::-;14943:9;14976:61;14994:42;15003:32;15029:5;15003:32;:::i;:::-;14994:42;:::i;:::-;14976:61;:::i;:::-;14963:74;;14885:158;;;:::o;15049:147::-;15144:45;15183:5;15144:45;:::i;:::-;15139:3;15132:58;15049:147;;:::o;15202:807::-;15451:4;15489:3;15478:9;15474:19;15466:27;;15503:71;15571:1;15560:9;15556:17;15547:6;15503:71;:::i;:::-;15584:72;15652:2;15641:9;15637:18;15628:6;15584:72;:::i;:::-;15666:80;15742:2;15731:9;15727:18;15718:6;15666:80;:::i;:::-;15756;15832:2;15821:9;15817:18;15808:6;15756:80;:::i;:::-;15846:73;15914:3;15903:9;15899:19;15890:6;15846:73;:::i;:::-;15929;15997:3;15986:9;15982:19;15973:6;15929:73;:::i;:::-;15202:807;;;;;;;;;:::o;16015:143::-;16072:5;16103:6;16097:13;16088:22;;16119:33;16146:5;16119:33;:::i;:::-;16015:143;;;;:::o;16164:663::-;16252:6;16260;16268;16317:2;16305:9;16296:7;16292:23;16288:32;16285:119;;;16323:79;;:::i;:::-;16285:119;16443:1;16468:64;16524:7;16515:6;16504:9;16500:22;16468:64;:::i;:::-;16458:74;;16414:128;16581:2;16607:64;16663:7;16654:6;16643:9;16639:22;16607:64;:::i;:::-;16597:74;;16552:129;16720:2;16746:64;16802:7;16793:6;16782:9;16778:22;16746:64;:::i;:::-;16736:74;;16691:129;16164:663;;;;;:::o;16833:332::-;16954:4;16992:2;16981:9;16977:18;16969:26;;17005:71;17073:1;17062:9;17058:17;17049:6;17005:71;:::i;:::-;17086:72;17154:2;17143:9;17139:18;17130:6;17086:72;:::i;:::-;16833:332;;;;;:::o;17171:137::-;17225:5;17256:6;17250:13;17241:22;;17272:30;17296:5;17272:30;:::i;:::-;17171:137;;;;:::o;17314:345::-;17381:6;17430:2;17418:9;17409:7;17405:23;17401:32;17398:119;;;17436:79;;:::i;:::-;17398:119;17556:1;17581:61;17634:7;17625:6;17614:9;17610:22;17581:61;:::i;:::-;17571:71;;17527:125;17314:345;;;;:::o;17665:223::-;17805:34;17801:1;17793:6;17789:14;17782:58;17874:6;17869:2;17861:6;17857:15;17850:31;17665:223;:::o;17894:366::-;18036:3;18057:67;18121:2;18116:3;18057:67;:::i;:::-;18050:74;;18133:93;18222:3;18133:93;:::i;:::-;18251:2;18246:3;18242:12;18235:19;;17894:366;;;:::o;18266:419::-;18432:4;18470:2;18459:9;18455:18;18447:26;;18519:9;18513:4;18509:20;18505:1;18494:9;18490:17;18483:47;18547:131;18673:4;18547:131;:::i;:::-;18539:139;;18266:419;;;:::o;18691:221::-;18831:34;18827:1;18819:6;18815:14;18808:58;18900:4;18895:2;18887:6;18883:15;18876:29;18691:221;:::o;18918:366::-;19060:3;19081:67;19145:2;19140:3;19081:67;:::i;:::-;19074:74;;19157:93;19246:3;19157:93;:::i;:::-;19275:2;19270:3;19266:12;19259:19;;18918:366;;;:::o;19290:419::-;19456:4;19494:2;19483:9;19479:18;19471:26;;19543:9;19537:4;19533:20;19529:1;19518:9;19514:17;19507:47;19571:131;19697:4;19571:131;:::i;:::-;19563:139;;19290:419;;;:::o;19715:224::-;19855:34;19851:1;19843:6;19839:14;19832:58;19924:7;19919:2;19911:6;19907:15;19900:32;19715:224;:::o;19945:366::-;20087:3;20108:67;20172:2;20167:3;20108:67;:::i;:::-;20101:74;;20184:93;20273:3;20184:93;:::i;:::-;20302:2;20297:3;20293:12;20286:19;;19945:366;;;:::o;20317:419::-;20483:4;20521:2;20510:9;20506:18;20498:26;;20570:9;20564:4;20560:20;20556:1;20545:9;20541:17;20534:47;20598:131;20724:4;20598:131;:::i;:::-;20590:139;;20317:419;;;:::o;20742:222::-;20882:34;20878:1;20870:6;20866:14;20859:58;20951:5;20946:2;20938:6;20934:15;20927:30;20742:222;:::o;20970:366::-;21112:3;21133:67;21197:2;21192:3;21133:67;:::i;:::-;21126:74;;21209:93;21298:3;21209:93;:::i;:::-;21327:2;21322:3;21318:12;21311:19;;20970:366;;;:::o;21342:419::-;21508:4;21546:2;21535:9;21531:18;21523:26;;21595:9;21589:4;21585:20;21581:1;21570:9;21566:17;21559:47;21623:131;21749:4;21623:131;:::i;:::-;21615:139;;21342:419;;;:::o;21767:228::-;21907:34;21903:1;21895:6;21891:14;21884:58;21976:11;21971:2;21963:6;21959:15;21952:36;21767:228;:::o;22001:366::-;22143:3;22164:67;22228:2;22223:3;22164:67;:::i;:::-;22157:74;;22240:93;22329:3;22240:93;:::i;:::-;22358:2;22353:3;22349:12;22342:19;;22001:366;;;:::o;22373:419::-;22539:4;22577:2;22566:9;22562:18;22554:26;;22626:9;22620:4;22616:20;22612:1;22601:9;22597:17;22590:47;22654:131;22780:4;22654:131;:::i;:::-;22646:139;;22373:419;;;:::o;22798:191::-;22838:3;22857:20;22875:1;22857:20;:::i;:::-;22852:25;;22891:20;22909:1;22891:20;:::i;:::-;22886:25;;22934:1;22931;22927:9;22920:16;;22955:3;22952:1;22949:10;22946:36;;;22962:18;;:::i;:::-;22946:36;22798:191;;;;:::o;22995:222::-;23135:34;23131:1;23123:6;23119:14;23112:58;23204:5;23199:2;23191:6;23187:15;23180:30;22995:222;:::o;23223:366::-;23365:3;23386:67;23450:2;23445:3;23386:67;:::i;:::-;23379:74;;23462:93;23551:3;23462:93;:::i;:::-;23580:2;23575:3;23571:12;23564:19;;23223:366;;;:::o;23595:419::-;23761:4;23799:2;23788:9;23784:18;23776:26;;23848:9;23842:4;23838:20;23834:1;23823:9;23819:17;23812:47;23876:131;24002:4;23876:131;:::i;:::-;23868:139;;23595:419;;;:::o;24020:174::-;24160:26;24156:1;24148:6;24144:14;24137:50;24020:174;:::o;24200:366::-;24342:3;24363:67;24427:2;24422:3;24363:67;:::i;:::-;24356:74;;24439:93;24528:3;24439:93;:::i;:::-;24557:2;24552:3;24548:12;24541:19;;24200:366;;;:::o;24572:419::-;24738:4;24776:2;24765:9;24761:18;24753:26;;24825:9;24819:4;24815:20;24811:1;24800:9;24796:17;24789:47;24853:131;24979:4;24853:131;:::i;:::-;24845:139;;24572:419;;;:::o;24997:174::-;25137:26;25133:1;25125:6;25121:14;25114:50;24997:174;:::o;25177:366::-;25319:3;25340:67;25404:2;25399:3;25340:67;:::i;:::-;25333:74;;25416:93;25505:3;25416:93;:::i;:::-;25534:2;25529:3;25525:12;25518:19;;25177:366;;;:::o;25549:419::-;25715:4;25753:2;25742:9;25738:18;25730:26;;25802:9;25796:4;25792:20;25788:1;25777:9;25773:17;25766:47;25830:131;25956:4;25830:131;:::i;:::-;25822:139;;25549:419;;;:::o;25974:194::-;26014:4;26034:20;26052:1;26034:20;:::i;:::-;26029:25;;26068:20;26086:1;26068:20;:::i;:::-;26063:25;;26112:1;26109;26105:9;26097:17;;26136:1;26130:4;26127:11;26124:37;;;26141:18;;:::i;:::-;26124:37;25974:194;;;;:::o;26174:147::-;26275:11;26312:3;26297:18;;26174:147;;;;:::o;26327:114::-;;:::o;26447:398::-;26606:3;26627:83;26708:1;26703:3;26627:83;:::i;:::-;26620:90;;26719:93;26808:3;26719:93;:::i;:::-;26837:1;26832:3;26828:11;26821:18;;26447:398;;;:::o;26851:379::-;27035:3;27057:147;27200:3;27057:147;:::i;:::-;27050:154;;27221:3;27214:10;;26851:379;;;:::o;27236:308::-;27345:4;27383:2;27372:9;27368:18;27360:26;;27396:65;27458:1;27447:9;27443:17;27434:6;27396:65;:::i;:::-;27471:66;27533:2;27522:9;27518:18;27509:6;27471:66;:::i;:::-;27236:308;;;;;:::o;27550:229::-;27690:34;27686:1;27678:6;27674:14;27667:58;27759:12;27754:2;27746:6;27742:15;27735:37;27550:229;:::o;27785:366::-;27927:3;27948:67;28012:2;28007:3;27948:67;:::i;:::-;27941:74;;28024:93;28113:3;28024:93;:::i;:::-;28142:2;28137:3;28133:12;28126:19;;27785:366;;;:::o;28157:419::-;28323:4;28361:2;28350:9;28346:18;28338:26;;28410:9;28404:4;28400:20;28396:1;28385:9;28381:17;28374:47;28438:131;28564:4;28438:131;:::i;:::-;28430:139;;28157:419;;;:::o;28582:180::-;28630:77;28627:1;28620:88;28727:4;28724:1;28717:15;28751:4;28748:1;28741:15;28768:114;28835:6;28869:5;28863:12;28853:22;;28768:114;;;:::o;28888:184::-;28987:11;29021:6;29016:3;29009:19;29061:4;29056:3;29052:14;29037:29;;28888:184;;;;:::o;29078:132::-;29145:4;29168:3;29160:11;;29198:4;29193:3;29189:14;29181:22;;29078:132;;;:::o;29216:108::-;29293:24;29311:5;29293:24;:::i;:::-;29288:3;29281:37;29216:108;;:::o;29330:179::-;29399:10;29420:46;29462:3;29454:6;29420:46;:::i;:::-;29498:4;29493:3;29489:14;29475:28;;29330:179;;;;:::o;29515:113::-;29585:4;29617;29612:3;29608:14;29600:22;;29515:113;;;:::o;29664:732::-;29783:3;29812:54;29860:5;29812:54;:::i;:::-;29882:86;29961:6;29956:3;29882:86;:::i;:::-;29875:93;;29992:56;30042:5;29992:56;:::i;:::-;30071:7;30102:1;30087:284;30112:6;30109:1;30106:13;30087:284;;;30188:6;30182:13;30215:63;30274:3;30259:13;30215:63;:::i;:::-;30208:70;;30301:60;30354:6;30301:60;:::i;:::-;30291:70;;30147:224;30134:1;30131;30127:9;30122:14;;30087:284;;;30091:14;30387:3;30380:10;;29788:608;;;29664:732;;;;:::o;30402:831::-;30665:4;30703:3;30692:9;30688:19;30680:27;;30717:71;30785:1;30774:9;30770:17;30761:6;30717:71;:::i;:::-;30798:80;30874:2;30863:9;30859:18;30850:6;30798:80;:::i;:::-;30925:9;30919:4;30915:20;30910:2;30899:9;30895:18;30888:48;30953:108;31056:4;31047:6;30953:108;:::i;:::-;30945:116;;31071:72;31139:2;31128:9;31124:18;31115:6;31071:72;:::i;:::-;31153:73;31221:3;31210:9;31206:19;31197:6;31153:73;:::i;:::-;30402:831;;;;;;;;:::o;31239:180::-;31287:77;31284:1;31277:88;31384:4;31381:1;31374:15;31408:4;31405:1;31398:15;31425:185;31465:1;31482:20;31500:1;31482:20;:::i;:::-;31477:25;;31516:20;31534:1;31516:20;:::i;:::-;31511:25;;31555:1;31545:35;;31560:18;;:::i;:::-;31545:35;31602:1;31599;31595:9;31590:14;;31425:185;;;;:::o;31616:177::-;31756:29;31752:1;31744:6;31740:14;31733:53;31616:177;:::o;31799:366::-;31941:3;31962:67;32026:2;32021:3;31962:67;:::i;:::-;31955:74;;32038:93;32127:3;32038:93;:::i;:::-;32156:2;32151:3;32147:12;32140:19;;31799:366;;;:::o;32171:419::-;32337:4;32375:2;32364:9;32360:18;32352:26;;32424:9;32418:4;32414:20;32410:1;32399:9;32395:17;32388:47;32452:131;32578:4;32452:131;:::i;:::-;32444:139;;32171:419;;;:::o;32596:220::-;32736:34;32732:1;32724:6;32720:14;32713:58;32805:3;32800:2;32792:6;32788:15;32781:28;32596:220;:::o;32822:366::-;32964:3;32985:67;33049:2;33044:3;32985:67;:::i;:::-;32978:74;;33061:93;33150:3;33061:93;:::i;:::-;33179:2;33174:3;33170:12;33163:19;;32822:366;;;:::o;33194:419::-;33360:4;33398:2;33387:9;33383:18;33375:26;;33447:9;33441:4;33437:20;33433:1;33422:9;33418:17;33411:47;33475:131;33601:4;33475:131;:::i;:::-;33467:139;;33194:419;;;:::o

Swarm Source

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