ETH Price: $3,005.67 (+4.33%)
Gas: 1 Gwei

Token

PEPE② (PEPE②)
 

Overview

Max Total Supply

10,000,000,000 PEPE②

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
445,495,934.546950529 PEPE②

Value
$0.00
0xe4105981D6807291421B25032D1Ac9F140994E81
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:
PEPE2

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
/**

    telegram: https://t.me/PEPEsecond
    twitter: https://twitter.com/KimJongunETHs?t=ADbdeGHsW1lC9-GcEntmPA&s=09
   


**/
pragma solidity ^0.8.17;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by 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;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;

    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 waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract PEPE2 is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    using Address for address;
    
    string private _name = unicode"PEPE②";
    string private _symbol = unicode"PEPE②";
    uint8 private _decimals = 9;

    address payable public marketingWallet = payable(0xC9299bc01FCE79478298A8cdc6cD83475077E9e1

);
    address payable public lpWallet = payable(0xC9299bc01FCE79478298A8cdc6cD83475077E9e1

);

    address public deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;

    uint256 public _buyMarketingFee = 5;
    uint256 public _buyLpFee = 0;

    uint256 public _sellMarketingFee = 30;
    uint256 public _sellLpFee = 0;

    uint256 public _marketingShare = 20;
    uint256 public _lpShare = 0;

    uint256 public _totalTaxIfBuying = _buyMarketingFee + _buyLpFee;
    uint256 public _totalTaxIfSelling = _sellMarketingFee + _sellLpFee;
    uint256 public _totalDistributionShares = 20;


    uint256 private _totalSupply = 10000000000 * 10 ** _decimals;
    uint256 private minimumTokensBeforeSwap = 100000 * 10 ** _decimals; 

    uint256 public startBlock;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[deadAddress] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[lpWallet] = true;

        isMarketPair[address(uniswapPair)] = true;

        _balances[marketingWallet] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }


    function setBuyTaxes(uint256 buyMarketingFeeNew, uint256 buyLpFeeNew) external onlyOwner(){
        _buyMarketingFee = buyMarketingFeeNew;
        _buyLpFee = buyLpFeeNew;
        _totalTaxIfBuying = _buyMarketingFee.add(_buyLpFee);
        require(_totalTaxIfBuying <= 5 , "Max buy fee under 5%");
    }

    function setsellTaxes(uint256 sellMarketingFeeNew, uint256 sellLpFeeNew) external onlyOwner(){
        _sellMarketingFee = sellMarketingFeeNew;
        _sellLpFee = sellLpFeeNew;
        _totalTaxIfSelling = _sellMarketingFee.add(_sellLpFee);
        require(_totalTaxIfSelling <= 10 , "Max sell fee under 10%");
    }
    
    function setShares(uint256 _marketingShareNew, uint256 _lpShareNew) external onlyOwner() {
        _marketingShare = _marketingShareNew;
        _lpShare = _lpShareNew;
        _totalDistributionShares = _marketingShare.add(_lpShare);
    }

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

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));

        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

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

    function setIsExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled && recipient!=owner()) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? 
                                         amount : takeFee(sender,recipient, amount);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        if(_totalDistributionShares==0)
            return;

        uint256 lpAmount  = tAmount.mul(_lpShare).div(_totalDistributionShares).div(2);
        uint256 AmountforETH = tAmount.sub(lpAmount);

        swapTokensForETH(AmountforETH);
        uint256 ETHBalance = address(this).balance;
        
        uint256 amountETHForMarketing = ETHBalance.mul(_marketingShare).div(_totalDistributionShares);
        if(amountETHForMarketing > 0)
            transferToAddressETH(marketingWallet,amountETHForMarketing);
        
        uint256 amountETHLp = address(this).balance;
        if(lpAmount > 0 && amountETHLp>0)
            addLiquidity(lpAmount, amountETHLp);

        uint256 leftETH = address(this).balance;
        if(leftETH>0)
            transferToAddressETH(marketingWallet,leftETH);
    }

    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
            lpWallet,
            block.timestamp
        );
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function takeFee(address sender,address recipient,uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
           
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
    
}

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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyLpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lpShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyMarketingFeeNew","type":"uint256"},{"internalType":"uint256","name":"buyLpFeeNew","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingShareNew","type":"uint256"},{"internalType":"uint256","name":"_lpShareNew","type":"uint256"}],"name":"setShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellMarketingFeeNew","type":"uint256"},{"internalType":"uint256","name":"sellLpFeeNew","type":"uint256"}],"name":"setsellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600781526020017f50455045e291a100000000000000000000000000000000000000000000000000815250600190816200004a919062000c1e565b506040518060400160405280600781526020017f50455045e291a1000000000000000000000000000000000000000000000000008152506002908162000091919062000c1e565b506009600360006101000a81548160ff021916908360ff16021790555073c9299bc01fce79478298a8cdc6cd83475077e9e1600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c9299bc01fce79478298a8cdc6cd83475077e9e1600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005600a556000600b55601e600c556000600d556014600e556000600f55600b54600a54620001cb919062000d34565b601055600d54600c54620001e0919062000d34565b6011556014601255600360009054906101000a900460ff16600a62000206919062000ed0565b6402540be40062000218919062000f21565b601355600360009054906101000a900460ff16600a62000239919062000ed0565b620186a062000249919062000f21565b6014556001601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff0219169083151502179055503480156200028f57600080fd5b506000620002a26200097360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cb919062000fd6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000459919062000fd6565b6040518363ffffffff1660e01b81526004016200047892919062001019565b6020604051808303816000875af115801562000498573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004be919062000fd6565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601354600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160086000620005fa6200097b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060135460066000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620009036200097360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60135460405162000964919062001057565b60405180910390a35062001074565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a2657607f821691505b60208210810362000a3c5762000a3b620009de565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000aa67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a67565b62000ab2868362000a67565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000aff62000af962000af38462000aca565b62000ad4565b62000aca565b9050919050565b6000819050919050565b62000b1b8362000ade565b62000b3362000b2a8262000b06565b84845462000a74565b825550505050565b600090565b62000b4a62000b3b565b62000b5781848462000b10565b505050565b5b8181101562000b7f5762000b7360008262000b40565b60018101905062000b5d565b5050565b601f82111562000bce5762000b988162000a42565b62000ba38462000a57565b8101602085101562000bb3578190505b62000bcb62000bc28562000a57565b83018262000b5c565b50505b505050565b600082821c905092915050565b600062000bf36000198460080262000bd3565b1980831691505092915050565b600062000c0e838362000be0565b9150826002028217905092915050565b62000c2982620009a4565b67ffffffffffffffff81111562000c455762000c44620009af565b5b62000c51825462000a0d565b62000c5e82828562000b83565b600060209050601f83116001811462000c96576000841562000c81578287015190505b62000c8d858262000c00565b86555062000cfd565b601f19841662000ca68662000a42565b60005b8281101562000cd05784890151825560018201915060208501945060208101905062000ca9565b8683101562000cf0578489015162000cec601f89168262000be0565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d418262000aca565b915062000d4e8362000aca565b925082820190508082111562000d695762000d6862000d05565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111562000dce5780860481111562000da65762000da562000d05565b5b600185161562000db65780820291505b808102905062000dc68562000d6f565b945062000d86565b94509492505050565b60008262000de9576001905062000ebc565b8162000df9576000905062000ebc565b816001811462000e12576002811462000e1d5762000e53565b600191505062000ebc565b60ff84111562000e325762000e3162000d05565b5b8360020a91508482111562000e4c5762000e4b62000d05565b5b5062000ebc565b5060208310610133831016604e8410600b841016171562000e8d5782820a90508381111562000e875762000e8662000d05565b5b62000ebc565b62000e9c848484600162000d7c565b9250905081840481111562000eb65762000eb562000d05565b5b81810290505b9392505050565b600060ff82169050919050565b600062000edd8262000aca565b915062000eea8362000ec3565b925062000f197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dd7565b905092915050565b600062000f2e8262000aca565b915062000f3b8362000aca565b925082820262000f4b8162000aca565b9150828204841483151762000f655762000f6462000d05565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f9e8262000f71565b9050919050565b62000fb08162000f91565b811462000fbc57600080fd5b50565b60008151905062000fd08162000fa5565b92915050565b60006020828403121562000fef5762000fee62000f6c565b5b600062000fff8482850162000fbf565b91505092915050565b620010138162000f91565b82525050565b600060408201905062001030600083018562001008565b6200103f602083018462001008565b9392505050565b620010518162000aca565b82525050565b60006020820190506200106e600083018462001046565b92915050565b6138f680620010846000396000f3fe60806040526004361061024a5760003560e01c806375f0a87411610139578063a457c2d7116100b6578063c86079521161007a578063c8607952146108a9578063da00097d146108d4578063dd62ed3e146108ff578063ef422a181461093c578063f0cd1dac14610965578063f2fde38b1461099057610251565b8063a457c2d7146107b0578063a9059cbb146107ed578063aa35822c1461082a578063c5d2418914610853578063c816841b1461087e57610251565b8063914eb66a116100fd578063914eb66a146106ef57806395d89b4114610706578063a073d37f14610731578063a08e671f1461075c578063a33716571461078757610251565b806375f0a8741461061a5780637f90eaa21461064557806382eefb4314610670578063844d591c1461069b5780638da5cb5b146106c457610251565b8063313ce567116101c75780634a74bb021161018b5780634a74bb021461051f5780635342acb41461054a57806361a23c69146105875780636303516c146105b257806370a08231146105dd57610251565b8063313ce5671461042657806339509351146104515780633b97084a1461048e5780633ecad271146104b757806348cd4cb1146104f457610251565b8063182c425c1161020e578063182c425c1461033f57806323b872dd1461036a57806327c8f835146103a75780632aca3e7d146103d25780632b112e49146103fb57610251565b80630615102d1461025657806306fdde0314610281578063095ea7b3146102ac5780631694505e146102e957806318160ddd1461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109b9565b6040516102789190612a5f565b60405180910390f35b34801561028d57600080fd5b506102966109bf565b6040516102a39190612b0a565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190612bbb565b610a51565b6040516102e09190612c16565b60405180910390f35b3480156102f557600080fd5b506102fe610a6f565b60405161030b9190612c90565b60405180910390f35b34801561032057600080fd5b50610329610a95565b6040516103369190612a5f565b60405180910390f35b34801561034b57600080fd5b50610354610a9f565b6040516103619190612a5f565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190612cab565b610aa5565b60405161039e9190612c16565b60405180910390f35b3480156103b357600080fd5b506103bc610b7f565b6040516103c99190612d0d565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190612d28565b610ba5565b005b34801561040757600080fd5b50610410610c69565b60405161041d9190612a5f565b60405180910390f35b34801561043257600080fd5b5061043b610caf565b6040516104489190612d84565b60405180910390f35b34801561045d57600080fd5b5061047860048036038101906104739190612bbb565b610cc6565b6040516104859190612c16565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b09190612d9f565b610d79565b005b3480156104c357600080fd5b506104de60048036038101906104d99190612dcc565b610e18565b6040516104eb9190612c16565b60405180910390f35b34801561050057600080fd5b50610509610e38565b6040516105169190612a5f565b60405180910390f35b34801561052b57600080fd5b50610534610e3e565b6040516105419190612c16565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c9190612dcc565b610e51565b60405161057e9190612c16565b60405180910390f35b34801561059357600080fd5b5061059c610e71565b6040516105a99190612a5f565b60405180910390f35b3480156105be57600080fd5b506105c7610e77565b6040516105d49190612e1a565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190612dcc565b610e9d565b6040516106119190612a5f565b60405180910390f35b34801561062657600080fd5b5061062f610ee6565b60405161063c9190612e1a565b60405180910390f35b34801561065157600080fd5b5061065a610f0c565b6040516106679190612a5f565b60405180910390f35b34801561067c57600080fd5b50610685610f12565b6040516106929190612a5f565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd9190612e61565b610f18565b005b3480156106d057600080fd5b506106d9611008565b6040516106e69190612d0d565b60405180910390f35b3480156106fb57600080fd5b50610704611031565b005b34801561071257600080fd5b5061071b611184565b6040516107289190612b0a565b60405180910390f35b34801561073d57600080fd5b50610746611216565b6040516107539190612a5f565b60405180910390f35b34801561076857600080fd5b50610771611220565b60405161077e9190612a5f565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a99190612d28565b611226565b005b3480156107bc57600080fd5b506107d760048036038101906107d29190612bbb565b611330565b6040516107e49190612c16565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190612bbb565b6113fd565b6040516108219190612c16565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c9190612d28565b61141c565b005b34801561085f57600080fd5b50610868611526565b6040516108759190612a5f565b60405180910390f35b34801561088a57600080fd5b5061089361152c565b6040516108a09190612d0d565b60405180910390f35b3480156108b557600080fd5b506108be611552565b6040516108cb9190612a5f565b60405180910390f35b3480156108e057600080fd5b506108e9611558565b6040516108f69190612c16565b60405180910390f35b34801561090b57600080fd5b5061092660048036038101906109219190612ea1565b61156b565b6040516109339190612a5f565b60405180910390f35b34801561094857600080fd5b50610963600480360381019061095e9190612e61565b6115f2565b005b34801561097157600080fd5b5061097a6116e2565b6040516109879190612a5f565b60405180910390f35b34801561099c57600080fd5b506109b760048036038101906109b29190612dcc565b6116e8565b005b600d5481565b6060600180546109ce90612f10565b80601f01602080910402602001604051908101604052809291908181526020018280546109fa90612f10565b8015610a475780601f10610a1c57610100808354040283529160200191610a47565b820191906000526020600020905b815481529060010190602001808311610a2a57829003601f168201915b5050505050905090565b6000610a65610a5e6118a9565b84846118b1565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601354905090565b600b5481565b6000610ab2848484611a7a565b50610b7484610abf6118a9565b610b6f8560405180606001604052806028815260200161387460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b256118a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f189092919063ffffffff16565b6118b1565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bad6118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190612f8d565b60405180910390fd5b81600e8190555080600f81905550610c5f600f54600e54611f7c90919063ffffffff16565b6012819055505050565b6000610caa610c99600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e9d565b601354611fda90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610d6f610cd36118a9565b84610d6a8560076000610ce46118a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7c90919063ffffffff16565b6118b1565b6001905092915050565b610d816118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0590612f8d565b60405180910390fd5b8060148190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b60155481565b601760159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600e5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60115481565b610f206118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490612f8d565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110396118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90612f8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461119390612f10565b80601f01602080910402602001604051908101604052809291908181526020018280546111bf90612f10565b801561120c5780601f106111e15761010080835404028352916020019161120c565b820191906000526020600020905b8154815290600101906020018083116111ef57829003601f168201915b5050505050905090565b6000601454905090565b60125481565b61122e6118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612f8d565b60405180910390fd5b81600c8190555080600d819055506112e0600d54600c54611f7c90919063ffffffff16565b601181905550600a601154111561132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390612ff9565b60405180910390fd5b5050565b60006113f361133d6118a9565b846113ee8560405180606001604052806025815260200161389c60259139600760006113676118a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f189092919063ffffffff16565b6118b1565b6001905092915050565b600061141161140a6118a9565b8484611a7a565b506001905092915050565b6114246118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890612f8d565b60405180910390fd5b81600a8190555080600b819055506114d6600b54600a54611f7c90919063ffffffff16565b60108190555060056010541115611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990613065565b60405180910390fd5b5050565b600a5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b601760169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115fa6118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e90612f8d565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b6116f06118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177490612f8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e3906130f7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613189565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361198f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119869061321b565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a6d9190612a5f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae1906132ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b509061333f565b60405180910390fd5b601760149054906101000a900460ff1615611b8057611b79848484612024565b9050611f11565b6000611b8b30610e9d565b905060006014548210159050808015611bb15750601760149054906101000a900460ff16155b8015611c075750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c1f5750601760159054906101000a900460ff165b8015611c5e5750611c2e611008565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c8857601760169054906101000a900460ff1615611c7e5760145491505b611c87826121f7565b5b611d11846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f189092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611df75750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e0b57611e0687878761236a565b611e0d565b845b9050611e6181600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7c90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f019190612a5f565b60405180910390a3600193505050505b9392505050565b6000838311158290611f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f579190612b0a565b60405180910390fd5b5060008385611f6f919061338e565b9050809150509392505050565b6000808284611f8b91906133c2565b905083811015611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790613442565b60405180910390fd5b8091505092915050565b600061201c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f18565b905092915050565b60006120af826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f189092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061214482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7c90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121e49190612a5f565b60405180910390a3600190509392505050565b6001601760146101000a81548160ff0219169083151502179055506000601254031561234c57600061225b600261224d60125461223f600f548761259190919063ffffffff16565b61260b90919063ffffffff16565b61260b90919063ffffffff16565b905060006122728284611fda90919063ffffffff16565b905061227d81612655565b600047905060006122ad60125461229f600e548561259190919063ffffffff16565b61260b90919063ffffffff16565b905060008111156122e5576122e4600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612898565b5b60004790506000851180156122fa5750600081115b1561230a5761230985826128e3565b5b6000479050600081111561234557612344600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612898565b5b5050505050505b6000601760146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123f2576123eb60646123dd6010548661259190919063ffffffff16565b61260b90919063ffffffff16565b9050612470565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561246f5761246c606461245e6011548661259190919063ffffffff16565b61260b90919063ffffffff16565b90505b5b6000811115612574576124cb81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7c90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161256b9190612a5f565b60405180910390a35b6125878184611fda90919063ffffffff16565b9150509392505050565b60008083036125a35760009050612605565b600082846125b19190613462565b90508284826125c091906134d3565b14612600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f790613576565b60405180910390fd5b809150505b92915050565b600061264d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129e3565b905092915050565b6000600267ffffffffffffffff81111561267257612671613596565b5b6040519080825280602002602001820160405280156126a05781602001602082028036833780820191505090505b50905030816000815181106126b8576126b76135c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561275f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127839190613609565b81600181518110612797576127966135c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127fe30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b1565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161286295949392919061372f565b600060405180830381600087803b15801561287c57600080fd5b505af1158015612890573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128de573d6000803e3d6000fd5b505050565b61291030601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b1565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612999969594939291906137aa565b60606040518083038185885af11580156129b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129dc9190613820565b5050505050565b60008083118290612a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a219190612b0a565b60405180910390fd5b5060008385612a3991906134d3565b9050809150509392505050565b6000819050919050565b612a5981612a46565b82525050565b6000602082019050612a746000830184612a50565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ab4578082015181840152602081019050612a99565b60008484015250505050565b6000601f19601f8301169050919050565b6000612adc82612a7a565b612ae68185612a85565b9350612af6818560208601612a96565b612aff81612ac0565b840191505092915050565b60006020820190508181036000830152612b248184612ad1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b5c82612b31565b9050919050565b612b6c81612b51565b8114612b7757600080fd5b50565b600081359050612b8981612b63565b92915050565b612b9881612a46565b8114612ba357600080fd5b50565b600081359050612bb581612b8f565b92915050565b60008060408385031215612bd257612bd1612b2c565b5b6000612be085828601612b7a565b9250506020612bf185828601612ba6565b9150509250929050565b60008115159050919050565b612c1081612bfb565b82525050565b6000602082019050612c2b6000830184612c07565b92915050565b6000819050919050565b6000612c56612c51612c4c84612b31565b612c31565b612b31565b9050919050565b6000612c6882612c3b565b9050919050565b6000612c7a82612c5d565b9050919050565b612c8a81612c6f565b82525050565b6000602082019050612ca56000830184612c81565b92915050565b600080600060608486031215612cc457612cc3612b2c565b5b6000612cd286828701612b7a565b9350506020612ce386828701612b7a565b9250506040612cf486828701612ba6565b9150509250925092565b612d0781612b51565b82525050565b6000602082019050612d226000830184612cfe565b92915050565b60008060408385031215612d3f57612d3e612b2c565b5b6000612d4d85828601612ba6565b9250506020612d5e85828601612ba6565b9150509250929050565b600060ff82169050919050565b612d7e81612d68565b82525050565b6000602082019050612d996000830184612d75565b92915050565b600060208284031215612db557612db4612b2c565b5b6000612dc384828501612ba6565b91505092915050565b600060208284031215612de257612de1612b2c565b5b6000612df084828501612b7a565b91505092915050565b6000612e0482612b31565b9050919050565b612e1481612df9565b82525050565b6000602082019050612e2f6000830184612e0b565b92915050565b612e3e81612bfb565b8114612e4957600080fd5b50565b600081359050612e5b81612e35565b92915050565b60008060408385031215612e7857612e77612b2c565b5b6000612e8685828601612b7a565b9250506020612e9785828601612e4c565b9150509250929050565b60008060408385031215612eb857612eb7612b2c565b5b6000612ec685828601612b7a565b9250506020612ed785828601612b7a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f2857607f821691505b602082108103612f3b57612f3a612ee1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f77602083612a85565b9150612f8282612f41565b602082019050919050565b60006020820190508181036000830152612fa681612f6a565b9050919050565b7f4d61782073656c6c2066656520756e6465722031302500000000000000000000600082015250565b6000612fe3601683612a85565b9150612fee82612fad565b602082019050919050565b6000602082019050818103600083015261301281612fd6565b9050919050565b7f4d6178206275792066656520756e646572203525000000000000000000000000600082015250565b600061304f601483612a85565b915061305a82613019565b602082019050919050565b6000602082019050818103600083015261307e81613042565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130e1602683612a85565b91506130ec82613085565b604082019050919050565b60006020820190508181036000830152613110816130d4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613173602483612a85565b915061317e82613117565b604082019050919050565b600060208201905081810360008301526131a281613166565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613205602283612a85565b9150613210826131a9565b604082019050919050565b60006020820190508181036000830152613234816131f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613297602583612a85565b91506132a28261323b565b604082019050919050565b600060208201905081810360008301526132c68161328a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613329602383612a85565b9150613334826132cd565b604082019050919050565b600060208201905081810360008301526133588161331c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061339982612a46565b91506133a483612a46565b92508282039050818111156133bc576133bb61335f565b5b92915050565b60006133cd82612a46565b91506133d883612a46565b92508282019050808211156133f0576133ef61335f565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061342c601b83612a85565b9150613437826133f6565b602082019050919050565b6000602082019050818103600083015261345b8161341f565b9050919050565b600061346d82612a46565b915061347883612a46565b925082820261348681612a46565b9150828204841483151761349d5761349c61335f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134de82612a46565b91506134e983612a46565b9250826134f9576134f86134a4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613560602183612a85565b915061356b82613504565b604082019050919050565b6000602082019050818103600083015261358f81613553565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061360381612b63565b92915050565b60006020828403121561361f5761361e612b2c565b5b600061362d848285016135f4565b91505092915050565b6000819050919050565b600061365b61365661365184613636565b612c31565b612a46565b9050919050565b61366b81613640565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136a681612b51565b82525050565b60006136b8838361369d565b60208301905092915050565b6000602082019050919050565b60006136dc82613671565b6136e6818561367c565b93506136f18361368d565b8060005b8381101561372257815161370988826136ac565b9750613714836136c4565b9250506001810190506136f5565b5085935050505092915050565b600060a0820190506137446000830188612a50565b6137516020830187613662565b818103604083015261376381866136d1565b90506137726060830185612cfe565b61377f6080830184612a50565b9695505050505050565b600061379482612c5d565b9050919050565b6137a481613789565b82525050565b600060c0820190506137bf6000830189612cfe565b6137cc6020830188612a50565b6137d96040830187613662565b6137e66060830186613662565b6137f3608083018561379b565b61380060a0830184612a50565b979650505050505050565b60008151905061381a81612b8f565b92915050565b60008060006060848603121561383957613838612b2c565b5b60006138478682870161380b565b93505060206138588682870161380b565b92505060406138698682870161380b565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d9621554206041d6ad6507dfda5079f23bfee76cb84676477074d997850d9cfb64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c806375f0a87411610139578063a457c2d7116100b6578063c86079521161007a578063c8607952146108a9578063da00097d146108d4578063dd62ed3e146108ff578063ef422a181461093c578063f0cd1dac14610965578063f2fde38b1461099057610251565b8063a457c2d7146107b0578063a9059cbb146107ed578063aa35822c1461082a578063c5d2418914610853578063c816841b1461087e57610251565b8063914eb66a116100fd578063914eb66a146106ef57806395d89b4114610706578063a073d37f14610731578063a08e671f1461075c578063a33716571461078757610251565b806375f0a8741461061a5780637f90eaa21461064557806382eefb4314610670578063844d591c1461069b5780638da5cb5b146106c457610251565b8063313ce567116101c75780634a74bb021161018b5780634a74bb021461051f5780635342acb41461054a57806361a23c69146105875780636303516c146105b257806370a08231146105dd57610251565b8063313ce5671461042657806339509351146104515780633b97084a1461048e5780633ecad271146104b757806348cd4cb1146104f457610251565b8063182c425c1161020e578063182c425c1461033f57806323b872dd1461036a57806327c8f835146103a75780632aca3e7d146103d25780632b112e49146103fb57610251565b80630615102d1461025657806306fdde0314610281578063095ea7b3146102ac5780631694505e146102e957806318160ddd1461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109b9565b6040516102789190612a5f565b60405180910390f35b34801561028d57600080fd5b506102966109bf565b6040516102a39190612b0a565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190612bbb565b610a51565b6040516102e09190612c16565b60405180910390f35b3480156102f557600080fd5b506102fe610a6f565b60405161030b9190612c90565b60405180910390f35b34801561032057600080fd5b50610329610a95565b6040516103369190612a5f565b60405180910390f35b34801561034b57600080fd5b50610354610a9f565b6040516103619190612a5f565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190612cab565b610aa5565b60405161039e9190612c16565b60405180910390f35b3480156103b357600080fd5b506103bc610b7f565b6040516103c99190612d0d565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190612d28565b610ba5565b005b34801561040757600080fd5b50610410610c69565b60405161041d9190612a5f565b60405180910390f35b34801561043257600080fd5b5061043b610caf565b6040516104489190612d84565b60405180910390f35b34801561045d57600080fd5b5061047860048036038101906104739190612bbb565b610cc6565b6040516104859190612c16565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b09190612d9f565b610d79565b005b3480156104c357600080fd5b506104de60048036038101906104d99190612dcc565b610e18565b6040516104eb9190612c16565b60405180910390f35b34801561050057600080fd5b50610509610e38565b6040516105169190612a5f565b60405180910390f35b34801561052b57600080fd5b50610534610e3e565b6040516105419190612c16565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c9190612dcc565b610e51565b60405161057e9190612c16565b60405180910390f35b34801561059357600080fd5b5061059c610e71565b6040516105a99190612a5f565b60405180910390f35b3480156105be57600080fd5b506105c7610e77565b6040516105d49190612e1a565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190612dcc565b610e9d565b6040516106119190612a5f565b60405180910390f35b34801561062657600080fd5b5061062f610ee6565b60405161063c9190612e1a565b60405180910390f35b34801561065157600080fd5b5061065a610f0c565b6040516106679190612a5f565b60405180910390f35b34801561067c57600080fd5b50610685610f12565b6040516106929190612a5f565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd9190612e61565b610f18565b005b3480156106d057600080fd5b506106d9611008565b6040516106e69190612d0d565b60405180910390f35b3480156106fb57600080fd5b50610704611031565b005b34801561071257600080fd5b5061071b611184565b6040516107289190612b0a565b60405180910390f35b34801561073d57600080fd5b50610746611216565b6040516107539190612a5f565b60405180910390f35b34801561076857600080fd5b50610771611220565b60405161077e9190612a5f565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a99190612d28565b611226565b005b3480156107bc57600080fd5b506107d760048036038101906107d29190612bbb565b611330565b6040516107e49190612c16565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190612bbb565b6113fd565b6040516108219190612c16565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c9190612d28565b61141c565b005b34801561085f57600080fd5b50610868611526565b6040516108759190612a5f565b60405180910390f35b34801561088a57600080fd5b5061089361152c565b6040516108a09190612d0d565b60405180910390f35b3480156108b557600080fd5b506108be611552565b6040516108cb9190612a5f565b60405180910390f35b3480156108e057600080fd5b506108e9611558565b6040516108f69190612c16565b60405180910390f35b34801561090b57600080fd5b5061092660048036038101906109219190612ea1565b61156b565b6040516109339190612a5f565b60405180910390f35b34801561094857600080fd5b50610963600480360381019061095e9190612e61565b6115f2565b005b34801561097157600080fd5b5061097a6116e2565b6040516109879190612a5f565b60405180910390f35b34801561099c57600080fd5b506109b760048036038101906109b29190612dcc565b6116e8565b005b600d5481565b6060600180546109ce90612f10565b80601f01602080910402602001604051908101604052809291908181526020018280546109fa90612f10565b8015610a475780601f10610a1c57610100808354040283529160200191610a47565b820191906000526020600020905b815481529060010190602001808311610a2a57829003601f168201915b5050505050905090565b6000610a65610a5e6118a9565b84846118b1565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601354905090565b600b5481565b6000610ab2848484611a7a565b50610b7484610abf6118a9565b610b6f8560405180606001604052806028815260200161387460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b256118a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f189092919063ffffffff16565b6118b1565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bad6118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3190612f8d565b60405180910390fd5b81600e8190555080600f81905550610c5f600f54600e54611f7c90919063ffffffff16565b6012819055505050565b6000610caa610c99600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e9d565b601354611fda90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610d6f610cd36118a9565b84610d6a8560076000610ce46118a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7c90919063ffffffff16565b6118b1565b6001905092915050565b610d816118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0590612f8d565b60405180910390fd5b8060148190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b60155481565b601760159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b600e5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60115481565b610f206118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490612f8d565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110396118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90612f8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606002805461119390612f10565b80601f01602080910402602001604051908101604052809291908181526020018280546111bf90612f10565b801561120c5780601f106111e15761010080835404028352916020019161120c565b820191906000526020600020905b8154815290600101906020018083116111ef57829003601f168201915b5050505050905090565b6000601454905090565b60125481565b61122e6118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b290612f8d565b60405180910390fd5b81600c8190555080600d819055506112e0600d54600c54611f7c90919063ffffffff16565b601181905550600a601154111561132c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132390612ff9565b60405180910390fd5b5050565b60006113f361133d6118a9565b846113ee8560405180606001604052806025815260200161389c60259139600760006113676118a9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f189092919063ffffffff16565b6118b1565b6001905092915050565b600061141161140a6118a9565b8484611a7a565b506001905092915050565b6114246118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890612f8d565b60405180910390fd5b81600a8190555080600b819055506114d6600b54600a54611f7c90919063ffffffff16565b60108190555060056010541115611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990613065565b60405180910390fd5b5050565b600a5481565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b601760169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115fa6118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611687576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167e90612f8d565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b6116f06118a9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177490612f8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e3906130f7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613189565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361198f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119869061321b565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a6d9190612a5f565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae1906132ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b509061333f565b60405180910390fd5b601760149054906101000a900460ff1615611b8057611b79848484612024565b9050611f11565b6000611b8b30610e9d565b905060006014548210159050808015611bb15750601760149054906101000a900460ff16155b8015611c075750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c1f5750601760159054906101000a900460ff165b8015611c5e5750611c2e611008565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c8857601760169054906101000a900460ff1615611c7e5760145491505b611c87826121f7565b5b611d11846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f189092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611df75750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e0b57611e0687878761236a565b611e0d565b845b9050611e6181600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7c90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f019190612a5f565b60405180910390a3600193505050505b9392505050565b6000838311158290611f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f579190612b0a565b60405180910390fd5b5060008385611f6f919061338e565b9050809150509392505050565b6000808284611f8b91906133c2565b905083811015611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790613442565b60405180910390fd5b8091505092915050565b600061201c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f18565b905092915050565b60006120af826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f189092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061214482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7c90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121e49190612a5f565b60405180910390a3600190509392505050565b6001601760146101000a81548160ff0219169083151502179055506000601254031561234c57600061225b600261224d60125461223f600f548761259190919063ffffffff16565b61260b90919063ffffffff16565b61260b90919063ffffffff16565b905060006122728284611fda90919063ffffffff16565b905061227d81612655565b600047905060006122ad60125461229f600e548561259190919063ffffffff16565b61260b90919063ffffffff16565b905060008111156122e5576122e4600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612898565b5b60004790506000851180156122fa5750600081115b1561230a5761230985826128e3565b5b6000479050600081111561234557612344600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612898565b5b5050505050505b6000601760146101000a81548160ff02191690831515021790555050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156123f2576123eb60646123dd6010548661259190919063ffffffff16565b61260b90919063ffffffff16565b9050612470565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561246f5761246c606461245e6011548661259190919063ffffffff16565b61260b90919063ffffffff16565b90505b5b6000811115612574576124cb81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7c90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161256b9190612a5f565b60405180910390a35b6125878184611fda90919063ffffffff16565b9150509392505050565b60008083036125a35760009050612605565b600082846125b19190613462565b90508284826125c091906134d3565b14612600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f790613576565b60405180910390fd5b809150505b92915050565b600061264d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129e3565b905092915050565b6000600267ffffffffffffffff81111561267257612671613596565b5b6040519080825280602002602001820160405280156126a05781602001602082028036833780820191505090505b50905030816000815181106126b8576126b76135c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561275f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127839190613609565b81600181518110612797576127966135c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127fe30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b1565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161286295949392919061372f565b600060405180830381600087803b15801561287c57600080fd5b505af1158015612890573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128de573d6000803e3d6000fd5b505050565b61291030601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b1565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612999969594939291906137aa565b60606040518083038185885af11580156129b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129dc9190613820565b5050505050565b60008083118290612a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a219190612b0a565b60405180910390fd5b5060008385612a3991906134d3565b9050809150509392505050565b6000819050919050565b612a5981612a46565b82525050565b6000602082019050612a746000830184612a50565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ab4578082015181840152602081019050612a99565b60008484015250505050565b6000601f19601f8301169050919050565b6000612adc82612a7a565b612ae68185612a85565b9350612af6818560208601612a96565b612aff81612ac0565b840191505092915050565b60006020820190508181036000830152612b248184612ad1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b5c82612b31565b9050919050565b612b6c81612b51565b8114612b7757600080fd5b50565b600081359050612b8981612b63565b92915050565b612b9881612a46565b8114612ba357600080fd5b50565b600081359050612bb581612b8f565b92915050565b60008060408385031215612bd257612bd1612b2c565b5b6000612be085828601612b7a565b9250506020612bf185828601612ba6565b9150509250929050565b60008115159050919050565b612c1081612bfb565b82525050565b6000602082019050612c2b6000830184612c07565b92915050565b6000819050919050565b6000612c56612c51612c4c84612b31565b612c31565b612b31565b9050919050565b6000612c6882612c3b565b9050919050565b6000612c7a82612c5d565b9050919050565b612c8a81612c6f565b82525050565b6000602082019050612ca56000830184612c81565b92915050565b600080600060608486031215612cc457612cc3612b2c565b5b6000612cd286828701612b7a565b9350506020612ce386828701612b7a565b9250506040612cf486828701612ba6565b9150509250925092565b612d0781612b51565b82525050565b6000602082019050612d226000830184612cfe565b92915050565b60008060408385031215612d3f57612d3e612b2c565b5b6000612d4d85828601612ba6565b9250506020612d5e85828601612ba6565b9150509250929050565b600060ff82169050919050565b612d7e81612d68565b82525050565b6000602082019050612d996000830184612d75565b92915050565b600060208284031215612db557612db4612b2c565b5b6000612dc384828501612ba6565b91505092915050565b600060208284031215612de257612de1612b2c565b5b6000612df084828501612b7a565b91505092915050565b6000612e0482612b31565b9050919050565b612e1481612df9565b82525050565b6000602082019050612e2f6000830184612e0b565b92915050565b612e3e81612bfb565b8114612e4957600080fd5b50565b600081359050612e5b81612e35565b92915050565b60008060408385031215612e7857612e77612b2c565b5b6000612e8685828601612b7a565b9250506020612e9785828601612e4c565b9150509250929050565b60008060408385031215612eb857612eb7612b2c565b5b6000612ec685828601612b7a565b9250506020612ed785828601612b7a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f2857607f821691505b602082108103612f3b57612f3a612ee1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f77602083612a85565b9150612f8282612f41565b602082019050919050565b60006020820190508181036000830152612fa681612f6a565b9050919050565b7f4d61782073656c6c2066656520756e6465722031302500000000000000000000600082015250565b6000612fe3601683612a85565b9150612fee82612fad565b602082019050919050565b6000602082019050818103600083015261301281612fd6565b9050919050565b7f4d6178206275792066656520756e646572203525000000000000000000000000600082015250565b600061304f601483612a85565b915061305a82613019565b602082019050919050565b6000602082019050818103600083015261307e81613042565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130e1602683612a85565b91506130ec82613085565b604082019050919050565b60006020820190508181036000830152613110816130d4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613173602483612a85565b915061317e82613117565b604082019050919050565b600060208201905081810360008301526131a281613166565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613205602283612a85565b9150613210826131a9565b604082019050919050565b60006020820190508181036000830152613234816131f8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613297602583612a85565b91506132a28261323b565b604082019050919050565b600060208201905081810360008301526132c68161328a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613329602383612a85565b9150613334826132cd565b604082019050919050565b600060208201905081810360008301526133588161331c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061339982612a46565b91506133a483612a46565b92508282039050818111156133bc576133bb61335f565b5b92915050565b60006133cd82612a46565b91506133d883612a46565b92508282019050808211156133f0576133ef61335f565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061342c601b83612a85565b9150613437826133f6565b602082019050919050565b6000602082019050818103600083015261345b8161341f565b9050919050565b600061346d82612a46565b915061347883612a46565b925082820261348681612a46565b9150828204841483151761349d5761349c61335f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134de82612a46565b91506134e983612a46565b9250826134f9576134f86134a4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613560602183612a85565b915061356b82613504565b604082019050919050565b6000602082019050818103600083015261358f81613553565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061360381612b63565b92915050565b60006020828403121561361f5761361e612b2c565b5b600061362d848285016135f4565b91505092915050565b6000819050919050565b600061365b61365661365184613636565b612c31565b612a46565b9050919050565b61366b81613640565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136a681612b51565b82525050565b60006136b8838361369d565b60208301905092915050565b6000602082019050919050565b60006136dc82613671565b6136e6818561367c565b93506136f18361368d565b8060005b8381101561372257815161370988826136ac565b9750613714836136c4565b9250506001810190506136f5565b5085935050505092915050565b600060a0820190506137446000830188612a50565b6137516020830187613662565b818103604083015261376381866136d1565b90506137726060830185612cfe565b61377f6080830184612a50565b9695505050505050565b600061379482612c5d565b9050919050565b6137a481613789565b82525050565b600060c0820190506137bf6000830189612cfe565b6137cc6020830188612a50565b6137d96040830187613662565b6137e66060830186613662565b6137f3608083018561379b565b61380060a0830184612a50565b979650505050505050565b60008151905061381a81612b8f565b92915050565b60008060006060848603121561383957613838612b2c565b5b60006138478682870161380b565b93505060206138588682870161380b565b92505060406138698682870161380b565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d9621554206041d6ad6507dfda5079f23bfee76cb84676477074d997850d9cfb64736f6c63430008120033

