ETH Price: $1,928.46 (-3.66%)
 

Overview

Max Total Supply

1,000,000 ALT

Holders

5

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
ALT

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2023-04-13
*/

/**
 Telegram: https://t.me/Atlantis_ERC20
 Twitter: https://twitter.com/AtlantisErc20
 Website: https://atlantiserc.com/
**/
// 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);
    event changeBlacklist(address _wallet, bool status);

}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

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

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        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;
}


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

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

    string private constant  _name = "Atlantis";
    string private constant _symbol = "ALT";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000 * (10 ** _decimals);
    //max wallet holding of 3% 
    uint256 public _maxTokenPerWallet = ( _totalSupply * 3 ) / 100;

    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) isTxLimitExempt;
    mapping (address => bool) isTimelockExempt;
    mapping(address => bool) private isBlacklist;

            
    uint256 public buyFeeRate = 15;
    uint256 public sellFeeRate = 50;

    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0xd658bdE0E7E1Af730a1fF2908b470679455171f0);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private limitEffect = true;

    uint256 private maxBuyTransaction = ( _totalSupply * 30 ) / 1000; // 3% max tx
    uint256 public numTokensSellToAddToLiquidity = _totalSupply * 5 / 10000; // 0.05% swap wallet
    
    bool public maxWalletEnabled = true;
    bool private inSwap;

    // Cooldown & timer functionality
    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 20;

    mapping (address => uint) private cooldownTimer;

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

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

        isTxLimitExempt[msg.sender] = true;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingWallet] = true;             

        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        _balances[msg.sender] = _totalSupply;
    
        emit Transfer(address(0), msg.sender, _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(!authorizations[sender] && !authorizations[recipient]){ 
            require(tradingOpen, "Trading not yet enabled.");
            require(!isBlacklist[sender],"User blacklisted");

        }

        if(limitEffect){
            // Checks max transaction limit
            require(amount <= maxBuyTransaction || isTxLimitExempt[sender], "TX Limit Exceeded");

            // max wallet code
            if (maxWalletEnabled && !authorizations[sender] && recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingWallet){
                uint256 heldTokens = balanceOf(recipient);
                require((heldTokens + amount) <= _maxTokenPerWallet,"Total Holding is currently limited, you can not buy that much.");
            }

            // cooldown timer, so a bot doesnt do quick trades! 1min gap between 2 trades.
            if (sender == pair &&
                buyCooldownEnabled &&
                !isTimelockExempt[recipient]) {
                require(cooldownTimer[recipient] < block.timestamp,"Please wait for 1min between two buys");
                cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
            }
        }

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

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

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

        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, address recipient, uint256 amount) internal returns (uint256) {
        uint256 transferFeeRate = recipient == pair ? sellFeeRate : buyFeeRate;
        uint256 feeAmount;
        feeAmount = amount.mul(transferFeeRate).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack(uint256 amount) internal swapping {
        swapTokensForEth(amount);
    }

    
    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

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

    function swapToken() public onlyOwner {

        uint256 contractTokenBalance = balanceOf(address(this));

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

    function openTrade() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _sellFeeRate, uint256 _buyFeeRate) external onlyOwner {
        require (_buyFeeRate <= 15, "Fee can't exceed 15%");
        require (_sellFeeRate <= 50, "Fee can't exceed 50%");
        sellFeeRate = _sellFeeRate;
        buyFeeRate = _buyFeeRate;
    }

    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 setBot(address _wallet, bool _status) external onlyOwner {
        isBlacklist[_wallet]= _status;
    emit changeBlacklist(_wallet, _status);        
    }   

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

    function removeLimitEffect() external onlyOwner {
        limitEffect = false;
    }

    function setMaxWalletEnabled(bool value) external onlyOwner {
        maxWalletEnabled = value;
    }

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

    function setMaxBuyAmount (uint256 maxBuyPercent) external onlyOwner {
        maxBuyTransaction = (_totalSupply * maxBuyPercent ) / 1000;
    } 

    function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner {
        _maxTokenPerWallet = (_totalSupply * maxWallPercent ) / 100;
    }

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

    function setIsTimelockExempt(address holder, bool exempt) external onlyOwner {
        isTimelockExempt[holder] = exempt;
    }
    
    // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(adr).transfer(
            (amountETH * amountPercentage) / 100
        );
    }

    function rescueToken(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"changeBlacklist","type":"event"},{"inputs":[],"name":"_maxTokenPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimitEffect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFeeRate","type":"uint256"},{"internalType":"uint256","name":"_buyFeeRate","type":"uint256"}],"name":"setFee","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":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuyPercent","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setMaxWalletEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapToken","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"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000a93565b620f4240620000a9919062000ae4565b60055560646003600554620000bf919062000ae4565b620000cb919062000b74565b600655600f600e556032600f55606460105573d658bde0e7e1af730a1ff2908b470679455171f0601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560016101000a81548160ff0219169083151502179055506103e8601e60055462000161919062000ae4565b6200016d919062000b74565b6016556127106005805462000183919062000ae4565b6200018f919062000b74565b6017556001601860006101000a81548160ff0219169083151502179055506000601860026101000a81548160ff0219169083151502179055506014601860036101000a81548160ff021916908360ff160217905550348015620001f157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000374919062000c16565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000422573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000448919062000c16565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620004a692919062000c59565b6020604051808303816000875af1158015620004c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ec919062000c16565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620008eb919062000c97565b60405180910390a362000cb4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000987578086048111156200095f576200095e620008f9565b5b60018516156200096f5780820291505b80810290506200097f8562000928565b94506200093f565b94509492505050565b600082620009a2576001905062000a75565b81620009b2576000905062000a75565b8160018114620009cb5760028114620009d65762000a0c565b600191505062000a75565b60ff841115620009eb57620009ea620008f9565b5b8360020a91508482111562000a055762000a04620008f9565b5b5062000a75565b5060208310610133831016604e8410600b841016171562000a465782820a90508381111562000a405762000a3f620008f9565b5b62000a75565b62000a55848484600162000935565b9250905081840481111562000a6f5762000a6e620008f9565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aa08262000a7c565b915062000aad8362000a86565b925062000adc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000990565b905092915050565b600062000af18262000a7c565b915062000afe8362000a7c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b3a5762000b39620008f9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b818262000a7c565b915062000b8e8362000a7c565b92508262000ba15762000ba062000b45565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bde8262000bb1565b9050919050565b62000bf08162000bd1565b811462000bfc57600080fd5b50565b60008151905062000c108162000be5565b92915050565b60006020828403121562000c2f5762000c2e62000bac565b5b600062000c3f8482850162000bff565b91505092915050565b62000c538162000bd1565b82525050565b600060408201905062000c70600083018562000c48565b62000c7f602083018462000c48565b9392505050565b62000c918162000a7c565b82525050565b600060208201905062000cae600083018462000c86565b92915050565b613e628062000cc46000396000f3fe6080604052600436106102765760003560e01c806370a082311161014f578063d045a329116100c1578063f2fde38b1161007a578063f2fde38b14610971578063f34eb0b81461099a578063f84ba65d146109c3578063f887ea40146109ec578063fb201b1d14610a17578063fe9fbb8014610a2e5761027d565b8063d045a32914610887578063d12a7688146108b2578063d47edea2146108dd578063dc73e49c146108f4578063dd62ed3e1461090b578063f0b37c04146109485761027d565b806395d89b411161011357806395d89b4114610777578063a614ff75146107a2578063a8aa1b31146107cb578063a9059cbb146107f6578063b6a5d7de14610833578063bf56b3711461085c5761027d565b806370a0823114610690578063722b62ad146106cd57806375f0a874146106f857806382bf293c14610723578063893d20e81461074c5761027d565b806333f3d628116101e8578063571ac8b0116101ac578063571ac8b0146105805780635b149feb146105bd5780635d098b38146105e8578063617fe0ed14610611578063658d4b7f1461063c5780636b1b4987146106655761027d565b806333f3d6281461049f578063342aa8b5146104dc57806350db71fb1461050557806352f7c9881461052e57806356a227f2146105575761027d565b806323b872dd1161023a57806323b872dd1461037d57806329e04b4a146103ba5780632b112e49146103e35780632d5945671461040e5780632f54bf6e14610437578063313ce567146104745761027d565b80630252765a1461028257806306fdde03146102ad578063095ea7b3146102d857806318160ddd1461031557806323b63585146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a6b565b6040516102a49190612f65565b60405180910390f35b3480156102b957600080fd5b506102c2610a71565b6040516102cf9190613019565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906130ca565b610aae565b60405161030c9190613125565b60405180910390f35b34801561032157600080fd5b5061032a610ba0565b6040516103379190612f65565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190613140565b610baa565b6040516103749190613125565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f919061316d565b610c28565b6040516103b19190613125565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190613140565b610e28565b005b3480156103ef57600080fd5b506103f8610ee1565b6040516104059190612f65565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190613225565b610f63565b005b34801561044357600080fd5b5061045e60048036038101906104599190613265565b610fe4565b60405161046b9190613125565b60405180910390f35b34801561048057600080fd5b5061048961103d565b60405161049691906132a1565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c191906130ca565b611046565b6040516104d39190613125565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906132bc565b611116565b005b34801561051157600080fd5b5061052c600480360381019061052791906132bc565b6111f2565b005b34801561053a57600080fd5b50610555600480360381019061055091906132fc565b611295565b005b34801561056357600080fd5b5061057e6004803603810190610579919061333c565b611377565b005b34801561058c57600080fd5b506105a760048036038101906105a29190613265565b611427565b6040516105b49190613125565b60405180910390f35b3480156105c957600080fd5b506105d261145a565b6040516105df9190612f65565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190613265565b611460565b005b34801561061d57600080fd5b506106266114ec565b6040516106339190613125565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e91906132bc565b6114ff565b005b34801561067157600080fd5b5061067a6115a2565b6040516106879190612f65565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190613265565b6115a8565b6040516106c49190612f65565b60405180910390f35b3480156106d957600080fd5b506106e26115f1565b6040516106ef91906132a1565b60405180910390f35b34801561070457600080fd5b5061070d611604565b60405161071a919061339d565b60405180910390f35b34801561072f57600080fd5b5061074a60048036038101906107459190613140565b61162a565b005b34801561075857600080fd5b50610761611695565b60405161076e91906133c7565b60405180910390f35b34801561078357600080fd5b5061078c6116be565b6040516107999190613019565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c491906133e2565b6116fb565b005b3480156107d757600080fd5b506107e0611760565b6040516107ed91906133c7565b60405180910390f35b34801561080257600080fd5b5061081d600480360381019061081891906130ca565b611786565b60405161082a9190613125565b60405180910390f35b34801561083f57600080fd5b5061085a60048036038101906108559190613265565b61179b565b005b34801561086857600080fd5b5061087161183d565b60405161087e9190612f65565b60405180910390f35b34801561089357600080fd5b5061089c611843565b6040516108a99190613125565b60405180910390f35b3480156108be57600080fd5b506108c7611856565b6040516108d49190612f65565b60405180910390f35b3480156108e957600080fd5b506108f261185c565b005b34801561090057600080fd5b506109096118c1565b005b34801561091757600080fd5b50610932600480360381019061092d919061340f565b611950565b60405161093f9190612f65565b60405180910390f35b34801561095457600080fd5b5061096f600480360381019061096a9190613265565b6119d7565b005b34801561097d57600080fd5b506109986004803603810190610993919061347b565b611a7a565b005b3480156109a657600080fd5b506109c160048036038101906109bc9190613140565b611b93565b005b3480156109cf57600080fd5b506109ea60048036038101906109e591906132bc565b611bff565b005b3480156109f857600080fd5b50610a01611ca2565b604051610a0e9190613507565b60405180910390f35b348015610a2357600080fd5b50610a2c611cc8565b005b348015610a3a57600080fd5b50610a556004803603810190610a509190613265565b611d34565b604051610a629190613125565b60405180910390f35b60065481565b60606040518060400160405280600881526020017f41746c616e746973000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b8e9190612f65565b60405180910390a36001905092915050565b6000600554905090565b6000610bb533610fe4565b610bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610beb9061356e565b60405180910390fd5b610c2130600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d8a565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e1457610d93826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e1f848484611fc1565b90509392505050565b610e3133610fe4565b610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e679061356e565b60405180910390fd5b610e86606460055461286b90919063ffffffff16565b811115610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf906135da565b60405180910390fd5b633b9aca0081610ed89190613629565b60178190555050565b6000610f5e610f11600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115a8565b610f50610f3f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115a8565b6005546128b590919063ffffffff16565b6128b590919063ffffffff16565b905090565b610f6c33610fe4565b610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa29061356e565b60405180910390fd5b81601860026101000a81548160ff02191690831515021790555080601860036101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600061105133610fe4565b611090576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110879061356e565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016110cb929190613683565b6020604051808303816000875af11580156110ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110e91906136c1565b905092915050565b61111f33610fe4565b61115e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111559061356e565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff791a94c7f3569546a71acf39c0189bd87bd7b7e3ea76ce41fd41d837cc4bbca82826040516111e69291906136ee565b60405180910390a15050565b6111fb33610fe4565b61123a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112319061356e565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61129e33610fe4565b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d49061356e565b60405180910390fd5b600f811115611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613763565b60405180910390fd5b6032821115611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c906137cf565b60405180910390fd5b81600f8190555080600e819055505050565b61138033610fe4565b6113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b69061356e565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc606485846113ec9190613629565b6113f6919061381e565b9081150290604051600060405180830381858888f19350505050158015611421573d6000803e3d6000fd5b50505050565b6000611453827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610aae565b9050919050565b600f5481565b61146933610fe4565b6114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f9061356e565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860029054906101000a900460ff1681565b61150833610fe4565b611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e9061356e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601860039054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61163333610fe4565b611672576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116699061356e565b60405180910390fd5b6064816005546116829190613629565b61168c919061381e565b60068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f414c540000000000000000000000000000000000000000000000000000000000815250905090565b61170433610fe4565b611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a9061356e565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611793338484611fc1565b905092915050565b6117a433610fe4565b6117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da9061356e565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60145481565b601860009054906101000a900460ff1681565b60175481565b61186533610fe4565b6118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b9061356e565b60405180910390fd5b6000601560016101000a81548160ff021916908315150217905550565b6118ca33610fe4565b611909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119009061356e565b60405180910390fd5b6000611914306115a8565b905060006017548210159050600081801561193757506000611935306115a8565b115b9050801561194b5761194a6017546128ff565b5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119e033610fe4565b611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a169061356e565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a8333610fe4565b611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab99061356e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b889190613870565b60405180910390a150565b611b9c33610fe4565b611bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd29061356e565b60405180910390fd5b6103e881600554611bec9190613629565b611bf6919061381e565b60168190555050565b611c0833610fe4565b611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e9061356e565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cd133610fe4565b611d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d079061356e565b60405180910390fd5b436014819055506001601560006101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611e15826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eaa82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f4a9190612f65565b60405180910390a3600190509392505050565b6000838311158290611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c9190613019565b60405180910390fd5b5060008385611fb4919061388b565b9050809150509392505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120675750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561214957601560009054906101000a900460ff166120bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b29061390b565b60405180910390fd5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f90613977565b60405180910390fd5b5b601560019054906101000a900460ff16156125af57601654821115806121b85750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee906139e3565b60405180910390fd5b601860009054906101000a900460ff16801561225d5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561229557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122ef5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123a35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124075760006123b3846115a8565b905060065483826123c49190613a03565b1115612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc90613acb565b60405180910390fd5b505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124705750601860029054906101000a900460ff165b80156124c65750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ae5742601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061254c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254390613b5d565b60405180910390fd5b601860039054906101000a900460ff1660ff164261256a9190613a03565b601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601860019054906101000a900460ff16156125d6576125cf848484611d8a565b9050612864565b60006125e1306115a8565b90506000601754821015905060008180156126495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b801561265d5750600061265b306115a8565b115b9050801561267157612670601754612b27565b5b6126fa856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006127498888612b69565b612753578561275f565b61275e888888612cc6565b5b90506127b381600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128539190612f65565b60405180910390a360019450505050505b9392505050565b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e6f565b905092915050565b60006128f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f5d565b905092915050565b6000600267ffffffffffffffff81111561291c5761291b613b7d565b5b60405190808252806020026020018201604052801561294a5781602001602082028036833780820191505090505b509050308160008151811061296257612961613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129d3576129d2613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a93959493929190613cd4565b600060405180830381600087803b158015612aad57600080fd5b505af1158015612ac1573d6000803e3d6000fd5b505050505050565b6000808284612ad89190613a03565b905083811015612b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1490613d7a565b60405180910390fd5b8091505092915050565b6001601860016101000a81548160ff021916908315150217905550612b4b816128ff565b6000601860016101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c0c5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612cbe5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612cbd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612d2657600e54612d2a565b600f545b90506000612d55601054612d478487612ed290919063ffffffff16565b61286b90919063ffffffff16565b9050612da981600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e499190612f65565b60405180910390a3612e6481856128b590919063ffffffff16565b925050509392505050565b60008083118290612eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ead9190613019565b60405180910390fd5b5060008385612ec5919061381e565b9050809150509392505050565b6000808303612ee45760009050612f46565b60008284612ef29190613629565b9050828482612f01919061381e565b14612f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3890613e0c565b60405180910390fd5b809150505b92915050565b6000819050919050565b612f5f81612f4c565b82525050565b6000602082019050612f7a6000830184612f56565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fba578082015181840152602081019050612f9f565b83811115612fc9576000848401525b50505050565b6000601f19601f8301169050919050565b6000612feb82612f80565b612ff58185612f8b565b9350613005818560208601612f9c565b61300e81612fcf565b840191505092915050565b600060208201905081810360008301526130338184612fe0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061306b82613040565b9050919050565b61307b81613060565b811461308657600080fd5b50565b60008135905061309881613072565b92915050565b6130a781612f4c565b81146130b257600080fd5b50565b6000813590506130c48161309e565b92915050565b600080604083850312156130e1576130e061303b565b5b60006130ef85828601613089565b9250506020613100858286016130b5565b9150509250929050565b60008115159050919050565b61311f8161310a565b82525050565b600060208201905061313a6000830184613116565b92915050565b6000602082840312156131565761315561303b565b5b6000613164848285016130b5565b91505092915050565b6000806000606084860312156131865761318561303b565b5b600061319486828701613089565b93505060206131a586828701613089565b92505060406131b6868287016130b5565b9150509250925092565b6131c98161310a565b81146131d457600080fd5b50565b6000813590506131e6816131c0565b92915050565b600060ff82169050919050565b613202816131ec565b811461320d57600080fd5b50565b60008135905061321f816131f9565b92915050565b6000806040838503121561323c5761323b61303b565b5b600061324a858286016131d7565b925050602061325b85828601613210565b9150509250929050565b60006020828403121561327b5761327a61303b565b5b600061328984828501613089565b91505092915050565b61329b816131ec565b82525050565b60006020820190506132b66000830184613292565b92915050565b600080604083850312156132d3576132d261303b565b5b60006132e185828601613089565b92505060206132f2858286016131d7565b9150509250929050565b600080604083850312156133135761331261303b565b5b6000613321858286016130b5565b9250506020613332858286016130b5565b9150509250929050565b600080604083850312156133535761335261303b565b5b6000613361858286016130b5565b925050602061337285828601613089565b9150509250929050565b600061338782613040565b9050919050565b6133978161337c565b82525050565b60006020820190506133b2600083018461338e565b92915050565b6133c181613060565b82525050565b60006020820190506133dc60008301846133b8565b92915050565b6000602082840312156133f8576133f761303b565b5b6000613406848285016131d7565b91505092915050565b600080604083850312156134265761342561303b565b5b600061343485828601613089565b925050602061344585828601613089565b9150509250929050565b6134588161337c565b811461346357600080fd5b50565b6000813590506134758161344f565b92915050565b6000602082840312156134915761349061303b565b5b600061349f84828501613466565b91505092915050565b6000819050919050565b60006134cd6134c86134c384613040565b6134a8565b613040565b9050919050565b60006134df826134b2565b9050919050565b60006134f1826134d4565b9050919050565b613501816134e6565b82525050565b600060208201905061351c60008301846134f8565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613558600683612f8b565b915061356382613522565b602082019050919050565b600060208201905081810360008301526135878161354b565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006135c4600f83612f8b565b91506135cf8261358e565b602082019050919050565b600060208201905081810360008301526135f3816135b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363482612f4c565b915061363f83612f4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613678576136776135fa565b5b828202905092915050565b600060408201905061369860008301856133b8565b6136a56020830184612f56565b9392505050565b6000815190506136bb816131c0565b92915050565b6000602082840312156136d7576136d661303b565b5b60006136e5848285016136ac565b91505092915050565b600060408201905061370360008301856133b8565b6137106020830184613116565b9392505050565b7f4665652063616e27742065786365656420313525000000000000000000000000600082015250565b600061374d601483612f8b565b915061375882613717565b602082019050919050565b6000602082019050818103600083015261377c81613740565b9050919050565b7f4665652063616e27742065786365656420353025000000000000000000000000600082015250565b60006137b9601483612f8b565b91506137c482613783565b602082019050919050565b600060208201905081810360008301526137e8816137ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061382982612f4c565b915061383483612f4c565b925082613844576138436137ef565b5b828204905092915050565b600061385a826134d4565b9050919050565b61386a8161384f565b82525050565b60006020820190506138856000830184613861565b92915050565b600061389682612f4c565b91506138a183612f4c565b9250828210156138b4576138b36135fa565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006138f5601883612f8b565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b7f5573657220626c61636b6c697374656400000000000000000000000000000000600082015250565b6000613961601083612f8b565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006139cd601183612f8b565b91506139d882613997565b602082019050919050565b600060208201905081810360008301526139fc816139c0565b9050919050565b6000613a0e82612f4c565b9150613a1983612f4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a4e57613a4d6135fa565b5b828201905092915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000613ab5603e83612f8b565b9150613ac082613a59565b604082019050919050565b60006020820190508181036000830152613ae481613aa8565b9050919050565b7f506c65617365207761697420666f7220316d696e206265747765656e2074776f60008201527f2062757973000000000000000000000000000000000000000000000000000000602082015250565b6000613b47602583612f8b565b9150613b5282613aeb565b604082019050919050565b60006020820190508181036000830152613b7681613b3a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613c00613bfb613bf684613bdb565b6134a8565b612f4c565b9050919050565b613c1081613be5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c4b81613060565b82525050565b6000613c5d8383613c42565b60208301905092915050565b6000602082019050919050565b6000613c8182613c16565b613c8b8185613c21565b9350613c9683613c32565b8060005b83811015613cc7578151613cae8882613c51565b9750613cb983613c69565b925050600181019050613c9a565b5085935050505092915050565b600060a082019050613ce96000830188612f56565b613cf66020830187613c07565b8181036040830152613d088186613c76565b9050613d176060830185613861565b613d246080830184612f56565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d64601b83612f8b565b9150613d6f82613d2e565b602082019050919050565b60006020820190508181036000830152613d9381613d57565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613df6602183612f8b565b9150613e0182613d9a565b604082019050919050565b60006020820190508181036000830152613e2581613de9565b905091905056fea264697066735822122049c3e1687af7604cc19023bbd253715be3edf0d3a90a2e3892c6a9ded4f267bf64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102765760003560e01c806370a082311161014f578063d045a329116100c1578063f2fde38b1161007a578063f2fde38b14610971578063f34eb0b81461099a578063f84ba65d146109c3578063f887ea40146109ec578063fb201b1d14610a17578063fe9fbb8014610a2e5761027d565b8063d045a32914610887578063d12a7688146108b2578063d47edea2146108dd578063dc73e49c146108f4578063dd62ed3e1461090b578063f0b37c04146109485761027d565b806395d89b411161011357806395d89b4114610777578063a614ff75146107a2578063a8aa1b31146107cb578063a9059cbb146107f6578063b6a5d7de14610833578063bf56b3711461085c5761027d565b806370a0823114610690578063722b62ad146106cd57806375f0a874146106f857806382bf293c14610723578063893d20e81461074c5761027d565b806333f3d628116101e8578063571ac8b0116101ac578063571ac8b0146105805780635b149feb146105bd5780635d098b38146105e8578063617fe0ed14610611578063658d4b7f1461063c5780636b1b4987146106655761027d565b806333f3d6281461049f578063342aa8b5146104dc57806350db71fb1461050557806352f7c9881461052e57806356a227f2146105575761027d565b806323b872dd1161023a57806323b872dd1461037d57806329e04b4a146103ba5780632b112e49146103e35780632d5945671461040e5780632f54bf6e14610437578063313ce567146104745761027d565b80630252765a1461028257806306fdde03146102ad578063095ea7b3146102d857806318160ddd1461031557806323b63585146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a6b565b6040516102a49190612f65565b60405180910390f35b3480156102b957600080fd5b506102c2610a71565b6040516102cf9190613019565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906130ca565b610aae565b60405161030c9190613125565b60405180910390f35b34801561032157600080fd5b5061032a610ba0565b6040516103379190612f65565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190613140565b610baa565b6040516103749190613125565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f919061316d565b610c28565b6040516103b19190613125565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190613140565b610e28565b005b3480156103ef57600080fd5b506103f8610ee1565b6040516104059190612f65565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190613225565b610f63565b005b34801561044357600080fd5b5061045e60048036038101906104599190613265565b610fe4565b60405161046b9190613125565b60405180910390f35b34801561048057600080fd5b5061048961103d565b60405161049691906132a1565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c191906130ca565b611046565b6040516104d39190613125565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906132bc565b611116565b005b34801561051157600080fd5b5061052c600480360381019061052791906132bc565b6111f2565b005b34801561053a57600080fd5b50610555600480360381019061055091906132fc565b611295565b005b34801561056357600080fd5b5061057e6004803603810190610579919061333c565b611377565b005b34801561058c57600080fd5b506105a760048036038101906105a29190613265565b611427565b6040516105b49190613125565b60405180910390f35b3480156105c957600080fd5b506105d261145a565b6040516105df9190612f65565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190613265565b611460565b005b34801561061d57600080fd5b506106266114ec565b6040516106339190613125565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e91906132bc565b6114ff565b005b34801561067157600080fd5b5061067a6115a2565b6040516106879190612f65565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190613265565b6115a8565b6040516106c49190612f65565b60405180910390f35b3480156106d957600080fd5b506106e26115f1565b6040516106ef91906132a1565b60405180910390f35b34801561070457600080fd5b5061070d611604565b60405161071a919061339d565b60405180910390f35b34801561072f57600080fd5b5061074a60048036038101906107459190613140565b61162a565b005b34801561075857600080fd5b50610761611695565b60405161076e91906133c7565b60405180910390f35b34801561078357600080fd5b5061078c6116be565b6040516107999190613019565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c491906133e2565b6116fb565b005b3480156107d757600080fd5b506107e0611760565b6040516107ed91906133c7565b60405180910390f35b34801561080257600080fd5b5061081d600480360381019061081891906130ca565b611786565b60405161082a9190613125565b60405180910390f35b34801561083f57600080fd5b5061085a60048036038101906108559190613265565b61179b565b005b34801561086857600080fd5b5061087161183d565b60405161087e9190612f65565b60405180910390f35b34801561089357600080fd5b5061089c611843565b6040516108a99190613125565b60405180910390f35b3480156108be57600080fd5b506108c7611856565b6040516108d49190612f65565b60405180910390f35b3480156108e957600080fd5b506108f261185c565b005b34801561090057600080fd5b506109096118c1565b005b34801561091757600080fd5b50610932600480360381019061092d919061340f565b611950565b60405161093f9190612f65565b60405180910390f35b34801561095457600080fd5b5061096f600480360381019061096a9190613265565b6119d7565b005b34801561097d57600080fd5b506109986004803603810190610993919061347b565b611a7a565b005b3480156109a657600080fd5b506109c160048036038101906109bc9190613140565b611b93565b005b3480156109cf57600080fd5b506109ea60048036038101906109e591906132bc565b611bff565b005b3480156109f857600080fd5b50610a01611ca2565b604051610a0e9190613507565b60405180910390f35b348015610a2357600080fd5b50610a2c611cc8565b005b348015610a3a57600080fd5b50610a556004803603810190610a509190613265565b611d34565b604051610a629190613125565b60405180910390f35b60065481565b60606040518060400160405280600881526020017f41746c616e746973000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b8e9190612f65565b60405180910390a36001905092915050565b6000600554905090565b6000610bb533610fe4565b610bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610beb9061356e565b60405180910390fd5b610c2130600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611d8a565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610e1457610d93826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e1f848484611fc1565b90509392505050565b610e3133610fe4565b610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e679061356e565b60405180910390fd5b610e86606460055461286b90919063ffffffff16565b811115610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf906135da565b60405180910390fd5b633b9aca0081610ed89190613629565b60178190555050565b6000610f5e610f11600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115a8565b610f50610f3f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115a8565b6005546128b590919063ffffffff16565b6128b590919063ffffffff16565b905090565b610f6c33610fe4565b610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa29061356e565b60405180910390fd5b81601860026101000a81548160ff02191690831515021790555080601860036101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600061105133610fe4565b611090576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110879061356e565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016110cb929190613683565b6020604051808303816000875af11580156110ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110e91906136c1565b905092915050565b61111f33610fe4565b61115e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111559061356e565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff791a94c7f3569546a71acf39c0189bd87bd7b7e3ea76ce41fd41d837cc4bbca82826040516111e69291906136ee565b60405180910390a15050565b6111fb33610fe4565b61123a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112319061356e565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61129e33610fe4565b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d49061356e565b60405180910390fd5b600f811115611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613763565b60405180910390fd5b6032821115611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c906137cf565b60405180910390fd5b81600f8190555080600e819055505050565b61138033610fe4565b6113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b69061356e565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc606485846113ec9190613629565b6113f6919061381e565b9081150290604051600060405180830381858888f19350505050158015611421573d6000803e3d6000fd5b50505050565b6000611453827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610aae565b9050919050565b600f5481565b61146933610fe4565b6114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f9061356e565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860029054906101000a900460ff1681565b61150833610fe4565b611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153e9061356e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601860039054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61163333610fe4565b611672576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116699061356e565b60405180910390fd5b6064816005546116829190613629565b61168c919061381e565b60068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f414c540000000000000000000000000000000000000000000000000000000000815250905090565b61170433610fe4565b611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a9061356e565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611793338484611fc1565b905092915050565b6117a433610fe4565b6117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da9061356e565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60145481565b601860009054906101000a900460ff1681565b60175481565b61186533610fe4565b6118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b9061356e565b60405180910390fd5b6000601560016101000a81548160ff021916908315150217905550565b6118ca33610fe4565b611909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119009061356e565b60405180910390fd5b6000611914306115a8565b905060006017548210159050600081801561193757506000611935306115a8565b115b9050801561194b5761194a6017546128ff565b5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119e033610fe4565b611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a169061356e565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611a8333610fe4565b611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab99061356e565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b889190613870565b60405180910390a150565b611b9c33610fe4565b611bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd29061356e565b60405180910390fd5b6103e881600554611bec9190613629565b611bf6919061381e565b60168190555050565b611c0833610fe4565b611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e9061356e565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cd133610fe4565b611d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d079061356e565b60405180910390fd5b436014819055506001601560006101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000611e15826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eaa82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f4a9190612f65565b60405180910390a3600190509392505050565b6000838311158290611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c9190613019565b60405180910390fd5b5060008385611fb4919061388b565b9050809150509392505050565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120675750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561214957601560009054906101000a900460ff166120bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b29061390b565b60405180910390fd5b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f90613977565b60405180910390fd5b5b601560019054906101000a900460ff16156125af57601654821115806121b85750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee906139e3565b60405180910390fd5b601860009054906101000a900460ff16801561225d5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561229557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156122ef5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123a35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156124075760006123b3846115a8565b905060065483826123c49190613a03565b1115612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc90613acb565b60405180910390fd5b505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124705750601860029054906101000a900460ff165b80156124c65750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125ae5742601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061254c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254390613b5d565b60405180910390fd5b601860039054906101000a900460ff1660ff164261256a9190613a03565b601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601860019054906101000a900460ff16156125d6576125cf848484611d8a565b9050612864565b60006125e1306115a8565b90506000601754821015905060008180156126495750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b801561265d5750600061265b306115a8565b115b9050801561267157612670601754612b27565b5b6126fa856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5d9092919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006127498888612b69565b612753578561275f565b61275e888888612cc6565b5b90506127b381600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128539190612f65565b60405180910390a360019450505050505b9392505050565b60006128ad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e6f565b905092915050565b60006128f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f5d565b905092915050565b6000600267ffffffffffffffff81111561291c5761291b613b7d565b5b60405190808252806020026020018201604052801561294a5781602001602082028036833780820191505090505b509050308160008151811061296257612961613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106129d3576129d2613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a93959493929190613cd4565b600060405180830381600087803b158015612aad57600080fd5b505af1158015612ac1573d6000803e3d6000fd5b505050505050565b6000808284612ad89190613a03565b905083811015612b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1490613d7a565b60405180910390fd5b8091505092915050565b6001601860016101000a81548160ff021916908315150217905550612b4b816128ff565b6000601860016101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c0c5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612cbe5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612cbd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612d2657600e54612d2a565b600f545b90506000612d55601054612d478487612ed290919063ffffffff16565b61286b90919063ffffffff16565b9050612da981600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ac990919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e499190612f65565b60405180910390a3612e6481856128b590919063ffffffff16565b925050509392505050565b60008083118290612eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ead9190613019565b60405180910390fd5b5060008385612ec5919061381e565b9050809150509392505050565b6000808303612ee45760009050612f46565b60008284612ef29190613629565b9050828482612f01919061381e565b14612f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3890613e0c565b60405180910390fd5b809150505b92915050565b6000819050919050565b612f5f81612f4c565b82525050565b6000602082019050612f7a6000830184612f56565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fba578082015181840152602081019050612f9f565b83811115612fc9576000848401525b50505050565b6000601f19601f8301169050919050565b6000612feb82612f80565b612ff58185612f8b565b9350613005818560208601612f9c565b61300e81612fcf565b840191505092915050565b600060208201905081810360008301526130338184612fe0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061306b82613040565b9050919050565b61307b81613060565b811461308657600080fd5b50565b60008135905061309881613072565b92915050565b6130a781612f4c565b81146130b257600080fd5b50565b6000813590506130c48161309e565b92915050565b600080604083850312156130e1576130e061303b565b5b60006130ef85828601613089565b9250506020613100858286016130b5565b9150509250929050565b60008115159050919050565b61311f8161310a565b82525050565b600060208201905061313a6000830184613116565b92915050565b6000602082840312156131565761315561303b565b5b6000613164848285016130b5565b91505092915050565b6000806000606084860312156131865761318561303b565b5b600061319486828701613089565b93505060206131a586828701613089565b92505060406131b6868287016130b5565b9150509250925092565b6131c98161310a565b81146131d457600080fd5b50565b6000813590506131e6816131c0565b92915050565b600060ff82169050919050565b613202816131ec565b811461320d57600080fd5b50565b60008135905061321f816131f9565b92915050565b6000806040838503121561323c5761323b61303b565b5b600061324a858286016131d7565b925050602061325b85828601613210565b9150509250929050565b60006020828403121561327b5761327a61303b565b5b600061328984828501613089565b91505092915050565b61329b816131ec565b82525050565b60006020820190506132b66000830184613292565b92915050565b600080604083850312156132d3576132d261303b565b5b60006132e185828601613089565b92505060206132f2858286016131d7565b9150509250929050565b600080604083850312156133135761331261303b565b5b6000613321858286016130b5565b9250506020613332858286016130b5565b9150509250929050565b600080604083850312156133535761335261303b565b5b6000613361858286016130b5565b925050602061337285828601613089565b9150509250929050565b600061338782613040565b9050919050565b6133978161337c565b82525050565b60006020820190506133b2600083018461338e565b92915050565b6133c181613060565b82525050565b60006020820190506133dc60008301846133b8565b92915050565b6000602082840312156133f8576133f761303b565b5b6000613406848285016131d7565b91505092915050565b600080604083850312156134265761342561303b565b5b600061343485828601613089565b925050602061344585828601613089565b9150509250929050565b6134588161337c565b811461346357600080fd5b50565b6000813590506134758161344f565b92915050565b6000602082840312156134915761349061303b565b5b600061349f84828501613466565b91505092915050565b6000819050919050565b60006134cd6134c86134c384613040565b6134a8565b613040565b9050919050565b60006134df826134b2565b9050919050565b60006134f1826134d4565b9050919050565b613501816134e6565b82525050565b600060208201905061351c60008301846134f8565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613558600683612f8b565b915061356382613522565b602082019050919050565b600060208201905081810360008301526135878161354b565b9050919050565b7f63616e2774206578636565642031250000000000000000000000000000000000600082015250565b60006135c4600f83612f8b565b91506135cf8261358e565b602082019050919050565b600060208201905081810360008301526135f3816135b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363482612f4c565b915061363f83612f4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613678576136776135fa565b5b828202905092915050565b600060408201905061369860008301856133b8565b6136a56020830184612f56565b9392505050565b6000815190506136bb816131c0565b92915050565b6000602082840312156136d7576136d661303b565b5b60006136e5848285016136ac565b91505092915050565b600060408201905061370360008301856133b8565b6137106020830184613116565b9392505050565b7f4665652063616e27742065786365656420313525000000000000000000000000600082015250565b600061374d601483612f8b565b915061375882613717565b602082019050919050565b6000602082019050818103600083015261377c81613740565b9050919050565b7f4665652063616e27742065786365656420353025000000000000000000000000600082015250565b60006137b9601483612f8b565b91506137c482613783565b602082019050919050565b600060208201905081810360008301526137e8816137ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061382982612f4c565b915061383483612f4c565b925082613844576138436137ef565b5b828204905092915050565b600061385a826134d4565b9050919050565b61386a8161384f565b82525050565b60006020820190506138856000830184613861565b92915050565b600061389682612f4c565b91506138a183612f4c565b9250828210156138b4576138b36135fa565b5b828203905092915050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006138f5601883612f8b565b9150613900826138bf565b602082019050919050565b60006020820190508181036000830152613924816138e8565b9050919050565b7f5573657220626c61636b6c697374656400000000000000000000000000000000600082015250565b6000613961601083612f8b565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006139cd601183612f8b565b91506139d882613997565b602082019050919050565b600060208201905081810360008301526139fc816139c0565b9050919050565b6000613a0e82612f4c565b9150613a1983612f4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a4e57613a4d6135fa565b5b828201905092915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b6000613ab5603e83612f8b565b9150613ac082613a59565b604082019050919050565b60006020820190508181036000830152613ae481613aa8565b9050919050565b7f506c65617365207761697420666f7220316d696e206265747765656e2074776f60008201527f2062757973000000000000000000000000000000000000000000000000000000602082015250565b6000613b47602583612f8b565b9150613b5282613aeb565b604082019050919050565b60006020820190508181036000830152613b7681613b3a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613c00613bfb613bf684613bdb565b6134a8565b612f4c565b9050919050565b613c1081613be5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c4b81613060565b82525050565b6000613c5d8383613c42565b60208301905092915050565b6000602082019050919050565b6000613c8182613c16565b613c8b8185613c21565b9350613c9683613c32565b8060005b83811015613cc7578151613cae8882613c51565b9750613cb983613c69565b925050600181019050613c9a565b5085935050505092915050565b600060a082019050613ce96000830188612f56565b613cf66020830187613c07565b8181036040830152613d088186613c76565b9050613d176060830185613861565b613d246080830184612f56565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d64601b83612f8b565b9150613d6f82613d2e565b602082019050919050565b60006020820190508181036000830152613d9381613d57565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613df6602183612f8b565b9150613e0182613d9a565b604082019050919050565b60006020820190508181036000830152613e2581613de9565b905091905056fea264697066735822122049c3e1687af7604cc19023bbd253715be3edf0d3a90a2e3892c6a9ded4f267bf64736f6c634300080d0033

