ETH Price: $3,274.76 (+0.92%)

Token

Bank of Pearl (🔺)
 

Overview

Max Total Supply

10,000,111,101,000 🔺

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
69,556,220,053.818602042277921231 🔺

Value
$0.00
0x5cc2f9c7a3a42d9048a31c87a53335194d949f47
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:
BankofPearl

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-02
*/

/*

    One Pearl 
    One Bank
    One Mystery

    https://t.me/bankofpearl
    
        __ 
       /\ \ 
      / /\ \
     / /__\ \
    /_/____\_\ 
    
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        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;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit(uint256 amount) external;
    function claimDividend(address shareholder) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;

    address public immutable Pearl = address(0xB4743bfABfcE34537A4baf0F3eB2F269246D180A);


    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner) {
        _token = msg.sender;
        _owner = owner;
    }

    receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit(uint256 amount) external override onlyToken {
        
        if (amount > 0) {        
            totalDividends = totalDividends.add(amount);
            dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
        }
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            IERC20(Pearl).transfer(shareholder, amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
    
    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }


    function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a Bank of Pearl shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

contract BankofPearl is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    address public immutable Pearl = address(0xB4743bfABfcE34537A4baf0F3eB2F269246D180A);

    string private constant  _name = "Bank of Pearl";
    string private constant _symbol = "\xf0\x9f\x94\xba";
    uint8 private constant _decimals = 18;

    uint256 private _totalSupply = 10000111101000 * (10 ** _decimals);
    uint256 private _maxTxAmountBuy = _totalSupply;
    

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

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) private isBot;
            
    uint256 private totalFee = 4;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x495554F082801079d3F448D8fC3a1DA45fB2e213);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    uint256 private maxBuy = _totalSupply.mul(4).div(100);
    uint256 public numTokensSellToAddToLiquidity = _totalSupply.mul(1).div(1000);

    DividendDistributor private distributor;    
    
    bool public blacklistEnabled = false;
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(_owner);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;             
              
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;        

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading
        if (blacklistEnabled) {
            require (!isBot[sender] && !isBot[recipient], "Bot!");
        }
        if (buyLimit) { 
            if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir");        
        }

        if (sender == pair && recipient != address(router) && !isFeeExempt[recipient]) {
            require (cooldown[recipient] < block.timestamp);
            cooldown[recipient] = block.timestamp + 60 seconds;
            if (block.number <= (launchedAt)) { 
                isBot[recipient] = true;
                isDividendExempt[recipient] = true; 
            }
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }

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

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        emit Transfer(sender, recipient, amountReceived);
        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 shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {

        uint256 amountToSwap = balanceOf(address(this));        

        swapTokensForEth(amountToSwap.div(2));
        swapTokensForPearl(amountToSwap.div(2));

        uint256 dividends = IERC20(Pearl).balanceOf(address(this));

        bool success = IERC20(Pearl).transfer(address(distributor), dividends);

        if (success) {
            distributor.deposit(dividends);            
        }
             
        payable(marketingWallet).transfer(address(this).balance);        
    }

    

    function swapTokensForPearl(uint256 tokenAmount) private {

        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = WETH;
        path[2] = Pearl;

        // make the swap
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    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] = WETH;

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

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

    
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setBot(address _address, bool toggle) external onlyOwner {
        isBot[_address] = toggle;
        _setIsDividendExempt(_address, toggle);
    }
    
    
    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _fee) external onlyOwner {
        require (_fee <= 10, "Fee can't exceed 10%");
        totalFee = _fee;
    }
  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return distributor.getClaimableDividendOf(shareholder);
    }
    
    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    } 

    function getTotalDividends() external view returns (uint256) {
        return distributor.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return distributor.totalClaimed();
    }

     function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return distributor.getDividendsClaimedOf(shareholder);
    }

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }

    function checkBot(address account) public view returns (bool) {
        return isBot[account];
    }

    function setBlacklistEnabled() external onlyOwner {
        require (blacklistEnabled == false, "can only be called once");
        blacklistEnabled = true;
    }

    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        numTokensSellToAddToLiquidity = amount * 10 ** _decimals;
    } 
   
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Pearl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b4743bfabfce34537a4baf0f3eb2f269246d180a73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506012600a620000e0919062000c11565b6509185511e448620000f3919062000c62565b6004556004546005556004600c556064600d5573495554f082801079d3f448d8fc3a1da45fb2e213600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260016101000a81548160ff021916908315150217905550620001ac606462000198600480546200092c60201b62001ab51790919060201c565b620009af60201b62001b2f1790919060201c565b601355620001e76103e8620001d360016004546200092c60201b62001ab51790919060201c565b620009af60201b62001b2f1790919060201c565b6014556000601560146101000a81548160ff0219169083151502179055503480156200021257600080fd5b5060405162006e9738038062006e97833981810160405281019062000238919062000d2d565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000363919062000d2d565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000411573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000437919062000d2d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200049592919062000d70565b6020604051808303816000875af1158015620004b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004db919062000d2d565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080604051620005ed9062000a69565b620005f9919062000d9d565b604051809103906000f08015801562000616573d6000803e3d6000fd5b50601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200091d919062000dcb565b60405180910390a35062000faf565b6000808303620009405760009050620009a9565b6000828462000950919062000c62565b905082848262000961919062000e17565b14620009a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200099b9062000ed6565b60405180910390fd5b809150505b92915050565b6000620009f983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a0160201b60201c565b905092915050565b6000808311829062000a4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a42919062000f8b565b60405180910390fd5b506000838562000a5c919062000e17565b9050809150509392505050565b611ace80620053c983390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000b055780860481111562000add5762000adc62000a77565b5b600185161562000aed5780820291505b808102905062000afd8562000aa6565b945062000abd565b94509492505050565b60008262000b20576001905062000bf3565b8162000b30576000905062000bf3565b816001811462000b49576002811462000b545762000b8a565b600191505062000bf3565b60ff84111562000b695762000b6862000a77565b5b8360020a91508482111562000b835762000b8262000a77565b5b5062000bf3565b5060208310610133831016604e8410600b841016171562000bc45782820a90508381111562000bbe5762000bbd62000a77565b5b62000bf3565b62000bd3848484600162000ab3565b9250905081840481111562000bed5762000bec62000a77565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000c1e8262000bfa565b915062000c2b8362000c04565b925062000c5a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b0e565b905092915050565b600062000c6f8262000bfa565b915062000c7c8362000bfa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cb85762000cb762000a77565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cf58262000cc8565b9050919050565b62000d078162000ce8565b811462000d1357600080fd5b50565b60008151905062000d278162000cfc565b92915050565b60006020828403121562000d465762000d4562000cc3565b5b600062000d568482850162000d16565b91505092915050565b62000d6a8162000ce8565b82525050565b600060408201905062000d87600083018562000d5f565b62000d96602083018462000d5f565b9392505050565b600060208201905062000db4600083018462000d5f565b92915050565b62000dc58162000bfa565b82525050565b600060208201905062000de2600083018462000dba565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e248262000bfa565b915062000e318362000bfa565b92508262000e445762000e4362000de8565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000ebe60218362000e4f565b915062000ecb8262000e60565b604082019050919050565b6000602082019050818103600083015262000ef18162000eaf565b9050919050565b600081519050919050565b60005b8381101562000f2357808201518184015260208101905062000f06565b8381111562000f33576000848401525b50505050565b6000601f19601f8301169050919050565b600062000f578262000ef8565b62000f63818562000e4f565b935062000f7581856020860162000f03565b62000f808162000f39565b840191505092915050565b6000602082019050818103600083015262000fa7818462000f4a565b905092915050565b6080516143e962000fe060003960008181610a5001528181612c7601528181612d14015261344901526143e96000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063bf56b371116100ab578063f0fc6bca1161006f578063f0fc6bca14610874578063f2fde38b1461088b578063f4293890146108b4578063f708a64f146108cb578063f887ea40146108f45761023b565b8063bf56b3711461079f578063bffb691d146107ca578063c9567bf9146107f5578063d12a76881461080c578063dd62ed3e146108375761023b565b80638ecc37fb116100f25780638ecc37fb1461069257806395d89b41146106cf578063a8aa1b31146106fa578063a9059cbb14610725578063b1a4e0dc146107625761023b565b806370a08231146105bd578063736a83a1146105fa57806375f0a87414610625578063764ca51214610650578063893d20e8146106675761023b565b80632f54bf6e116101bc5780635cc33f74116101805780635cc33f74146104da5780635d098b3814610517578063658d4b7f1461054057806367ee5f091461056957806369fe0e2d146105945761023b565b80632f54bf6e146103f5578063313ce56714610432578063342aa8b51461045d5780633e07ce5b14610486578063571ac8b01461049d5761023b565b806318160ddd1161020357806318160ddd146102fc57806323b635851461032757806323b872dd1461036457806329e04b4a146103a15780632b112e49146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b5780630ae703cc146102a857806315f7e05e146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561091f565b60405161026291906135e9565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906136a4565b61095c565b60405161029f91906136ff565b60405180910390f35b3480156102b457600080fd5b506102bd610a4e565b6040516102ca9190613729565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190613744565b610a72565b005b34801561030857600080fd5b50610311610b4a565b60405161031e9190613780565b60405180910390f35b34801561033357600080fd5b5061034e6004803603810190610349919061379b565b610b54565b60405161035b91906136ff565b60405180910390f35b34801561037057600080fd5b5061038b600480360381019061038691906137c8565b610bd2565b60405161039891906136ff565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061379b565b610dd2565b005b3480156103d657600080fd5b506103df610e94565b6040516103ec9190613780565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190613744565b610f16565b60405161042991906136ff565b60405180910390f35b34801561043e57600080fd5b50610447610f6f565b6040516104549190613837565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f919061387e565b610f78565b005b34801561049257600080fd5b5061049b611025565b005b3480156104a957600080fd5b506104c460048036038101906104bf9190613744565b61108a565b6040516104d191906136ff565b60405180910390f35b3480156104e657600080fd5b5061050160048036038101906104fc9190613744565b6110bd565b60405161050e9190613780565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190613744565b611162565b005b34801561054c57600080fd5b506105676004803603810190610562919061387e565b6111ee565b005b34801561057557600080fd5b5061057e611291565b60405161058b9190613780565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b6919061379b565b611329565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613744565b6113bf565b6040516105f19190613780565b60405180910390f35b34801561060657600080fd5b5061060f611408565b60405161061c9190613780565b60405180910390f35b34801561063157600080fd5b5061063a6114a0565b60405161064791906138df565b60405180910390f35b34801561065c57600080fd5b506106656114c6565b005b34801561067357600080fd5b5061067c611581565b6040516106899190613729565b60405180910390f35b34801561069e57600080fd5b506106b960048036038101906106b49190613744565b6115aa565b6040516106c69190613780565b60405180910390f35b3480156106db57600080fd5b506106e461164f565b6040516106f191906135e9565b60405180910390f35b34801561070657600080fd5b5061070f61168c565b60405161071c9190613729565b60405180910390f35b34801561073157600080fd5b5061074c600480360381019061074791906136a4565b6116b2565b60405161075991906136ff565b60405180910390f35b34801561076e57600080fd5b5061078960048036038101906107849190613744565b6116c7565b60405161079691906136ff565b60405180910390f35b3480156107ab57600080fd5b506107b461171d565b6040516107c19190613780565b60405180910390f35b3480156107d657600080fd5b506107df611723565b6040516107ec91906136ff565b60405180910390f35b34801561080157600080fd5b5061080a611736565b005b34801561081857600080fd5b506108216117a2565b60405161082e9190613780565b60405180910390f35b34801561084357600080fd5b5061085e600480360381019061085991906138fa565b6117a8565b60405161086b9190613780565b60405180910390f35b34801561088057600080fd5b5061088961182f565b005b34801561089757600080fd5b506108b260048036038101906108ad9190613966565b6118be565b005b3480156108c057600080fd5b506108c9611980565b005b3480156108d757600080fd5b506108f260048036038101906108ed919061387e565b611a39565b005b34801561090057600080fd5b50610909611a8f565b60405161091691906139f2565b60405180910390f35b60606040518060400160405280600d81526020017f42616e6b206f6620506561726c00000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a3c9190613780565b60405180910390a36001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610a7b33610f16565b610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190613a59565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610b159190613729565b600060405180830381600087803b158015610b2f57600080fd5b505af1158015610b43573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610b5f33610f16565b610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9590613a59565b60405180910390fd5b610bcb30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b79565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dbe57610d3d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4c9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dc9848484611db0565b90509392505050565b610ddb33610f16565b610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190613a59565b60405180910390fd5b610e306064600454611b2f90919063ffffffff16565b811115610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6990613ac5565b60405180910390fd5b6012600a610e809190613c47565b81610e8b9190613c92565b60148190555050565b6000610f11610ec4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113bf565b610f03610ef2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113bf565b6004546128b090919063ffffffff16565b6128b090919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610f8133610f16565b610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613a59565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061102182826128fa565b5050565b61102e33610f16565b61106d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106490613a59565b60405180910390fd5b6000601260016101000a81548160ff021916908315150217905550565b60006110b6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61095c565b9050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b815260040161111a9190613729565b602060405180830381865afa158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b9190613d01565b9050919050565b61116b33610f16565b6111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190613a59565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111f733610f16565b611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90613a59565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190613d01565b905090565b61133233610f16565b611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890613a59565b60405180910390fd5b600a8111156113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac90613d7a565b60405180910390fd5b80600c8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149b9190613d01565b905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114cf33610f16565b61150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590613a59565b60405180910390fd5b60001515601560149054906101000a900460ff16151514611564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155b90613de6565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b81526004016116079190613729565b602060405180830381865afa158015611624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116489190613d01565b9050919050565b60606040518060400160405280600481526020017ff09f94ba00000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116bf338484611db0565b905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601560149054906101000a900460ff1681565b61173f33610f16565b61177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590613a59565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b60145481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b815260040161188a9190613729565b600060405180830381600087803b1580156118a457600080fd5b505af11580156118b8573d6000803e3d6000fd5b50505050565b6118c733610f16565b611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd90613a59565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516119759190613e27565b60405180910390a150565b61198933610f16565b6119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90613a59565b60405180910390fd5b6000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a35573d6000803e3d6000fd5b5050565b611a4233610f16565b611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7890613a59565b60405180910390fd5b611a8b82826128fa565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303611ac75760009050611b29565b60008284611ad59190613c92565b9050828482611ae49190613e71565b14611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b90613f14565b60405180910390fd5b809150505b92915050565b6000611b7183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b52565b905092915050565b6000611c04826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d399190613780565b60405180910390a3600190509392505050565b6000838311158290611d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8b91906135e9565b60405180910390fd5b5060008385611da39190613f34565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e5b575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb057601260009054906101000a900460ff16611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea690613fb4565b60405180910390fd5b5b601560149054906101000a900460ff1615611fa957600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f695750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90614020565b60405180910390fd5b5b601260019054906101000a900460ff16156120b25760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612066575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120b1576013548211156120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a79061408c565b60405180910390fd5b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561215d5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121b35750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561230e5742600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061220357600080fd5b603c4261221091906140ac565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154431161230d576001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b60158054906101000a900460ff16156123335761232c848484611b79565b90506128a9565b600061233e306113bf565b90506000601454821015905060008180156123a65750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156123ba575060006123b8306113bf565b115b905080156123cb576123ca612c13565b5b612454856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4c9092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006124a38888612ef0565b6124ad57856124b8565b6124b7888761304d565b5b905061250c81600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb590919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156125f75750600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126c557601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9689600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612698929190614102565b600060405180830381600087803b1580156126b257600080fd5b505af19250505080156126c3575060015b505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415801561276d5750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561283b57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161280e929190614102565b600060405180830381600087803b15801561282857600080fd5b505af1925050508015612839575060015b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128989190613780565b60405180910390a360019450505050505b9392505050565b60006128f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d4c565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156129845750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61298d57600080fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612a7f57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612a48929190614166565b600060405180830381600087803b158015612a6257600080fd5b505af1158015612a76573d6000803e3d6000fd5b50505050612b4e565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612b1b929190614102565b600060405180830381600087803b158015612b3557600080fd5b505af1158015612b49573d6000803e3d6000fd5b505050505b5050565b60008083118290612b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9091906135e9565b60405180910390fd5b5060008385612ba89190613e71565b9050809150509392505050565b6000808284612bc491906140ac565b905083811015612c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c00906141db565b60405180910390fd5b8091505092915050565b60016015806101000a81548160ff0219169083151502179055506000612c38306113bf565b9050612c56612c51600283611b2f90919063ffffffff16565b613191565b612c72612c6d600283611b2f90919063ffffffff16565b613339565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612ccd9190613729565b602060405180830381865afa158015612cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0e9190613d01565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612d8f929190614102565b6020604051808303816000875af1158015612dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd29190614210565b90508015612e6857601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25836040518263ffffffff1660e01b8152600401612e359190613780565b600060405180830381600087803b158015612e4f57600080fd5b505af1158015612e63573d6000803e3d6000fd5b505050505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612ed0573d6000803e3d6000fd5b5050505060006015806101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f935750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1580156130455750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806130445750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080613079600d5461306b600c5486611ab590919063ffffffff16565b611b2f90919063ffffffff16565b90506130cd81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161316d9190613780565b60405180910390a361318881846128b090919063ffffffff16565b91505092915050565b6000600267ffffffffffffffff8111156131ae576131ad61423d565b5b6040519080825280602002602001820160405280156131dc5781602001602082028036833780820191505090505b50905030816000815181106131f4576131f361426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106132655761326461426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613303959493929190614359565b600060405180830381600087803b15801561331d57600080fd5b505af1158015613331573d6000803e3d6000fd5b505050505050565b6000600367ffffffffffffffff8111156133565761335561423d565b5b6040519080825280602002602001820160405280156133845781602001602082028036833780820191505090505b509050308160008151811061339c5761339b61426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061340d5761340c61426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061347c5761347b61426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958360008430426040518663ffffffff1660e01b815260040161351a959493929190614359565b600060405180830381600087803b15801561353457600080fd5b505af1158015613548573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561358a57808201518184015260208101905061356f565b83811115613599576000848401525b50505050565b6000601f19601f8301169050919050565b60006135bb82613550565b6135c5818561355b565b93506135d581856020860161356c565b6135de8161359f565b840191505092915050565b6000602082019050818103600083015261360381846135b0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061363b82613610565b9050919050565b61364b81613630565b811461365657600080fd5b50565b60008135905061366881613642565b92915050565b6000819050919050565b6136818161366e565b811461368c57600080fd5b50565b60008135905061369e81613678565b92915050565b600080604083850312156136bb576136ba61360b565b5b60006136c985828601613659565b92505060206136da8582860161368f565b9150509250929050565b60008115159050919050565b6136f9816136e4565b82525050565b600060208201905061371460008301846136f0565b92915050565b61372381613630565b82525050565b600060208201905061373e600083018461371a565b92915050565b60006020828403121561375a5761375961360b565b5b600061376884828501613659565b91505092915050565b61377a8161366e565b82525050565b60006020820190506137956000830184613771565b92915050565b6000602082840312156137b1576137b061360b565b5b60006137bf8482850161368f565b91505092915050565b6000806000606084860312156137e1576137e061360b565b5b60006137ef86828701613659565b935050602061380086828701613659565b92505060406138118682870161368f565b9150509250925092565b600060ff82169050919050565b6138318161381b565b82525050565b600060208201905061384c6000830184613828565b92915050565b61385b816136e4565b811461386657600080fd5b50565b60008135905061387881613852565b92915050565b600080604083850312156138955761389461360b565b5b60006138a385828601613659565b92505060206138b485828601613869565b9150509250929050565b60006138c982613610565b9050919050565b6138d9816138be565b82525050565b60006020820190506138f460008301846138d0565b92915050565b600080604083850312156139115761391061360b565b5b600061391f85828601613659565b925050602061393085828601613659565b9150509250929050565b613943816138be565b811461394e57600080fd5b50565b6000813590506139608161393a565b92915050565b60006020828403121561397c5761397b61360b565b5b600061398a84828501613951565b91505092915050565b6000819050919050565b60006139b86139b36139ae84613610565b613993565b613610565b9050919050565b60006139ca8261399d565b9050919050565b60006139dc826139bf565b9050919050565b6139ec816139d1565b82525050565b6000602082019050613a0760008301846139e3565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613a4360068361355b565b9150613a4e82613a0d565b602082019050919050565b60006020820190508181036000830152613a7281613a36565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b6000613aaf600f8361355b565b9150613aba82613a79565b602082019050919050565b60006020820190508181036000830152613ade81613aa2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613b6b57808604811115613b4757613b46613ae5565b5b6001851615613b565780820291505b8081029050613b6485613b14565b9450613b2b565b94509492505050565b600082613b845760019050613c40565b81613b925760009050613c40565b8160018114613ba85760028114613bb257613be1565b6001915050613c40565b60ff841115613bc457613bc3613ae5565b5b8360020a915084821115613bdb57613bda613ae5565b5b50613c40565b5060208310610133831016604e8410600b8410161715613c165782820a905083811115613c1157613c10613ae5565b5b613c40565b613c238484846001613b21565b92509050818404811115613c3a57613c39613ae5565b5b81810290505b9392505050565b6000613c528261366e565b9150613c5d8361381b565b9250613c8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b74565b905092915050565b6000613c9d8261366e565b9150613ca88361366e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ce157613ce0613ae5565b5b828202905092915050565b600081519050613cfb81613678565b92915050565b600060208284031215613d1757613d1661360b565b5b6000613d2584828501613cec565b91505092915050565b7f4665652063616e27742065786365656420313025000000000000000000000000600082015250565b6000613d6460148361355b565b9150613d6f82613d2e565b602082019050919050565b60006020820190508181036000830152613d9381613d57565b9050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000613dd060178361355b565b9150613ddb82613d9a565b602082019050919050565b60006020820190508181036000830152613dff81613dc3565b9050919050565b6000613e11826139bf565b9050919050565b613e2181613e06565b82525050565b6000602082019050613e3c6000830184613e18565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e7c8261366e565b9150613e878361366e565b925082613e9757613e96613e42565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613efe60218361355b565b9150613f0982613ea2565b604082019050919050565b60006020820190508181036000830152613f2d81613ef1565b9050919050565b6000613f3f8261366e565b9150613f4a8361366e565b925082821015613f5d57613f5c613ae5565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613f9e60188361355b565b9150613fa982613f68565b602082019050919050565b60006020820190508181036000830152613fcd81613f91565b9050919050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b600061400a60048361355b565b915061401582613fd4565b602082019050919050565b6000602082019050818103600083015261403981613ffd565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000614076600c8361355b565b915061408182614040565b602082019050919050565b600060208201905081810360008301526140a581614069565b9050919050565b60006140b78261366e565b91506140c28361366e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140f7576140f6613ae5565b5b828201905092915050565b6000604082019050614117600083018561371a565b6141246020830184613771565b9392505050565b6000819050919050565b600061415061414b6141468461412b565b613993565b61366e565b9050919050565b61416081614135565b82525050565b600060408201905061417b600083018561371a565b6141886020830184614157565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006141c5601b8361355b565b91506141d08261418f565b602082019050919050565b600060208201905081810360008301526141f4816141b8565b9050919050565b60008151905061420a81613852565b92915050565b6000602082840312156142265761422561360b565b5b6000614234848285016141fb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142d081613630565b82525050565b60006142e283836142c7565b60208301905092915050565b6000602082019050919050565b60006143068261429b565b61431081856142a6565b935061431b836142b7565b8060005b8381101561434c57815161433388826142d6565b975061433e836142ee565b92505060018101905061431f565b5085935050505092915050565b600060a08201905061436e6000830188613771565b61437b6020830187614157565b818103604083015261438d81866142fb565b905061439c606083018561371a565b6143a96080830184613771565b969550505050505056fea26469706673582212201094f75daeff0d1cd3329454d4cfe99bde5e77f6a2f33a6902bf4169036c202b64736f6c634300080d003360a060405273b4743bfabfce34537a4baf0f3eb2f269246d180a73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506ec097ce7bc90715b34b9f10000000006009553480156200006b57600080fd5b5060405162001ace38038062001ace833981810160405281019062000091919062000183565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001b5565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200014b826200011e565b9050919050565b6200015d816200013e565b81146200016957600080fd5b50565b6000815190506200017d8162000152565b92915050565b6000602082840312156200019c576200019b62000119565b5b6000620001ac848285016200016c565b91505092915050565b6080516118f6620001d8600039600081816103790152610c5a01526118f66000f3fe6080604052600436106100e15760003560e01c8063997664d71161007f578063ce7c2ac211610059578063ce7c2ac2146102b7578063d54ad2a1146102f6578063e2d2e21914610321578063ecd0c0c31461034c576100e8565b8063997664d714610238578063b2bdfa7b14610263578063b6b55f251461028e576100e8565b806315f7e05e116100bb57806315f7e05e1461016a5780633a98ef39146101935780635cc33f74146101be5780638ecc37fb146101fb576100e8565b80630ae703cc146100ed5780631014edf51461011857806314b6ca9614610141576100e8565b366100e857005b600080fd5b3480156100f957600080fd5b50610102610377565b60405161010f9190611259565b60405180910390f35b34801561012457600080fd5b5061013f600480360381019061013a91906112db565b61039b565b005b34801561014d57600080fd5b506101686004803603810190610163919061131b565b610455565b005b34801561017657600080fd5b50610191600480360381019061018c919061135b565b610714565b005b34801561019f57600080fd5b506101a8610778565b6040516101b59190611397565b60405180910390f35b3480156101ca57600080fd5b506101e560048036038101906101e0919061135b565b61077e565b6040516101f29190611397565b60405180910390f35b34801561020757600080fd5b50610222600480360381019061021d919061135b565b61084e565b60405161022f9190611397565b60405180910390f35b34801561024457600080fd5b5061024d610967565b60405161025a9190611397565b60405180910390f35b34801561026f57600080fd5b5061027861096d565b6040516102859190611259565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b091906113b2565b610993565b005b3480156102c357600080fd5b506102de60048036038101906102d9919061135b565b610a56565b6040516102ed939291906113df565b60405180910390f35b34801561030257600080fd5b5061030b610a80565b6040516103189190611397565b60405180910390f35b34801561032d57600080fd5b50610336610a86565b6040516103439190611397565b60405180910390f35b34801561035857600080fd5b50610361610a8c565b60405161036e9190611259565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103f557600080fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc600085116104225782610424565b845b9081150290604051600060405180830381858888f1935050505015801561044f573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104ad57600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156105025761050182610ab0565b5b60008111801561055457506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156105675761056282610cfd565b6105c9565b6000811480156105b957506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156105c8576105c782610dac565b5b5b61063281610624600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600554610fb390919063ffffffff16565b610ffd90919063ffffffff16565b60058190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506106ca600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461105b565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461076c57600080fd5b61077581610ab0565b50565b60055481565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90611499565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154036108a25760009050610962565b60006108ef600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461105b565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161094a57600092505050610962565b61095d8183610fb390919063ffffffff16565b925050505b919050565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109eb57600080fd5b6000811115610a5357610a0981600654610ffd90919063ffffffff16565b600681905550610a4c610a3b600554610a2d8460095461108d90919063ffffffff16565b61110790919063ffffffff16565b600854610ffd90919063ffffffff16565b6008819055505b50565b60046020528060005260406000206000915090508060000154908060010154908060020154905083565b60075481565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001540315610cfa576000610b068261084e565b90506000811115610cf857610b2681600754610ffd90919063ffffffff16565b600781905550610b8181600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610ffd90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610c12600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461105b565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610cb39291906114b9565b6020604051808303816000875af1158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf6919061151a565b505b505b50565b600280549050600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60026001600280549050610dc09190611576565b81548110610dd157610dd06115aa565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610e4f57610e4e6115aa565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546003600060026001600280549050610eef9190611576565b81548110610f0057610eff6115aa565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506002805480610f7b57610f7a6115d9565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000610ff583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611151565b905092915050565b600080828461100c9190611608565b905083811015611051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611048906116aa565b60405180910390fd5b8091505092915050565b60006110866009546110786008548561108d90919063ffffffff16565b61110790919063ffffffff16565b9050919050565b600080830361109f5760009050611101565b600082846110ad91906116ca565b90508284826110bc9190611753565b146110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f3906117f6565b60405180910390fd5b809150505b92915050565b600061114983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111b5565b905092915050565b6000838311158290611199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611190919061189e565b60405180910390fd5b50600083856111a89190611576565b9050809150509392505050565b600080831182906111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f3919061189e565b60405180910390fd5b506000838561120b9190611753565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061124382611218565b9050919050565b61125381611238565b82525050565b600060208201905061126e600083018461124a565b92915050565b600080fd5b6000819050919050565b61128c81611279565b811461129757600080fd5b50565b6000813590506112a981611283565b92915050565b6112b881611238565b81146112c357600080fd5b50565b6000813590506112d5816112af565b92915050565b600080604083850312156112f2576112f1611274565b5b60006113008582860161129a565b9250506020611311858286016112c6565b9150509250929050565b6000806040838503121561133257611331611274565b5b6000611340858286016112c6565b92505060206113518582860161129a565b9150509250929050565b60006020828403121561137157611370611274565b5b600061137f848285016112c6565b91505092915050565b61139181611279565b82525050565b60006020820190506113ac6000830184611388565b92915050565b6000602082840312156113c8576113c7611274565b5b60006113d68482850161129a565b91505092915050565b60006060820190506113f46000830186611388565b6114016020830185611388565b61140e6040830184611388565b949350505050565b600082825260208201905092915050565b7f596f75277265206e6f7420612042616e6b206f6620506561726c20736861726560008201527f686f6c6465722100000000000000000000000000000000000000000000000000602082015250565b6000611483602783611416565b915061148e82611427565b604082019050919050565b600060208201905081810360008301526114b281611476565b9050919050565b60006040820190506114ce600083018561124a565b6114db6020830184611388565b9392505050565b60008115159050919050565b6114f7816114e2565b811461150257600080fd5b50565b600081519050611514816114ee565b92915050565b6000602082840312156115305761152f611274565b5b600061153e84828501611505565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061158182611279565b915061158c83611279565b92508282101561159f5761159e611547565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061161382611279565b915061161e83611279565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561165357611652611547565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611694601b83611416565b915061169f8261165e565b602082019050919050565b600060208201905081810360008301526116c381611687565b9050919050565b60006116d582611279565b91506116e083611279565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561171957611718611547565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061175e82611279565b915061176983611279565b92508261177957611778611724565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006117e0602183611416565b91506117eb82611784565b604082019050919050565b6000602082019050818103600083015261180f816117d3565b9050919050565b600081519050919050565b60005b8381101561183f578082015181840152602081019050611824565b8381111561184e576000848401525b50505050565b6000601f19601f8301169050919050565b600061187082611816565b61187a8185611416565b935061188a818560208601611821565b61189381611854565b840191505092915050565b600060208201905081810360008301526118b88184611865565b90509291505056fea26469706673582212205ad088e5bcd86302bfb0474669d1fc38c097a4a52424a50074502e0bcc54605164736f6c634300080d00330000000000000000000000002c4390c7eec2dd8eb9ecbf0ce179860b2dafb20f

Deployed Bytecode

0x6080604052600436106102345760003560e01c806370a082311161012e578063bf56b371116100ab578063f0fc6bca1161006f578063f0fc6bca14610874578063f2fde38b1461088b578063f4293890146108b4578063f708a64f146108cb578063f887ea40146108f45761023b565b8063bf56b3711461079f578063bffb691d146107ca578063c9567bf9146107f5578063d12a76881461080c578063dd62ed3e146108375761023b565b80638ecc37fb116100f25780638ecc37fb1461069257806395d89b41146106cf578063a8aa1b31146106fa578063a9059cbb14610725578063b1a4e0dc146107625761023b565b806370a08231146105bd578063736a83a1146105fa57806375f0a87414610625578063764ca51214610650578063893d20e8146106675761023b565b80632f54bf6e116101bc5780635cc33f74116101805780635cc33f74146104da5780635d098b3814610517578063658d4b7f1461054057806367ee5f091461056957806369fe0e2d146105945761023b565b80632f54bf6e146103f5578063313ce56714610432578063342aa8b51461045d5780633e07ce5b14610486578063571ac8b01461049d5761023b565b806318160ddd1161020357806318160ddd146102fc57806323b635851461032757806323b872dd1461036457806329e04b4a146103a15780632b112e49146103ca5761023b565b806306fdde0314610240578063095ea7b31461026b5780630ae703cc146102a857806315f7e05e146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b5061025561091f565b60405161026291906135e9565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906136a4565b61095c565b60405161029f91906136ff565b60405180910390f35b3480156102b457600080fd5b506102bd610a4e565b6040516102ca9190613729565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190613744565b610a72565b005b34801561030857600080fd5b50610311610b4a565b60405161031e9190613780565b60405180910390f35b34801561033357600080fd5b5061034e6004803603810190610349919061379b565b610b54565b60405161035b91906136ff565b60405180910390f35b34801561037057600080fd5b5061038b600480360381019061038691906137c8565b610bd2565b60405161039891906136ff565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061379b565b610dd2565b005b3480156103d657600080fd5b506103df610e94565b6040516103ec9190613780565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190613744565b610f16565b60405161042991906136ff565b60405180910390f35b34801561043e57600080fd5b50610447610f6f565b6040516104549190613837565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f919061387e565b610f78565b005b34801561049257600080fd5b5061049b611025565b005b3480156104a957600080fd5b506104c460048036038101906104bf9190613744565b61108a565b6040516104d191906136ff565b60405180910390f35b3480156104e657600080fd5b5061050160048036038101906104fc9190613744565b6110bd565b60405161050e9190613780565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190613744565b611162565b005b34801561054c57600080fd5b506105676004803603810190610562919061387e565b6111ee565b005b34801561057557600080fd5b5061057e611291565b60405161058b9190613780565b60405180910390f35b3480156105a057600080fd5b506105bb60048036038101906105b6919061379b565b611329565b005b3480156105c957600080fd5b506105e460048036038101906105df9190613744565b6113bf565b6040516105f19190613780565b60405180910390f35b34801561060657600080fd5b5061060f611408565b60405161061c9190613780565b60405180910390f35b34801561063157600080fd5b5061063a6114a0565b60405161064791906138df565b60405180910390f35b34801561065c57600080fd5b506106656114c6565b005b34801561067357600080fd5b5061067c611581565b6040516106899190613729565b60405180910390f35b34801561069e57600080fd5b506106b960048036038101906106b49190613744565b6115aa565b6040516106c69190613780565b60405180910390f35b3480156106db57600080fd5b506106e461164f565b6040516106f191906135e9565b60405180910390f35b34801561070657600080fd5b5061070f61168c565b60405161071c9190613729565b60405180910390f35b34801561073157600080fd5b5061074c600480360381019061074791906136a4565b6116b2565b60405161075991906136ff565b60405180910390f35b34801561076e57600080fd5b5061078960048036038101906107849190613744565b6116c7565b60405161079691906136ff565b60405180910390f35b3480156107ab57600080fd5b506107b461171d565b6040516107c19190613780565b60405180910390f35b3480156107d657600080fd5b506107df611723565b6040516107ec91906136ff565b60405180910390f35b34801561080157600080fd5b5061080a611736565b005b34801561081857600080fd5b506108216117a2565b60405161082e9190613780565b60405180910390f35b34801561084357600080fd5b5061085e600480360381019061085991906138fa565b6117a8565b60405161086b9190613780565b60405180910390f35b34801561088057600080fd5b5061088961182f565b005b34801561089757600080fd5b506108b260048036038101906108ad9190613966565b6118be565b005b3480156108c057600080fd5b506108c9611980565b005b3480156108d757600080fd5b506108f260048036038101906108ed919061387e565b611a39565b005b34801561090057600080fd5b50610909611a8f565b60405161091691906139f2565b60405180910390f35b60606040518060400160405280600d81526020017f42616e6b206f6620506561726c00000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a3c9190613780565b60405180910390a36001905092915050565b7f000000000000000000000000b4743bfabfce34537a4baf0f3eb2f269246d180a81565b610a7b33610f16565b610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190613a59565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610b159190613729565b600060405180830381600087803b158015610b2f57600080fd5b505af1158015610b43573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610b5f33610f16565b610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9590613a59565b60405180910390fd5b610bcb30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b79565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dbe57610d3d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4c9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610dc9848484611db0565b90509392505050565b610ddb33610f16565b610e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1190613a59565b60405180910390fd5b610e306064600454611b2f90919063ffffffff16565b811115610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6990613ac5565b60405180910390fd5b6012600a610e809190613c47565b81610e8b9190613c92565b60148190555050565b6000610f11610ec4600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113bf565b610f03610ef2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113bf565b6004546128b090919063ffffffff16565b6128b090919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b610f8133610f16565b610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790613a59565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061102182826128fa565b5050565b61102e33610f16565b61106d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106490613a59565b60405180910390fd5b6000601260016101000a81548160ff021916908315150217905550565b60006110b6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61095c565b9050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b815260040161111a9190613729565b602060405180830381865afa158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b9190613d01565b9050919050565b61116b33610f16565b6111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190613a59565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111f733610f16565b611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90613a59565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190613d01565b905090565b61133233610f16565b611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890613a59565b60405180910390fd5b600a8111156113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac90613d7a565b60405180910390fd5b80600c8190555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149b9190613d01565b905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114cf33610f16565b61150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590613a59565b60405180910390fd5b60001515601560149054906101000a900460ff16151514611564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155b90613de6565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b81526004016116079190613729565b602060405180830381865afa158015611624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116489190613d01565b9050919050565b60606040518060400160405280600481526020017ff09f94ba00000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116bf338484611db0565b905092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b601560149054906101000a900460ff1681565b61173f33610f16565b61177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590613a59565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b60145481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b815260040161188a9190613729565b600060405180830381600087803b1580156118a457600080fd5b505af11580156118b8573d6000803e3d6000fd5b50505050565b6118c733610f16565b611906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fd90613a59565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516119759190613e27565b60405180910390a150565b61198933610f16565b6119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90613a59565b60405180910390fd5b6000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a35573d6000803e3d6000fd5b5050565b611a4233610f16565b611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7890613a59565b60405180910390fd5b611a8b82826128fa565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808303611ac75760009050611b29565b60008284611ad59190613c92565b9050828482611ae49190613e71565b14611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b90613f14565b60405180910390fd5b809150505b92915050565b6000611b7183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b52565b905092915050565b6000611c04826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4c9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb590919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d399190613780565b60405180910390a3600190509392505050565b6000838311158290611d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8b91906135e9565b60405180910390fd5b5060008385611da39190613f34565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e5b575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb057601260009054906101000a900460ff16611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea690613fb4565b60405180910390fd5b5b601560149054906101000a900460ff1615611fa957600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f695750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90614020565b60405180910390fd5b5b601260019054906101000a900460ff16156120b25760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612066575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120b1576013548211156120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a79061408c565b60405180910390fd5b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561215d5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121b35750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561230e5742600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061220357600080fd5b603c4261221091906140ac565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154431161230d576001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b60158054906101000a900460ff16156123335761232c848484611b79565b90506128a9565b600061233e306113bf565b90506000601454821015905060008180156123a65750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80156123ba575060006123b8306113bf565b115b905080156123cb576123ca612c13565b5b612454856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4c9092919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006124a38888612ef0565b6124ad57856124b8565b6124b7888761304d565b5b905061250c81600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb590919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156125f75750600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126c557601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9689600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612698929190614102565b600060405180830381600087803b1580156126b257600080fd5b505af19250505080156126c3575060015b505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415801561276d5750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561283b57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161280e929190614102565b600060405180830381600087803b15801561282857600080fd5b505af1925050508015612839575060015b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128989190613780565b60405180910390a360019450505050505b9392505050565b60006128f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d4c565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156129845750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61298d57600080fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612a7f57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612a48929190614166565b600060405180830381600087803b158015612a6257600080fd5b505af1158015612a76573d6000803e3d6000fd5b50505050612b4e565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612b1b929190614102565b600060405180830381600087803b158015612b3557600080fd5b505af1158015612b49573d6000803e3d6000fd5b505050505b5050565b60008083118290612b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9091906135e9565b60405180910390fd5b5060008385612ba89190613e71565b9050809150509392505050565b6000808284612bc491906140ac565b905083811015612c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c00906141db565b60405180910390fd5b8091505092915050565b60016015806101000a81548160ff0219169083151502179055506000612c38306113bf565b9050612c56612c51600283611b2f90919063ffffffff16565b613191565b612c72612c6d600283611b2f90919063ffffffff16565b613339565b60007f000000000000000000000000b4743bfabfce34537a4baf0f3eb2f269246d180a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612ccd9190613729565b602060405180830381865afa158015612cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0e9190613d01565b905060007f000000000000000000000000b4743bfabfce34537a4baf0f3eb2f269246d180a73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401612d8f929190614102565b6020604051808303816000875af1158015612dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd29190614210565b90508015612e6857601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25836040518263ffffffff1660e01b8152600401612e359190613780565b600060405180830381600087803b158015612e4f57600080fd5b505af1158015612e63573d6000803e3d6000fd5b505050505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612ed0573d6000803e3d6000fd5b5050505060006015806101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f935750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1580156130455750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806130445750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080613079600d5461306b600c5486611ab590919063ffffffff16565b611b2f90919063ffffffff16565b90506130cd81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bb590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161316d9190613780565b60405180910390a361318881846128b090919063ffffffff16565b91505092915050565b6000600267ffffffffffffffff8111156131ae576131ad61423d565b5b6040519080825280602002602001820160405280156131dc5781602001602082028036833780820191505090505b50905030816000815181106131f4576131f361426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106132655761326461426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613303959493929190614359565b600060405180830381600087803b15801561331d57600080fd5b505af1158015613331573d6000803e3d6000fd5b505050505050565b6000600367ffffffffffffffff8111156133565761335561423d565b5b6040519080825280602002602001820160405280156133845781602001602082028036833780820191505090505b509050308160008151811061339c5761339b61426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061340d5761340c61426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000b4743bfabfce34537a4baf0f3eb2f269246d180a8160028151811061347c5761347b61426c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958360008430426040518663ffffffff1660e01b815260040161351a959493929190614359565b600060405180830381600087803b15801561353457600080fd5b505af1158015613548573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561358a57808201518184015260208101905061356f565b83811115613599576000848401525b50505050565b6000601f19601f8301169050919050565b60006135bb82613550565b6135c5818561355b565b93506135d581856020860161356c565b6135de8161359f565b840191505092915050565b6000602082019050818103600083015261360381846135b0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061363b82613610565b9050919050565b61364b81613630565b811461365657600080fd5b50565b60008135905061366881613642565b92915050565b6000819050919050565b6136818161366e565b811461368c57600080fd5b50565b60008135905061369e81613678565b92915050565b600080604083850312156136bb576136ba61360b565b5b60006136c985828601613659565b92505060206136da8582860161368f565b9150509250929050565b60008115159050919050565b6136f9816136e4565b82525050565b600060208201905061371460008301846136f0565b92915050565b61372381613630565b82525050565b600060208201905061373e600083018461371a565b92915050565b60006020828403121561375a5761375961360b565b5b600061376884828501613659565b91505092915050565b61377a8161366e565b82525050565b60006020820190506137956000830184613771565b92915050565b6000602082840312156137b1576137b061360b565b5b60006137bf8482850161368f565b91505092915050565b6000806000606084860312156137e1576137e061360b565b5b60006137ef86828701613659565b935050602061380086828701613659565b92505060406138118682870161368f565b9150509250925092565b600060ff82169050919050565b6138318161381b565b82525050565b600060208201905061384c6000830184613828565b92915050565b61385b816136e4565b811461386657600080fd5b50565b60008135905061387881613852565b92915050565b600080604083850312156138955761389461360b565b5b60006138a385828601613659565b92505060206138b485828601613869565b9150509250929050565b60006138c982613610565b9050919050565b6138d9816138be565b82525050565b60006020820190506138f460008301846138d0565b92915050565b600080604083850312156139115761391061360b565b5b600061391f85828601613659565b925050602061393085828601613659565b9150509250929050565b613943816138be565b811461394e57600080fd5b50565b6000813590506139608161393a565b92915050565b60006020828403121561397c5761397b61360b565b5b600061398a84828501613951565b91505092915050565b6000819050919050565b60006139b86139b36139ae84613610565b613993565b613610565b9050919050565b60006139ca8261399d565b9050919050565b60006139dc826139bf565b9050919050565b6139ec816139d1565b82525050565b6000602082019050613a0760008301846139e3565b92915050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000613a4360068361355b565b9150613a4e82613a0d565b602082019050919050565b60006020820190508181036000830152613a7281613a36565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b6000613aaf600f8361355b565b9150613aba82613a79565b602082019050919050565b60006020820190508181036000830152613ade81613aa2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613b6b57808604811115613b4757613b46613ae5565b5b6001851615613b565780820291505b8081029050613b6485613b14565b9450613b2b565b94509492505050565b600082613b845760019050613c40565b81613b925760009050613c40565b8160018114613ba85760028114613bb257613be1565b6001915050613c40565b60ff841115613bc457613bc3613ae5565b5b8360020a915084821115613bdb57613bda613ae5565b5b50613c40565b5060208310610133831016604e8410600b8410161715613c165782820a905083811115613c1157613c10613ae5565b5b613c40565b613c238484846001613b21565b92509050818404811115613c3a57613c39613ae5565b5b81810290505b9392505050565b6000613c528261366e565b9150613c5d8361381b565b9250613c8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613b74565b905092915050565b6000613c9d8261366e565b9150613ca88361366e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ce157613ce0613ae5565b5b828202905092915050565b600081519050613cfb81613678565b92915050565b600060208284031215613d1757613d1661360b565b5b6000613d2584828501613cec565b91505092915050565b7f4665652063616e27742065786365656420313025000000000000000000000000600082015250565b6000613d6460148361355b565b9150613d6f82613d2e565b602082019050919050565b60006020820190508181036000830152613d9381613d57565b9050919050565b7f63616e206f6e6c792062652063616c6c6564206f6e6365000000000000000000600082015250565b6000613dd060178361355b565b9150613ddb82613d9a565b602082019050919050565b60006020820190508181036000830152613dff81613dc3565b9050919050565b6000613e11826139bf565b9050919050565b613e2181613e06565b82525050565b6000602082019050613e3c6000830184613e18565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e7c8261366e565b9150613e878361366e565b925082613e9757613e96613e42565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613efe60218361355b565b9150613f0982613ea2565b604082019050919050565b60006020820190508181036000830152613f2d81613ef1565b9050919050565b6000613f3f8261366e565b9150613f4a8361366e565b925082821015613f5d57613f5c613ae5565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613f9e60188361355b565b9150613fa982613f68565b602082019050919050565b60006020820190508181036000830152613fcd81613f91565b9050919050565b7f426f742100000000000000000000000000000000000000000000000000000000600082015250565b600061400a60048361355b565b915061401582613fd4565b602082019050919050565b6000602082019050818103600083015261403981613ffd565b9050919050565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b6000614076600c8361355b565b915061408182614040565b602082019050919050565b600060208201905081810360008301526140a581614069565b9050919050565b60006140b78261366e565b91506140c28361366e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140f7576140f6613ae5565b5b828201905092915050565b6000604082019050614117600083018561371a565b6141246020830184613771565b9392505050565b6000819050919050565b600061415061414b6141468461412b565b613993565b61366e565b9050919050565b61416081614135565b82525050565b600060408201905061417b600083018561371a565b6141886020830184614157565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006141c5601b8361355b565b91506141d08261418f565b602082019050919050565b600060208201905081810360008301526141f4816141b8565b9050919050565b60008151905061420a81613852565b92915050565b6000602082840312156142265761422561360b565b5b6000614234848285016141fb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6142d081613630565b82525050565b60006142e283836142c7565b60208301905092915050565b6000602082019050919050565b60006143068261429b565b61431081856142a6565b935061431b836142b7565b8060005b8381101561434c57815161433388826142d6565b975061433e836142ee565b92505060018101905061431f565b5085935050505092915050565b600060a08201905061436e6000830188613771565b61437b6020830187614157565b818103604083015261438d81866142fb565b905061439c606083018561371a565b6143a96080830184613771565b969550505050505056fea26469706673582212201094f75daeff0d1cd3329454d4cfe99bde5e77f6a2f33a6902bf4169036c202b64736f6c634300080d0033

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

0000000000000000000000002c4390c7eec2dd8eb9ecbf0ce179860b2dafb20f

-----Decoded View---------------
Arg [0] : _owner (address): 0x2C4390c7EeC2Dd8eB9eCbF0CE179860B2dafB20F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002c4390c7eec2dd8eb9ecbf0ce179860b2dafb20f


Deployed Bytecode Sourcemap

9481:11913:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12244:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12666:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9733:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19653:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11974:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19943:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13184:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21171:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20094:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3007:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12068:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18432:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20800:80;;;;;;;;;;;;;:::i;:::-;;12890:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20635:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20244:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19093:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20388:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19220:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12414:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20515:111;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10551:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20998:165;;;;;;;;;;;;;:::i;:::-;;12330:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19775:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12154:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10683:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13020:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20888:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10711:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11010:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18297:115;;;;;;;;;;;;;:::i;:::-;;10869:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12525:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19551:90;;;;;;;;;;;;;:::i;:::-;;3235:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19369:174;;;;;;;;;;;;;:::i;:::-;;18953:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10652:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12244:80;12292:13;12316:5;;;;;;;;;;;;;;;;;12309:12;;12244:80;:::o;12666:216::-;12741:4;12793:6;12758:11;:23;12770:10;12758:23;;;;;;;;;;;;;;;:32;12782:7;12758:32;;;;;;;;;;;;;;;:41;;;;12836:7;12815:37;;12824:10;12815:37;;;12845:6;12815:37;;;;;;:::i;:::-;;;;;;;;12870:4;12863:11;;12666:216;;;;:::o;9733:84::-;;;:::o;19653:110::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19722:11:::1;;;;;;;;;;;:25;;;19748:6;19722:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19653:110:::0;:::o;11974:88::-;12029:7;12047:12;;12040:19;;11974:88;:::o;19943:139::-;20007:4;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20031:43:::1;20054:4;20061;;;;;;;;;;;20067:6;20031:14;:43::i;:::-;20024:50;;19943:139:::0;;;:::o;13184:370::-;13284:4;13339:17;13304:11;:19;13316:6;13304:19;;;;;;;;;;;;;;;:31;13324:10;13304:31;;;;;;;;;;;;;;;;:52;13301:186;;13406:69;13442:6;13406:69;;;;;;;;;;;;;;;;;:11;:19;13418:6;13406:19;;;;;;;;;;;;;;;:31;13426:10;13406:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;13372:11;:19;13384:6;13372:19;;;;;;;;;;;;;;;:31;13392:10;13372:31;;;;;;;;;;;;;;;:103;;;;13301:186;13506:40;13520:6;13528:9;13539:6;13506:13;:40::i;:::-;13499:47;;13184:370;;;;;:::o;21171:214::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;21269:21:::1;21286:3;21269:12;;:16;;:21;;;;:::i;:::-;21259:6;:31;;21250:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9975:2;21362;:15;;;;:::i;:::-;21353:6;:24;;;;:::i;:::-;21321:29;:56;;;;21171:214:::0;:::o;20094:142::-;20147:7;20174:54;20212:15;20222:4;;;;;;;;;;;20212:9;:15::i;:::-;20174:33;20191:15;20201:4;;;;;;;;;;;20191:9;:15::i;:::-;20174:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;20167:61;;20094:142;:::o;3007:103::-;3062:4;3097:5;;;;;;;;;;;3086:16;;:7;:16;;;3079:23;;3007:103;;;:::o;12068:80::-;12120:5;9975:2;12129:16;;12068:80;:::o;18432:158::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18527:6:::1;18509:5;:15;18515:8;18509:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;18544:38;18565:8;18575:6;18544:20;:38::i;:::-;18432:158:::0;;:::o;20800:80::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20867:5:::1;20856:8;;:16;;;;;;;;;;;;;;;;;;20800:80::o:0;12890:122::-;12945:4;12969:35;12977:7;12986:17;12969:7;:35::i;:::-;12962:42;;12890:122;;;:::o;20635:157::-;20711:7;20738:11;;;;;;;;;;;:33;;;20772:11;20738:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20731:53;;20635:157;;;:::o;20244:135::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20354:16:::1;20328:15;;:43;;;;;;;;;;;;;;;;;;20244:135:::0;:::o;19093:119::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19198:6:::1;19176:11;:19;19188:6;19176:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;19093:119:::0;;:::o;20388:115::-;20440:7;20467:11;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20460:35;;20388:115;:::o;19220:139::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19298:2:::1;19290:4;:10;;19281:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19347:4;19336:8;:15;;;;19220:139:::0;:::o;12414:105::-;12480:7;12498:9;:18;12508:7;12498:18;;;;;;;;;;;;;;;;12491:25;;12414:105;;;:::o;20515:111::-;20565:7;20592:11;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20585:33;;20515:111;:::o;10551:92::-;;;;;;;;;;;;;:::o;20998:165::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;21088:5:::1;21068:25;;:16;;;;;;;;;;;:25;;;21059:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21151:4;21132:16;;:23;;;;;;;;;;;;;;;;;;20998:165::o:0;12330:78::-;12382:7;12400:5;;;;;;;;;;;12393:12;;12330:78;:::o;19775:156::-;19849:7;19876:11;;;;;;;;;;;:34;;;19911:11;19876:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19869:54;;19775:156;;;:::o;12154:84::-;12204:13;12228:7;;;;;;;;;;;;;;;;;12221:14;;12154:84;:::o;10683:19::-;;;;;;;;;;;;;:::o;13020:156::-;13100:4;13124:44;13138:10;13150:9;13161:6;13124:13;:44::i;:::-;13117:51;;13020:156;;;;:::o;20888:102::-;20944:4;20968:5;:14;20974:7;20968:14;;;;;;;;;;;;;;;;;;;;;;;;;20961:21;;20888:102;;;:::o;10711:25::-;;;;:::o;11010:36::-;;;;;;;;;;;;;:::o;18297:115::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18363:12:::1;18350:10;:25;;;;18400:4;18386:11;;:18;;;;;;;;;;;;;;;;;;18297:115::o:0;10869:76::-;;;;:::o;12525:133::-;12609:7;12627:11;:19;12639:6;12627:19;;;;;;;;;;;;;;;:28;12647:7;12627:28;;;;;;;;;;;;;;;;12620:35;;12525:133;;;;:::o;19551:90::-;19596:11;;;;;;;;;;;:25;;;19622:10;19596:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19551:90::o;3235:136::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3319:3:::1;3311:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3338:25;3359:3;3338:25;;;;;;:::i;:::-;;;;;;;;3235:136:::0;:::o;19369:174::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19421:26:::1;19450:21;19421:50;;19490:15;;;;;;;;;;;19482:33;;:53;19516:18;19482:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;19410:133;19369:174::o:0;18953:132::-;2906:19;2914:10;2906:7;:19::i;:::-;2898:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19041:36:::1;19062:6;19070;19041:20;:36::i;:::-;18953:132:::0;;:::o;10652:24::-;;;;;;;;;;;;;:::o;867:250::-;925:7;954:1;949;:6;945:47;;979:1;972:8;;;;945:47;1004:9;1020:1;1016;:5;;;;:::i;:::-;1004:17;;1049:1;1044;1040;:5;;;;:::i;:::-;:10;1032:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:1;1101:8;;;867:250;;;;;:::o;1123:132::-;1181:7;1208:39;1212:1;1215;1208:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1201:46;;1123:132;;;;:::o;15486:330::-;15579:4;15616:53;15638:6;15616:53;;;;;;;;;;;;;;;;;:9;:17;15626:6;15616:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15596:9;:17;15606:6;15596:17;;;;;;;;;;;;;;;:73;;;;15703:32;15728:6;15703:9;:20;15713:9;15703:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15680:9;:20;15690:9;15680:20;;;;;;;;;;;;;;;:55;;;;15768:9;15751:35;;15760:6;15751:35;;;15779:6;15751:35;;;;;;:::i;:::-;;;;;;;;15804:4;15797:11;;15486:330;;;;;:::o;669:192::-;755:7;788:1;783;:6;;791:12;775:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;815:9;831:1;827;:5;;;;:::i;:::-;815:17;;852:1;845:8;;;669:192;;;;;:::o;13562:1912::-;13654:4;13684:5;;;;;;;;;;;13675:14;;:6;:14;;;;:35;;;;;13705:5;;;;;;;;;;13693:17;;:9;:17;;;;13675:35;13671:89;;;13720:11;;;;;;;;;;;13712:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13671:89;13815:16;;;;;;;;;;;13811:102;;;13858:5;:13;13864:6;13858:13;;;;;;;;;;;;;;;;;;;;;;;;;13857:14;:35;;;;;13876:5;:16;13882:9;13876:16;;;;;;;;;;;;;;;;;;;;;;;;;13875:17;13857:35;13848:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13811:102;13927:8;;;;;;;;;;;13923:130;;;13965:5;;;;;;;;;;13957:13;;:6;:13;;;;:34;;;;;13986:5;;;;;;;;;;13974:17;;:9;:17;;;;13957:34;13953:80;;;14010:6;;14002;:14;;13993:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;13953:80;13923:130;14079:4;;;;;;;;;;;14069:14;;:6;:14;;;:46;;;;;14108:6;;;;;;;;;;;14087:28;;:9;:28;;;;14069:46;:73;;;;;14120:11;:22;14132:9;14120:22;;;;;;;;;;;;;;;;;;;;;;;;;14119:23;14069:73;14065:379;;;14190:15;14168:8;:19;14177:9;14168:19;;;;;;;;;;;;;;;;:37;14159:47;;;;;;14261:10;14243:15;:28;;;;:::i;:::-;14221:8;:19;14230:9;14221:19;;;;;;;;;;;;;;;:50;;;;14307:10;;14290:12;:28;14286:147;;14359:4;14340:5;:16;14346:9;14340:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14412:4;14382:16;:27;14399:9;14382:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14286:147;14065:379;14466:6;;;;;;;;;;14463:63;;;14482:41;14497:6;14505:9;14516:6;14482:14;:41::i;:::-;14475:48;;;;14463:63;14544:28;14575:24;14593:4;14575:9;:24::i;:::-;14544:55;;14612:24;14663:29;;14639:20;:53;;14612:80;;14709:19;14732;:38;;;;;14766:4;;;;;;;;;;;14755:15;;:9;:15;;;14732:38;:70;;;;;14801:1;14774:24;14792:4;14774:9;:24::i;:::-;:28;14732:70;14709:94;;14817:14;14814:33;;;14834:10;:8;:10::i;:::-;14814:33;14879:53;14901:6;14879:53;;;;;;;;;;;;;;;;;:9;:17;14889:6;14879:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14859:9;:17;14869:6;14859:17;;;;;;;;;;;;;;;:73;;;;14945:22;14970:32;14984:6;14992:9;14970:13;:32::i;:::-;:67;;15031:6;14970:67;;;15005:23;15013:6;15021;15005:7;:23::i;:::-;14970:67;14945:92;;15081:40;15106:14;15081:9;:20;15091:9;15081:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;15058:9;:20;15068:9;15058:20;;;;;;;;;;;;;;;:63;;;;15147:4;;;;;;;;;;;15137:14;;:6;:14;;;;:43;;;;;15156:16;:24;15173:6;15156:24;;;;;;;;;;;;;;;;;;;;;;;;;15155:25;15137:43;15134:114;;;15187:11;;;;;;;;;;;:20;;;15208:6;15216:9;:17;15226:6;15216:17;;;;;;;;;;;;;;;;15187:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15183:63;15134:114;15274:4;;;;;;;;;;;15261:17;;:9;:17;;;;:49;;;;;15283:16;:27;15300:9;15283:27;;;;;;;;;;;;;;;;;;;;;;;;;15282:28;15261:49;15258:126;;;15317:11;;;;;;;;;;;:20;;;15338:9;15349;:20;15359:9;15349:20;;;;;;;;;;;;;;;;15317:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15313:69;15258:126;15418:9;15401:43;;15410:6;15401:43;;;15429:14;15401:43;;;;;;:::i;:::-;;;;;;;;15462:4;15455:11;;;;;;13562:1912;;;;;;:::o;527:136::-;585:7;612:43;616:1;619;612:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;605:50;;527:136;;;;:::o;18608:337::-;18713:4;18695:23;;:6;:23;;;;:41;;;;;18732:4;;;;;;;;;;;18722:14;;:6;:14;;;;18695:41;18687:50;;;;;;18775:6;18748:16;:24;18765:6;18748:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18795:6;18792:146;;;18817:11;;;;;;;;;;;:20;;;18838:6;18846:1;18817:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18792:146;;;18879:11;;;;;;;;;;;:20;;;18900:6;18908:9;:17;18918:6;18908:17;;;;;;;;;;;;;;;;18879:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18792:146;18608:337;;:::o;1261:345::-;1347:7;1446:1;1442;:5;1449:12;1434:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1473:9;1489:1;1485;:5;;;;:::i;:::-;1473:17;;1597:1;1590:8;;;1261:345;;;;;:::o;340:181::-;398:7;418:9;434:1;430;:5;;;;:::i;:::-;418:17;;459:1;454;:6;;446:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;512:1;505:8;;;340:181;;;;:::o;16408:552::-;11110:4;11101:6;;:13;;;;;;;;;;;;;;;;;;16459:20:::1;16482:24;16500:4;16482:9;:24::i;:::-;16459:47;;16527:37;16544:19;16561:1;16544:12;:16;;:19;;;;:::i;:::-;16527:16;:37::i;:::-;16575:39;16594:19;16611:1;16594:12;:16;;:19;;;;:::i;:::-;16575:18;:39::i;:::-;16627:17;16654:5;16647:23;;;16679:4;16647:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16627:58;;16698:12;16720:5;16713:22;;;16744:11;;;;;;;;;;;16758:9;16713:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16698:70;;16785:7;16781:82;;;16809:11;;;;;;;;;;;:19;;;16829:9;16809:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16781:82;16896:15;;;;;;;;;;;16888:33;;:56;16922:21;16888:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16446:514;;;11128:5:::0;11119:6;;:14;;;;;;;;;;;;;;;;;;16408:552::o;15827:206::-;15908:4;15936:11;:19;15948:6;15936:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;15959:11;:22;15971:9;15959:22;;;;;;;;;;;;;;;;;;;;;;;;;15936:45;15934:48;:90;;;;;15998:4;;;;;;;;;;;15988:14;;:6;:14;;;:35;;;;16019:4;;;;;;;;;;;16006:17;;:9;:17;;;15988:35;15934:90;15925:101;;15827:206;;;;:::o;16041:354::-;16108:7;16128:17;16168:40;16193:14;;16168:20;16179:8;;16168:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;16156:52;;16246:39;16275:9;16246;:24;16264:4;16246:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16219:9;:24;16237:4;16219:24;;;;;;;;;;;;;;;:66;;;;16326:4;16301:42;;16310:6;16301:42;;;16333:9;16301:42;;;;;;:::i;:::-;;;;;;;;16366:21;16377:9;16366:6;:10;;:21;;;;:::i;:::-;16359:28;;;16041:354;;;;:::o;17416:489::-;17544:21;17582:1;17568:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17544:40;;17613:4;17595;17600:1;17595:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17639:4;;;;;;;;;;;17629;17634:1;17629:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;17682:6;;;;;;;;;;;:57;;;17754:11;17780:1;17824:4;17851;17871:15;17682:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17471:434;17416:489;:::o;16976:432::-;17046:21;17084:1;17070:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17046:40;;17115:4;17097;17102:1;17097:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17141:4;;;;;;;;;;;17131;17136:1;17131:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;17166:5;17156:4;17161:1;17156:7;;;;;;;;:::i;:::-;;;;;;;:15;;;;;;;;;;;17210:6;;;;;;;;;;;:60;;;17285:11;17311:1;17327:4;17354;17374:15;17210:190;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17033:375;16976:432;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:329::-;4592:6;4641:2;4629:9;4620:7;4616:23;4612:32;4609:119;;;4647:79;;:::i;:::-;4609:119;4767:1;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4738:117;4533:329;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:468::-;6249:6;6257;6306:2;6294:9;6285:7;6281:23;6277:32;6274:119;;;6312:79;;:::i;:::-;6274:119;6432:1;6457:53;6502:7;6493:6;6482:9;6478:22;6457:53;:::i;:::-;6447:63;;6403:117;6559:2;6585:50;6627:7;6618:6;6607:9;6603:22;6585:50;:::i;:::-;6575:60;;6530:115;6184:468;;;;;:::o;6658:104::-;6703:7;6732:24;6750:5;6732:24;:::i;:::-;6721:35;;6658:104;;;:::o;6768:142::-;6871:32;6897:5;6871:32;:::i;:::-;6866:3;6859:45;6768:142;;:::o;6916:254::-;7025:4;7063:2;7052:9;7048:18;7040:26;;7076:87;7160:1;7149:9;7145:17;7136:6;7076:87;:::i;:::-;6916:254;;;;:::o;7176:474::-;7244:6;7252;7301:2;7289:9;7280:7;7276:23;7272:32;7269:119;;;7307:79;;:::i;:::-;7269:119;7427:1;7452:53;7497:7;7488:6;7477:9;7473:22;7452:53;:::i;:::-;7442:63;;7398:117;7554:2;7580:53;7625:7;7616:6;7605:9;7601:22;7580:53;:::i;:::-;7570:63;;7525:118;7176:474;;;;;:::o;7656:138::-;7737:32;7763:5;7737:32;:::i;:::-;7730:5;7727:43;7717:71;;7784:1;7781;7774:12;7717:71;7656:138;:::o;7800:155::-;7854:5;7892:6;7879:20;7870:29;;7908:41;7943:5;7908:41;:::i;:::-;7800:155;;;;:::o;7961:345::-;8028:6;8077:2;8065:9;8056:7;8052:23;8048:32;8045:119;;;8083:79;;:::i;:::-;8045:119;8203:1;8228:61;8281:7;8272:6;8261:9;8257:22;8228:61;:::i;:::-;8218:71;;8174:125;7961:345;;;;:::o;8312:60::-;8340:3;8361:5;8354:12;;8312:60;;;:::o;8378:142::-;8428:9;8461:53;8479:34;8488:24;8506:5;8488:24;:::i;:::-;8479:34;:::i;:::-;8461:53;:::i;:::-;8448:66;;8378:142;;;:::o;8526:126::-;8576:9;8609:37;8640:5;8609:37;:::i;:::-;8596:50;;8526:126;;;:::o;8658:144::-;8726:9;8759:37;8790:5;8759:37;:::i;:::-;8746:50;;8658:144;;;:::o;8808:167::-;8913:55;8962:5;8913:55;:::i;:::-;8908:3;8901:68;8808:167;;:::o;8981:258::-;9092:4;9130:2;9119:9;9115:18;9107:26;;9143:89;9229:1;9218:9;9214:17;9205:6;9143:89;:::i;:::-;8981:258;;;;:::o;9245:156::-;9385:8;9381:1;9373:6;9369:14;9362:32;9245:156;:::o;9407:365::-;9549:3;9570:66;9634:1;9629:3;9570:66;:::i;:::-;9563:73;;9645:93;9734:3;9645:93;:::i;:::-;9763:2;9758:3;9754:12;9747:19;;9407:365;;;:::o;9778:419::-;9944:4;9982:2;9971:9;9967:18;9959:26;;10031:9;10025:4;10021:20;10017:1;10006:9;10002:17;9995:47;10059:131;10185:4;10059:131;:::i;:::-;10051:139;;9778:419;;;:::o;10203:165::-;10343:17;10339:1;10331:6;10327:14;10320:41;10203:165;:::o;10374:366::-;10516:3;10537:67;10601:2;10596:3;10537:67;:::i;:::-;10530:74;;10613:93;10702:3;10613:93;:::i;:::-;10731:2;10726:3;10722:12;10715:19;;10374:366;;;:::o;10746:419::-;10912:4;10950:2;10939:9;10935:18;10927:26;;10999:9;10993:4;10989:20;10985:1;10974:9;10970:17;10963:47;11027:131;11153:4;11027:131;:::i;:::-;11019:139;;10746:419;;;:::o;11171:180::-;11219:77;11216:1;11209:88;11316:4;11313:1;11306:15;11340:4;11337:1;11330:15;11357:102;11399:8;11446:5;11443:1;11439:13;11418:34;;11357:102;;;:::o;11465:848::-;11526:5;11533:4;11557:6;11548:15;;11581:5;11572:14;;11595:712;11616:1;11606:8;11603:15;11595:712;;;11711:4;11706:3;11702:14;11696:4;11693:24;11690:50;;;11720:18;;:::i;:::-;11690:50;11770:1;11760:8;11756:16;11753:451;;;12185:4;12178:5;12174:16;12165:25;;11753:451;12235:4;12229;12225:15;12217:23;;12265:32;12288:8;12265:32;:::i;:::-;12253:44;;11595:712;;;11465:848;;;;;;;:::o;12319:1073::-;12373:5;12564:8;12554:40;;12585:1;12576:10;;12587:5;;12554:40;12613:4;12603:36;;12630:1;12621:10;;12632:5;;12603:36;12699:4;12747:1;12742:27;;;;12783:1;12778:191;;;;12692:277;;12742:27;12760:1;12751:10;;12762:5;;;12778:191;12823:3;12813:8;12810:17;12807:43;;;12830:18;;:::i;:::-;12807:43;12879:8;12876:1;12872:16;12863:25;;12914:3;12907:5;12904:14;12901:40;;;12921:18;;:::i;:::-;12901:40;12954:5;;;12692:277;;13078:2;13068:8;13065:16;13059:3;13053:4;13050:13;13046:36;13028:2;13018:8;13015:16;13010:2;13004:4;13001:12;12997:35;12981:111;12978:246;;;13134:8;13128:4;13124:19;13115:28;;13169:3;13162:5;13159:14;13156:40;;;13176:18;;:::i;:::-;13156:40;13209:5;;12978:246;13249:42;13287:3;13277:8;13271:4;13268:1;13249:42;:::i;:::-;13234:57;;;;13323:4;13318:3;13314:14;13307:5;13304:25;13301:51;;;13332:18;;:::i;:::-;13301:51;13381:4;13374:5;13370:16;13361:25;;12319:1073;;;;;;:::o;13398:281::-;13456:5;13480:23;13498:4;13480:23;:::i;:::-;13472:31;;13524:25;13540:8;13524:25;:::i;:::-;13512:37;;13568:104;13605:66;13595:8;13589:4;13568:104;:::i;:::-;13559:113;;13398:281;;;;:::o;13685:348::-;13725:7;13748:20;13766:1;13748:20;:::i;:::-;13743:25;;13782:20;13800:1;13782:20;:::i;:::-;13777:25;;13970:1;13902:66;13898:74;13895:1;13892:81;13887:1;13880:9;13873:17;13869:105;13866:131;;;13977:18;;:::i;:::-;13866:131;14025:1;14022;14018:9;14007:20;;13685:348;;;;:::o;14039:143::-;14096:5;14127:6;14121:13;14112:22;;14143:33;14170:5;14143:33;:::i;:::-;14039:143;;;;:::o;14188:351::-;14258:6;14307:2;14295:9;14286:7;14282:23;14278:32;14275:119;;;14313:79;;:::i;:::-;14275:119;14433:1;14458:64;14514:7;14505:6;14494:9;14490:22;14458:64;:::i;:::-;14448:74;;14404:128;14188:351;;;;:::o;14545:170::-;14685:22;14681:1;14673:6;14669:14;14662:46;14545:170;:::o;14721:366::-;14863:3;14884:67;14948:2;14943:3;14884:67;:::i;:::-;14877:74;;14960:93;15049:3;14960:93;:::i;:::-;15078:2;15073:3;15069:12;15062:19;;14721:366;;;:::o;15093:419::-;15259:4;15297:2;15286:9;15282:18;15274:26;;15346:9;15340:4;15336:20;15332:1;15321:9;15317:17;15310:47;15374:131;15500:4;15374:131;:::i;:::-;15366:139;;15093:419;;;:::o;15518:173::-;15658:25;15654:1;15646:6;15642:14;15635:49;15518:173;:::o;15697:366::-;15839:3;15860:67;15924:2;15919:3;15860:67;:::i;:::-;15853:74;;15936:93;16025:3;15936:93;:::i;:::-;16054:2;16049:3;16045:12;16038:19;;15697:366;;;:::o;16069:419::-;16235:4;16273:2;16262:9;16258:18;16250:26;;16322:9;16316:4;16312:20;16308:1;16297:9;16293:17;16286:47;16350:131;16476:4;16350:131;:::i;:::-;16342:139;;16069:419;;;:::o;16494:134::-;16552:9;16585:37;16616:5;16585:37;:::i;:::-;16572:50;;16494:134;;;:::o;16634:147::-;16729:45;16768:5;16729:45;:::i;:::-;16724:3;16717:58;16634:147;;:::o;16787:238::-;16888:4;16926:2;16915:9;16911:18;16903:26;;16939:79;17015:1;17004:9;17000:17;16991:6;16939:79;:::i;:::-;16787:238;;;;:::o;17031:180::-;17079:77;17076:1;17069:88;17176:4;17173:1;17166:15;17200:4;17197:1;17190:15;17217:185;17257:1;17274:20;17292:1;17274:20;:::i;:::-;17269:25;;17308:20;17326:1;17308:20;:::i;:::-;17303:25;;17347:1;17337:35;;17352:18;;:::i;:::-;17337:35;17394:1;17391;17387:9;17382:14;;17217:185;;;;:::o;17408:220::-;17548:34;17544:1;17536:6;17532:14;17525:58;17617:3;17612:2;17604:6;17600:15;17593:28;17408:220;:::o;17634:366::-;17776:3;17797:67;17861:2;17856:3;17797:67;:::i;:::-;17790:74;;17873:93;17962:3;17873:93;:::i;:::-;17991:2;17986:3;17982:12;17975:19;;17634:366;;;:::o;18006:419::-;18172:4;18210:2;18199:9;18195:18;18187:26;;18259:9;18253:4;18249:20;18245:1;18234:9;18230:17;18223:47;18287:131;18413:4;18287:131;:::i;:::-;18279:139;;18006:419;;;:::o;18431:191::-;18471:4;18491:20;18509:1;18491:20;:::i;:::-;18486:25;;18525:20;18543:1;18525:20;:::i;:::-;18520:25;;18564:1;18561;18558:8;18555:34;;;18569:18;;:::i;:::-;18555:34;18614:1;18611;18607:9;18599:17;;18431:191;;;;:::o;18628:174::-;18768:26;18764:1;18756:6;18752:14;18745:50;18628:174;:::o;18808:366::-;18950:3;18971:67;19035:2;19030:3;18971:67;:::i;:::-;18964:74;;19047:93;19136:3;19047:93;:::i;:::-;19165:2;19160:3;19156:12;19149:19;;18808:366;;;:::o;19180:419::-;19346:4;19384:2;19373:9;19369:18;19361:26;;19433:9;19427:4;19423:20;19419:1;19408:9;19404:17;19397:47;19461:131;19587:4;19461:131;:::i;:::-;19453:139;;19180:419;;;:::o;19605:154::-;19745:6;19741:1;19733:6;19729:14;19722:30;19605:154;:::o;19765:365::-;19907:3;19928:66;19992:1;19987:3;19928:66;:::i;:::-;19921:73;;20003:93;20092:3;20003:93;:::i;:::-;20121:2;20116:3;20112:12;20105:19;;19765:365;;;:::o;20136:419::-;20302:4;20340:2;20329:9;20325:18;20317:26;;20389:9;20383:4;20379:20;20375:1;20364:9;20360:17;20353:47;20417:131;20543:4;20417:131;:::i;:::-;20409:139;;20136:419;;;:::o;20561:162::-;20701:14;20697:1;20689:6;20685:14;20678:38;20561:162;:::o;20729:366::-;20871:3;20892:67;20956:2;20951:3;20892:67;:::i;:::-;20885:74;;20968:93;21057:3;20968:93;:::i;:::-;21086:2;21081:3;21077:12;21070:19;;20729:366;;;:::o;21101:419::-;21267:4;21305:2;21294:9;21290:18;21282:26;;21354:9;21348:4;21344:20;21340:1;21329:9;21325:17;21318:47;21382:131;21508:4;21382:131;:::i;:::-;21374:139;;21101:419;;;:::o;21526:305::-;21566:3;21585:20;21603:1;21585:20;:::i;:::-;21580:25;;21619:20;21637:1;21619:20;:::i;:::-;21614:25;;21773:1;21705:66;21701:74;21698:1;21695:81;21692:107;;;21779:18;;:::i;:::-;21692:107;21823:1;21820;21816:9;21809:16;;21526:305;;;;:::o;21837:332::-;21958:4;21996:2;21985:9;21981:18;21973:26;;22009:71;22077:1;22066:9;22062:17;22053:6;22009:71;:::i;:::-;22090:72;22158:2;22147:9;22143:18;22134:6;22090:72;:::i;:::-;21837:332;;;;;:::o;22175:85::-;22220:7;22249:5;22238:16;;22175:85;;;:::o;22266:158::-;22324:9;22357:61;22375:42;22384:32;22410:5;22384:32;:::i;:::-;22375:42;:::i;:::-;22357:61;:::i;:::-;22344:74;;22266:158;;;:::o;22430:147::-;22525:45;22564:5;22525:45;:::i;:::-;22520:3;22513:58;22430:147;;:::o;22583:348::-;22712:4;22750:2;22739:9;22735:18;22727:26;;22763:71;22831:1;22820:9;22816:17;22807:6;22763:71;:::i;:::-;22844:80;22920:2;22909:9;22905:18;22896:6;22844:80;:::i;:::-;22583:348;;;;;:::o;22937:177::-;23077:29;23073:1;23065:6;23061:14;23054:53;22937:177;:::o;23120:366::-;23262:3;23283:67;23347:2;23342:3;23283:67;:::i;:::-;23276:74;;23359:93;23448:3;23359:93;:::i;:::-;23477:2;23472:3;23468:12;23461:19;;23120:366;;;:::o;23492:419::-;23658:4;23696:2;23685:9;23681:18;23673:26;;23745:9;23739:4;23735:20;23731:1;23720:9;23716:17;23709:47;23773:131;23899:4;23773:131;:::i;:::-;23765:139;;23492:419;;;:::o;23917:137::-;23971:5;24002:6;23996:13;23987:22;;24018:30;24042:5;24018:30;:::i;:::-;23917:137;;;;:::o;24060:345::-;24127:6;24176:2;24164:9;24155:7;24151:23;24147:32;24144:119;;;24182:79;;:::i;:::-;24144:119;24302:1;24327:61;24380:7;24371:6;24360:9;24356:22;24327:61;:::i;:::-;24317:71;;24273:125;24060:345;;;;:::o;24411:180::-;24459:77;24456:1;24449:88;24556:4;24553:1;24546:15;24580:4;24577:1;24570:15;24597:180;24645:77;24642:1;24635:88;24742:4;24739:1;24732:15;24766:4;24763:1;24756:15;24783:114;24850:6;24884:5;24878:12;24868:22;;24783:114;;;:::o;24903:184::-;25002:11;25036:6;25031:3;25024:19;25076:4;25071:3;25067:14;25052:29;;24903:184;;;;:::o;25093:132::-;25160:4;25183:3;25175:11;;25213:4;25208:3;25204:14;25196:22;;25093:132;;;:::o;25231:108::-;25308:24;25326:5;25308:24;:::i;:::-;25303:3;25296:37;25231:108;;:::o;25345:179::-;25414:10;25435:46;25477:3;25469:6;25435:46;:::i;:::-;25513:4;25508:3;25504:14;25490:28;;25345:179;;;;:::o;25530:113::-;25600:4;25632;25627:3;25623:14;25615:22;;25530:113;;;:::o;25679:732::-;25798:3;25827:54;25875:5;25827:54;:::i;:::-;25897:86;25976:6;25971:3;25897:86;:::i;:::-;25890:93;;26007:56;26057:5;26007:56;:::i;:::-;26086:7;26117:1;26102:284;26127:6;26124:1;26121:13;26102:284;;;26203:6;26197:13;26230:63;26289:3;26274:13;26230:63;:::i;:::-;26223:70;;26316:60;26369:6;26316:60;:::i;:::-;26306:70;;26162:224;26149:1;26146;26142:9;26137:14;;26102:284;;;26106:14;26402:3;26395:10;;25803:608;;;25679:732;;;;:::o;26417:831::-;26680:4;26718:3;26707:9;26703:19;26695:27;;26732:71;26800:1;26789:9;26785:17;26776:6;26732:71;:::i;:::-;26813:80;26889:2;26878:9;26874:18;26865:6;26813:80;:::i;:::-;26940:9;26934:4;26930:20;26925:2;26914:9;26910:18;26903:48;26968:108;27071:4;27062:6;26968:108;:::i;:::-;26960:116;;27086:72;27154:2;27143:9;27139:18;27130:6;27086:72;:::i;:::-;27168:73;27236:3;27225:9;27221:19;27212:6;27168:73;:::i;:::-;26417:831;;;;;;;;:::o

Swarm Source

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