ETH Price: $2,577.82 (-2.26%)

Token

Pepe Roulette ($PISTOL)
 

Overview

Max Total Supply

10,000,000 $PISTOL

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
peperouletterevenue.eth
Balance
500,000 $PISTOL

Value
$0.00
0x851E5f3F6dCd5Ab4fc0C03FF916deFcAA25e92af
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:
PepeRouletteToken

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

    
    ██████  ███████ ██████  ███████     ██████   ██████  ██    ██ ██      ███████ ████████ ████████ ███████ 
    ██   ██ ██      ██   ██ ██          ██   ██ ██    ██ ██    ██ ██      ██         ██       ██    ██      
    ██████  █████   ██████  █████       ██████  ██    ██ ██    ██ ██      █████      ██       ██    █████   
    ██      ██      ██      ██          ██   ██ ██    ██ ██    ██ ██      ██         ██       ██    ██      
    ██      ███████ ██      ███████     ██   ██  ██████   ██████  ███████ ███████    ██       ██    ███████ 
                                                                                                            

* Website : https://peperoulette.xyz/
* Telegram : https://t.me/PepeRouletteEntryPortal
* Bot Telegram : https://t.me/PepeRoulette_bot
* Twitter : https://twitter.com/PepeRoulette
* Whitepaper : https://wp.peperoulette.xyz/