Deployed Bytecode Sourcemap

5730:11267:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6213:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8631:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9053:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8361:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14697:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9571:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15525:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14848:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16367:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3623:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8455:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16786:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14998:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16187:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14405:284;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16539:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9277:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15176:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7366:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14278:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6683:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8801:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7411:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6805:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15894:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8717:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8541:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15414:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6937:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9407:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3296:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6965:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7257:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7152:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15320:86;;;;;;;;;;;;;:::i;:::-;;13734:403;;;;;;;;;;;;;:::i;:::-;;8912:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3466:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4023:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15740:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16052:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6906:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14145:113;;;;;;;;;;;;;:::i;:::-;;3797:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6213:62;;;;:::o;8631:80::-;8679:13;8703:5;;;;;;;;;;;;;;;;;8696:12;;8631:80;:::o;9053:216::-;9128:4;9180:6;9145:11;:23;9157:10;9145:23;;;;;;;;;;;;;;;:32;9169:7;9145:32;;;;;;;;;;;;;;;:41;;;;9223:7;9202:37;;9211:10;9202:37;;;9232:6;9202:37;;;;;;:::i;:::-;;;;;;;;9257:4;9250:11;;9053:216;;;;:::o;8361:88::-;8416:7;8434:12;;8427:19;;8361:88;:::o;14697:139::-;14761:4;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14785:43:::1;14808:4;14815;;;;;;;;;;;14821:6;14785:14;:43::i;:::-;14778:50;;14697:139:::0;;;:::o;9571:370::-;9671:4;9726:17;9691:11;:19;9703:6;9691:19;;;;;;;;;;;;;;;:31;9711:10;9691:31;;;;;;;;;;;;;;;;:52;9688:186;;9793:69;9829:6;9793:69;;;;;;;;;;;;;;;;;:11;:19;9805:6;9793:19;;;;;;;;;;;;;;;:31;9813:10;9793:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9759:11;:19;9771:6;9759:19;;;;;;;;;;;;;;;:31;9779:10;9759:31;;;;;;;;;;;;;;;:103;;;;9688:186;9893:40;9907:6;9915:9;9926:6;9893:13;:40::i;:::-;9886:47;;9571:370;;;;;:::o;15525:206::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15623:21:::1;15640:3;15623:12;;:16;;:21;;;;:::i;:::-;15613:6;:31;;15604:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15716:7;15707:6;:16;;;;:::i;:::-;15675:29;:48;;;;15525:206:::0;:::o;14848:142::-;14901:7;14928:54;14966:15;14976:4;;;;;;;;;;;14966:9;:15::i;:::-;14928:33;14945:15;14955:4;;;;;;;;;;;14945:9;:15::i;:::-;14928:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14921:61;;14848:142;:::o;16367:164::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16472:7:::1;16451:18;;:28;;;;;;;;;;;;;;;;;;16514:9;16490:21;;:33;;;;;;;;;;;;;;;;;;16367:164:::0;;:::o;3623:103::-;3678:4;3713:5;;;;;;;;;;;3702:16;;:7;:16;;;3695:23;;3623:103;;;:::o;8455:80::-;8507:5;6105:1;8516:16;;8455:80;:::o;16786:206::-;16898:12;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16942:12:::1;16935:29;;;16965:10;16977:6;16935:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16928:56;;16786:206:::0;;;;:::o;14998:167::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15097:7:::1;15075:11;:20;15087:7;15075:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15116:33;15132:7;15141;15116:33;;;;;;;:::i;:::-;;;;;;;;14998:167:::0;;:::o;16187:129::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16302:6:::1;16275:16;:24;16292:6;16275:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16187:129:::0;;:::o;14405:284::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14519:2:::1;14504:11;:17;;14495:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;14582:2;14566:12;:18;;14557:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14634:12;14620:11;:26;;;;14670:11;14657:10;:24;;;;14405:284:::0;;:::o;16539:239::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16635:17:::1;16655:21;16635:41;;16695:3;16687:21;;:83;16756:3;16736:16;16724:9;:28;;;;:::i;:::-;16723:36;;;;:::i;:::-;16687:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16624:154;16539:239:::0;;:::o;9277:122::-;9332:4;9356:35;9364:7;9373:17;9356:7;:35::i;:::-;9349:42;;9277:122;;;:::o;6720:31::-;;;;:::o;15176:135::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15286:16:::1;15260:15;;:43;;;;;;;;;;;;;;;;;;15176:135:::0;:::o;7366:38::-;;;;;;;;;;;;;:::o;14278:119::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14383:6:::1;14361:11;:19;14373:6;14361:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14278:119:::0;;:::o;6683:30::-;;;;:::o;8801:105::-;8867:7;8885:9;:18;8895:7;8885:18;;;;;;;;;;;;;;;;8878:25;;8801:105;;;:::o;7411:39::-;;;;;;;;;;;;;:::o;6805:92::-;;;;;;;;;;;;;:::o;15894:150::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16033:3:::1;16014:14;15999:12;;:29;;;;:::i;:::-;15998:38;;;;:::i;:::-;15977:18;:59;;;;15894:150:::0;:::o;8717:78::-;8769:7;8787:5;;;;;;;;;;;8780:12;;8717:78;:::o;8541:84::-;8591:13;8615:7;;;;;;;;;;;;;;;;;8608:14;;8541:84;:::o;15414:103::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15504:5:::1;15485:16;;:24;;;;;;;;;;;;;;;;;;15414:103:::0;:::o;6937:19::-;;;;;;;;;;;;;:::o;9407:156::-;9487:4;9511:44;9525:10;9537:9;9548:6;9511:13;:44::i;:::-;9504:51;;9407:156;;;;:::o;3296:94::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3378:4:::1;3356:14:::0;:19:::1;3371:3;3356:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3296:94:::0;:::o;6965:25::-;;;;:::o;7257:35::-;;;;;;;;;;;;;:::o;7152:71::-;;;;:::o;15320:86::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15393:5:::1;15379:11;;:19;;;;;;;;;;;;;;;;;;15320:86::o:0;13734:403::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13785:28:::1;13816:24;13834:4;13816:9;:24::i;:::-;13785:55;;13853:24;13904:29;;13880:20;:53;;13853:80;;13950:19;13973;:51;;;;;14023:1;13996:24;14014:4;13996:9;:24::i;:::-;:28;13973:51;13950:75;;14039:14;14036:94;;;14070:47;14087:29;;14070:16;:47::i;:::-;14036:94;13772:365;;;13734:403::o:0;8912:133::-;8996:7;9014:11;:19;9026:6;9014:19;;;;;;;;;;;;;;;:28;9034:7;9014:28;;;;;;;;;;;;;;;;9007:35;;8912:133;;;;:::o;3466:97::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3550:5:::1;3528:14;:19;3543:3;3528:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3466:97:::0;:::o;4023:173::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4107:3:::1;4099:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4143:4;4121:14:::0;:19:::1;4136:3;4121:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4163:25;4184:3;4163:25;;;;;;:::i;:::-;;;;;;;;4023:173:::0;:::o;15740:145::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15873:4:::1;15855:13;15840:12;;:28;;;;:::i;:::-;15839:38;;;;:::i;:::-;15819:17;:58;;;;15740:145:::0;:::o;16052:127::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16165:6:::1;16139:15;:23;16155:6;16139:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16052:127:::0;;:::o;6906:24::-;;;;;;;;;;;;;:::o;14145:113::-;3012:19;3020:10;3012:7;:19::i;:::-;3004:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14209:12:::1;14196:10;:25;;;;14246:4;14232:11;;:18;;;;;;;;;;;;;;;;;;14145:113::o:0;3797:107::-;3853:4;3877:14;:19;3892:3;3877:19;;;;;;;;;;;;;;;;;;;;;;;;;3870:26;;3797:107;;;:::o;12100:330::-;12193:4;12230:53;12252:6;12230:53;;;;;;;;;;;;;;;;;:9;:17;12240:6;12230:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12210:9;:17;12220:6;12210:17;;;;;;;;;;;;;;;:73;;;;12317:32;12342:6;12317:9;:20;12327:9;12317:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12294:9;:20;12304:9;12294:20;;;;;;;;;;;;;;;:55;;;;12382:9;12365:35;;12374:6;12365:35;;;12393:6;12365:35;;;;;;:::i;:::-;;;;;;;;12418:4;12411:11;;12100:330;;;;;:::o;622:192::-;708:7;741:1;736;:6;;744:12;728:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;768:9;784:1;780;:5;;;;:::i;:::-;768:17;;805:1;798:8;;;622:192;;;;;:::o;9949:2139::-;10041:4;10062:14;:22;10077:6;10062:22;;;;;;;;;;;;;;;;;;;;;;;;;10061:23;:53;;;;;10089:14;:25;10104:9;10089:25;;;;;;;;;;;;;;;;;;;;;;;;;10088:26;10061:53;10058:198;;;10139:11;;;;;;;;;;;10131:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10203:11;:19;10215:6;10203:19;;;;;;;;;;;;;;;;;;;;;;;;;10202:20;10194:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10058:198;10271:11;;;;;;;;;;;10268:1019;;;10361:17;;10351:6;:27;;:54;;;;10382:15;:23;10398:6;10382:23;;;;;;;;;;;;;;;;;;;;;;;;;10351:54;10343:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;10480:16;;;;;;;;;;;:43;;;;;10501:14;:22;10516:6;10501:22;;;;;;;;;;;;;;;;;;;;;;;;;10500:23;10480:43;:73;;;;;10548:4;10527:26;;:9;:26;;;;10480:73;:103;;;;;10578:4;;;;;;;;;;;10557:26;;:9;:26;;;;10480:103;:124;;;;;10600:4;;;;;;;;;;;10587:17;;:9;:17;;;;10480:124;:156;;;;;10621:15;;;;;;;;;;;10608:28;;:9;:28;;;;10480:156;10476:373;;;10656:18;10677:20;10687:9;10677;:20::i;:::-;10656:41;;10749:18;;10738:6;10725:10;:19;;;;:::i;:::-;10724:43;;10716:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;10637:212;10476:373;10971:4;;;;;;;;;;;10961:14;;:6;:14;;;:53;;;;;10996:18;;;;;;;;;;;10961:53;:102;;;;;11036:16;:27;11053:9;11036:27;;;;;;;;;;;;;;;;;;;;;;;;;11035:28;10961:102;10957:319;;;11119:15;11092:13;:24;11106:9;11092:24;;;;;;;;;;;;;;;;:42;11084:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11239:21;;;;;;;;;;;11221:39;;:15;:39;;;;:::i;:::-;11194:13;:24;11208:9;11194:24;;;;;;;;;;;;;;;:66;;;;10957:319;10268:1019;11302:6;;;;;;;;;;;11299:63;;;11318:41;11333:6;11341:9;11352:6;11318:14;:41::i;:::-;11311:48;;;;11299:63;11380:28;11411:24;11429:4;11411:9;:24::i;:::-;11380:55;;11448:24;11499:29;;11475:20;:53;;11448:80;;11545:19;11568;:38;;;;;11602:4;;;;;;;;;;;11591:15;;:9;:15;;;11568:38;:70;;;;;11637:1;11610:24;11628:4;11610:9;:24::i;:::-;:28;11568:70;11545:94;;11653:14;11650:62;;;11670:39;11679:29;;11670:8;:39::i;:::-;11650:62;11744:53;11766:6;11744:53;;;;;;;;;;;;;;;;;:9;:17;11754:6;11744:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11724:9;:17;11734:6;11724:17;;;;;;;;;;;;;;;:73;;;;11810:22;11835:32;11849:6;11857:9;11835:13;:32::i;:::-;:78;;11907:6;11835:78;;;11870:34;11878:6;11886:9;11897:6;11870:7;:34::i;:::-;11835:78;11810:103;;11957:40;11982:14;11957:9;:20;11967:9;11957:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11934:9;:20;11944:9;11934:20;;;;;;;;;;;;;;;:63;;;;12032:9;12015:43;;12024:6;12015:43;;;12043:14;12015:43;;;;;;:::i;:::-;;;;;;;;12076:4;12069:11;;;;;;9949:2139;;;;;;:::o;1076:132::-;1134:7;1161:39;1165:1;1168;1161:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1154:46;;1076:132;;;;:::o;480:136::-;538:7;565:43;569:1;572;565:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;558:50;;480:136;;;;:::o;13235:491::-;13363:21;13401:1;13387:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13363:40;;13432:4;13414;13419:1;13414:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13458:4;;;;;;;;;;;13448;13453:1;13448:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;13501:6;;;;;;;;;;;:57;;;13573:11;13599:1;13643:4;13662:15;;;;;;;;;;;13692;13501:217;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13290:436;13235:491;:::o;293:181::-;351:7;371:9;387:1;383;:5;;;;:::i;:::-;371:17;;412:1;407;:6;;399:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;465:1;458:8;;;293:181;;;;:::o;13126:95::-;7546:4;7537:6;;:13;;;;;;;;;;;;;;;;;;13189:24:::1;13206:6;13189:16;:24::i;:::-;7564:5:::0;7555:6;;:14;;;;;;;;;;;;;;;;;;13126:95;:::o;12438:206::-;12519:4;12547:11;:19;12559:6;12547:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;12570:11;:22;12582:9;12570:22;;;;;;;;;;;;;;;;;;;;;;;;;12547:45;12545:48;:90;;;;;12609:4;;;;;;;;;;;12599:14;;:6;:14;;;:35;;;;12630:4;;;;;;;;;;;12617:17;;:9;:17;;;12599:35;12545:90;12536:101;;12438:206;;;;:::o;12652:461::-;12738:7;12758:23;12797:4;;;;;;;;;;;12784:17;;:9;:17;;;:44;;12818:10;;12784:44;;;12804:11;;12784:44;12758:70;;12839:17;12879:47;12911:14;;12879:27;12890:15;12879:6;:10;;:27;;;;:::i;:::-;:31;;:47;;;;:::i;:::-;12867:59;;12964:39;12993:9;12964;:24;12982:4;12964:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12937:9;:24;12955:4;12937:24;;;;;;;;;;;;;;;:66;;;;13044:4;13019:42;;13028:6;13019:42;;;13051:9;13019:42;;;;;;:::i;:::-;;;;;;;;13084:21;13095:9;13084:6;:10;;:21;;;;:::i;:::-;13077:28;;;;12652:461;;;;;:::o;1214:345::-;1300:7;1399:1;1395;:5;1402:12;1387:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1426:9;1442:1;1438;:5;;;;:::i;:::-;1426:17;;1550:1;1543:8;;;1214:345;;;;;:::o;820:250::-;878:7;907:1;902;:6;898:47;;932:1;925:8;;;;898:47;957:9;973:1;969;:5;;;;:::i;:::-;957:17;;1002:1;997;993;:5;;;;:::i;:::-;:10;985:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1061:1;1054:8;;;820:250;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::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:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:116::-;4876:21;4891:5;4876:21;:::i;:::-;4869:5;4866:32;4856:60;;4912:1;4909;4902:12;4856:60;4806:116;:::o;4928:133::-;4971:5;5009:6;4996:20;4987:29;;5025:30;5049:5;5025:30;:::i;:::-;4928:133;;;;:::o;5067:86::-;5102:7;5142:4;5135:5;5131:16;5120:27;;5067:86;;;:::o;5159:118::-;5230:22;5246:5;5230:22;:::i;:::-;5223:5;5220:33;5210:61;;5267:1;5264;5257:12;5210:61;5159:118;:::o;5283:135::-;5327:5;5365:6;5352:20;5343:29;;5381:31;5406:5;5381:31;:::i;:::-;5283:135;;;;:::o;5424:464::-;5487:6;5495;5544:2;5532:9;5523:7;5519:23;5515:32;5512:119;;;5550:79;;:::i;:::-;5512:119;5670:1;5695:50;5737:7;5728:6;5717:9;5713:22;5695:50;:::i;:::-;5685:60;;5641:114;5794:2;5820:51;5863:7;5854:6;5843:9;5839:22;5820:51;:::i;:::-;5810:61;;5765:116;5424:464;;;;;:::o;5894:329::-;5953:6;6002:2;5990:9;5981:7;5977:23;5973:32;5970:119;;;6008:79;;:::i;:::-;5970:119;6128:1;6153:53;6198:7;6189:6;6178:9;6174:22;6153:53;:::i;:::-;6143:63;;6099:117;5894:329;;;;:::o;6229:112::-;6312:22;6328:5;6312:22;:::i;:::-;6307:3;6300:35;6229:112;;:::o;6347:214::-;6436:4;6474:2;6463:9;6459:18;6451:26;;6487:67;6551:1;6540:9;6536:17;6527:6;6487:67;:::i;:::-;6347:214;;;;:::o;6567:468::-;6632:6;6640;6689:2;6677:9;6668:7;6664:23;6660:32;6657:119;;;6695:79;;:::i;:::-;6657:119;6815:1;6840:53;6885:7;6876:6;6865:9;6861:22;6840:53;:::i;:::-;6830:63;;6786:117;6942:2;6968:50;7010:7;7001:6;6990:9;6986:22;6968:50;:::i;:::-;6958:60;;6913:115;6567:468;;;;;:::o;7041:474::-;7109:6;7117;7166:2;7154:9;7145:7;7141:23;7137:32;7134:119;;;7172:79;;:::i;:::-;7134:119;7292:1;7317:53;7362:7;7353:6;7342:9;7338:22;7317:53;:::i;:::-;7307:63;;7263:117;7419:2;7445:53;7490:7;7481:6;7470:9;7466:22;7445:53;:::i;:::-;7435:63;;7390:118;7041:474;;;;;:::o;7521:::-;7589:6;7597;7646:2;7634:9;7625:7;7621:23;7617:32;7614:119;;;7652:79;;:::i;:::-;7614:119;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7899:2;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7870:118;7521:474;;;;;:::o;8001:104::-;8046:7;8075:24;8093:5;8075:24;:::i;:::-;8064:35;;8001:104;;;:::o;8111:142::-;8214:32;8240:5;8214:32;:::i;:::-;8209:3;8202:45;8111:142;;:::o;8259:254::-;8368:4;8406:2;8395:9;8391:18;8383:26;;8419:87;8503:1;8492:9;8488:17;8479:6;8419:87;:::i;:::-;8259:254;;;;:::o;8519:118::-;8606:24;8624:5;8606:24;:::i;:::-;8601:3;8594:37;8519:118;;:::o;8643:222::-;8736:4;8774:2;8763:9;8759:18;8751:26;;8787:71;8855:1;8844:9;8840:17;8831:6;8787:71;:::i;:::-;8643:222;;;;:::o;8871:323::-;8927:6;8976:2;8964:9;8955:7;8951:23;8947:32;8944:119;;;8982:79;;:::i;:::-;8944:119;9102:1;9127:50;9169:7;9160:6;9149:9;9145:22;9127:50;:::i;:::-;9117:60;;9073:114;8871:323;;;;:::o;9200:474::-;9268:6;9276;9325:2;9313:9;9304:7;9300:23;9296:32;9293:119;;;9331:79;;:::i;:::-;9293:119;9451:1;9476:53;9521:7;9512:6;9501:9;9497:22;9476:53;:::i;:::-;9466:63;;9422:117;9578:2;9604:53;9649:7;9640:6;9629:9;9625:22;9604:53;:::i;:::-;9594:63;;9549:118;9200:474;;;;;:::o;9680:138::-;9761:32;9787:5;9761:32;:::i;:::-;9754:5;9751:43;9741:71;;9808:1;9805;9798:12;9741:71;9680:138;:::o;9824:155::-;9878:5;9916:6;9903:20;9894:29;;9932:41;9967:5;9932:41;:::i;:::-;9824:155;;;;:::o;9985:345::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:61;10305:7;10296:6;10285:9;10281:22;10252:61;:::i;:::-;10242:71;;10198:125;9985:345;;;;:::o;10336:60::-;10364:3;10385:5;10378:12;;10336:60;;;:::o;10402:142::-;10452:9;10485:53;10503:34;10512:24;10530:5;10512:24;:::i;:::-;10503:34;:::i;:::-;10485:53;:::i;:::-;10472:66;;10402:142;;;:::o;10550:126::-;10600:9;10633:37;10664:5;10633:37;:::i;:::-;10620:50;;10550:126;;;:::o;10682:144::-;10750:9;10783:37;10814:5;10783:37;:::i;:::-;10770:50;;10682:144;;;:::o;10832:167::-;10937:55;10986:5;10937:55;:::i;:::-;10932:3;10925:68;10832:167;;:::o;11005:258::-;11116:4;11154:2;11143:9;11139:18;11131:26;;11167:89;11253:1;11242:9;11238:17;11229:6;11167:89;:::i;:::-;11005:258;;;;:::o;11269:156::-;11409:8;11405:1;11397:6;11393:14;11386:32;11269:156;:::o;11431:365::-;11573:3;11594:66;11658:1;11653:3;11594:66;:::i;:::-;11587:73;;11669:93;11758:3;11669:93;:::i;:::-;11787:2;11782:3;11778:12;11771:19;;11431:365;;;:::o;11802:419::-;11968:4;12006:2;11995:9;11991:18;11983:26;;12055:9;12049:4;12045:20;12041:1;12030:9;12026:17;12019:47;12083:131;12209:4;12083:131;:::i;:::-;12075:139;;11802:419;;;:::o;12227:165::-;12367:17;12363:1;12355:6;12351:14;12344:41;12227:165;:::o;12398:366::-;12540:3;12561:67;12625:2;12620:3;12561:67;:::i;:::-;12554:74;;12637:93;12726:3;12637:93;:::i;:::-;12755:2;12750:3;12746:12;12739:19;;12398:366;;;:::o;12770:419::-;12936:4;12974:2;12963:9;12959:18;12951:26;;13023:9;13017:4;13013:20;13009:1;12998:9;12994:17;12987:47;13051:131;13177:4;13051:131;:::i;:::-;13043:139;;12770:419;;;:::o;13195:180::-;13243:77;13240:1;13233:88;13340:4;13337:1;13330:15;13364:4;13361:1;13354:15;13381:348;13421:7;13444:20;13462:1;13444:20;:::i;:::-;13439:25;;13478:20;13496:1;13478:20;:::i;:::-;13473:25;;13666:1;13598:66;13594:74;13591:1;13588:81;13583:1;13576:9;13569:17;13565:105;13562:131;;;13673:18;;:::i;:::-;13562:131;13721:1;13718;13714:9;13703:20;;13381:348;;;;:::o;13735:332::-;13856:4;13894:2;13883:9;13879:18;13871:26;;13907:71;13975:1;13964:9;13960:17;13951:6;13907:71;:::i;:::-;13988:72;14056:2;14045:9;14041:18;14032:6;13988:72;:::i;:::-;13735:332;;;;;:::o;14073:137::-;14127:5;14158:6;14152:13;14143:22;;14174:30;14198:5;14174:30;:::i;:::-;14073:137;;;;:::o;14216:345::-;14283:6;14332:2;14320:9;14311:7;14307:23;14303:32;14300:119;;;14338:79;;:::i;:::-;14300:119;14458:1;14483:61;14536:7;14527:6;14516:9;14512:22;14483:61;:::i;:::-;14473:71;;14429:125;14216:345;;;;:::o;14567:320::-;14682:4;14720:2;14709:9;14705:18;14697:26;;14733:71;14801:1;14790:9;14786:17;14777:6;14733:71;:::i;:::-;14814:66;14876:2;14865:9;14861:18;14852:6;14814:66;:::i;:::-;14567:320;;;;;:::o;14893:170::-;15033:22;15029:1;15021:6;15017:14;15010:46;14893:170;:::o;15069:366::-;15211:3;15232:67;15296:2;15291:3;15232:67;:::i;:::-;15225:74;;15308:93;15397:3;15308:93;:::i;:::-;15426:2;15421:3;15417:12;15410:19;;15069:366;;;:::o;15441:419::-;15607:4;15645:2;15634:9;15630:18;15622:26;;15694:9;15688:4;15684:20;15680:1;15669:9;15665:17;15658:47;15722:131;15848:4;15722:131;:::i;:::-;15714:139;;15441:419;;;:::o;15866:170::-;16006:22;16002:1;15994:6;15990:14;15983:46;15866:170;:::o;16042:366::-;16184:3;16205:67;16269:2;16264:3;16205:67;:::i;:::-;16198:74;;16281:93;16370:3;16281:93;:::i;:::-;16399:2;16394:3;16390:12;16383:19;;16042:366;;;:::o;16414:419::-;16580:4;16618:2;16607:9;16603:18;16595:26;;16667:9;16661:4;16657:20;16653:1;16642:9;16638:17;16631:47;16695:131;16821:4;16695:131;:::i;:::-;16687:139;;16414:419;;;:::o;16839:180::-;16887:77;16884:1;16877:88;16984:4;16981:1;16974:15;17008:4;17005:1;16998:15;17025:185;17065:1;17082:20;17100:1;17082:20;:::i;:::-;17077:25;;17116:20;17134:1;17116:20;:::i;:::-;17111:25;;17155:1;17145:35;;17160:18;;:::i;:::-;17145:35;17202:1;17199;17195:9;17190:14;;17025:185;;;;:::o;17216:134::-;17274:9;17307:37;17338:5;17307:37;:::i;:::-;17294:50;;17216:134;;;:::o;17356:147::-;17451:45;17490:5;17451:45;:::i;:::-;17446:3;17439:58;17356:147;;:::o;17509:238::-;17610:4;17648:2;17637:9;17633:18;17625:26;;17661:79;17737:1;17726:9;17722:17;17713:6;17661:79;:::i;:::-;17509:238;;;;:::o;17753:191::-;17793:4;17813:20;17831:1;17813:20;:::i;:::-;17808:25;;17847:20;17865:1;17847:20;:::i;:::-;17842:25;;17886:1;17883;17880:8;17877:34;;;17891:18;;:::i;:::-;17877:34;17936:1;17933;17929:9;17921:17;;17753:191;;;;:::o;17950:174::-;18090:26;18086:1;18078:6;18074:14;18067:50;17950:174;:::o;18130:366::-;18272:3;18293:67;18357:2;18352:3;18293:67;:::i;:::-;18286:74;;18369:93;18458:3;18369:93;:::i;:::-;18487:2;18482:3;18478:12;18471:19;;18130:366;;;:::o;18502:419::-;18668:4;18706:2;18695:9;18691:18;18683:26;;18755:9;18749:4;18745:20;18741:1;18730:9;18726:17;18719:47;18783:131;18909:4;18783:131;:::i;:::-;18775:139;;18502:419;;;:::o;18927:166::-;19067:18;19063:1;19055:6;19051:14;19044:42;18927:166;:::o;19099:366::-;19241:3;19262:67;19326:2;19321:3;19262:67;:::i;:::-;19255:74;;19338:93;19427:3;19338:93;:::i;:::-;19456:2;19451:3;19447:12;19440:19;;19099:366;;;:::o;19471:419::-;19637:4;19675:2;19664:9;19660:18;19652:26;;19724:9;19718:4;19714:20;19710:1;19699:9;19695:17;19688:47;19752:131;19878:4;19752:131;:::i;:::-;19744:139;;19471:419;;;:::o;19896:167::-;20036:19;20032:1;20024:6;20020:14;20013:43;19896:167;:::o;20069:366::-;20211:3;20232:67;20296:2;20291:3;20232:67;:::i;:::-;20225:74;;20308:93;20397:3;20308:93;:::i;:::-;20426:2;20421:3;20417:12;20410:19;;20069:366;;;:::o;20441:419::-;20607:4;20645:2;20634:9;20630:18;20622:26;;20694:9;20688:4;20684:20;20680:1;20669:9;20665:17;20658:47;20722:131;20848:4;20722:131;:::i;:::-;20714:139;;20441:419;;;:::o;20866:305::-;20906:3;20925:20;20943:1;20925:20;:::i;:::-;20920:25;;20959:20;20977:1;20959:20;:::i;:::-;20954:25;;21113:1;21045:66;21041:74;21038:1;21035:81;21032:107;;;21119:18;;:::i;:::-;21032:107;21163:1;21160;21156:9;21149:16;;20866:305;;;;:::o;21177:249::-;21317:34;21313:1;21305:6;21301:14;21294:58;21386:32;21381:2;21373:6;21369:15;21362:57;21177:249;:::o;21432:366::-;21574:3;21595:67;21659:2;21654:3;21595:67;:::i;:::-;21588:74;;21671:93;21760:3;21671:93;:::i;:::-;21789:2;21784:3;21780:12;21773:19;;21432:366;;;:::o;21804:419::-;21970:4;22008:2;21997:9;21993:18;21985:26;;22057:9;22051:4;22047:20;22043:1;22032:9;22028:17;22021:47;22085:131;22211:4;22085:131;:::i;:::-;22077:139;;21804:419;;;:::o;22229:224::-;22369:34;22365:1;22357:6;22353:14;22346:58;22438:7;22433:2;22425:6;22421:15;22414:32;22229:224;:::o;22459:366::-;22601:3;22622:67;22686:2;22681:3;22622:67;:::i;:::-;22615:74;;22698:93;22787:3;22698:93;:::i;:::-;22816:2;22811:3;22807:12;22800:19;;22459:366;;;:::o;22831:419::-;22997:4;23035:2;23024:9;23020:18;23012:26;;23084:9;23078:4;23074:20;23070:1;23059:9;23055:17;23048:47;23112:131;23238:4;23112:131;:::i;:::-;23104:139;;22831:419;;;:::o;23256:180::-;23304:77;23301:1;23294:88;23401:4;23398:1;23391:15;23425:4;23422:1;23415:15;23442:180;23490:77;23487:1;23480:88;23587:4;23584:1;23577:15;23611:4;23608:1;23601:15;23628:85;23673:7;23702:5;23691:16;;23628:85;;;:::o;23719:158::-;23777:9;23810:61;23828:42;23837:32;23863:5;23837:32;:::i;:::-;23828:42;:::i;:::-;23810:61;:::i;:::-;23797:74;;23719:158;;;:::o;23883:147::-;23978:45;24017:5;23978:45;:::i;:::-;23973:3;23966:58;23883:147;;:::o;24036:114::-;24103:6;24137:5;24131:12;24121:22;;24036:114;;;:::o;24156:184::-;24255:11;24289:6;24284:3;24277:19;24329:4;24324:3;24320:14;24305:29;;24156:184;;;;:::o;24346:132::-;24413:4;24436:3;24428:11;;24466:4;24461:3;24457:14;24449:22;;24346:132;;;:::o;24484:108::-;24561:24;24579:5;24561:24;:::i;:::-;24556:3;24549:37;24484:108;;:::o;24598:179::-;24667:10;24688:46;24730:3;24722:6;24688:46;:::i;:::-;24766:4;24761:3;24757:14;24743:28;;24598:179;;;;:::o;24783:113::-;24853:4;24885;24880:3;24876:14;24868:22;;24783:113;;;:::o;24932:732::-;25051:3;25080:54;25128:5;25080:54;:::i;:::-;25150:86;25229:6;25224:3;25150:86;:::i;:::-;25143:93;;25260:56;25310:5;25260:56;:::i;:::-;25339:7;25370:1;25355:284;25380:6;25377:1;25374:13;25355:284;;;25456:6;25450:13;25483:63;25542:3;25527:13;25483:63;:::i;:::-;25476:70;;25569:60;25622:6;25569:60;:::i;:::-;25559:70;;25415:224;25402:1;25399;25395:9;25390:14;;25355:284;;;25359:14;25655:3;25648:10;;25056:608;;;24932:732;;;;:::o;25670:847::-;25941:4;25979:3;25968:9;25964:19;25956:27;;25993:71;26061:1;26050:9;26046:17;26037:6;25993:71;:::i;:::-;26074:80;26150:2;26139:9;26135:18;26126:6;26074:80;:::i;:::-;26201:9;26195:4;26191:20;26186:2;26175:9;26171:18;26164:48;26229:108;26332:4;26323:6;26229:108;:::i;:::-;26221:116;;26347:80;26423:2;26412:9;26408:18;26399:6;26347:80;:::i;:::-;26437:73;26505:3;26494:9;26490:19;26481:6;26437:73;:::i;:::-;25670:847;;;;;;;;:::o;26523:177::-;26663:29;26659:1;26651:6;26647:14;26640:53;26523:177;:::o;26706:366::-;26848:3;26869:67;26933:2;26928:3;26869:67;:::i;:::-;26862:74;;26945:93;27034:3;26945:93;:::i;:::-;27063:2;27058:3;27054:12;27047:19;;26706:366;;;:::o;27078:419::-;27244:4;27282:2;27271:9;27267:18;27259:26;;27331:9;27325:4;27321:20;27317:1;27306:9;27302:17;27295:47;27359:131;27485:4;27359:131;:::i;:::-;27351:139;;27078:419;;;:::o;27503:220::-;27643:34;27639:1;27631:6;27627:14;27620:58;27712:3;27707:2;27699:6;27695:15;27688:28;27503:220;:::o;27729:366::-;27871:3;27892:67;27956:2;27951:3;27892:67;:::i;:::-;27885:74;;27968:93;28057:3;27968:93;:::i;:::-;28086:2;28081:3;28077:12;28070:19;;27729:366;;;:::o;28101:419::-;28267:4;28305:2;28294:9;28290:18;28282:26;;28354:9;28348:4;28344:20;28340:1;28329:9;28325:17;28318:47;28382:131;28508:4;28382:131;:::i;:::-;28374:139;;28101:419;;;:::o

Swarm Source

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