Deployed Bytecode Sourcemap

14333:11298:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15236:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18181:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19477:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15727:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18458:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15155:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20807:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14791:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17929:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20403:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18367:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18844:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20271:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15059:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15693:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15842:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15002:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15274:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14693:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18566:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14590:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15316:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15422:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20134:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5872:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6097:145;;;;;;;;;;;;;:::i;:::-;;18272:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19349:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15495:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17594:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19072:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20632:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17277:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15113:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15775:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15192:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15889:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18693:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19991:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15352:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6250:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15236:29;;;;:::o;18181:83::-;18218:13;18251:5;18244:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18181:83;:::o;19477:161::-;19552:4;19569:39;19578:12;:10;:12::i;:::-;19592:7;19601:6;19569:8;:39::i;:::-;19626:4;19619:11;;19477:161;;;;:::o;15727:41::-;;;;;;;;;;;;;:::o;18458:100::-;18511:7;18538:12;;18531:19;;18458:100;:::o;15155:28::-;;;;:::o;20807:313::-;20905:4;20922:36;20932:6;20940:9;20951:6;20922:9;:36::i;:::-;;20969:121;20978:6;20986:12;:10;:12::i;:::-;21000:89;21038:6;21000:89;;;;;;;;;;;;;;;;;:11;:19;21012:6;21000:19;;;;;;;;;;;;;;;:33;21020:12;:10;:12::i;:::-;21000:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20969:8;:121::i;:::-;21108:4;21101:11;;20807:313;;;;;:::o;14791:71::-;;;;;;;;;;;;;:::o;17929:244::-;6016:12;:10;:12::i;:::-;6006:22;;:6;;;;;;;;;;:22;;;5998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18047:18:::1;18029:15;:36;;;;18087:11;18076:8;:22;;;;18136:29;18156:8;;18136:15;;:19;;:29;;;;:::i;:::-;18109:24;:56;;;;17929:244:::0;;:::o;20403:128::-;20456:7;20483:40;20500:22;20510:11;;;;;;;;;;;20500:9;:22::i;:::-;20483:12;;:16;;:40;;;;:::i;:::-;20476:47;;20403:128;:::o;18367:83::-;18408:5;18433:9;;;;;;;;;;;18426:16;;18367:83;:::o;18844:220::-;18932:4;18949:83;18958:12;:10;:12::i;:::-;18972:7;18981:50;19020:10;18981:11;:25;18993:12;:10;:12::i;:::-;18981:25;;;;;;;;;;;;;;;:34;19007:7;18981:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18949:8;:83::i;:::-;19052:4;19045:11;;18844:220;;;;:::o;20271:124::-;6016:12;:10;:12::i;:::-;6006:22;;:6;;;;;;;;;;:22;;;5998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20379:8:::1;20353:23;:34;;;;20271:124:::0;:::o;15059:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;15693:25::-;;;;:::o;15842:40::-;;;;;;;;;;;;;:::o;15002:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;15274:35::-;;;;:::o;14693:89::-;;;;;;;;;;;;;:::o;18566:119::-;18632:7;18659:9;:18;18669:7;18659:18;;;;;;;;;;;;;;;;18652:25;;18566:119;;;:::o;14590:96::-;;;;;;;;;;;;;:::o;15316:27::-;;;;:::o;15422:66::-;;;;:::o;20134:129::-;6016:12;:10;:12::i;:::-;6006:22;;:6;;;;;;;;;;:22;;;5998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20247:8:::1;20223:12;:21;20236:7;20223:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;20134:129:::0;;:::o;5872:79::-;5910:7;5937:6;;;;;;;;;;;5930:13;;5872:79;:::o;6097:145::-;6016:12;:10;:12::i;:::-;6006:22;;:6;;;;;;;;;;:22;;;5998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6201:1:::1;6164:40;;6185:6;::::0;::::1;;;;;;;;6164:40;;;;;;;;;;;;6232:1;6215:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6097:145::o:0;18272:87::-;18311:13;18344:7;18337:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18272:87;:::o;19349:120::-;19411:7;19438:23;;19431:30;;19349:120;:::o;15495:44::-;;;;:::o;17594:323::-;6016:12;:10;:12::i;:::-;6006:22;;:6;;;;;;;;;;:22;;;5998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17718:19:::1;17698:17;:39;;;;17761:12;17748:10;:25;;;;17805:33;17827:10;;17805:17;;:21;;:33;;;;:::i;:::-;17784:18;:54;;;;17879:2;17857:18;;:24;;17849:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;17594:323:::0;;:::o;19072:269::-;19165:4;19182:129;19191:12;:10;:12::i;:::-;19205:7;19214:96;19253:15;19214:96;;;;;;;;;;;;;;;;;:11;:25;19226:12;:10;:12::i;:::-;19214:25;;;;;;;;;;;;;;;:34;19240:7;19214:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19182:8;:129::i;:::-;19329:4;19322:11;;19072:269;;;;:::o;20632:167::-;20710:4;20727:42;20737:12;:10;:12::i;:::-;20751:9;20762:6;20727:9;:42::i;:::-;;20787:4;20780:11;;20632:167;;;;:::o;17277:309::-;6016:12;:10;:12::i;:::-;6006:22;;:6;;;;;;;;;;:22;;;5998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17397:18:::1;17378:16;:37;;;;17438:11;17426:9;:23;;;;17480:31;17501:9;;17480:16;;:20;;:31;;;;:::i;:::-;17460:17;:51;;;;17551:1;17530:17;;:22;;17522:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;17277:309:::0;;:::o;15113:35::-;;;;:::o;15775:26::-;;;;;;;;;;;;;:::o;15192:37::-;;;;:::o;15889:45::-;;;;;;;;;;;;;:::o;18693:143::-;18774:7;18801:11;:18;18813:5;18801:18;;;;;;;;;;;;;;;:27;18820:7;18801:27;;;;;;;;;;;;;;;;18794:34;;18693:143;;;;:::o;19991:135::-;6016:12;:10;:12::i;:::-;6006:22;;:6;;;;;;;;;;:22;;;5998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20110:8:::1;20081:17;:26;20099:7;20081:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19991:135:::0;;:::o;15352:63::-;;;;:::o;6250:244::-;6016:12;:10;:12::i;:::-;6006:22;;:6;;;;;;;;;;:22;;;5998:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6359:1:::1;6339:22;;:8;:22;;::::0;6331:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6449:8;6420:38;;6441:6;::::0;::::1;;;;;;;;6420:38;;;;;;;;;;;;6478:8;6469:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6250:244:::0;:::o;243:115::-;296:15;339:10;324:26;;243:115;:::o;19646:337::-;19756:1;19739:19;;:5;:19;;;19731:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19837:1;19818:21;;:7;:21;;;19810:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19921:6;19891:11;:18;19903:5;19891:18;;;;;;;;;;;;;;;:27;19910:7;19891:27;;;;;;;;;;;;;;;:36;;;;19959:7;19943:32;;19952:5;19943:32;;;19968:6;19943:32;;;;;;:::i;:::-;;;;;;;;19646:337;;;:::o;21132:1378::-;21219:4;21264:1;21246:20;;:6;:20;;;21238:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;21348:1;21327:23;;:9;:23;;;21319:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21404:16;;;;;;;;;;;21401:1102;;;21454:41;21469:6;21477:9;21488:6;21454:14;:41::i;:::-;21447:48;;;;21401:1102;21547:28;21578:24;21596:4;21578:9;:24::i;:::-;21547:55;;21617:28;21672:23;;21648:20;:47;;21617:78;;21728:23;:44;;;;;21756:16;;;;;;;;;;;21755:17;21728:44;:69;;;;;21777:12;:20;21790:6;21777:20;;;;;;;;;;;;;;;;;;;;;;;;;21776:21;21728:69;:94;;;;;21801:21;;;;;;;;;;;21728:94;:116;;;;;21837:7;:5;:7::i;:::-;21826:18;;:9;:18;;;;21728:116;21724:327;;;21882:25;;;;;;;;;;;21879:97;;;21953:23;;21930:46;;21879:97;21995:36;22010:20;21995:14;:36::i;:::-;21724:327;22087:53;22109:6;22087:53;;;;;;;;;;;;;;;;;:9;:17;22097:6;22087:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;22067:9;:17;22077:6;22067:17;;;;;;;;;;;;;;;:73;;;;22157:19;22180:17;:25;22198:6;22180:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;22209:17;:28;22227:9;22209:28;;;;;;;;;;;;;;;;;;;;;;;;;22180:57;22179:147;;22293:33;22301:6;22308:9;22319:6;22293:7;:33::i;:::-;22179:147;;;22284:6;22179:147;22157:169;;22366:37;22391:11;22366:9;:20;22376:9;22366:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;22343:9;:20;22353:9;22343:20;;;;;;;;;;;;;;;:60;;;;22442:9;22425:40;;22434:6;22425:40;;;22453:11;22425:40;;;;;;:::i;:::-;;;;;;;;22487:4;22480:11;;;;;21132:1378;;;;;;:::o;1644:192::-;1730:7;1763:1;1758;:6;;1766:12;1750:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1790:9;1806:1;1802;:5;;;;:::i;:::-;1790:17;;1827:1;1820:8;;;1644:192;;;;;:::o;1311:181::-;1369:7;1389:9;1405:1;1401;:5;;;;:::i;:::-;1389:17;;1430:1;1425;:6;;1417:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1483:1;1476:8;;;1311:181;;;;:::o;1500:136::-;1558:7;1585:43;1589:1;1592;1585:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1578:50;;1500:136;;;;:::o;22518:330::-;22611:4;22648:53;22670:6;22648:53;;;;;;;;;;;;;;;;;:9;:17;22658:6;22648:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;22628:9;:17;22638:6;22628:17;;;;;;;;;;;;;;;:73;;;;22735:32;22760:6;22735:9;:20;22745:9;22735:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22712:9;:20;22722:9;22712:20;;;;;;;;;;;;;;;:55;;;;22800:9;22783:35;;22792:6;22783:35;;;22811:6;22783:35;;;;;;:::i;:::-;;;;;;;;22836:4;22829:11;;22518:330;;;;;:::o;22854:892::-;16376:4;16357:16;;:23;;;;;;;;;;;;;;;;;;22955:1:::1;22929:24;;:27:::0;22926:52;22971:7:::1;22926:52;22990:16;23010:58;23066:1;23010:51;23036:24;;23010:21;23022:8;;23010:7;:11;;:21;;;;:::i;:::-;:25;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;22990:78;;23079:20;23102:21;23114:8;23102:7;:11;;:21;;;;:::i;:::-;23079:44;;23136:30;23153:12;23136:16;:30::i;:::-;23177:18;23198:21;23177:42;;23240:29;23272:61;23308:24;;23272:31;23287:15;;23272:10;:14;;:31;;;;:::i;:::-;:35;;:61;;;;:::i;:::-;23240:93;;23371:1;23347:21;:25;23344:102;;;23387:59;23408:15;;;;;;;;;;;23424:21;23387:20;:59::i;:::-;23344:102;23467:19;23489:21;23467:43;;23535:1;23524:8;:12;:29;;;;;23552:1;23540:11;:13;23524:29;23521:82;;;23568:35;23581:8;23591:11;23568:12;:35::i;:::-;23521:82;23616:15;23634:21;23616:39;;23677:1;23669:7;:9;23666:72;;;23693:45;23714:15;;;;;;;;;;;23730:7;23693:20;:45::i;:::-;23666:72;22915:831;;;;;;16391:1;16422:5:::0;16403:16;;:24;;;;;;;;;;;;;;;;;;22854:892;:::o;25009:613::-;25093:7;25113:17;25133:1;25113:21;;25161:12;:20;25174:6;25161:20;;;;;;;;;;;;;;;;;;;;;;;;;25158:223;;;25210:38;25244:3;25210:29;25221:17;;25210:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;25198:50;;25158:223;;;25278:12;:23;25291:9;25278:23;;;;;;;;;;;;;;;;;;;;;;;;;25275:106;;;25330:39;25365:3;25330:30;25341:18;;25330:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;25318:51;;25275:106;25158:223;25416:1;25404:9;:13;25401:173;;;25461:39;25490:9;25461;:24;25479:4;25461:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;25434:9;:24;25452:4;25434:24;;;;;;;;;;;;;;;:66;;;;25545:4;25520:42;;25529:6;25520:42;;;25552:9;25520:42;;;;;;:::i;:::-;;;;;;;;25401:173;25593:21;25604:9;25593:6;:10;;:21;;;;:::i;:::-;25586:28;;;25009:613;;;;;:::o;1844:250::-;1902:7;1931:1;1926;:6;1922:47;;1956:1;1949:8;;;;1922:47;1981:9;1997:1;1993;:5;;;;:::i;:::-;1981:17;;2026:1;2021;2017;:5;;;;:::i;:::-;:10;2009:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2085:1;2078:8;;;1844:250;;;;;:::o;2102:132::-;2160:7;2187:39;2191:1;2194;2187:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2180:46;;2102:132;;;;:::o;24412:589::-;24538:21;24576:1;24562:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24538:40;;24607:4;24589;24594:1;24589:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24633:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24623:4;24628:1;24623:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24668:62;24685:4;24700:15;;;;;;;;;;;24718:11;24668:8;:62::i;:::-;24769:15;;;;;;;;;;;:66;;;24850:11;24876:1;24920:4;24947;24967:15;24769:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24467:534;24412:589;:::o;24278:126::-;24370:9;:18;;:26;24389:6;24370:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24278:126;;:::o;23754:516::-;23904:62;23921:4;23936:15;;;;;;;;;;;23954:11;23904:8;:62::i;:::-;24009:15;;;;;;;;;;;:31;;;24048:9;24081:4;24101:11;24127:1;24170;24213:8;;;;;;;;;;;24236:15;24009:253;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23754:516;;:::o;2242:278::-;2328:7;2360:1;2356;:5;2363:12;2348:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2387:9;2403:1;2399;:5;;;;:::i;:::-;2387:17;;2511:1;2504:8;;;2242:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:153::-;4221:9;4254:37;4285:5;4254:37;:::i;:::-;4241:50;;4144:153;;;:::o;4303:185::-;4417:64;4475:5;4417:64;:::i;:::-;4412:3;4405:77;4303:185;;:::o;4494:276::-;4614:4;4652:2;4641:9;4637:18;4629:26;;4665:98;4760:1;4749:9;4745:17;4736:6;4665:98;:::i;:::-;4494:276;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:118::-;5488:24;5506:5;5488:24;:::i;:::-;5483:3;5476:37;5401:118;;:::o;5525:222::-;5618:4;5656:2;5645:9;5641:18;5633:26;;5669:71;5737:1;5726:9;5722:17;5713:6;5669:71;:::i;:::-;5525:222;;;;:::o;5753:474::-;5821:6;5829;5878:2;5866:9;5857:7;5853:23;5849:32;5846:119;;;5884:79;;:::i;:::-;5846:119;6004:1;6029:53;6074:7;6065:6;6054:9;6050:22;6029:53;:::i;:::-;6019:63;;5975:117;6131:2;6157:53;6202:7;6193:6;6182:9;6178:22;6157:53;:::i;:::-;6147:63;;6102:118;5753:474;;;;;:::o;6233:86::-;6268:7;6308:4;6301:5;6297:16;6286:27;;6233:86;;;:::o;6325:112::-;6408:22;6424:5;6408:22;:::i;:::-;6403:3;6396:35;6325:112;;:::o;6443:214::-;6532:4;6570:2;6559:9;6555:18;6547:26;;6583:67;6647:1;6636:9;6632:17;6623:6;6583:67;:::i;:::-;6443:214;;;;:::o;6663:329::-;6722:6;6771:2;6759:9;6750:7;6746:23;6742:32;6739:119;;;6777:79;;:::i;:::-;6739:119;6897:1;6922:53;6967:7;6958:6;6947:9;6943:22;6922:53;:::i;:::-;6912:63;;6868:117;6663:329;;;;:::o;6998:::-;7057:6;7106:2;7094:9;7085:7;7081:23;7077:32;7074:119;;;7112:79;;:::i;:::-;7074:119;7232:1;7257:53;7302:7;7293:6;7282:9;7278:22;7257:53;:::i;:::-;7247:63;;7203:117;6998:329;;;;:::o;7333:104::-;7378:7;7407:24;7425:5;7407:24;:::i;:::-;7396:35;;7333:104;;;:::o;7443:142::-;7546:32;7572:5;7546:32;:::i;:::-;7541:3;7534:45;7443:142;;:::o;7591:254::-;7700:4;7738:2;7727:9;7723:18;7715:26;;7751:87;7835:1;7824:9;7820:17;7811:6;7751:87;:::i;:::-;7591:254;;;;:::o;7851:116::-;7921:21;7936:5;7921:21;:::i;:::-;7914:5;7911:32;7901:60;;7957:1;7954;7947:12;7901:60;7851:116;:::o;7973:133::-;8016:5;8054:6;8041:20;8032:29;;8070:30;8094:5;8070:30;:::i;:::-;7973:133;;;;:::o;8112:468::-;8177:6;8185;8234:2;8222:9;8213:7;8209:23;8205:32;8202:119;;;8240:79;;:::i;:::-;8202:119;8360:1;8385:53;8430:7;8421:6;8410:9;8406:22;8385:53;:::i;:::-;8375:63;;8331:117;8487:2;8513:50;8555:7;8546:6;8535:9;8531:22;8513:50;:::i;:::-;8503:60;;8458:115;8112:468;;;;;:::o;8586:474::-;8654:6;8662;8711:2;8699:9;8690:7;8686:23;8682:32;8679:119;;;8717:79;;:::i;:::-;8679:119;8837:1;8862:53;8907:7;8898:6;8887:9;8883:22;8862:53;:::i;:::-;8852:63;;8808:117;8964:2;8990:53;9035:7;9026:6;9015:9;9011:22;8990:53;:::i;:::-;8980:63;;8935:118;8586:474;;;;;:::o;9066:180::-;9114:77;9111:1;9104:88;9211:4;9208:1;9201:15;9235:4;9232:1;9225:15;9252:320;9296:6;9333:1;9327:4;9323:12;9313:22;;9380:1;9374:4;9370:12;9401:18;9391:81;;9457:4;9449:6;9445:17;9435:27;;9391:81;9519:2;9511:6;9508:14;9488:18;9485:38;9482:84;;9538:18;;:::i;:::-;9482:84;9303:269;9252:320;;;:::o;9578:182::-;9718:34;9714:1;9706:6;9702:14;9695:58;9578:182;:::o;9766:366::-;9908:3;9929:67;9993:2;9988:3;9929:67;:::i;:::-;9922:74;;10005:93;10094:3;10005:93;:::i;:::-;10123:2;10118:3;10114:12;10107:19;;9766:366;;;:::o;10138:419::-;10304:4;10342:2;10331:9;10327:18;10319:26;;10391:9;10385:4;10381:20;10377:1;10366:9;10362:17;10355:47;10419:131;10545:4;10419:131;:::i;:::-;10411:139;;10138:419;;;:::o;10563:172::-;10703:24;10699:1;10691:6;10687:14;10680:48;10563:172;:::o;10741:366::-;10883:3;10904:67;10968:2;10963:3;10904:67;:::i;:::-;10897:74;;10980:93;11069:3;10980:93;:::i;:::-;11098:2;11093:3;11089:12;11082:19;;10741:366;;;:::o;11113:419::-;11279:4;11317:2;11306:9;11302:18;11294:26;;11366:9;11360:4;11356:20;11352:1;11341:9;11337:17;11330:47;11394:131;11520:4;11394:131;:::i;:::-;11386:139;;11113:419;;;:::o;11538:170::-;11678:22;11674:1;11666:6;11662:14;11655:46;11538:170;:::o;11714:366::-;11856:3;11877:67;11941:2;11936:3;11877:67;:::i;:::-;11870:74;;11953:93;12042:3;11953:93;:::i;:::-;12071:2;12066:3;12062:12;12055:19;;11714:366;;;:::o;12086:419::-;12252:4;12290:2;12279:9;12275:18;12267:26;;12339:9;12333:4;12329:20;12325:1;12314:9;12310:17;12303:47;12367:131;12493:4;12367:131;:::i;:::-;12359:139;;12086:419;;;:::o;12511:225::-;12651:34;12647:1;12639:6;12635:14;12628:58;12720:8;12715:2;12707:6;12703:15;12696:33;12511:225;:::o;12742:366::-;12884:3;12905:67;12969:2;12964:3;12905:67;:::i;:::-;12898:74;;12981:93;13070:3;12981:93;:::i;:::-;13099:2;13094:3;13090:12;13083:19;;12742:366;;;:::o;13114:419::-;13280:4;13318:2;13307:9;13303:18;13295:26;;13367:9;13361:4;13357:20;13353:1;13342:9;13338:17;13331:47;13395:131;13521:4;13395:131;:::i;:::-;13387:139;;13114:419;;;:::o;13539:223::-;13679:34;13675:1;13667:6;13663:14;13656:58;13748:6;13743:2;13735:6;13731:15;13724:31;13539:223;:::o;13768:366::-;13910:3;13931:67;13995:2;13990:3;13931:67;:::i;:::-;13924:74;;14007:93;14096:3;14007:93;:::i;:::-;14125:2;14120:3;14116:12;14109:19;;13768:366;;;:::o;14140:419::-;14306:4;14344:2;14333:9;14329:18;14321:26;;14393:9;14387:4;14383:20;14379:1;14368:9;14364:17;14357:47;14421:131;14547:4;14421:131;:::i;:::-;14413:139;;14140:419;;;:::o;14565:221::-;14705:34;14701:1;14693:6;14689:14;14682:58;14774:4;14769:2;14761:6;14757:15;14750:29;14565:221;:::o;14792:366::-;14934:3;14955:67;15019:2;15014:3;14955:67;:::i;:::-;14948:74;;15031:93;15120:3;15031:93;:::i;:::-;15149:2;15144:3;15140:12;15133:19;;14792:366;;;:::o;15164:419::-;15330:4;15368:2;15357:9;15353:18;15345:26;;15417:9;15411:4;15407:20;15403:1;15392:9;15388:17;15381:47;15445:131;15571:4;15445:131;:::i;:::-;15437:139;;15164:419;;;:::o;15589:224::-;15729:34;15725:1;15717:6;15713:14;15706:58;15798:7;15793:2;15785:6;15781:15;15774:32;15589:224;:::o;15819:366::-;15961:3;15982:67;16046:2;16041:3;15982:67;:::i;:::-;15975:74;;16058:93;16147:3;16058:93;:::i;:::-;16176:2;16171:3;16167:12;16160:19;;15819:366;;;:::o;16191:419::-;16357:4;16395:2;16384:9;16380:18;16372:26;;16444:9;16438:4;16434:20;16430:1;16419:9;16415:17;16408:47;16472:131;16598:4;16472:131;:::i;:::-;16464:139;;16191:419;;;:::o;16616:222::-;16756:34;16752:1;16744:6;16740:14;16733:58;16825:5;16820:2;16812:6;16808:15;16801:30;16616:222;:::o;16844:366::-;16986:3;17007:67;17071:2;17066:3;17007:67;:::i;:::-;17000:74;;17083:93;17172:3;17083:93;:::i;:::-;17201:2;17196:3;17192:12;17185:19;;16844:366;;;:::o;17216:419::-;17382:4;17420:2;17409:9;17405:18;17397:26;;17469:9;17463:4;17459:20;17455:1;17444:9;17440:17;17433:47;17497:131;17623:4;17497:131;:::i;:::-;17489:139;;17216:419;;;:::o;17641:180::-;17689:77;17686:1;17679:88;17786:4;17783:1;17776:15;17810:4;17807:1;17800:15;17827:194;17867:4;17887:20;17905:1;17887:20;:::i;:::-;17882:25;;17921:20;17939:1;17921:20;:::i;:::-;17916:25;;17965:1;17962;17958:9;17950:17;;17989:1;17983:4;17980:11;17977:37;;;17994:18;;:::i;:::-;17977:37;17827:194;;;;:::o;18027:191::-;18067:3;18086:20;18104:1;18086:20;:::i;:::-;18081:25;;18120:20;18138:1;18120:20;:::i;:::-;18115:25;;18163:1;18160;18156:9;18149:16;;18184:3;18181:1;18178:10;18175:36;;;18191:18;;:::i;:::-;18175:36;18027:191;;;;:::o;18224:177::-;18364:29;18360:1;18352:6;18348:14;18341:53;18224:177;:::o;18407:366::-;18549:3;18570:67;18634:2;18629:3;18570:67;:::i;:::-;18563:74;;18646:93;18735:3;18646:93;:::i;:::-;18764:2;18759:3;18755:12;18748:19;;18407:366;;;:::o;18779:419::-;18945:4;18983:2;18972:9;18968:18;18960:26;;19032:9;19026:4;19022:20;19018:1;19007:9;19003:17;18996:47;19060:131;19186:4;19060:131;:::i;:::-;19052:139;;18779:419;;;:::o;19204:410::-;19244:7;19267:20;19285:1;19267:20;:::i;:::-;19262:25;;19301:20;19319:1;19301:20;:::i;:::-;19296:25;;19356:1;19353;19349:9;19378:30;19396:11;19378:30;:::i;:::-;19367:41;;19557:1;19548:7;19544:15;19541:1;19538:22;19518:1;19511:9;19491:83;19468:139;;19587:18;;:::i;:::-;19468:139;19252:362;19204:410;;;;:::o;19620:180::-;19668:77;19665:1;19658:88;19765:4;19762:1;19755:15;19789:4;19786:1;19779:15;19806:185;19846:1;19863:20;19881:1;19863:20;:::i;:::-;19858:25;;19897:20;19915:1;19897:20;:::i;:::-;19892:25;;19936:1;19926:35;;19941:18;;:::i;:::-;19926:35;19983:1;19980;19976:9;19971:14;;19806:185;;;;:::o;19997:220::-;20137:34;20133:1;20125:6;20121:14;20114:58;20206:3;20201:2;20193:6;20189:15;20182:28;19997:220;:::o;20223:366::-;20365:3;20386:67;20450:2;20445:3;20386:67;:::i;:::-;20379:74;;20462:93;20551:3;20462:93;:::i;:::-;20580:2;20575:3;20571:12;20564:19;;20223:366;;;:::o;20595:419::-;20761:4;20799:2;20788:9;20784:18;20776:26;;20848:9;20842:4;20838:20;20834:1;20823:9;20819:17;20812:47;20876:131;21002:4;20876:131;:::i;:::-;20868:139;;20595:419;;;:::o;21020:180::-;21068:77;21065:1;21058:88;21165:4;21162:1;21155:15;21189:4;21186:1;21179:15;21206:180;21254:77;21251:1;21244:88;21351:4;21348:1;21341:15;21375:4;21372:1;21365:15;21392:143;21449:5;21480:6;21474:13;21465:22;;21496:33;21523:5;21496:33;:::i;:::-;21392:143;;;;:::o;21541:351::-;21611:6;21660:2;21648:9;21639:7;21635:23;21631:32;21628:119;;;21666:79;;:::i;:::-;21628:119;21786:1;21811:64;21867:7;21858:6;21847:9;21843:22;21811:64;:::i;:::-;21801:74;;21757:128;21541:351;;;;:::o;21898:85::-;21943:7;21972:5;21961:16;;21898:85;;;:::o;21989:158::-;22047:9;22080:61;22098:42;22107:32;22133:5;22107:32;:::i;:::-;22098:42;:::i;:::-;22080:61;:::i;:::-;22067:74;;21989:158;;;:::o;22153:147::-;22248:45;22287:5;22248:45;:::i;:::-;22243:3;22236:58;22153:147;;:::o;22306:114::-;22373:6;22407:5;22401:12;22391:22;;22306:114;;;:::o;22426:184::-;22525:11;22559:6;22554:3;22547:19;22599:4;22594:3;22590:14;22575:29;;22426:184;;;;:::o;22616:132::-;22683:4;22706:3;22698:11;;22736:4;22731:3;22727:14;22719:22;;22616:132;;;:::o;22754:108::-;22831:24;22849:5;22831:24;:::i;:::-;22826:3;22819:37;22754:108;;:::o;22868:179::-;22937:10;22958:46;23000:3;22992:6;22958:46;:::i;:::-;23036:4;23031:3;23027:14;23013:28;;22868:179;;;;:::o;23053:113::-;23123:4;23155;23150:3;23146:14;23138:22;;23053:113;;;:::o;23202:732::-;23321:3;23350:54;23398:5;23350:54;:::i;:::-;23420:86;23499:6;23494:3;23420:86;:::i;:::-;23413:93;;23530:56;23580:5;23530:56;:::i;:::-;23609:7;23640:1;23625:284;23650:6;23647:1;23644:13;23625:284;;;23726:6;23720:13;23753:63;23812:3;23797:13;23753:63;:::i;:::-;23746:70;;23839:60;23892:6;23839:60;:::i;:::-;23829:70;;23685:224;23672:1;23669;23665:9;23660:14;;23625:284;;;23629:14;23925:3;23918:10;;23326:608;;;23202:732;;;;:::o;23940:831::-;24203:4;24241:3;24230:9;24226:19;24218:27;;24255:71;24323:1;24312:9;24308:17;24299:6;24255:71;:::i;:::-;24336:80;24412:2;24401:9;24397:18;24388:6;24336:80;:::i;:::-;24463:9;24457:4;24453:20;24448:2;24437:9;24433:18;24426:48;24491:108;24594:4;24585:6;24491:108;:::i;:::-;24483:116;;24609:72;24677:2;24666:9;24662:18;24653:6;24609:72;:::i;:::-;24691:73;24759:3;24748:9;24744:19;24735:6;24691:73;:::i;:::-;23940:831;;;;;;;;:::o;24777:134::-;24835:9;24868:37;24899:5;24868:37;:::i;:::-;24855:50;;24777:134;;;:::o;24917:147::-;25012:45;25051:5;25012:45;:::i;:::-;25007:3;25000:58;24917:147;;:::o;25070:823::-;25327:4;25365:3;25354:9;25350:19;25342:27;;25379:71;25447:1;25436:9;25432:17;25423:6;25379:71;:::i;:::-;25460:72;25528:2;25517:9;25513:18;25504:6;25460:72;:::i;:::-;25542:80;25618:2;25607:9;25603:18;25594:6;25542:80;:::i;:::-;25632;25708:2;25697:9;25693:18;25684:6;25632:80;:::i;:::-;25722:81;25798:3;25787:9;25783:19;25774:6;25722:81;:::i;:::-;25813:73;25881:3;25870:9;25866:19;25857:6;25813:73;:::i;:::-;25070:823;;;;;;;;;:::o;25899:143::-;25956:5;25987:6;25981:13;25972:22;;26003:33;26030:5;26003:33;:::i;:::-;25899:143;;;;:::o;26048:663::-;26136:6;26144;26152;26201:2;26189:9;26180:7;26176:23;26172:32;26169:119;;;26207:79;;:::i;:::-;26169:119;26327:1;26352:64;26408:7;26399:6;26388:9;26384:22;26352:64;:::i;:::-;26342:74;;26298:128;26465:2;26491:64;26547:7;26538:6;26527:9;26523:22;26491:64;:::i;:::-;26481:74;;26436:129;26604:2;26630:64;26686:7;26677:6;26666:9;26662:22;26630:64;:::i;:::-;26620:74;;26575:129;26048:663;;;;;:::o

Swarm Source

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