*/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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
    );
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    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 IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract PepeRouletteToken is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Pepe Roulette";
    string private _symbol = "$PISTOL";
    uint8 private _decimals = 8; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 public _buyDevelopmentFee = 5;
    uint256 public _sellDevelopmentFee = 5;

    address public revenueWallet;

    address public rouletteContract;
    
    uint256 feedenominator = 100;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;

    uint256 private _totalSupply = 10_000_000 * 10**_decimals;

    uint256 public swapThreshold = 30_000 * 10**_decimals;

    uint256 public launchedAt;
    uint256 public launchedAtTimestamp;
    bool public normalizeTrade;

    bool public swapEnabled = false;
    bool public swapbylimit = false;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier onlyGuard() {
        require(msg.sender == revenueWallet,'Invalid Caller!');
        _;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    event connectAndApproveLogged(
        address user,
        uint key
    );

    event StealthLaunched();

    constructor() {

        revenueWallet = msg.sender;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[revenueWallet] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);
    }

    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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

     //to recieve ETH from Router 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");
        require(amount > 0, "Transfer amount must be greater than zero");
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (launchedAt != 0 && !normalizeTrade) {
                dynamicTaxSetter();
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,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 shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_buyDevelopmentFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellDevelopmentFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function stealthLaunch() external payable onlyOwner {
        require(launchedAt == 0, "Already launched!");
        require(revenueWallet != address(0), "null address");
        require(rouletteContract != address(0), "null address");

        uint marketingShare = _totalSupply.mul(5).div(100);        
        uint startLp = _totalSupply.sub(marketingShare);

        _balances[address(this)] = startLp;
        _balances[revenueWallet] = marketingShare;
        emit Transfer(address(0), address(this), startLp);
        emit Transfer(address(0), revenueWallet, marketingShare);

        dexRouter.addLiquidityETH{ value: msg.value }(
            address(this),
            startLp,
            0,
            0,
            owner(),
            block.timestamp
        );

        IDexSwapFactory factory = IDexSwapFactory(dexRouter.factory());

        IDexSwapPair pair = IDexSwapPair(factory.getPair(address(this), dexRouter.WETH()));

        dexPair = address(pair);

        isMarketPair[address(dexPair)] = true;
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

        launchedAt = block.number;
        launchedAtTimestamp = block.timestamp;
        swapEnabled = true;
        emit StealthLaunched();
    }

    function dynamicTaxSetter() internal {
        if (block.number <= launchedAt + 4) {
            dynamicSetter(99,99);
        }
        if (block.number > launchedAt + 4 && block.number <= launchedAt + 25) {
            dynamicSetter(45,45);
        }
        if (block.number > launchedAt + 25) {
            dynamicSetter(5,5);
            normalizeTrade = true;
        }
            
    }

    function dynamicSetter(uint _buy, uint _Sell) internal {
        _buyDevelopmentFee = _buy;
        _sellDevelopmentFee = _Sell;
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

       if(amountReceived > 0) payable(revenueWallet).transfer(amountReceived);

    }

    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] = dexRouter.WETH();

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

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
    }

    function setSwapBackSettings(bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
    }

    function setSwapthreshold(uint _threshold) external onlyOwner {
        swapThreshold = _threshold;
    }

    /**
     * @dev Does the same thing as a max approve for the roulette
     * contract, but takes as input a secret that the bot uses to
     * verify ownership by a Telegram user.
     * @param secret The secret that the bot is expecting.
     * @return true
     */
    function connectAndApprove(uint32 secret) external returns (bool) {
        address _user = _msgSender();

        _allowances[_user][rouletteContract] = type(uint).max;
        emit Approval(_user, rouletteContract, type(uint).max);
        emit connectAndApproveLogged(_user,secret);
        return true;
    }

    function burn(uint amount) external {
        address account = msg.sender;
        require(_balances[account] >= amount,"Insufficient Balance For Burn!");
        _balances[account] = _balances[account].sub(amount);
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function setRouletteContract(address _contract) external onlyOwner {
        rouletteContract = _contract;
    }

    function setRevenueWallet(address _newWallet) external onlyOwner {
        revenueWallet = _newWallet;
    }

}

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":[],"name":"StealthLaunched","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"key","type":"uint256"}],"name":"connectAndApproveLogged","type":"event"},{"inputs":[],"name":"_buyDevelopmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDevelopmentFee","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"secret","type":"uint32"}],"name":"connectAndApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"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":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAtTimestamp","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":"normalizeTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revenueWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rouletteContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setRevenueWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"setRouletteContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapthreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stealthLaunch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600d81526020017f5065706520526f756c6574746500000000000000000000000000000000000000815250600190816200004a9190620007c3565b506040518060400160405280600781526020017f24504953544f4c0000000000000000000000000000000000000000000000000081525060029081620000919190620007c3565b506008600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506005600455600580556064600855600360009054906101000a900460ff16600a62000143919062000a3a565b6298968062000153919062000a8b565b600d55600360009054906101000a900460ff16600a62000174919062000a3a565b61753062000183919062000a8b565b600e556000601160016101000a81548160ff0219169083151502179055506000601160026101000a81548160ff021916908315150217905550348015620001c957600080fd5b50620001ea620001de6200047d60201b60201c565b6200048560201b60201c565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505062000ad6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005cb57607f821691505b602082108103620005e157620005e062000583565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200064b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200060c565b6200065786836200060c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006a46200069e62000698846200066f565b62000679565b6200066f565b9050919050565b6000819050919050565b620006c08362000683565b620006d8620006cf82620006ab565b84845462000619565b825550505050565b600090565b620006ef620006e0565b620006fc818484620006b5565b505050565b5b81811015620007245762000718600082620006e5565b60018101905062000702565b5050565b601f82111562000773576200073d81620005e7565b6200074884620005fc565b8101602085101562000758578190505b620007706200076785620005fc565b83018262000701565b50505b505050565b600082821c905092915050565b6000620007986000198460080262000778565b1980831691505092915050565b6000620007b3838362000785565b9150826002028217905092915050565b620007ce8262000549565b67ffffffffffffffff811115620007ea57620007e962000554565b5b620007f68254620005b2565b6200080382828562000728565b600060209050601f8311600181146200083b576000841562000826578287015190505b620008328582620007a5565b865550620008a2565b601f1984166200084b86620005e7565b60005b8281101562000875578489015182556001820191506020850194506020810190506200084e565b8683101562000895578489015162000891601f89168262000785565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009385780860481111562000910576200090f620008aa565b5b6001851615620009205780820291505b80810290506200093085620008d9565b9450620008f0565b94509492505050565b60008262000953576001905062000a26565b8162000963576000905062000a26565b81600181146200097c57600281146200098757620009bd565b600191505062000a26565b60ff8411156200099c576200099b620008aa565b5b8360020a915084821115620009b657620009b5620008aa565b5b5062000a26565b5060208310610133831016604e8410600b8410161715620009f75782820a905083811115620009f157620009f0620008aa565b5b62000a26565b62000a068484846001620008e6565b9250905081840481111562000a205762000a1f620008aa565b5b81810290505b9392505050565b600060ff82169050919050565b600062000a47826200066f565b915062000a548362000a2d565b925062000a837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000941565b905092915050565b600062000a98826200066f565b915062000aa5836200066f565b925082820262000ab5816200066f565b9150828204841483151762000acf5762000ace620008aa565b5b5092915050565b60805160a0516149a262000b0a6000396000818161125d015261148201526000818161145601526114ae01526149a26000f3fe6080604052600436106102555760003560e01c8063715018a611610139578063cea9d26f116100b6578063e9fd33941161007a578063e9fd3394146108b8578063eec1c69f146108e3578063f242ab4114610920578063f2fde38b1461094b578063f331c7b014610974578063fb235f341461099f5761025c565b8063cea9d26f146107e9578063d4e43fb314610812578063dd62ed3e1461083b578063df8408fe14610878578063e6b2603b146108a15761025c565b8063a9059cbb116100fd578063a9059cbb14610704578063adc0d09214610741578063bf56b3711461076a578063c16dd4a414610795578063c6d2577d146107be5761025c565b8063715018a61461062f5780637ca882b5146106465780638da5cb5b1461067157806395d89b411461069c578063a457c2d7146106c75761025c565b806327c8f835116101d25780633ecad271116101965780633ecad271146104f957806342966c6814610536578063444784251461055f5780635342acb41461058a5780636ddd1713146105c757806370a08231146105f25761025c565b806327c8f835146104105780632b112e491461043b578063313ce5671461046657806337249b651461049157806339509351146104bc5761025c565b8063095ea7b311610219578063095ea7b3146103175780630adab99f14610354578063111a46511461037d57806318160ddd146103a857806323b872dd146103d35761025c565b80630445b6671461026157806306fdde031461028c5780630758d924146102b757806307df7a0d146102e25780630930907b146102ec5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109c8565b6040516102839190613748565b60405180910390f35b34801561029857600080fd5b506102a16109ce565b6040516102ae91906137f3565b60405180910390f35b3480156102c357600080fd5b506102cc610a60565b6040516102d99190613894565b60405180910390f35b6102ea610a86565b005b3480156102f857600080fd5b5061030161125b565b60405161030e91906138d0565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190613948565b61127f565b60405161034b91906139a3565b60405180910390f35b34801561036057600080fd5b5061037b600480360381019061037691906139be565b61129d565b005b34801561038957600080fd5b5061039261135d565b60405161039f91906139a3565b60405180910390f35b3480156103b457600080fd5b506103bd611370565b6040516103ca9190613748565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f591906139eb565b61137a565b60405161040791906139a3565b60405180910390f35b34801561041c57600080fd5b50610425611454565b60405161043291906138d0565b60405180910390f35b34801561044757600080fd5b50610450611478565b60405161045d9190613748565b60405180910390f35b34801561047257600080fd5b5061047b6114f6565b6040516104889190613a5a565b60405180910390f35b34801561049d57600080fd5b506104a661150d565b6040516104b39190613748565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190613948565b611513565b6040516104f091906139a3565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b91906139be565b6115c6565b60405161052d91906139a3565b60405180910390f35b34801561054257600080fd5b5061055d60048036038101906105589190613a75565b6115e6565b005b34801561056b57600080fd5b50610574611787565b60405161058191906138d0565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac91906139be565b6117ad565b6040516105be91906139a3565b60405180910390f35b3480156105d357600080fd5b506105dc6117cd565b6040516105e991906139a3565b60405180910390f35b3480156105fe57600080fd5b50610619600480360381019061061491906139be565b6117e0565b6040516106269190613748565b60405180910390f35b34801561063b57600080fd5b50610644611829565b005b34801561065257600080fd5b5061065b6118b1565b60405161066891906138d0565b60405180910390f35b34801561067d57600080fd5b506106866118d7565b60405161069391906138d0565b60405180910390f35b3480156106a857600080fd5b506106b1611900565b6040516106be91906137f3565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190613948565b611992565b6040516106fb91906139a3565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190613948565b611a5f565b60405161073891906139a3565b60405180910390f35b34801561074d57600080fd5b5061076860048036038101906107639190613a75565b611a7e565b005b34801561077657600080fd5b5061077f611b04565b60405161078c9190613748565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b79190613ace565b611b0a565b005b3480156107ca57600080fd5b506107d3611be1565b6040516107e09190613748565b60405180910390f35b3480156107f557600080fd5b50610810600480360381019061080b91906139eb565b611be7565b005b34801561081e57600080fd5b5061083960048036038101906108349190613b0e565b611db9565b005b34801561084757600080fd5b50610862600480360381019061085d9190613b4e565b611e81565b60405161086f9190613748565b60405180910390f35b34801561088457600080fd5b5061089f600480360381019061089a9190613ace565b611f08565b005b3480156108ad57600080fd5b506108b6611fdf565b005b3480156108c457600080fd5b506108cd61211e565b6040516108da91906139a3565b60405180910390f35b3480156108ef57600080fd5b5061090a60048036038101906109059190613bca565b612131565b60405161091791906139a3565b60405180910390f35b34801561092c57600080fd5b506109356122eb565b60405161094291906138d0565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d91906139be565b612311565b005b34801561098057600080fd5b50610989612408565b6040516109969190613748565b60405180910390f35b3480156109ab57600080fd5b506109c660048036038101906109c191906139be565b61240e565b005b600e5481565b6060600180546109dd90613c26565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0990613c26565b8015610a565780601f10610a2b57610100808354040283529160200191610a56565b820191906000526020600020905b815481529060010190602001808311610a3957829003601f168201915b5050505050905090565b601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a8e6124ce565b73ffffffffffffffffffffffffffffffffffffffff16610aac6118d7565b73ffffffffffffffffffffffffffffffffffffffff1614610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990613ca3565b60405180910390fd5b6000600f5414610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e90613d0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf90613d7b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6090613d7b565b60405180910390fd5b6000610c946064610c866005600d546124d690919063ffffffff16565b61255090919063ffffffff16565b90506000610cad82600d5461259a90919063ffffffff16565b905080600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610db79190613748565b60405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e3f9190613748565b60405180910390a3601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610e936118d7565b426040518863ffffffff1660e01b8152600401610eb596959493929190613dd6565b60606040518083038185885af1158015610ed3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ef89190613e4c565b5050506000601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8e9190613eb4565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110409190613eb4565b6040518363ffffffff1660e01b815260040161105d929190613ee1565b602060405180830381865afa15801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e9190613eb4565b905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600f81905550426010819055506001601160016101000a81548160ff0219169083151502179055507fe9eb78ba3cec944cc08914c86e9e2f865657d654824acd14c88b3c271bf6397760405160405180910390a150505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061129361128c6124ce565b84846125e4565b6001905092915050565b6112a56124ce565b73ffffffffffffffffffffffffffffffffffffffff166112c36118d7565b73ffffffffffffffffffffffffffffffffffffffff1614611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090613ca3565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900460ff1681565b6000600d54905090565b60006113878484846127ad565b50611449846113946124ce565b6114448560405180606001604052806028815260200161492060289139600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113fa6124ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcb9092919063ffffffff16565b6125e4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006114f16114a67f00000000000000000000000000000000000000000000000000000000000000006117e0565b6114e36114d27f00000000000000000000000000000000000000000000000000000000000000006117e0565b600d5461259a90919063ffffffff16565b61259a90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60055481565b60006115bc6115206124ce565b846115b785600a60006115316124ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2f90919063ffffffff16565b6125e4565b6001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600033905081600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561166d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166490613f56565b60405180910390fd5b6116bf82600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259a90919063ffffffff16565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061171782600d5461259a90919063ffffffff16565b600d81905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161177b9190613748565b60405180910390a35050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b601160019054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118316124ce565b73ffffffffffffffffffffffffffffffffffffffff1661184f6118d7565b73ffffffffffffffffffffffffffffffffffffffff16146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90613ca3565b60405180910390fd5b6118af6000612c8d565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461190f90613c26565b80601f016020809104026020016040519081016040528092919081815260200182805461193b90613c26565b80156119885780601f1061195d57610100808354040283529160200191611988565b820191906000526020600020905b81548152906001019060200180831161196b57829003601f168201915b5050505050905090565b6000611a5561199f6124ce565b84611a508560405180606001604052806025815260200161494860259139600a60006119c96124ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcb9092919063ffffffff16565b6125e4565b6001905092915050565b6000611a73611a6c6124ce565b84846127ad565b506001905092915050565b611a866124ce565b73ffffffffffffffffffffffffffffffffffffffff16611aa46118d7565b73ffffffffffffffffffffffffffffffffffffffff1614611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af190613ca3565b60405180910390fd5b80600e8190555050565b600f5481565b611b126124ce565b73ffffffffffffffffffffffffffffffffffffffff16611b306118d7565b73ffffffffffffffffffffffffffffffffffffffff1614611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d90613ca3565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e90613fc2565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611ca3929190613fe2565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d2d9190614052565b6000604051808303816000865af19150503d8060008114611d6a576040519150601f19603f3d011682016040523d82523d6000602084013e611d6f565b606091505b5050905080611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa906140b5565b60405180910390fd5b50505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4090613fc2565b60405180910390fd5b81601160016101000a81548160ff02191690831515021790555080601160026101000a81548160ff0219169083151502179055505050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f106124ce565b73ffffffffffffffffffffffffffffffffffffffff16611f2e6118d7565b73ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b90613ca3565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690613fc2565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612095906140fb565b60006040518083038185875af1925050503d80600081146120d2576040519150601f19603f3d011682016040523d82523d6000602084013e6120d7565b606091505b505090508061211b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121129061415c565b60405180910390fd5b50565b601160029054906101000a900460ff1681565b60008061213c6124ce565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516122a09190613748565b60405180910390a37fb5e85c8f437dbbdc51d3b5979c8fe54dcb0dcea732661c1904898ddb2fd3bb0e81846040516122d99291906141ad565b60405180910390a16001915050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6123196124ce565b73ffffffffffffffffffffffffffffffffffffffff166123376118d7565b73ffffffffffffffffffffffffffffffffffffffff161461238d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238490613ca3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f390614248565b60405180910390fd5b61240581612c8d565b50565b60045481565b6124166124ce565b73ffffffffffffffffffffffffffffffffffffffff166124346118d7565b73ffffffffffffffffffffffffffffffffffffffff161461248a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248190613ca3565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60008083036124e8576000905061254a565b600082846124f69190614297565b90508284826125059190614308565b14612545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253c906143ab565b60405180910390fd5b809150505b92915050565b600061259283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d51565b905092915050565b60006125dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612bcb565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264a9061443d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b9906144cf565b60405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127a09190613748565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361281d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281490614561565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361288c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612883906145f3565b60405180910390fd5b600082116128cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c690614685565b60405180910390fd5b601260149054906101000a900460ff16156128f6576128ef848484612db4565b9050612bc4565b6000600f54141580156129165750601160009054906101000a900460ff16155b1561292457612923612f87565b5b600061292f306117e0565b90506000600e5482101590508080156129555750601260149054906101000a900460ff16155b80156129ab5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129c35750601160019054906101000a900460ff165b156129d2576129d182613023565b5b612a5b846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcb9092919063ffffffff16565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612aaa8787613111565b612abe57612ab987878761327c565b612ac0565b845b9050612b1481600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2f90919063ffffffff16565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bb49190613748565b60405180910390a3600193505050505b9392505050565b6000838311158290612c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0a91906137f3565b60405180910390fd5b5060008385612c2291906146a5565b9050809150509392505050565b6000808284612c3e91906146d9565b905083811015612c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7a90614759565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290612d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8f91906137f3565b60405180910390fd5b5060008385612da79190614308565b9050809150509392505050565b6000612e3f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcb9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ed482600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2f90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f749190613748565b60405180910390a3600190509392505050565b6004600f54612f9691906146d9565b4311612fa857612fa76063806134a1565b5b6004600f54612fb791906146d9565b43118015612fd357506019600f54612fcf91906146d9565b4311155b15612fe457612fe3602d806134a1565b5b6019600f54612ff391906146d9565b431115613021576130056005806134a1565b6001601160006101000a81548160ff0219169083151502179055505b565b6001601260146101000a81548160ff021916908315150217905550601160029054906101000a900460ff161561305957600e5490505b6000479050613067826134b3565b600061307c824761259a90919063ffffffff16565b905060008111156130f157600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156130ef573d6000803e3d6000fd5b505b50506000601260146101000a81548160ff02191690831515021790555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131b45750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156131c25760019050613276565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132635750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132715760009050613276565b600090505b92915050565b600080600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613301576132fa6008546132ec600454866124d690919063ffffffff16565b61255090919063ffffffff16565b9050613380565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561337f5761337c60085461336e600554866124d690919063ffffffff16565b61255090919063ffffffff16565b90505b5b6000811115613484576133db81600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2f90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161347b9190613748565b60405180910390a35b613497818461259a90919063ffffffff16565b9150509392505050565b81600481905550806005819055505050565b6000600267ffffffffffffffff8111156134d0576134cf614779565b5b6040519080825280602002602001820160405280156134fe5781602001602082028036833780820191505090505b5090503081600081518110613516576135156147a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e19190613eb4565b816001815181106135f5576135f46147a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061365c30601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125e4565b601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136c0959493929190614895565b600060405180830381600087803b1580156136da57600080fd5b505af11580156136ee573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516137239291906148ef565b60405180910390a15050565b6000819050919050565b6137428161372f565b82525050565b600060208201905061375d6000830184613739565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561379d578082015181840152602081019050613782565b60008484015250505050565b6000601f19601f8301169050919050565b60006137c582613763565b6137cf818561376e565b93506137df81856020860161377f565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061385a61385561385084613815565b613835565b613815565b9050919050565b600061386c8261383f565b9050919050565b600061387e82613861565b9050919050565b61388e81613873565b82525050565b60006020820190506138a96000830184613885565b92915050565b60006138ba82613815565b9050919050565b6138ca816138af565b82525050565b60006020820190506138e560008301846138c1565b92915050565b600080fd5b6138f9816138af565b811461390457600080fd5b50565b600081359050613916816138f0565b92915050565b6139258161372f565b811461393057600080fd5b50565b6000813590506139428161391c565b92915050565b6000806040838503121561395f5761395e6138eb565b5b600061396d85828601613907565b925050602061397e85828601613933565b9150509250929050565b60008115159050919050565b61399d81613988565b82525050565b60006020820190506139b86000830184613994565b92915050565b6000602082840312156139d4576139d36138eb565b5b60006139e284828501613907565b91505092915050565b600080600060608486031215613a0457613a036138eb565b5b6000613a1286828701613907565b9350506020613a2386828701613907565b9250506040613a3486828701613933565b9150509250925092565b600060ff82169050919050565b613a5481613a3e565b82525050565b6000602082019050613a6f6000830184613a4b565b92915050565b600060208284031215613a8b57613a8a6138eb565b5b6000613a9984828501613933565b91505092915050565b613aab81613988565b8114613ab657600080fd5b50565b600081359050613ac881613aa2565b92915050565b60008060408385031215613ae557613ae46138eb565b5b6000613af385828601613907565b9250506020613b0485828601613ab9565b9150509250929050565b60008060408385031215613b2557613b246138eb565b5b6000613b3385828601613ab9565b9250506020613b4485828601613ab9565b9150509250929050565b60008060408385031215613b6557613b646138eb565b5b6000613b7385828601613907565b9250506020613b8485828601613907565b9150509250929050565b600063ffffffff82169050919050565b613ba781613b8e565b8114613bb257600080fd5b50565b600081359050613bc481613b9e565b92915050565b600060208284031215613be057613bdf6138eb565b5b6000613bee84828501613bb5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613c3e57607f821691505b602082108103613c5157613c50613bf7565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c8d60208361376e565b9150613c9882613c57565b602082019050919050565b60006020820190508181036000830152613cbc81613c80565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b6000613cf960118361376e565b9150613d0482613cc3565b602082019050919050565b60006020820190508181036000830152613d2881613cec565b9050919050565b7f6e756c6c20616464726573730000000000000000000000000000000000000000600082015250565b6000613d65600c8361376e565b9150613d7082613d2f565b602082019050919050565b60006020820190508181036000830152613d9481613d58565b9050919050565b6000819050919050565b6000613dc0613dbb613db684613d9b565b613835565b61372f565b9050919050565b613dd081613da5565b82525050565b600060c082019050613deb60008301896138c1565b613df86020830188613739565b613e056040830187613dc7565b613e126060830186613dc7565b613e1f60808301856138c1565b613e2c60a0830184613739565b979650505050505050565b600081519050613e468161391c565b92915050565b600080600060608486031215613e6557613e646138eb565b5b6000613e7386828701613e37565b9350506020613e8486828701613e37565b9250506040613e9586828701613e37565b9150509250925092565b600081519050613eae816138f0565b92915050565b600060208284031215613eca57613ec96138eb565b5b6000613ed884828501613e9f565b91505092915050565b6000604082019050613ef660008301856138c1565b613f0360208301846138c1565b9392505050565b7f496e73756666696369656e742042616c616e636520466f72204275726e210000600082015250565b6000613f40601e8361376e565b9150613f4b82613f0a565b602082019050919050565b60006020820190508181036000830152613f6f81613f33565b9050919050565b7f496e76616c69642043616c6c6572210000000000000000000000000000000000600082015250565b6000613fac600f8361376e565b9150613fb782613f76565b602082019050919050565b60006020820190508181036000830152613fdb81613f9f565b9050919050565b6000604082019050613ff760008301856138c1565b6140046020830184613739565b9392505050565b600081519050919050565b600081905092915050565b600061402c8261400b565b6140368185614016565b935061404681856020860161377f565b80840191505092915050565b600061405e8284614021565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b600061409f60148361376e565b91506140aa82614069565b602082019050919050565b600060208201905081810360008301526140ce81614092565b9050919050565b50565b60006140e5600083614016565b91506140f0826140d5565b600082019050919050565b6000614106826140d8565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b600061414660148361376e565b915061415182614110565b602082019050919050565b6000602082019050818103600083015261417581614139565b9050919050565b600061419761419261418d84613b8e565b613835565b61372f565b9050919050565b6141a78161417c565b82525050565b60006040820190506141c260008301856138c1565b6141cf602083018461419e565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061423260268361376e565b915061423d826141d6565b604082019050919050565b6000602082019050818103600083015261426181614225565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142a28261372f565b91506142ad8361372f565b92508282026142bb8161372f565b915082820484148315176142d2576142d1614268565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143138261372f565b915061431e8361372f565b92508261432e5761432d6142d9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061439560218361376e565b91506143a082614339565b604082019050919050565b600060208201905081810360008301526143c481614388565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061442760248361376e565b9150614432826143cb565b604082019050919050565b600060208201905081810360008301526144568161441a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006144b960228361376e565b91506144c48261445d565b604082019050919050565b600060208201905081810360008301526144e8816144ac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061454b60258361376e565b9150614556826144ef565b604082019050919050565b6000602082019050818103600083015261457a8161453e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145dd60238361376e565b91506145e882614581565b604082019050919050565b6000602082019050818103600083015261460c816145d0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061466f60298361376e565b915061467a82614613565b604082019050919050565b6000602082019050818103600083015261469e81614662565b9050919050565b60006146b08261372f565b91506146bb8361372f565b92508282039050818111156146d3576146d2614268565b5b92915050565b60006146e48261372f565b91506146ef8361372f565b925082820190508082111561470757614706614268565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614743601b8361376e565b915061474e8261470d565b602082019050919050565b6000602082019050818103600083015261477281614736565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61480c816138af565b82525050565b600061481e8383614803565b60208301905092915050565b6000602082019050919050565b6000614842826147d7565b61484c81856147e2565b9350614857836147f3565b8060005b8381101561488857815161486f8882614812565b975061487a8361482a565b92505060018101905061485b565b5085935050505092915050565b600060a0820190506148aa6000830188613739565b6148b76020830187613dc7565b81810360408301526148c98186614837565b90506148d860608301856138c1565b6148e56080830184613739565b9695505050505050565b60006040820190506149046000830185613739565b81810360208301526149168184614837565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dfd779aa563a74bbd2f22ffc17510bb858d2a41d1d928349f02d4edb4a3a134b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102555760003560e01c8063715018a611610139578063cea9d26f116100b6578063e9fd33941161007a578063e9fd3394146108b8578063eec1c69f146108e3578063f242ab4114610920578063f2fde38b1461094b578063f331c7b014610974578063fb235f341461099f5761025c565b8063cea9d26f146107e9578063d4e43fb314610812578063dd62ed3e1461083b578063df8408fe14610878578063e6b2603b146108a15761025c565b8063a9059cbb116100fd578063a9059cbb14610704578063adc0d09214610741578063bf56b3711461076a578063c16dd4a414610795578063c6d2577d146107be5761025c565b8063715018a61461062f5780637ca882b5146106465780638da5cb5b1461067157806395d89b411461069c578063a457c2d7146106c75761025c565b806327c8f835116101d25780633ecad271116101965780633ecad271146104f957806342966c6814610536578063444784251461055f5780635342acb41461058a5780636ddd1713146105c757806370a08231146105f25761025c565b806327c8f835146104105780632b112e491461043b578063313ce5671461046657806337249b651461049157806339509351146104bc5761025c565b8063095ea7b311610219578063095ea7b3146103175780630adab99f14610354578063111a46511461037d57806318160ddd146103a857806323b872dd146103d35761025c565b80630445b6671461026157806306fdde031461028c5780630758d924146102b757806307df7a0d146102e25780630930907b146102ec5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109c8565b6040516102839190613748565b60405180910390f35b34801561029857600080fd5b506102a16109ce565b6040516102ae91906137f3565b60405180910390f35b3480156102c357600080fd5b506102cc610a60565b6040516102d99190613894565b60405180910390f35b6102ea610a86565b005b3480156102f857600080fd5b5061030161125b565b60405161030e91906138d0565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190613948565b61127f565b60405161034b91906139a3565b60405180910390f35b34801561036057600080fd5b5061037b600480360381019061037691906139be565b61129d565b005b34801561038957600080fd5b5061039261135d565b60405161039f91906139a3565b60405180910390f35b3480156103b457600080fd5b506103bd611370565b6040516103ca9190613748565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f591906139eb565b61137a565b60405161040791906139a3565b60405180910390f35b34801561041c57600080fd5b50610425611454565b60405161043291906138d0565b60405180910390f35b34801561044757600080fd5b50610450611478565b60405161045d9190613748565b60405180910390f35b34801561047257600080fd5b5061047b6114f6565b6040516104889190613a5a565b60405180910390f35b34801561049d57600080fd5b506104a661150d565b6040516104b39190613748565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190613948565b611513565b6040516104f091906139a3565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b91906139be565b6115c6565b60405161052d91906139a3565b60405180910390f35b34801561054257600080fd5b5061055d60048036038101906105589190613a75565b6115e6565b005b34801561056b57600080fd5b50610574611787565b60405161058191906138d0565b60405180910390f35b34801561059657600080fd5b506105b160048036038101906105ac91906139be565b6117ad565b6040516105be91906139a3565b60405180910390f35b3480156105d357600080fd5b506105dc6117cd565b6040516105e991906139a3565b60405180910390f35b3480156105fe57600080fd5b50610619600480360381019061061491906139be565b6117e0565b6040516106269190613748565b60405180910390f35b34801561063b57600080fd5b50610644611829565b005b34801561065257600080fd5b5061065b6118b1565b60405161066891906138d0565b60405180910390f35b34801561067d57600080fd5b506106866118d7565b60405161069391906138d0565b60405180910390f35b3480156106a857600080fd5b506106b1611900565b6040516106be91906137f3565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190613948565b611992565b6040516106fb91906139a3565b60405180910390f35b34801561071057600080fd5b5061072b60048036038101906107269190613948565b611a5f565b60405161073891906139a3565b60405180910390f35b34801561074d57600080fd5b5061076860048036038101906107639190613a75565b611a7e565b005b34801561077657600080fd5b5061077f611b04565b60405161078c9190613748565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b79190613ace565b611b0a565b005b3480156107ca57600080fd5b506107d3611be1565b6040516107e09190613748565b60405180910390f35b3480156107f557600080fd5b50610810600480360381019061080b91906139eb565b611be7565b005b34801561081e57600080fd5b5061083960048036038101906108349190613b0e565b611db9565b005b34801561084757600080fd5b50610862600480360381019061085d9190613b4e565b611e81565b60405161086f9190613748565b60405180910390f35b34801561088457600080fd5b5061089f600480360381019061089a9190613ace565b611f08565b005b3480156108ad57600080fd5b506108b6611fdf565b005b3480156108c457600080fd5b506108cd61211e565b6040516108da91906139a3565b60405180910390f35b3480156108ef57600080fd5b5061090a60048036038101906109059190613bca565b612131565b60405161091791906139a3565b60405180910390f35b34801561092c57600080fd5b506109356122eb565b60405161094291906138d0565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d91906139be565b612311565b005b34801561098057600080fd5b50610989612408565b6040516109969190613748565b60405180910390f35b3480156109ab57600080fd5b506109c660048036038101906109c191906139be565b61240e565b005b600e5481565b6060600180546109dd90613c26565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0990613c26565b8015610a565780601f10610a2b57610100808354040283529160200191610a56565b820191906000526020600020905b815481529060010190602001808311610a3957829003601f168201915b5050505050905090565b601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a8e6124ce565b73ffffffffffffffffffffffffffffffffffffffff16610aac6118d7565b73ffffffffffffffffffffffffffffffffffffffff1614610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990613ca3565b60405180910390fd5b6000600f5414610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e90613d0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf90613d7b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6090613d7b565b60405180910390fd5b6000610c946064610c866005600d546124d690919063ffffffff16565b61255090919063ffffffff16565b90506000610cad82600d5461259a90919063ffffffff16565b905080600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610db79190613748565b60405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e3f9190613748565b60405180910390a3601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080610e936118d7565b426040518863ffffffff1660e01b8152600401610eb596959493929190613dd6565b60606040518083038185885af1158015610ed3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ef89190613e4c565b5050506000601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8e9190613eb4565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110409190613eb4565b6040518363ffffffff1660e01b815260040161105d929190613ee1565b602060405180830381865afa15801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e9190613eb4565b905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600f81905550426010819055506001601160016101000a81548160ff0219169083151502179055507fe9eb78ba3cec944cc08914c86e9e2f865657d654824acd14c88b3c271bf6397760405160405180910390a150505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061129361128c6124ce565b84846125e4565b6001905092915050565b6112a56124ce565b73ffffffffffffffffffffffffffffffffffffffff166112c36118d7565b73ffffffffffffffffffffffffffffffffffffffff1614611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090613ca3565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900460ff1681565b6000600d54905090565b60006113878484846127ad565b50611449846113946124ce565b6114448560405180606001604052806028815260200161492060289139600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113fa6124ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcb9092919063ffffffff16565b6125e4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006114f16114a67f00000000000000000000000000000000000000000000000000000000000000006117e0565b6114e36114d27f000000000000000000000000000000000000000000000000000000000000dead6117e0565b600d5461259a90919063ffffffff16565b61259a90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b60055481565b60006115bc6115206124ce565b846115b785600a60006115316124ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2f90919063ffffffff16565b6125e4565b6001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600033905081600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561166d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166490613f56565b60405180910390fd5b6116bf82600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461259a90919063ffffffff16565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061171782600d5461259a90919063ffffffff16565b600d81905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161177b9190613748565b60405180910390a35050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b601160019054906101000a900460ff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6118316124ce565b73ffffffffffffffffffffffffffffffffffffffff1661184f6118d7565b73ffffffffffffffffffffffffffffffffffffffff16146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90613ca3565b60405180910390fd5b6118af6000612c8d565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461190f90613c26565b80601f016020809104026020016040519081016040528092919081815260200182805461193b90613c26565b80156119885780601f1061195d57610100808354040283529160200191611988565b820191906000526020600020905b81548152906001019060200180831161196b57829003601f168201915b5050505050905090565b6000611a5561199f6124ce565b84611a508560405180606001604052806025815260200161494860259139600a60006119c96124ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcb9092919063ffffffff16565b6125e4565b6001905092915050565b6000611a73611a6c6124ce565b84846127ad565b506001905092915050565b611a866124ce565b73ffffffffffffffffffffffffffffffffffffffff16611aa46118d7565b73ffffffffffffffffffffffffffffffffffffffff1614611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af190613ca3565b60405180910390fd5b80600e8190555050565b600f5481565b611b126124ce565b73ffffffffffffffffffffffffffffffffffffffff16611b306118d7565b73ffffffffffffffffffffffffffffffffffffffff1614611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d90613ca3565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60105481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e90613fc2565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611ca3929190613fe2565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611d2d9190614052565b6000604051808303816000865af19150503d8060008114611d6a576040519150601f19603f3d011682016040523d82523d6000602084013e611d6f565b606091505b5050905080611db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daa906140b5565b60405180910390fd5b50505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4090613fc2565b60405180910390fd5b81601160016101000a81548160ff02191690831515021790555080601160026101000a81548160ff0219169083151502179055505050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611f106124ce565b73ffffffffffffffffffffffffffffffffffffffff16611f2e6118d7565b73ffffffffffffffffffffffffffffffffffffffff1614611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b90613ca3565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690613fc2565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612095906140fb565b60006040518083038185875af1925050503d80600081146120d2576040519150601f19603f3d011682016040523d82523d6000602084013e6120d7565b606091505b505090508061211b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121129061415c565b60405180910390fd5b50565b601160029054906101000a900460ff1681565b60008061213c6124ce565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516122a09190613748565b60405180910390a37fb5e85c8f437dbbdc51d3b5979c8fe54dcb0dcea732661c1904898ddb2fd3bb0e81846040516122d99291906141ad565b60405180910390a16001915050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6123196124ce565b73ffffffffffffffffffffffffffffffffffffffff166123376118d7565b73ffffffffffffffffffffffffffffffffffffffff161461238d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238490613ca3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f390614248565b60405180910390fd5b61240581612c8d565b50565b60045481565b6124166124ce565b73ffffffffffffffffffffffffffffffffffffffff166124346118d7565b73ffffffffffffffffffffffffffffffffffffffff161461248a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248190613ca3565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60008083036124e8576000905061254a565b600082846124f69190614297565b90508284826125059190614308565b14612545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253c906143ab565b60405180910390fd5b809150505b92915050565b600061259283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d51565b905092915050565b60006125dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612bcb565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264a9061443d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b9906144cf565b60405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516127a09190613748565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361281d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281490614561565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361288c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612883906145f3565b60405180910390fd5b600082116128cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c690614685565b60405180910390fd5b601260149054906101000a900460ff16156128f6576128ef848484612db4565b9050612bc4565b6000600f54141580156129165750601160009054906101000a900460ff16155b1561292457612923612f87565b5b600061292f306117e0565b90506000600e5482101590508080156129555750601260149054906101000a900460ff16155b80156129ab5750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129c35750601160019054906101000a900460ff165b156129d2576129d182613023565b5b612a5b846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcb9092919063ffffffff16565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612aaa8787613111565b612abe57612ab987878761327c565b612ac0565b845b9050612b1481600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2f90919063ffffffff16565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bb49190613748565b60405180910390a3600193505050505b9392505050565b6000838311158290612c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0a91906137f3565b60405180910390fd5b5060008385612c2291906146a5565b9050809150509392505050565b6000808284612c3e91906146d9565b905083811015612c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7a90614759565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083118290612d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8f91906137f3565b60405180910390fd5b5060008385612da79190614308565b9050809150509392505050565b6000612e3f826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bcb9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ed482600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2f90919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f749190613748565b60405180910390a3600190509392505050565b6004600f54612f9691906146d9565b4311612fa857612fa76063806134a1565b5b6004600f54612fb791906146d9565b43118015612fd357506019600f54612fcf91906146d9565b4311155b15612fe457612fe3602d806134a1565b5b6019600f54612ff391906146d9565b431115613021576130056005806134a1565b6001601160006101000a81548160ff0219169083151502179055505b565b6001601260146101000a81548160ff021916908315150217905550601160029054906101000a900460ff161561305957600e5490505b6000479050613067826134b3565b600061307c824761259a90919063ffffffff16565b905060008111156130f157600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156130ef573d6000803e3d6000fd5b505b50506000601260146101000a81548160ff02191690831515021790555050565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806131b45750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156131c25760019050613276565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132635750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156132715760009050613276565b600090505b92915050565b600080600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613301576132fa6008546132ec600454866124d690919063ffffffff16565b61255090919063ffffffff16565b9050613380565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561337f5761337c60085461336e600554866124d690919063ffffffff16565b61255090919063ffffffff16565b90505b5b6000811115613484576133db81600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c2f90919063ffffffff16565b600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161347b9190613748565b60405180910390a35b613497818461259a90919063ffffffff16565b9150509392505050565b81600481905550806005819055505050565b6000600267ffffffffffffffff8111156134d0576134cf614779565b5b6040519080825280602002602001820160405280156134fe5781602001602082028036833780820191505090505b5090503081600081518110613516576135156147a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e19190613eb4565b816001815181106135f5576135f46147a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061365c30601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125e4565b601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016136c0959493929190614895565b600060405180830381600087803b1580156136da57600080fd5b505af11580156136ee573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516137239291906148ef565b60405180910390a15050565b6000819050919050565b6137428161372f565b82525050565b600060208201905061375d6000830184613739565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561379d578082015181840152602081019050613782565b60008484015250505050565b6000601f19601f8301169050919050565b60006137c582613763565b6137cf818561376e565b93506137df81856020860161377f565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061385a61385561385084613815565b613835565b613815565b9050919050565b600061386c8261383f565b9050919050565b600061387e82613861565b9050919050565b61388e81613873565b82525050565b60006020820190506138a96000830184613885565b92915050565b60006138ba82613815565b9050919050565b6138ca816138af565b82525050565b60006020820190506138e560008301846138c1565b92915050565b600080fd5b6138f9816138af565b811461390457600080fd5b50565b600081359050613916816138f0565b92915050565b6139258161372f565b811461393057600080fd5b50565b6000813590506139428161391c565b92915050565b6000806040838503121561395f5761395e6138eb565b5b600061396d85828601613907565b925050602061397e85828601613933565b9150509250929050565b60008115159050919050565b61399d81613988565b82525050565b60006020820190506139b86000830184613994565b92915050565b6000602082840312156139d4576139d36138eb565b5b60006139e284828501613907565b91505092915050565b600080600060608486031215613a0457613a036138eb565b5b6000613a1286828701613907565b9350506020613a2386828701613907565b9250506040613a3486828701613933565b9150509250925092565b600060ff82169050919050565b613a5481613a3e565b82525050565b6000602082019050613a6f6000830184613a4b565b92915050565b600060208284031215613a8b57613a8a6138eb565b5b6000613a9984828501613933565b91505092915050565b613aab81613988565b8114613ab657600080fd5b50565b600081359050613ac881613aa2565b92915050565b60008060408385031215613ae557613ae46138eb565b5b6000613af385828601613907565b9250506020613b0485828601613ab9565b9150509250929050565b60008060408385031215613b2557613b246138eb565b5b6000613b3385828601613ab9565b9250506020613b4485828601613ab9565b9150509250929050565b60008060408385031215613b6557613b646138eb565b5b6000613b7385828601613907565b9250506020613b8485828601613907565b9150509250929050565b600063ffffffff82169050919050565b613ba781613b8e565b8114613bb257600080fd5b50565b600081359050613bc481613b9e565b92915050565b600060208284031215613be057613bdf6138eb565b5b6000613bee84828501613bb5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613c3e57607f821691505b602082108103613c5157613c50613bf7565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c8d60208361376e565b9150613c9882613c57565b602082019050919050565b60006020820190508181036000830152613cbc81613c80565b9050919050565b7f416c7265616479206c61756e6368656421000000000000000000000000000000600082015250565b6000613cf960118361376e565b9150613d0482613cc3565b602082019050919050565b60006020820190508181036000830152613d2881613cec565b9050919050565b7f6e756c6c20616464726573730000000000000000000000000000000000000000600082015250565b6000613d65600c8361376e565b9150613d7082613d2f565b602082019050919050565b60006020820190508181036000830152613d9481613d58565b9050919050565b6000819050919050565b6000613dc0613dbb613db684613d9b565b613835565b61372f565b9050919050565b613dd081613da5565b82525050565b600060c082019050613deb60008301896138c1565b613df86020830188613739565b613e056040830187613dc7565b613e126060830186613dc7565b613e1f60808301856138c1565b613e2c60a0830184613739565b979650505050505050565b600081519050613e468161391c565b92915050565b600080600060608486031215613e6557613e646138eb565b5b6000613e7386828701613e37565b9350506020613e8486828701613e37565b9250506040613e9586828701613e37565b9150509250925092565b600081519050613eae816138f0565b92915050565b600060208284031215613eca57613ec96138eb565b5b6000613ed884828501613e9f565b91505092915050565b6000604082019050613ef660008301856138c1565b613f0360208301846138c1565b9392505050565b7f496e73756666696369656e742042616c616e636520466f72204275726e210000600082015250565b6000613f40601e8361376e565b9150613f4b82613f0a565b602082019050919050565b60006020820190508181036000830152613f6f81613f33565b9050919050565b7f496e76616c69642043616c6c6572210000000000000000000000000000000000600082015250565b6000613fac600f8361376e565b9150613fb782613f76565b602082019050919050565b60006020820190508181036000830152613fdb81613f9f565b9050919050565b6000604082019050613ff760008301856138c1565b6140046020830184613739565b9392505050565b600081519050919050565b600081905092915050565b600061402c8261400b565b6140368185614016565b935061404681856020860161377f565b80840191505092915050565b600061405e8284614021565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b600061409f60148361376e565b91506140aa82614069565b602082019050919050565b600060208201905081810360008301526140ce81614092565b9050919050565b50565b60006140e5600083614016565b91506140f0826140d5565b600082019050919050565b6000614106826140d8565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b600061414660148361376e565b915061415182614110565b602082019050919050565b6000602082019050818103600083015261417581614139565b9050919050565b600061419761419261418d84613b8e565b613835565b61372f565b9050919050565b6141a78161417c565b82525050565b60006040820190506141c260008301856138c1565b6141cf602083018461419e565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061423260268361376e565b915061423d826141d6565b604082019050919050565b6000602082019050818103600083015261426181614225565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142a28261372f565b91506142ad8361372f565b92508282026142bb8161372f565b915082820484148315176142d2576142d1614268565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006143138261372f565b915061431e8361372f565b92508261432e5761432d6142d9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061439560218361376e565b91506143a082614339565b604082019050919050565b600060208201905081810360008301526143c481614388565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061442760248361376e565b9150614432826143cb565b604082019050919050565b600060208201905081810360008301526144568161441a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006144b960228361376e565b91506144c48261445d565b604082019050919050565b600060208201905081810360008301526144e8816144ac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061454b60258361376e565b9150614556826144ef565b604082019050919050565b6000602082019050818103600083015261457a8161453e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006145dd60238361376e565b91506145e882614581565b604082019050919050565b6000602082019050818103600083015261460c816145d0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061466f60298361376e565b915061467a82614613565b604082019050919050565b6000602082019050818103600083015261469e81614662565b9050919050565b60006146b08261372f565b91506146bb8361372f565b92508282039050818111156146d3576146d2614268565b5b92915050565b60006146e48261372f565b91506146ef8361372f565b925082820190508082111561470757614706614268565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614743601b8361376e565b915061474e8261470d565b602082019050919050565b6000602082019050818103600083015261477281614736565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61480c816138af565b82525050565b600061481e8383614803565b60208301905092915050565b6000602082019050919050565b6000614842826147d7565b61484c81856147e2565b9350614857836147f3565b8060005b8381101561488857815161486f8882614812565b975061487a8361482a565b92505060018101905061485b565b5085935050505092915050565b600060a0820190506148aa6000830188613739565b6148b76020830187613dc7565b81810360408301526148c98186614837565b90506148d860608301856138c1565b6148e56080830184613739565b9695505050505050565b60006040820190506149046000830185613739565b81810360208301526149168184614837565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dfd779aa563a74bbd2f22ffc17510bb858d2a41d1d928349f02d4edb4a3a134b64736f6c63430008130033

Deployed Bytecode Sourcemap

8578:12392:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9487:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10705:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9735:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15873:1276;;;:::i;:::-;;8888:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12043:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20733:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9622:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10982:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12817:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8800:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11376:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10891:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9022:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11540:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9367:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20396:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9069:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9310:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9657:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11090:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3246:94;;;;;;;;;;;;;:::i;:::-;;9106:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2937:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10796;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11766:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12642:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19676:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9549:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19366:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9581:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18956:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19493:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11221:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19236:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18770:178;;;;;;;;;;;;;:::i;:::-;;9695:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20069:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9773:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3348:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8978:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20855:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9487:53;;;;:::o;10705:83::-;10742:13;10775:5;10768:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10705:83;:::o;9735:31::-;;;;;;;;;;;;;:::o;15873:1276::-;3169:12;:10;:12::i;:::-;3158:23;;:7;:5;:7::i;:::-;:23;;;3150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15958:1:::1;15944:10;;:15;15936:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;16025:1;16000:27;;:13;;;;;;;;;;;:27;;::::0;15992:52:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16091:1;16063:30;;:16;;;;;;;;;;;:30;;::::0;16055:55:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16123:19;16145:28;16169:3;16145:19;16162:1;16145:12;;:16;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16123:50;;16192:12;16207:32;16224:14;16207:12;;:16;;:32;;;;:::i;:::-;16192:47;;16279:7;16252:9;:24;16270:4;16252:24;;;;;;;;;;;;;;;:34;;;;16324:14;16297:9;:24;16307:13;;;;;;;;;;;16297:24;;;;;;;;;;;;;;;:41;;;;16383:4;16354:44;;16371:1;16354:44;;;16390:7;16354:44;;;;;;:::i;:::-;;;;;;;;16435:13;;;;;;;;;;;16414:51;;16431:1;16414:51;;;16450:14;16414:51;;;;;;:::i;:::-;;;;;;;;16478:9;;;;;;;;;;;:25;;;16512:9;16546:4;16566:7;16588:1;16604::::0;16620:7:::1;:5;:7::i;:::-;16642:15;16478:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16681:23;16723:9;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16681:62;;16756:17;16789:7;:15;;;16813:4;16820:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16789:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16756:82;;16869:4;16851:7;;:23;;;;;;;;;;;;;;;;;;16920:4;16887:12;:30;16908:7;;;;;;;;;;;16887:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;16991:1;16982:11;16935;:26;16955:4;16935:26;;;;;;;;;;;;;;;:44;16970:7;;;;;;;;;;;16935:44;;;;;;;;;;;;;;;:58;;;;17019:12;17006:10;:25;;;;17064:15;17042:19;:37;;;;17104:4;17090:11;;:18;;;;;;;;;;;;;;;;;;17124:17;;;;;;;;;;15925:1224;;;;15873:1276::o:0;8888:81::-;;;:::o;12043:161::-;12118:4;12135:39;12144:12;:10;:12::i;:::-;12158:7;12167:6;12135:8;:39::i;:::-;12192:4;12185:11;;12043:161;;;;:::o;20733:114::-;3169:12;:10;:12::i;:::-;3158:23;;:7;:5;:7::i;:::-;:23;;;3150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20830:9:::1;20811:16;;:28;;;;;;;;;;;;;;;;;;20733:114:::0;:::o;9622:26::-;;;;;;;;;;;;;:::o;10982:100::-;11035:7;11062:12;;11055:19;;10982:100;:::o;12817:313::-;12915:4;12932:36;12942:6;12950:9;12961:6;12932:9;:36::i;:::-;;12979:121;12988:6;12996:12;:10;:12::i;:::-;13010:89;13048:6;13010:89;;;;;;;;;;;;;;;;;:11;:19;13022:6;13010:19;;;;;;;;;;;;;;;:33;13030:12;:10;:12::i;:::-;13010:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;12979:8;:121::i;:::-;13118:4;13111:11;;12817:313;;;;;:::o;8800:81::-;;;:::o;11376:156::-;11429:7;11456:68;11501:22;11511:11;11501:9;:22::i;:::-;11456:40;11473:22;11483:11;11473:9;:22::i;:::-;11456:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;11449:75;;11376:156;:::o;10891:83::-;10932:5;10957:9;;;;;;;;;;;10950:16;;10891:83;:::o;9022:38::-;;;;:::o;11540:218::-;11628:4;11645:83;11654:12;:10;:12::i;:::-;11668:7;11677:50;11716:10;11677:11;:25;11689:12;:10;:12::i;:::-;11677:25;;;;;;;;;;;;;;;:34;11703:7;11677:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11645:8;:83::i;:::-;11746:4;11739:11;;11540:218;;;;:::o;9367:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;20396:329::-;20443:15;20461:10;20443:28;;20512:6;20490:9;:18;20500:7;20490:18;;;;;;;;;;;;;;;;:28;;20482:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20584:30;20607:6;20584:9;:18;20594:7;20584:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;20563:9;:18;20573:7;20563:18;;;;;;;;;;;;;;;:51;;;;20640:24;20657:6;20640:12;;:16;;:24;;;;:::i;:::-;20625:12;:39;;;;20706:1;20680:37;;20689:7;20680:37;;;20710:6;20680:37;;;;;;:::i;:::-;;;;;;;;20432:293;20396:329;:::o;9069:28::-;;;;;;;;;;;;;:::o;9310:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;9657:31::-;;;;;;;;;;;;;:::o;11090:123::-;11156:7;11182:9;:18;11192:7;11182:18;;;;;;;;;;;;;;;;11175:25;;11090:123;;;:::o;3246:94::-;3169:12;:10;:12::i;:::-;3158:23;;:7;:5;:7::i;:::-;:23;;;3150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3311:21:::1;3329:1;3311:9;:21::i;:::-;3246:94::o:0;9106:31::-;;;;;;;;;;;;;:::o;2937:87::-;2983:7;3010:6;;;;;;;;;;;3003:13;;2937:87;:::o;10796:::-;10835:13;10868:7;10861:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10796:87;:::o;11766:269::-;11859:4;11876:129;11885:12;:10;:12::i;:::-;11899:7;11908:96;11947:15;11908:96;;;;;;;;;;;;;;;;;:11;:25;11920:12;:10;:12::i;:::-;11908:25;;;;;;;;;;;;;;;:34;11934:7;11908:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;11876:8;:129::i;:::-;12023:4;12016:11;;11766:269;;;;:::o;12642:167::-;12720:4;12737:42;12747:12;:10;:12::i;:::-;12761:9;12772:6;12737:9;:42::i;:::-;;12797:4;12790:11;;12642:167;;;;:::o;19676:107::-;3169:12;:10;:12::i;:::-;3158:23;;:7;:5;:7::i;:::-;:23;;;3150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19765:10:::1;19749:13;:26;;;;19676:107:::0;:::o;9549:25::-;;;;:::o;19366:119::-;3169:12;:10;:12::i;:::-;3158:23;;:7;:5;:7::i;:::-;:23;;;3150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19470:7:::1;19448:12;:19;19461:5;19448:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19366:119:::0;;:::o;9581:34::-;;;;:::o;18956:272::-;9975:13;;;;;;;;;;;9961:27;;:10;:27;;;9953:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19056:12:::1;19082:6;19074:20;;19149:9;19160:7;19095:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19074:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19055:114;;;19188:7;19180:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;19044:184;18956:272:::0;;;:::o;19493:175::-;9975:13;;;;;;;;;;;9961:27;;:10;:27;;;9953:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19619:8:::1;19605:11;;:22;;;;;;;;;;;;;;;;;;19652:8;19638:11;;:22;;;;;;;;;;;;;;;;;;19493:175:::0;;:::o;11221:143::-;11302:7;11329:11;:18;11341:5;11329:18;;;;;;;;;;;;;;;:27;11348:7;11329:27;;;;;;;;;;;;;;;;11322:34;;11221:143;;;;:::o;19236:122::-;3169:12;:10;:12::i;:::-;3158:23;;:7;:5;:7::i;:::-;:23;;;3150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19343:7:::1;19317:17;:23;19335:4;19317:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19236:122:::0;;:::o;18770:178::-;9975:13;;;;;;;;;;;9961:27;;:10;:27;;;9953:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;18825:7:::1;18845:10;18837:24;;18869:21;18837:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18824:71;;;18914:2;18906:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;18812:136;18770:178::o:0;9695:31::-;;;;;;;;;;;;;:::o;20069:319::-;20129:4;20146:13;20162:12;:10;:12::i;:::-;20146:28;;20226:14;20187:11;:18;20199:5;20187:18;;;;;;;;;;;;;;;:36;20206:16;;;;;;;;;;;20187:36;;;;;;;;;;;;;;;:53;;;;20272:16;;;;;;;;;;;20256:49;;20265:5;20256:49;;;20290:14;20256:49;;;;;;:::i;:::-;;;;;;;;20321:37;20345:5;20351:6;20321:37;;;;;;;:::i;:::-;;;;;;;;20376:4;20369:11;;;20069:319;;;:::o;9773:22::-;;;;;;;;;;;;;:::o;3348:229::-;3169:12;:10;:12::i;:::-;3158:23;;:7;:5;:7::i;:::-;:23;;;3150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3471:1:::1;3451:22;;:8;:22;;::::0;3429:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3550:19;3560:8;3550:9;:19::i;:::-;3348:229:::0;:::o;8978:37::-;;;;:::o;20855:110::-;3169:12;:10;:12::i;:::-;3158:23;;:7;:5;:7::i;:::-;:23;;;3150:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20947:10:::1;20931:13;;:26;;;;;;;;;;;;;;;;;;20855:110:::0;:::o;1504:98::-;1557:7;1584:10;1577:17;;1504:98;:::o;4324:250::-;4382:7;4411:1;4406;:6;4402:47;;4436:1;4429:8;;;;4402:47;4461:9;4477:1;4473;:5;;;;:::i;:::-;4461:17;;4506:1;4501;4497;:5;;;;:::i;:::-;:10;4489:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4565:1;4558:8;;;4324:250;;;;;:::o;4582:132::-;4640:7;4667:39;4671:1;4674;4667:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4660:46;;4582:132;;;;:::o;3980:136::-;4038:7;4065:43;4069:1;4072;4065:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4058:50;;3980:136;;;;:::o;12212:337::-;12322:1;12305:19;;:5;:19;;;12297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12403:1;12384:21;;:7;:21;;;12376:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12487:6;12457:11;:18;12469:5;12457:18;;;;;;;;;;;;;;;:27;12476:7;12457:27;;;;;;;;;;;;;;;:36;;;;12525:7;12509:32;;12518:5;12509:32;;;12534:6;12509:32;;;;;;:::i;:::-;;;;;;;;12212:337;;;:::o;13138:1286::-;13225:4;13270:1;13252:20;;:6;:20;;;13244:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13354:1;13333:23;;:9;:23;;;13325:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13424:1;13415:6;:10;13407:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13492:6;;;;;;;;;;;13488:927;;;13522:41;13537:6;13545:9;13556:6;13522:14;:41::i;:::-;13515:48;;;;13488:927;13625:1;13611:10;;:15;;:34;;;;;13631:14;;;;;;;;;;;13630:15;13611:34;13607:93;;;13666:18;:16;:18::i;:::-;13607:93;13716:28;13747:24;13765:4;13747:9;:24::i;:::-;13716:55;;13786:28;13841:13;;13817:20;:37;;13786:68;;13875:23;:34;;;;;13903:6;;;;;;;;;;;13902:7;13875:34;:59;;;;;13914:12;:20;13927:6;13914:20;;;;;;;;;;;;;;;;;;;;;;;;;13913:21;13875:59;:74;;;;;13938:11;;;;;;;;;;;13875:74;13871:145;;;13970:30;13979:20;13970:8;:30::i;:::-;13871:145;14064:53;14086:6;14064:53;;;;;;;;;;;;;;;;;:9;:17;14074:6;14064:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14044:9;:17;14054:6;14044:17;;;;;;;;;;;;;;;:73;;;;14134:19;14156:34;14173:6;14180:9;14156:16;:34::i;:::-;:80;;14202:34;14210:6;14218:9;14229:6;14202:7;:34::i;:::-;14156:80;;;14193:6;14156:80;14134:102;;14276:37;14301:11;14276:9;:20;14286:9;14276:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;14253:9;:20;14263:9;14253:20;;;;;;;;;;;;;;;:60;;;;14352:9;14335:40;;14344:6;14335:40;;;14363:11;14335:40;;;;;;:::i;:::-;;;;;;;;14397:4;14390:11;;;;;13138:1286;;;;;;:::o;4124:192::-;4210:7;4243:1;4238;:6;;4246:12;4230:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4270:9;4286:1;4282;:5;;;;:::i;:::-;4270:17;;4307:1;4300:8;;;4124:192;;;;;:::o;3791:181::-;3849:7;3869:9;3885:1;3881;:5;;;;:::i;:::-;3869:17;;3910:1;3905;:6;;3897:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3963:1;3956:8;;;3791:181;;;;:::o;3585:173::-;3641:16;3660:6;;;;;;;;;;;3641:25;;3686:8;3677:6;;:17;;;;;;;;;;;;;;;;;;3741:8;3710:40;;3731:8;3710:40;;;;;;;;;;;;3630:128;3585:173;:::o;4722:278::-;4808:7;4840:1;4836;:5;4843:12;4828:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4867:9;4883:1;4879;:5;;;;:::i;:::-;4867:17;;4991:1;4984:8;;;4722:278;;;;;:::o;14432:330::-;14525:4;14562:53;14584:6;14562:53;;;;;;;;;;;;;;;;;:9;:17;14572:6;14562:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14542:9;:17;14552:6;14542:17;;;;;;;;;;;;;;;:73;;;;14649:32;14674:6;14649:9;:20;14659:9;14649:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14626:9;:20;14636:9;14626:20;;;;;;;;;;;;;;;:55;;;;14714:9;14697:35;;14706:6;14697:35;;;14725:6;14697:35;;;;;;:::i;:::-;;;;;;;;14750:4;14743:11;;14432:330;;;;;:::o;17157:406::-;17238:1;17225:10;;:14;;;;:::i;:::-;17209:12;:30;17205:83;;17256:20;17270:2;17273;17256:13;:20::i;:::-;17205:83;17330:1;17317:10;;:14;;;;:::i;:::-;17302:12;:29;:64;;;;;17364:2;17351:10;;:15;;;;:::i;:::-;17335:12;:31;;17302:64;17298:117;;;17383:20;17397:2;17400;17383:13;:20::i;:::-;17298:117;17457:2;17444:10;;:15;;;;:::i;:::-;17429:12;:30;17425:117;;;17476:18;17490:1;17492;17476:13;:18::i;:::-;17526:4;17509:14;;:21;;;;;;;;;;;;;;;;;;17425:117;17157:406::o;17716:390::-;9864:4;9855:6;;:13;;;;;;;;;;;;;;;;;;17790:11:::1;;;;;;;;;;;17787:47;;;17821:13;;17803:31;;17787:47;17847:22;17872:21;17847:46;;17904:33;17921:15;17904:16;:33::i;:::-;17948:22;17973:41;17999:14;17973:21;:25;;:41;;;;:::i;:::-;17948:66;;18046:1;18029:14;:18;18026:70;;;18057:13;;;;;;;;;;;18049:31;;:47;18081:14;18049:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18026:70;17774:332;;9900:5:::0;9891:6;;:14;;;;;;;;;;;;;;;;;;17716:390;:::o;14774:369::-;14858:4;14878:17;:25;14896:6;14878:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14907:17;:28;14925:9;14907:28;;;;;;;;;;;;;;;;;;;;;;;;;14878:57;14875:261;;;14959:4;14952:11;;;;14875:261;14994:12;:20;15007:6;14994:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15018:12;:23;15031:9;15018:23;;;;;;;;;;;;;;;;;;;;;;;;;14994:47;14990:146;;;15065:5;15058:12;;;;14990:146;15119:5;15112:12;;14774:369;;;;;:::o;15151:714::-;15237:7;15267:14;15324:12;:20;15337:6;15324:20;;;;;;;;;;;;;;;;;;;;;;;;;15321:270;;;15378:50;15413:14;;15378:30;15389:18;;15378:6;:10;;:30;;;;:::i;:::-;:34;;:50;;;;:::i;:::-;15366:62;;15321:270;;;15467:12;:23;15480:9;15467:23;;;;;;;;;;;;;;;;;;;;;;;;;15464:127;;;15524:51;15560:14;;15524:31;15535:19;;15524:6;:10;;:31;;;;:::i;:::-;:35;;:51;;;;:::i;:::-;15512:63;;15464:127;15321:270;15622:1;15610:9;:13;15607:185;;;15671:39;15700:9;15671;:24;15689:4;15671:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15644:9;:24;15662:4;15644:24;;;;;;;;;;;;;;;:66;;;;15759:4;15734:42;;15743:6;15734:42;;;15766:9;15734:42;;;;;;:::i;:::-;;;;;;;;15607:185;15815:21;15826:9;15815:6;:10;;:21;;;;:::i;:::-;15808:28;;;15151:714;;;;;:::o;17571:137::-;17658:4;17637:18;:25;;;;17695:5;17673:19;:27;;;;17571:137;;:::o;18114:648::-;18240:21;18278:1;18264:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18240:40;;18309:4;18291;18296:1;18291:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18335:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18325:4;18330:1;18325:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;18364:56;18381:4;18396:9;;;;;;;;;;;18408:11;18364:8;:56::i;:::-;18459:9;;;;;;;;;;;:60;;;18534:11;18560:1;18604:4;18631;18667:15;18459:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18719:35;18736:11;18749:4;18719:35;;;;;;;:::i;:::-;;;;;;;;18169:593;18114:648;:::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;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:148::-;2334:9;2367:37;2398:5;2367:37;:::i;:::-;2354:50;;2262:148;;;:::o;2416:175::-;2525:59;2578:5;2525:59;:::i;:::-;2520:3;2513:72;2416:175;;:::o;2597:266::-;2712:4;2750:2;2739:9;2735:18;2727:26;;2763:93;2853:1;2842:9;2838:17;2829:6;2763:93;:::i;:::-;2597:266;;;;:::o;2869:96::-;2906:7;2935:24;2953:5;2935:24;:::i;:::-;2924:35;;2869:96;;;:::o;2971:118::-;3058:24;3076:5;3058:24;:::i;:::-;3053:3;3046:37;2971:118;;:::o;3095:222::-;3188:4;3226:2;3215:9;3211:18;3203:26;;3239:71;3307:1;3296:9;3292:17;3283:6;3239:71;:::i;:::-;3095:222;;;;:::o;3404:117::-;3513:1;3510;3503:12;3650:122;3723:24;3741:5;3723:24;:::i;:::-;3716:5;3713:35;3703:63;;3762:1;3759;3752:12;3703:63;3650:122;:::o;3778:139::-;3824:5;3862:6;3849:20;3840:29;;3878:33;3905:5;3878:33;:::i;:::-;3778:139;;;;:::o;3923:122::-;3996:24;4014:5;3996:24;:::i;:::-;3989:5;3986:35;3976:63;;4035:1;4032;4025:12;3976:63;3923:122;:::o;4051:139::-;4097:5;4135:6;4122:20;4113:29;;4151:33;4178:5;4151:33;:::i;:::-;4051:139;;;;:::o;4196:474::-;4264:6;4272;4321:2;4309:9;4300:7;4296:23;4292:32;4289:119;;;4327:79;;:::i;:::-;4289:119;4447:1;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4418:117;4574:2;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4545:118;4196:474;;;;;:::o;4676:90::-;4710:7;4753:5;4746:13;4739:21;4728:32;;4676:90;;;:::o;4772:109::-;4853:21;4868:5;4853:21;:::i;:::-;4848:3;4841:34;4772:109;;:::o;4887:210::-;4974:4;5012:2;5001:9;4997:18;4989:26;;5025:65;5087:1;5076:9;5072:17;5063:6;5025:65;:::i;:::-;4887:210;;;;:::o;5103:329::-;5162:6;5211:2;5199:9;5190:7;5186:23;5182:32;5179:119;;;5217:79;;:::i;:::-;5179:119;5337:1;5362:53;5407:7;5398:6;5387:9;5383:22;5362:53;:::i;:::-;5352:63;;5308:117;5103:329;;;;:::o;5438:619::-;5515:6;5523;5531;5580:2;5568:9;5559:7;5555:23;5551:32;5548:119;;;5586:79;;:::i;:::-;5548:119;5706:1;5731:53;5776:7;5767:6;5756:9;5752:22;5731:53;:::i;:::-;5721:63;;5677:117;5833:2;5859:53;5904:7;5895:6;5884:9;5880:22;5859:53;:::i;:::-;5849:63;;5804:118;5961:2;5987:53;6032:7;6023:6;6012:9;6008:22;5987:53;:::i;:::-;5977:63;;5932:118;5438:619;;;;;:::o;6063:86::-;6098:7;6138:4;6131:5;6127:16;6116:27;;6063:86;;;:::o;6155:112::-;6238:22;6254:5;6238:22;:::i;:::-;6233:3;6226:35;6155:112;;:::o;6273:214::-;6362:4;6400:2;6389:9;6385:18;6377:26;;6413:67;6477:1;6466:9;6462:17;6453:6;6413:67;:::i;:::-;6273:214;;;;:::o;6493:329::-;6552:6;6601:2;6589:9;6580:7;6576:23;6572:32;6569:119;;;6607:79;;:::i;:::-;6569:119;6727:1;6752:53;6797:7;6788:6;6777:9;6773:22;6752:53;:::i;:::-;6742:63;;6698:117;6493:329;;;;:::o;6828:116::-;6898:21;6913:5;6898:21;:::i;:::-;6891:5;6888:32;6878:60;;6934:1;6931;6924:12;6878:60;6828:116;:::o;6950:133::-;6993:5;7031:6;7018:20;7009:29;;7047:30;7071:5;7047:30;:::i;:::-;6950:133;;;;:::o;7089:468::-;7154:6;7162;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7464:2;7490:50;7532:7;7523:6;7512:9;7508:22;7490:50;:::i;:::-;7480:60;;7435:115;7089:468;;;;;:::o;7563:462::-;7625:6;7633;7682:2;7670:9;7661:7;7657:23;7653:32;7650:119;;;7688:79;;:::i;:::-;7650:119;7808:1;7833:50;7875:7;7866:6;7855:9;7851:22;7833:50;:::i;:::-;7823:60;;7779:114;7932:2;7958:50;8000:7;7991:6;7980:9;7976:22;7958:50;:::i;:::-;7948:60;;7903:115;7563:462;;;;;:::o;8031:474::-;8099:6;8107;8156:2;8144:9;8135:7;8131:23;8127:32;8124:119;;;8162:79;;:::i;:::-;8124:119;8282:1;8307:53;8352:7;8343:6;8332:9;8328:22;8307:53;:::i;:::-;8297:63;;8253:117;8409:2;8435:53;8480:7;8471:6;8460:9;8456:22;8435:53;:::i;:::-;8425:63;;8380:118;8031:474;;;;;:::o;8511:93::-;8547:7;8587:10;8580:5;8576:22;8565:33;;8511:93;;;:::o;8610:120::-;8682:23;8699:5;8682:23;:::i;:::-;8675:5;8672:34;8662:62;;8720:1;8717;8710:12;8662:62;8610:120;:::o;8736:137::-;8781:5;8819:6;8806:20;8797:29;;8835:32;8861:5;8835:32;:::i;:::-;8736:137;;;;:::o;8879:327::-;8937:6;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:52;9181:7;9172:6;9161:9;9157:22;9137:52;:::i;:::-;9127:62;;9083:116;8879:327;;;;:::o;9212:180::-;9260:77;9257:1;9250:88;9357:4;9354:1;9347:15;9381:4;9378:1;9371:15;9398:320;9442:6;9479:1;9473:4;9469:12;9459:22;;9526:1;9520:4;9516:12;9547:18;9537:81;;9603:4;9595:6;9591:17;9581:27;;9537:81;9665:2;9657:6;9654:14;9634:18;9631:38;9628:84;;9684:18;;:::i;:::-;9628:84;9449:269;9398:320;;;:::o;9724:182::-;9864:34;9860:1;9852:6;9848:14;9841:58;9724:182;:::o;9912:366::-;10054:3;10075:67;10139:2;10134:3;10075:67;:::i;:::-;10068:74;;10151:93;10240:3;10151:93;:::i;:::-;10269:2;10264:3;10260:12;10253:19;;9912:366;;;:::o;10284:419::-;10450:4;10488:2;10477:9;10473:18;10465:26;;10537:9;10531:4;10527:20;10523:1;10512:9;10508:17;10501:47;10565:131;10691:4;10565:131;:::i;:::-;10557:139;;10284:419;;;:::o;10709:167::-;10849:19;10845:1;10837:6;10833:14;10826:43;10709:167;:::o;10882:366::-;11024:3;11045:67;11109:2;11104:3;11045:67;:::i;:::-;11038:74;;11121:93;11210:3;11121:93;:::i;:::-;11239:2;11234:3;11230:12;11223:19;;10882:366;;;:::o;11254:419::-;11420:4;11458:2;11447:9;11443:18;11435:26;;11507:9;11501:4;11497:20;11493:1;11482:9;11478:17;11471:47;11535:131;11661:4;11535:131;:::i;:::-;11527:139;;11254:419;;;:::o;11679:162::-;11819:14;11815:1;11807:6;11803:14;11796:38;11679:162;:::o;11847:366::-;11989:3;12010:67;12074:2;12069:3;12010:67;:::i;:::-;12003:74;;12086:93;12175:3;12086:93;:::i;:::-;12204:2;12199:3;12195:12;12188:19;;11847:366;;;:::o;12219:419::-;12385:4;12423:2;12412:9;12408:18;12400:26;;12472:9;12466:4;12462:20;12458:1;12447:9;12443:17;12436:47;12500:131;12626:4;12500:131;:::i;:::-;12492:139;;12219:419;;;:::o;12644:85::-;12689:7;12718:5;12707:16;;12644:85;;;:::o;12735:158::-;12793:9;12826:61;12844:42;12853:32;12879:5;12853:32;:::i;:::-;12844:42;:::i;:::-;12826:61;:::i;:::-;12813:74;;12735:158;;;:::o;12899:147::-;12994:45;13033:5;12994:45;:::i;:::-;12989:3;12982:58;12899:147;;:::o;13052:807::-;13301:4;13339:3;13328:9;13324:19;13316:27;;13353:71;13421:1;13410:9;13406:17;13397:6;13353:71;:::i;:::-;13434:72;13502:2;13491:9;13487:18;13478:6;13434:72;:::i;:::-;13516:80;13592:2;13581:9;13577:18;13568:6;13516:80;:::i;:::-;13606;13682:2;13671:9;13667:18;13658:6;13606:80;:::i;:::-;13696:73;13764:3;13753:9;13749:19;13740:6;13696:73;:::i;:::-;13779;13847:3;13836:9;13832:19;13823:6;13779:73;:::i;:::-;13052:807;;;;;;;;;:::o;13865:143::-;13922:5;13953:6;13947:13;13938:22;;13969:33;13996:5;13969:33;:::i;:::-;13865:143;;;;:::o;14014:663::-;14102:6;14110;14118;14167:2;14155:9;14146:7;14142:23;14138:32;14135:119;;;14173:79;;:::i;:::-;14135:119;14293:1;14318:64;14374:7;14365:6;14354:9;14350:22;14318:64;:::i;:::-;14308:74;;14264:128;14431:2;14457:64;14513:7;14504:6;14493:9;14489:22;14457:64;:::i;:::-;14447:74;;14402:129;14570:2;14596:64;14652:7;14643:6;14632:9;14628:22;14596:64;:::i;:::-;14586:74;;14541:129;14014:663;;;;;:::o;14683:143::-;14740:5;14771:6;14765:13;14756:22;;14787:33;14814:5;14787:33;:::i;:::-;14683:143;;;;:::o;14832:351::-;14902:6;14951:2;14939:9;14930:7;14926:23;14922:32;14919:119;;;14957:79;;:::i;:::-;14919:119;15077:1;15102:64;15158:7;15149:6;15138:9;15134:22;15102:64;:::i;:::-;15092:74;;15048:128;14832:351;;;;:::o;15189:332::-;15310:4;15348:2;15337:9;15333:18;15325:26;;15361:71;15429:1;15418:9;15414:17;15405:6;15361:71;:::i;:::-;15442:72;15510:2;15499:9;15495:18;15486:6;15442:72;:::i;:::-;15189:332;;;;;:::o;15527:180::-;15667:32;15663:1;15655:6;15651:14;15644:56;15527:180;:::o;15713:366::-;15855:3;15876:67;15940:2;15935:3;15876:67;:::i;:::-;15869:74;;15952:93;16041:3;15952:93;:::i;:::-;16070:2;16065:3;16061:12;16054:19;;15713:366;;;:::o;16085:419::-;16251:4;16289:2;16278:9;16274:18;16266:26;;16338:9;16332:4;16328:20;16324:1;16313:9;16309:17;16302:47;16366:131;16492:4;16366:131;:::i;:::-;16358:139;;16085:419;;;:::o;16510:165::-;16650:17;16646:1;16638:6;16634:14;16627:41;16510:165;:::o;16681:366::-;16823:3;16844:67;16908:2;16903:3;16844:67;:::i;:::-;16837:74;;16920:93;17009:3;16920:93;:::i;:::-;17038:2;17033:3;17029:12;17022:19;;16681:366;;;:::o;17053:419::-;17219:4;17257:2;17246:9;17242:18;17234:26;;17306:9;17300:4;17296:20;17292:1;17281:9;17277:17;17270:47;17334:131;17460:4;17334:131;:::i;:::-;17326:139;;17053:419;;;:::o;17478:332::-;17599:4;17637:2;17626:9;17622:18;17614:26;;17650:71;17718:1;17707:9;17703:17;17694:6;17650:71;:::i;:::-;17731:72;17799:2;17788:9;17784:18;17775:6;17731:72;:::i;:::-;17478:332;;;;;:::o;17816:98::-;17867:6;17901:5;17895:12;17885:22;;17816:98;;;:::o;17920:147::-;18021:11;18058:3;18043:18;;17920:147;;;;:::o;18073:386::-;18177:3;18205:38;18237:5;18205:38;:::i;:::-;18259:88;18340:6;18335:3;18259:88;:::i;:::-;18252:95;;18356:65;18414:6;18409:3;18402:4;18395:5;18391:16;18356:65;:::i;:::-;18446:6;18441:3;18437:16;18430:23;;18181:278;18073:386;;;;:::o;18465:271::-;18595:3;18617:93;18706:3;18697:6;18617:93;:::i;:::-;18610:100;;18727:3;18720:10;;18465:271;;;;:::o;18742:170::-;18882:22;18878:1;18870:6;18866:14;18859:46;18742:170;:::o;18918:366::-;19060:3;19081:67;19145:2;19140:3;19081:67;:::i;:::-;19074:74;;19157:93;19246:3;19157:93;:::i;:::-;19275:2;19270:3;19266:12;19259:19;;18918:366;;;:::o;19290:419::-;19456:4;19494:2;19483:9;19479:18;19471:26;;19543:9;19537:4;19533:20;19529:1;19518:9;19514:17;19507:47;19571:131;19697:4;19571:131;:::i;:::-;19563:139;;19290:419;;;:::o;19715:114::-;;:::o;19835:398::-;19994:3;20015:83;20096:1;20091:3;20015:83;:::i;:::-;20008:90;;20107:93;20196:3;20107:93;:::i;:::-;20225:1;20220:3;20216:11;20209:18;;19835:398;;;:::o;20239:379::-;20423:3;20445:147;20588:3;20445:147;:::i;:::-;20438:154;;20609:3;20602:10;;20239:379;;;:::o;20624:170::-;20764:22;20760:1;20752:6;20748:14;20741:46;20624:170;:::o;20800:366::-;20942:3;20963:67;21027:2;21022:3;20963:67;:::i;:::-;20956:74;;21039:93;21128:3;21039:93;:::i;:::-;21157:2;21152:3;21148:12;21141:19;;20800:366;;;:::o;21172:419::-;21338:4;21376:2;21365:9;21361:18;21353:26;;21425:9;21419:4;21415:20;21411:1;21400:9;21396:17;21389:47;21453:131;21579:4;21453:131;:::i;:::-;21445:139;;21172:419;;;:::o;21597:140::-;21646:9;21679:52;21697:33;21706:23;21723:5;21706:23;:::i;:::-;21697:33;:::i;:::-;21679:52;:::i;:::-;21666:65;;21597:140;;;:::o;21743:129::-;21829:36;21859:5;21829:36;:::i;:::-;21824:3;21817:49;21743:129;;:::o;21878:330::-;21998:4;22036:2;22025:9;22021:18;22013:26;;22049:71;22117:1;22106:9;22102:17;22093:6;22049:71;:::i;:::-;22130;22197:2;22186:9;22182:18;22173:6;22130:71;:::i;:::-;21878:330;;;;;:::o;22214:225::-;22354:34;22350:1;22342:6;22338:14;22331:58;22423:8;22418:2;22410:6;22406:15;22399:33;22214:225;:::o;22445:366::-;22587:3;22608:67;22672:2;22667:3;22608:67;:::i;:::-;22601:74;;22684:93;22773:3;22684:93;:::i;:::-;22802:2;22797:3;22793:12;22786:19;;22445:366;;;:::o;22817:419::-;22983:4;23021:2;23010:9;23006:18;22998:26;;23070:9;23064:4;23060:20;23056:1;23045:9;23041:17;23034:47;23098:131;23224:4;23098:131;:::i;:::-;23090:139;;22817:419;;;:::o;23242:180::-;23290:77;23287:1;23280:88;23387:4;23384:1;23377:15;23411:4;23408:1;23401:15;23428:410;23468:7;23491:20;23509:1;23491:20;:::i;:::-;23486:25;;23525:20;23543:1;23525:20;:::i;:::-;23520:25;;23580:1;23577;23573:9;23602:30;23620:11;23602:30;:::i;:::-;23591:41;;23781:1;23772:7;23768:15;23765:1;23762:22;23742:1;23735:9;23715:83;23692:139;;23811:18;;:::i;:::-;23692:139;23476:362;23428:410;;;;:::o;23844:180::-;23892:77;23889:1;23882:88;23989:4;23986:1;23979:15;24013:4;24010:1;24003:15;24030:185;24070:1;24087:20;24105:1;24087:20;:::i;:::-;24082:25;;24121:20;24139:1;24121:20;:::i;:::-;24116:25;;24160:1;24150:35;;24165:18;;:::i;:::-;24150:35;24207:1;24204;24200:9;24195:14;;24030:185;;;;:::o;24221:220::-;24361:34;24357:1;24349:6;24345:14;24338:58;24430:3;24425:2;24417:6;24413:15;24406:28;24221:220;:::o;24447:366::-;24589:3;24610:67;24674:2;24669:3;24610:67;:::i;:::-;24603:74;;24686:93;24775:3;24686:93;:::i;:::-;24804:2;24799:3;24795:12;24788:19;;24447:366;;;:::o;24819:419::-;24985:4;25023:2;25012:9;25008:18;25000:26;;25072:9;25066:4;25062:20;25058:1;25047:9;25043:17;25036:47;25100:131;25226:4;25100:131;:::i;:::-;25092:139;;24819:419;;;:::o;25244:223::-;25384:34;25380:1;25372:6;25368:14;25361:58;25453:6;25448:2;25440:6;25436:15;25429:31;25244:223;:::o;25473:366::-;25615:3;25636:67;25700:2;25695:3;25636:67;:::i;:::-;25629:74;;25712:93;25801:3;25712:93;:::i;:::-;25830:2;25825:3;25821:12;25814:19;;25473:366;;;:::o;25845:419::-;26011:4;26049:2;26038:9;26034:18;26026:26;;26098:9;26092:4;26088:20;26084:1;26073:9;26069:17;26062:47;26126:131;26252:4;26126:131;:::i;:::-;26118:139;;25845:419;;;:::o;26270:221::-;26410:34;26406:1;26398:6;26394:14;26387:58;26479:4;26474:2;26466:6;26462:15;26455:29;26270:221;:::o;26497:366::-;26639:3;26660:67;26724:2;26719:3;26660:67;:::i;:::-;26653:74;;26736:93;26825:3;26736:93;:::i;:::-;26854:2;26849:3;26845:12;26838:19;;26497:366;;;:::o;26869:419::-;27035:4;27073:2;27062:9;27058:18;27050:26;;27122:9;27116:4;27112:20;27108:1;27097:9;27093:17;27086:47;27150:131;27276:4;27150:131;:::i;:::-;27142:139;;26869:419;;;:::o;27294:224::-;27434:34;27430:1;27422:6;27418:14;27411:58;27503:7;27498:2;27490:6;27486:15;27479:32;27294:224;:::o;27524:366::-;27666:3;27687:67;27751:2;27746:3;27687:67;:::i;:::-;27680:74;;27763:93;27852:3;27763:93;:::i;:::-;27881:2;27876:3;27872:12;27865:19;;27524:366;;;:::o;27896:419::-;28062:4;28100:2;28089:9;28085:18;28077:26;;28149:9;28143:4;28139:20;28135:1;28124:9;28120:17;28113:47;28177:131;28303:4;28177:131;:::i;:::-;28169:139;;27896:419;;;:::o;28321:222::-;28461:34;28457:1;28449:6;28445:14;28438:58;28530:5;28525:2;28517:6;28513:15;28506:30;28321:222;:::o;28549:366::-;28691:3;28712:67;28776:2;28771:3;28712:67;:::i;:::-;28705:74;;28788:93;28877:3;28788:93;:::i;:::-;28906:2;28901:3;28897:12;28890:19;;28549:366;;;:::o;28921:419::-;29087:4;29125:2;29114:9;29110:18;29102:26;;29174:9;29168:4;29164:20;29160:1;29149:9;29145:17;29138:47;29202:131;29328:4;29202:131;:::i;:::-;29194:139;;28921:419;;;:::o;29346:228::-;29486:34;29482:1;29474:6;29470:14;29463:58;29555:11;29550:2;29542:6;29538:15;29531:36;29346:228;:::o;29580:366::-;29722:3;29743:67;29807:2;29802:3;29743:67;:::i;:::-;29736:74;;29819:93;29908:3;29819:93;:::i;:::-;29937:2;29932:3;29928:12;29921:19;;29580:366;;;:::o;29952:419::-;30118:4;30156:2;30145:9;30141:18;30133:26;;30205:9;30199:4;30195:20;30191:1;30180:9;30176:17;30169:47;30233:131;30359:4;30233:131;:::i;:::-;30225:139;;29952:419;;;:::o;30377:194::-;30417:4;30437:20;30455:1;30437:20;:::i;:::-;30432:25;;30471:20;30489:1;30471:20;:::i;:::-;30466:25;;30515:1;30512;30508:9;30500:17;;30539:1;30533:4;30530:11;30527:37;;;30544:18;;:::i;:::-;30527:37;30377:194;;;;:::o;30577:191::-;30617:3;30636:20;30654:1;30636:20;:::i;:::-;30631:25;;30670:20;30688:1;30670:20;:::i;:::-;30665:25;;30713:1;30710;30706:9;30699:16;;30734:3;30731:1;30728:10;30725:36;;;30741:18;;:::i;:::-;30725:36;30577:191;;;;:::o;30774:177::-;30914:29;30910:1;30902:6;30898:14;30891:53;30774:177;:::o;30957:366::-;31099:3;31120:67;31184:2;31179:3;31120:67;:::i;:::-;31113:74;;31196:93;31285:3;31196:93;:::i;:::-;31314:2;31309:3;31305:12;31298:19;;30957:366;;;:::o;31329:419::-;31495:4;31533:2;31522:9;31518:18;31510:26;;31582:9;31576:4;31572:20;31568:1;31557:9;31553:17;31546:47;31610:131;31736:4;31610:131;:::i;:::-;31602:139;;31329:419;;;:::o;31754:180::-;31802:77;31799:1;31792:88;31899:4;31896:1;31889:15;31923:4;31920:1;31913:15;31940:180;31988:77;31985:1;31978:88;32085:4;32082:1;32075:15;32109:4;32106:1;32099:15;32126:114;32193:6;32227:5;32221:12;32211:22;;32126:114;;;:::o;32246:184::-;32345:11;32379:6;32374:3;32367:19;32419:4;32414:3;32410:14;32395:29;;32246:184;;;;:::o;32436:132::-;32503:4;32526:3;32518:11;;32556:4;32551:3;32547:14;32539:22;;32436:132;;;:::o;32574:108::-;32651:24;32669:5;32651:24;:::i;:::-;32646:3;32639:37;32574:108;;:::o;32688:179::-;32757:10;32778:46;32820:3;32812:6;32778:46;:::i;:::-;32856:4;32851:3;32847:14;32833:28;;32688:179;;;;:::o;32873:113::-;32943:4;32975;32970:3;32966:14;32958:22;;32873:113;;;:::o;33022:732::-;33141:3;33170:54;33218:5;33170:54;:::i;:::-;33240:86;33319:6;33314:3;33240:86;:::i;:::-;33233:93;;33350:56;33400:5;33350:56;:::i;:::-;33429:7;33460:1;33445:284;33470:6;33467:1;33464:13;33445:284;;;33546:6;33540:13;33573:63;33632:3;33617:13;33573:63;:::i;:::-;33566:70;;33659:60;33712:6;33659:60;:::i;:::-;33649:70;;33505:224;33492:1;33489;33485:9;33480:14;;33445:284;;;33449:14;33745:3;33738:10;;33146:608;;;33022:732;;;;:::o;33760:831::-;34023:4;34061:3;34050:9;34046:19;34038:27;;34075:71;34143:1;34132:9;34128:17;34119:6;34075:71;:::i;:::-;34156:80;34232:2;34221:9;34217:18;34208:6;34156:80;:::i;:::-;34283:9;34277:4;34273:20;34268:2;34257:9;34253:18;34246:48;34311:108;34414:4;34405:6;34311:108;:::i;:::-;34303:116;;34429:72;34497:2;34486:9;34482:18;34473:6;34429:72;:::i;:::-;34511:73;34579:3;34568:9;34564:19;34555:6;34511:73;:::i;:::-;33760:831;;;;;;;;:::o;34597:483::-;34768:4;34806:2;34795:9;34791:18;34783:26;;34819:71;34887:1;34876:9;34872:17;34863:6;34819:71;:::i;:::-;34937:9;34931:4;34927:20;34922:2;34911:9;34907:18;34900:48;34965:108;35068:4;35059:6;34965:108;:::i;:::-;34957:116;;34597:483;;;;;:::o

Swarm Source

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