ETH Price: $2,571.83 (-1.50%)

Token

Teh Great Race (F12)
 

Overview

Max Total Supply

100,000,000 F12

Holders

178

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
500,000 F12

Value
$0.00
0xe8a9114298db6a037b274073bac0ff7df20abc50
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:
TehGreatRace

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-01
*/

// SPDX-License-Identifier: Unlicensed


pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract TehGreatRace is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant _tTotal = 1e9 * 10**8;
    
    uint256 private _buyDevelopmentFee = 99;
    uint256 private _previousBuyDevelopmentFee = _buyDevelopmentFee;
    
    uint256 private _sellDevelopmentFee = 99;
    uint256 private _previousSellDevelopmentFee = _sellDevelopmentFee;
       
    address payable private _DevelopmentWallet;
    uint256 private tokensForLiquidity;
    
    string private constant _name = "Teh Great Race";
    string private constant _symbol = "F12";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private swapping;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private tradingActiveBlock = 0; 
    uint256 private blocksToBlacklist = 11;
    uint256 private _maxBuyAmount = _tTotal;
    uint256 private _maxSellAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private swapTokensAtAmount = 0;
    
    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event MaxSellAmountUpdated(uint _maxSellAmount);
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address _uniswapV2Router, address DevelopmentWallet) {
        uniswapV2Router = IUniswapV2Router02(_uniswapV2Router);

        _DevelopmentWallet = payable(DevelopmentWallet);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_DevelopmentWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _rOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function setSwapEnabled(bool onoff) external onlyOwner(){
        swapEnabled = onoff;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0));
        require(spender != address(0));
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0));
        require(to != address(0));
        require(amount > 0);
        bool takeFee = false;
        bool shouldSwap = false;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            require(!bots[from] && !bots[to]);

            takeFee = true;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxBuyAmount);
                require(balanceOf(to) + amount <= _maxWalletAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !_isExcludedFromFee[from] && cooldownEnabled) {
                require(amount <= _maxSellAmount);
                shouldSwap = true;
            }
        }

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = (contractTokenBalance > swapTokensAtAmount) && shouldSwap;

        if (canSwap && swapEnabled && !swapping && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        _tokenTransfer(from,to,amount,takeFee, shouldSwap);
    }

    function swapBack() private {
        uint256 tokensForDevelopment = balanceOf(address(this));
        
        bool success;
        
        if(tokensForDevelopment == 0) {return;}

        if(tokensForDevelopment > swapTokensAtAmount * 10) {
            tokensForDevelopment = swapTokensAtAmount * 10;
        }
                
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(tokensForDevelopment); 
                              
        (success,) = address(_DevelopmentWallet).call{value: address(this).balance - initialETHBalance}("");
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
       
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");        
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxBuyAmount = 5e6 * 10**8;
        _maxSellAmount = 5e6 * 10**8;
        _maxWalletAmount = 1e7 * 10**8;
        swapTokensAtAmount = 5e5 * 10**8;
        tradingOpen = true;
        tradingActiveBlock = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    

    function setMaxBuyAmount(uint256 maxBuy) public onlyOwner {
        _maxBuyAmount = maxBuy;
    }

    function setMaxSellAmount(uint256 maxSell) public onlyOwner {
        _maxSellAmount = maxSell;
    }
    
    function setMaxWalletAmount(uint256 maxToken) public onlyOwner {
        _maxWalletAmount = maxToken;
    }
    
    function setSwapTokensAtAmount(uint256 newAmount) public onlyOwner {
        require(newAmount >= 1e3 * 10**9);
        require(newAmount <= 5e6 * 10**9);
        swapTokensAtAmount = newAmount;
    }

    function setDevelopmentWallet(address DevelopmentWallet) public onlyOwner() {
        require(DevelopmentWallet != address(0));
        _isExcludedFromFee[_DevelopmentWallet] = false;
        _DevelopmentWallet = payable(DevelopmentWallet);
        _isExcludedFromFee[_DevelopmentWallet] = true;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setBuyFee(uint256 buyDevelopmentFee) external onlyOwner {
        _buyDevelopmentFee = buyDevelopmentFee;
    }

    function setSellFee(uint256 sellDevelopmentFee) external onlyOwner {
        _sellDevelopmentFee = sellDevelopmentFee;
        
    }

    function setBlocksToBlacklist(uint256 blocks) public onlyOwner {
        blocksToBlacklist = blocks;
    }

    function removeAllFee() private {
        if(_buyDevelopmentFee == 0 && _sellDevelopmentFee == 0) return;
        
        _previousBuyDevelopmentFee = _buyDevelopmentFee;
        _previousSellDevelopmentFee = _sellDevelopmentFee;
                
        _buyDevelopmentFee = 0;
        _sellDevelopmentFee = 0;        
    }
    
    function restoreAllFee() private {
        _buyDevelopmentFee = _previousBuyDevelopmentFee;
        _sellDevelopmentFee = _previousSellDevelopmentFee;
    }

        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 devFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            devFee = 99;            
        } else {
            if (isSell) {
                devFee = _sellDevelopmentFee;                
            } else {
                devFee = _buyDevelopmentFee;                
            }
        }
                
        uint256 tokensForDevelopment = amount.mul(devFee).div(100);
        if(tokensForDevelopment > 0) {
            _transferStandard(sender, address(this), tokensForDevelopment);
        }
            
        return amount -= tokensForDevelopment;
    }

    receive() external payable {}

    function manualswap() public onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    
    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_uniswapV2Router","type":"address"},{"internalType":"address","name":"DevelopmentWallet","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":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"MaxSellAmountUpdated","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setBlocksToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyDevelopmentFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"DevelopmentWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellDevelopmentFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260636007556007546008556063600955600954600a556000600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff0219169083151502179055506000600e60186101000a81548160ff0219169083151502179055506000600f55600b60105567016345785d8a000060115567016345785d8a000060125567016345785d8a00006013556000601455348015620000ab57600080fd5b5060405162003cbf38038062003cbf8339818101604052810190620000d1919062000466565b6000620000e36200041e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067016345785d8a000060026000620002206200041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002746200042660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003a76200041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200040e9190620004b8565b60405180910390a350506200052d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004608162000513565b92915050565b600080604083850312156200047a57600080fd5b60006200048a858286016200044f565b92505060206200049d858286016200044f565b9150509250929050565b620004b28162000509565b82525050565b6000602082019050620004cf6000830184620004a7565b92915050565b6000620004e282620004e9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6200051e81620004d5565b81146200052a57600080fd5b50565b613782806200053d6000396000f3fe6080604052600436106101bb5760003560e01c80638b4cee08116100ec578063dd62ed3e1161008a578063e99c9d0911610064578063e99c9d09146105db578063ea2f0b3714610604578063f34eb0b81461062d578063f5648a4f14610656576101c2565b8063dd62ed3e1461054c578063e01af92c14610589578063e6f7ef4d146105b2576101c2565b8063a9059cbb116100c6578063a9059cbb146104b8578063afa4f3b2146104f5578063c3c8cd801461051e578063c9567bf914610535576101c2565b80638b4cee08146104395780638da5cb5b1461046257806395d89b411461048d576101c2565b8063313ce567116101595780635932ead1116101335780635932ead11461039357806370a08231146103bc578063715018a6146103f957806372ac248614610410576101c2565b8063313ce56714610314578063437823ec1461033f57806349bd5a5e14610368576101c2565b80631694505e116101955780631694505e1461025857806318160ddd1461028357806323b872dd146102ae57806327a14fc2146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630cc835a31461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61066d565b6040516101e99190613266565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612e80565b6106aa565b6040516102269190613230565b60405180910390f35b34801561023b57600080fd5b5061025660048036038101906102519190612f0e565b6106c8565b005b34801561026457600080fd5b5061026d610767565b60405161027a919061324b565b60405180910390f35b34801561028f57600080fd5b5061029861078d565b6040516102a59190613308565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d09190612e31565b61079d565b6040516102e29190613230565b60405180910390f35b3480156102f757600080fd5b50610312600480360381019061030d9190612f0e565b61085c565b005b34801561032057600080fd5b506103296108fb565b604051610336919061337d565b60405180910390f35b34801561034b57600080fd5b5061036660048036038101906103619190612da3565b610904565b005b34801561037457600080fd5b5061037d6109f4565b60405161038a9190613162565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b59190612ebc565b610a1a565b005b3480156103c857600080fd5b506103e360048036038101906103de9190612da3565b610acc565b6040516103f09190613308565b60405180910390f35b34801561040557600080fd5b5061040e610b15565b005b34801561041c57600080fd5b5061043760048036038101906104329190612da3565b610c68565b005b34801561044557600080fd5b50610460600480360381019061045b9190612f0e565b610e6f565b005b34801561046e57600080fd5b50610477610f0e565b6040516104849190613162565b60405180910390f35b34801561049957600080fd5b506104a2610f37565b6040516104af9190613266565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190612e80565b610f74565b6040516104ec9190613230565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190612f0e565b610f92565b005b34801561052a57600080fd5b50610533611057565b005b34801561054157600080fd5b5061054a611105565b005b34801561055857600080fd5b50610573600480360381019061056e9190612df5565b611678565b6040516105809190613308565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190612ebc565b6116ff565b005b3480156105be57600080fd5b506105d960048036038101906105d49190612f0e565b6117b1565b005b3480156105e757600080fd5b5061060260048036038101906105fd9190612f0e565b611850565b005b34801561061057600080fd5b5061062b60048036038101906106269190612da3565b6118ef565b005b34801561063957600080fd5b50610654600480360381019061064f9190612f0e565b6119df565b005b34801561066257600080fd5b5061066b611a7e565b005b60606040518060400160405280600e81526020017f5465682047726561742052616365000000000000000000000000000000000000815250905090565b60006106be6106b7611b84565b8484611b8c565b6001905092915050565b6106d0611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906132c8565b60405180910390fd5b8060078190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006107aa848484611ceb565b610851846107b6611b84565b61084c85600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610803611b84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b611b8c565b600190509392505050565b610864611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e8906132c8565b60405180910390fd5b8060138190555050565b60006009905090565b61090c611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610990906132c8565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a22611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa6906132c8565b60405180910390fd5b80600e60186101000a81548160ff02191690831515021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b1d611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba1906132c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c70611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf4906132c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d3757600080fd5b600060046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e77611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb906132c8565b60405180910390fd5b8060098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4631320000000000000000000000000000000000000000000000000000000000815250905090565b6000610f88610f81611b84565b8484611ceb565b6001905092915050565b610f9a611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e906132c8565b60405180910390fd5b64e8d4a5100081101561103957600080fd5b6611c37937e0800081111561104d57600080fd5b8060148190555050565b61105f611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e3906132c8565b60405180910390fd5b60006110f730610acc565b905061110281612491565b50565b61110d611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906132c8565b60405180910390fd5b600e60149054906101000a900460ff16156111ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e1906132e8565b60405180910390fd5b61121f30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a0000611b8c565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561128757600080fd5b505afa15801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190612dcc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561134357600080fd5b505afa158015611357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137b9190612dcc565b6040518363ffffffff1660e01b815260040161139892919061317d565b602060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea9190612dcc565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061147330610acc565b60008061147e610f0e565b426040518863ffffffff1660e01b81526004016114a0969594939291906131cf565b6060604051808303818588803b1580156114b957600080fd5b505af11580156114cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114f29190612f37565b5050506001600e60176101000a81548160ff0219169083151502179055506001600e60186101000a81548160ff0219169083151502179055506601c6bf526340006011819055506601c6bf5263400060128190555066038d7ea4c68000601381905550652d79883d20006014819055506001600e60146101000a81548160ff02191690831515021790555043600f81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116239291906131a6565b602060405180830381600087803b15801561163d57600080fd5b505af1158015611651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116759190612ee5565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611707611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b906132c8565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b6117b9611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906132c8565b60405180910390fd5b8060108190555050565b611858611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dc906132c8565b60405180910390fd5b8060128190555050565b6118f7611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b906132c8565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6119e7611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6b906132c8565b60405180910390fd5b8060118190555050565b611a86611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a906132c8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611b399061314d565b60006040518083038185875af1925050503d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bc657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c0057600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cde9190613308565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d2557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d5f57600080fd5b60008111611d6c57600080fd5b600080611d77610f0e565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611de55750611db5610f0e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e1e5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e58575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e715750600e60159054906101000a900460ff16155b1561224557600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f1a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f2357600080fd5b60019150600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611fd25750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120285750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120405750600e60189054906101000a900460ff165b156121125760115483111561205457600080fd5b6013548361206186610acc565b61206b91906133f8565b111561207657600080fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106120c157600080fd5b601e426120ce91906133f8565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121bd5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122135750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222b5750600e60189054906101000a900460ff165b156122445760125483111561223f57600080fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122e65750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122f057600091505b60006122fb30610acc565b905060006014548211801561230d5750825b90508080156123285750600e60179054906101000a900460ff165b80156123415750600e60159054906101000a900460ff16155b80156123975750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123ed5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612431576001600e60156101000a81548160ff02191690831515021790555061241561278b565b6000600e60156101000a81548160ff0219169083151502179055505b61243e878787878761287e565b50505050505050565b600061248983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128be565b905092915050565b6001600e60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561251d5781602001602082028036833780820191505090505b509050308160008151811061255b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156125fd57600080fd5b505afa158015612611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126359190612dcc565b8160018151811061266f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126d630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b8c565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161273a959493929190613323565b600060405180830381600087803b15801561275457600080fd5b505af1158015612768573d6000803e3d6000fd5b50505050506000600e60166101000a81548160ff02191690831515021790555050565b600061279630610acc565b90506000808214156127a957505061287c565b600a6014546127b8919061347f565b8211156127d157600a6014546127ce919061347f565b91505b60004790506127df83612491565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16814761282491906134d9565b6040516128309061314d565b60006040518083038185875af1925050503d806000811461286d576040519150601f19603f3d011682016040523d82523d6000602084013e612872565b606091505b5050809250505050505b565b816128905761288b612922565b61289e565b61289b858483612965565b92505b6128a98585856129f7565b816128b7576128b6612b8b565b5b5050505050565b6000838311158290612906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fd9190613266565b60405180910390fd5b506000838561291591906134d9565b9050809150509392505050565b600060075414801561293657506000600954145b1561294057612963565b600754600881905550600954600a81905550600060078190555060006009819055505b565b60008043601054600f5461297991906133f8565b10612987576063905061299e565b821561299757600954905061299d565b60075490505b5b60006129c660646129b88488612b9f90919063ffffffff16565b612c1a90919063ffffffff16565b905060008111156129dd576129dc8630836129f7565b5b80856129e991906134d9565b945084925050509392505050565b612a4981600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ade81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6490919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b7e9190613308565b60405180910390a3505050565b600854600781905550600a54600981905550565b600080831415612bb25760009050612c14565b60008284612bc0919061347f565b9050828482612bcf919061344e565b14612c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c06906132a8565b60405180910390fd5b809150505b92915050565b6000612c5c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cc2565b905092915050565b6000808284612c7391906133f8565b905083811015612cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612caf90613288565b60405180910390fd5b8091505092915050565b60008083118290612d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d009190613266565b60405180910390fd5b5060008385612d18919061344e565b9050809150509392505050565b600081359050612d3481613707565b92915050565b600081519050612d4981613707565b92915050565b600081359050612d5e8161371e565b92915050565b600081519050612d738161371e565b92915050565b600081359050612d8881613735565b92915050565b600081519050612d9d81613735565b92915050565b600060208284031215612db557600080fd5b6000612dc384828501612d25565b91505092915050565b600060208284031215612dde57600080fd5b6000612dec84828501612d3a565b91505092915050565b60008060408385031215612e0857600080fd5b6000612e1685828601612d25565b9250506020612e2785828601612d25565b9150509250929050565b600080600060608486031215612e4657600080fd5b6000612e5486828701612d25565b9350506020612e6586828701612d25565b9250506040612e7686828701612d79565b9150509250925092565b60008060408385031215612e9357600080fd5b6000612ea185828601612d25565b9250506020612eb285828601612d79565b9150509250929050565b600060208284031215612ece57600080fd5b6000612edc84828501612d4f565b91505092915050565b600060208284031215612ef757600080fd5b6000612f0584828501612d64565b91505092915050565b600060208284031215612f2057600080fd5b6000612f2e84828501612d79565b91505092915050565b600080600060608486031215612f4c57600080fd5b6000612f5a86828701612d8e565b9350506020612f6b86828701612d8e565b9250506040612f7c86828701612d8e565b9150509250925092565b6000612f928383612f9e565b60208301905092915050565b612fa78161350d565b82525050565b612fb68161350d565b82525050565b6000612fc7826133a8565b612fd181856133cb565b9350612fdc83613398565b8060005b8381101561300d578151612ff48882612f86565b9750612fff836133be565b925050600181019050612fe0565b5085935050505092915050565b6130238161351f565b82525050565b61303281613562565b82525050565b61304181613586565b82525050565b6000613052826133b3565b61305c81856133e7565b935061306c818560208601613598565b61307581613629565b840191505092915050565b600061308d601b836133e7565b91506130988261363a565b602082019050919050565b60006130b06021836133e7565b91506130bb82613663565b604082019050919050565b60006130d36020836133e7565b91506130de826136b2565b602082019050919050565b60006130f66000836133dc565b9150613101826136db565b600082019050919050565b60006131196017836133e7565b9150613124826136de565b602082019050919050565b6131388161354b565b82525050565b61314781613555565b82525050565b6000613158826130e9565b9150819050919050565b60006020820190506131776000830184612fad565b92915050565b60006040820190506131926000830185612fad565b61319f6020830184612fad565b9392505050565b60006040820190506131bb6000830185612fad565b6131c8602083018461312f565b9392505050565b600060c0820190506131e46000830189612fad565b6131f1602083018861312f565b6131fe6040830187613038565b61320b6060830186613038565b6132186080830185612fad565b61322560a083018461312f565b979650505050505050565b6000602082019050613245600083018461301a565b92915050565b60006020820190506132606000830184613029565b92915050565b600060208201905081810360008301526132808184613047565b905092915050565b600060208201905081810360008301526132a181613080565b9050919050565b600060208201905081810360008301526132c1816130a3565b9050919050565b600060208201905081810360008301526132e1816130c6565b9050919050565b600060208201905081810360008301526133018161310c565b9050919050565b600060208201905061331d600083018461312f565b92915050565b600060a082019050613338600083018861312f565b6133456020830187613038565b81810360408301526133578186612fbc565b90506133666060830185612fad565b613373608083018461312f565b9695505050505050565b6000602082019050613392600083018461313e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134038261354b565b915061340e8361354b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613443576134426135cb565b5b828201905092915050565b60006134598261354b565b91506134648361354b565b925082613474576134736135fa565b5b828204905092915050565b600061348a8261354b565b91506134958361354b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134ce576134cd6135cb565b5b828202905092915050565b60006134e48261354b565b91506134ef8361354b565b925082821015613502576135016135cb565b5b828203905092915050565b60006135188261352b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061356d82613574565b9050919050565b600061357f8261352b565b9050919050565b60006135918261354b565b9050919050565b60005b838110156135b657808201518184015260208101905061359b565b838111156135c5576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6137108161350d565b811461371b57600080fd5b50565b6137278161351f565b811461373257600080fd5b50565b61373e8161354b565b811461374957600080fd5b5056fea2646970667358221220c40978512e59f2de9111efdc4f82ebdde27c3098578e5e856fa9f15002dbc5ad64736f6c634300080400330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000ed8c144fc2a56874dae2f71e9c7967c8c4195d86

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638b4cee08116100ec578063dd62ed3e1161008a578063e99c9d0911610064578063e99c9d09146105db578063ea2f0b3714610604578063f34eb0b81461062d578063f5648a4f14610656576101c2565b8063dd62ed3e1461054c578063e01af92c14610589578063e6f7ef4d146105b2576101c2565b8063a9059cbb116100c6578063a9059cbb146104b8578063afa4f3b2146104f5578063c3c8cd801461051e578063c9567bf914610535576101c2565b80638b4cee08146104395780638da5cb5b1461046257806395d89b411461048d576101c2565b8063313ce567116101595780635932ead1116101335780635932ead11461039357806370a08231146103bc578063715018a6146103f957806372ac248614610410576101c2565b8063313ce56714610314578063437823ec1461033f57806349bd5a5e14610368576101c2565b80631694505e116101955780631694505e1461025857806318160ddd1461028357806323b872dd146102ae57806327a14fc2146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630cc835a31461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61066d565b6040516101e99190613266565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612e80565b6106aa565b6040516102269190613230565b60405180910390f35b34801561023b57600080fd5b5061025660048036038101906102519190612f0e565b6106c8565b005b34801561026457600080fd5b5061026d610767565b60405161027a919061324b565b60405180910390f35b34801561028f57600080fd5b5061029861078d565b6040516102a59190613308565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d09190612e31565b61079d565b6040516102e29190613230565b60405180910390f35b3480156102f757600080fd5b50610312600480360381019061030d9190612f0e565b61085c565b005b34801561032057600080fd5b506103296108fb565b604051610336919061337d565b60405180910390f35b34801561034b57600080fd5b5061036660048036038101906103619190612da3565b610904565b005b34801561037457600080fd5b5061037d6109f4565b60405161038a9190613162565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b59190612ebc565b610a1a565b005b3480156103c857600080fd5b506103e360048036038101906103de9190612da3565b610acc565b6040516103f09190613308565b60405180910390f35b34801561040557600080fd5b5061040e610b15565b005b34801561041c57600080fd5b5061043760048036038101906104329190612da3565b610c68565b005b34801561044557600080fd5b50610460600480360381019061045b9190612f0e565b610e6f565b005b34801561046e57600080fd5b50610477610f0e565b6040516104849190613162565b60405180910390f35b34801561049957600080fd5b506104a2610f37565b6040516104af9190613266565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190612e80565b610f74565b6040516104ec9190613230565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190612f0e565b610f92565b005b34801561052a57600080fd5b50610533611057565b005b34801561054157600080fd5b5061054a611105565b005b34801561055857600080fd5b50610573600480360381019061056e9190612df5565b611678565b6040516105809190613308565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190612ebc565b6116ff565b005b3480156105be57600080fd5b506105d960048036038101906105d49190612f0e565b6117b1565b005b3480156105e757600080fd5b5061060260048036038101906105fd9190612f0e565b611850565b005b34801561061057600080fd5b5061062b60048036038101906106269190612da3565b6118ef565b005b34801561063957600080fd5b50610654600480360381019061064f9190612f0e565b6119df565b005b34801561066257600080fd5b5061066b611a7e565b005b60606040518060400160405280600e81526020017f5465682047726561742052616365000000000000000000000000000000000000815250905090565b60006106be6106b7611b84565b8484611b8c565b6001905092915050565b6106d0611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906132c8565b60405180910390fd5b8060078190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006107aa848484611ceb565b610851846107b6611b84565b61084c85600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610803611b84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b611b8c565b600190509392505050565b610864611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e8906132c8565b60405180910390fd5b8060138190555050565b60006009905090565b61090c611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610990906132c8565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a22611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa6906132c8565b60405180910390fd5b80600e60186101000a81548160ff02191690831515021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b1d611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba1906132c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c70611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf4906132c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d3757600080fd5b600060046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e77611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb906132c8565b60405180910390fd5b8060098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4631320000000000000000000000000000000000000000000000000000000000815250905090565b6000610f88610f81611b84565b8484611ceb565b6001905092915050565b610f9a611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e906132c8565b60405180910390fd5b64e8d4a5100081101561103957600080fd5b6611c37937e0800081111561104d57600080fd5b8060148190555050565b61105f611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e3906132c8565b60405180910390fd5b60006110f730610acc565b905061110281612491565b50565b61110d611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906132c8565b60405180910390fd5b600e60149054906101000a900460ff16156111ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e1906132e8565b60405180910390fd5b61121f30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a0000611b8c565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561128757600080fd5b505afa15801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190612dcc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561134357600080fd5b505afa158015611357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137b9190612dcc565b6040518363ffffffff1660e01b815260040161139892919061317d565b602060405180830381600087803b1580156113b257600080fd5b505af11580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea9190612dcc565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061147330610acc565b60008061147e610f0e565b426040518863ffffffff1660e01b81526004016114a0969594939291906131cf565b6060604051808303818588803b1580156114b957600080fd5b505af11580156114cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114f29190612f37565b5050506001600e60176101000a81548160ff0219169083151502179055506001600e60186101000a81548160ff0219169083151502179055506601c6bf526340006011819055506601c6bf5263400060128190555066038d7ea4c68000601381905550652d79883d20006014819055506001600e60146101000a81548160ff02191690831515021790555043600f81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116239291906131a6565b602060405180830381600087803b15801561163d57600080fd5b505af1158015611651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116759190612ee5565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611707611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b906132c8565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b6117b9611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d906132c8565b60405180910390fd5b8060108190555050565b611858611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dc906132c8565b60405180910390fd5b8060128190555050565b6118f7611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b906132c8565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6119e7611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6b906132c8565b60405180910390fd5b8060118190555050565b611a86611b84565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a906132c8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611b399061314d565b60006040518083038185875af1925050503d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bc657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c0057600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cde9190613308565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d2557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d5f57600080fd5b60008111611d6c57600080fd5b600080611d77610f0e565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611de55750611db5610f0e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e1e5750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e58575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e715750600e60159054906101000a900460ff16155b1561224557600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f1a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f2357600080fd5b60019150600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611fd25750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120285750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120405750600e60189054906101000a900460ff165b156121125760115483111561205457600080fd5b6013548361206186610acc565b61206b91906133f8565b111561207657600080fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106120c157600080fd5b601e426120ce91906133f8565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121bd5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122135750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561222b5750600e60189054906101000a900460ff165b156122445760125483111561223f57600080fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122e65750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122f057600091505b60006122fb30610acc565b905060006014548211801561230d5750825b90508080156123285750600e60179054906101000a900460ff165b80156123415750600e60159054906101000a900460ff16155b80156123975750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123ed5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612431576001600e60156101000a81548160ff02191690831515021790555061241561278b565b6000600e60156101000a81548160ff0219169083151502179055505b61243e878787878761287e565b50505050505050565b600061248983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128be565b905092915050565b6001600e60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561251d5781602001602082028036833780820191505090505b509050308160008151811061255b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156125fd57600080fd5b505afa158015612611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126359190612dcc565b8160018151811061266f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126d630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b8c565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161273a959493929190613323565b600060405180830381600087803b15801561275457600080fd5b505af1158015612768573d6000803e3d6000fd5b50505050506000600e60166101000a81548160ff02191690831515021790555050565b600061279630610acc565b90506000808214156127a957505061287c565b600a6014546127b8919061347f565b8211156127d157600a6014546127ce919061347f565b91505b60004790506127df83612491565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16814761282491906134d9565b6040516128309061314d565b60006040518083038185875af1925050503d806000811461286d576040519150601f19603f3d011682016040523d82523d6000602084013e612872565b606091505b5050809250505050505b565b816128905761288b612922565b61289e565b61289b858483612965565b92505b6128a98585856129f7565b816128b7576128b6612b8b565b5b5050505050565b6000838311158290612906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fd9190613266565b60405180910390fd5b506000838561291591906134d9565b9050809150509392505050565b600060075414801561293657506000600954145b1561294057612963565b600754600881905550600954600a81905550600060078190555060006009819055505b565b60008043601054600f5461297991906133f8565b10612987576063905061299e565b821561299757600954905061299d565b60075490505b5b60006129c660646129b88488612b9f90919063ffffffff16565b612c1a90919063ffffffff16565b905060008111156129dd576129dc8630836129f7565b5b80856129e991906134d9565b945084925050509392505050565b612a4981600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ade81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6490919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b7e9190613308565b60405180910390a3505050565b600854600781905550600a54600981905550565b600080831415612bb25760009050612c14565b60008284612bc0919061347f565b9050828482612bcf919061344e565b14612c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c06906132a8565b60405180910390fd5b809150505b92915050565b6000612c5c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cc2565b905092915050565b6000808284612c7391906133f8565b905083811015612cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612caf90613288565b60405180910390fd5b8091505092915050565b60008083118290612d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d009190613266565b60405180910390fd5b5060008385612d18919061344e565b9050809150509392505050565b600081359050612d3481613707565b92915050565b600081519050612d4981613707565b92915050565b600081359050612d5e8161371e565b92915050565b600081519050612d738161371e565b92915050565b600081359050612d8881613735565b92915050565b600081519050612d9d81613735565b92915050565b600060208284031215612db557600080fd5b6000612dc384828501612d25565b91505092915050565b600060208284031215612dde57600080fd5b6000612dec84828501612d3a565b91505092915050565b60008060408385031215612e0857600080fd5b6000612e1685828601612d25565b9250506020612e2785828601612d25565b9150509250929050565b600080600060608486031215612e4657600080fd5b6000612e5486828701612d25565b9350506020612e6586828701612d25565b9250506040612e7686828701612d79565b9150509250925092565b60008060408385031215612e9357600080fd5b6000612ea185828601612d25565b9250506020612eb285828601612d79565b9150509250929050565b600060208284031215612ece57600080fd5b6000612edc84828501612d4f565b91505092915050565b600060208284031215612ef757600080fd5b6000612f0584828501612d64565b91505092915050565b600060208284031215612f2057600080fd5b6000612f2e84828501612d79565b91505092915050565b600080600060608486031215612f4c57600080fd5b6000612f5a86828701612d8e565b9350506020612f6b86828701612d8e565b9250506040612f7c86828701612d8e565b9150509250925092565b6000612f928383612f9e565b60208301905092915050565b612fa78161350d565b82525050565b612fb68161350d565b82525050565b6000612fc7826133a8565b612fd181856133cb565b9350612fdc83613398565b8060005b8381101561300d578151612ff48882612f86565b9750612fff836133be565b925050600181019050612fe0565b5085935050505092915050565b6130238161351f565b82525050565b61303281613562565b82525050565b61304181613586565b82525050565b6000613052826133b3565b61305c81856133e7565b935061306c818560208601613598565b61307581613629565b840191505092915050565b600061308d601b836133e7565b91506130988261363a565b602082019050919050565b60006130b06021836133e7565b91506130bb82613663565b604082019050919050565b60006130d36020836133e7565b91506130de826136b2565b602082019050919050565b60006130f66000836133dc565b9150613101826136db565b600082019050919050565b60006131196017836133e7565b9150613124826136de565b602082019050919050565b6131388161354b565b82525050565b61314781613555565b82525050565b6000613158826130e9565b9150819050919050565b60006020820190506131776000830184612fad565b92915050565b60006040820190506131926000830185612fad565b61319f6020830184612fad565b9392505050565b60006040820190506131bb6000830185612fad565b6131c8602083018461312f565b9392505050565b600060c0820190506131e46000830189612fad565b6131f1602083018861312f565b6131fe6040830187613038565b61320b6060830186613038565b6132186080830185612fad565b61322560a083018461312f565b979650505050505050565b6000602082019050613245600083018461301a565b92915050565b60006020820190506132606000830184613029565b92915050565b600060208201905081810360008301526132808184613047565b905092915050565b600060208201905081810360008301526132a181613080565b9050919050565b600060208201905081810360008301526132c1816130a3565b9050919050565b600060208201905081810360008301526132e1816130c6565b9050919050565b600060208201905081810360008301526133018161310c565b9050919050565b600060208201905061331d600083018461312f565b92915050565b600060a082019050613338600083018861312f565b6133456020830187613038565b81810360408301526133578186612fbc565b90506133666060830185612fad565b613373608083018461312f565b9695505050505050565b6000602082019050613392600083018461313e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134038261354b565b915061340e8361354b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613443576134426135cb565b5b828201905092915050565b60006134598261354b565b91506134648361354b565b925082613474576134736135fa565b5b828204905092915050565b600061348a8261354b565b91506134958361354b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134ce576134cd6135cb565b5b828202905092915050565b60006134e48261354b565b91506134ef8361354b565b925082821015613502576135016135cb565b5b828203905092915050565b60006135188261352b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061356d82613574565b9050919050565b600061357f8261352b565b9050919050565b60006135918261354b565b9050919050565b60005b838110156135b657808201518184015260208101905061359b565b838111156135c5576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6137108161350d565b811461371b57600080fd5b50565b6137278161351f565b811461373257600080fd5b50565b61373e8161354b565b811461374957600080fd5b5056fea2646970667358221220c40978512e59f2de9111efdc4f82ebdde27c3098578e5e856fa9f15002dbc5ad64736f6c63430008040033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000ed8c144fc2a56874dae2f71e9c7967c8c4195d86

-----Decoded View---------------
Arg [0] : _uniswapV2Router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : DevelopmentWallet (address): 0xed8c144fc2A56874dAe2f71e9c7967c8c4195d86

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


Deployed Bytecode Sourcemap

3521:11240:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5656:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6487:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12071:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4446:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5933:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6656:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11183:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5842:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11830:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4494:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6933:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6036:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2600:148;;;;;;;;;;;;;:::i;:::-;;11516:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12201:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2386:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5747:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6161:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11304:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14426:154;;;;;;;;;;;;;:::i;:::-;;10121:826;;;;;;;;;;;;;:::i;:::-;;6336:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7044:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12345:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11068:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11953:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10961:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14598:160;;;;;;;;;;;;;:::i;:::-;;5656:83;5693:13;5726:5;;;;;;;;;;;;;;;;;5719:12;;5656:83;:::o;6487:161::-;6562:4;6579:39;6588:12;:10;:12::i;:::-;6602:7;6611:6;6579:8;:39::i;:::-;6636:4;6629:11;;6487:161;;;;:::o;12071:122::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12168:17:::1;12147:18;:38;;;;12071:122:::0;:::o;4446:41::-;;;;;;;;;;;;;:::o;5933:95::-;5986:7;3926:11;6006:14;;5933:95;:::o;6656:269::-;6754:4;6771:36;6781:6;6789:9;6800:6;6771:9;:36::i;:::-;6818:77;6827:6;6835:12;:10;:12::i;:::-;6849:45;6887:6;6849:11;:19;6861:6;6849:19;;;;;;;;;;;;;;;:33;6869:12;:10;:12::i;:::-;6849:33;;;;;;;;;;;;;;;;:37;;:45;;;;:::i;:::-;6818:8;:77::i;:::-;6913:4;6906:11;;6656:269;;;;;:::o;11183:109::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11276:8:::1;11257:16;:27;;;;11183:109:::0;:::o;5842:83::-;5883:5;4432:1;5901:16;;5842:83;:::o;11830:111::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11929:4:::1;11899:18;:27;11918:7;11899:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11830:111:::0;:::o;4494:28::-;;;;;;;;;;;;;:::o;6933:103::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7023:5:::1;7005:15;;:23;;;;;;;;;;;;;;;;;;6933:103:::0;:::o;6036:117::-;6102:7;6129;:16;6137:7;6129:16;;;;;;;;;;;;;;;;6122:23;;6036:117;;;:::o;2600:148::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2707:1:::1;2670:40;;2691:6;::::0;::::1;;;;;;;;2670:40;;;;;;;;;;;;2738:1;2721:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2600:148::o:0;11516:306::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11640:1:::1;11611:31;;:17;:31;;;;11603:40;;;::::0;::::1;;11695:5;11654:18;:38;11673:18;;;;;;;;;;;11654:38;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;11740:17;11711:18;;:47;;;;;;;;;;;;;;;;;;11810:4;11769:18;:38;11788:18;;;;;;;;;;;11769:38;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;11516:306:::0;:::o;12201:136::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12301:18:::1;12279:19;:40;;;;12201:136:::0;:::o;2386:79::-;2424:7;2451:6;;;;;;;;;;;2444:13;;2386:79;:::o;5747:87::-;5786:13;5819:7;;;;;;;;;;;;;;;;;5812:14;;5747:87;:::o;6161:167::-;6239:4;6256:42;6266:12;:10;:12::i;:::-;6280:9;6291:6;6256:9;:42::i;:::-;6316:4;6309:11;;6161:167;;;;:::o;11304:204::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11403:11:::1;11390:9;:24;;11382:33;;;::::0;::::1;;11447:11;11434:9;:24;;11426:33;;;::::0;::::1;;11491:9;11470:18;:30;;;;11304:204:::0;:::o;14426:154::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14478:23:::1;14504:24;14522:4;14504:9;:24::i;:::-;14478:50;;14539:33;14556:15;14539:16;:33::i;:::-;2583:1;14426:154::o:0;10121:826::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10185:11:::1;;;;;;;;;;;10184:12;10176:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10242:58;10259:4;10274:15;;;;;;;;;;;3926:11;10242:8;:58::i;:::-;10345:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10327:55;;;10391:4;10398:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10327:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10311:13;;:110;;;;;;;;;;;;;;;;;;10432:15;;;;;;;;;;;:31;;;10471:21;10502:4;10508:24;10526:4;10508:9;:24::i;:::-;10533:1;10535::::0;10537:7:::1;:5;:7::i;:::-;10545:15;10432:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10586:4;10572:11;;:18;;;;;;;;;;;;;;;;;;10619:4;10601:15;;:22;;;;;;;;;;;;;;;;;;10650:11;10634:13;:27;;;;10689:11;10672:14;:28;;;;10730:11;10711:16;:30;;;;10773:11;10752:18;:32;;;;10809:4;10795:11;;:18;;;;;;;;;;;;;;;;;;10845:12;10824:18;:33;;;;10875:13;;;;;;;;;;;10868:29;;;10906:15;;;;;;;;;;;10924:14;10868:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10121:826::o:0;6336:143::-;6417:7;6444:11;:18;6456:5;6444:18;;;;;;;;;;;;;;;:27;6463:7;6444:27;;;;;;;;;;;;;;;;6437:34;;6336:143;;;;:::o;7044:94::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7125:5:::1;7111:11;;:19;;;;;;;;;;;;;;;;;;7044:94:::0;:::o;12345:108::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12439:6:::1;12419:17;:26;;;;12345:108:::0;:::o;11068:103::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11156:7:::1;11139:14;:24;;;;11068:103:::0;:::o;11953:110::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12050:5:::1;12020:18;:27;12039:7;12020:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11953:110:::0;:::o;10961:99::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11046:6:::1;11030:13;:22;;;;10961:99:::0;:::o;14598:160::-;2523:12;:10;:12::i;:::-;2513:22;;:6;;;;;;;;;;:22;;;2505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14656:12:::1;14700:10;14692:24;;14724:21;14692:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14679:71;;;;;2583:1;14598:160::o:0;104:98::-;157:7;184:10;177:17;;104:98;:::o;7146:257::-;7256:1;7239:19;;:5;:19;;;;7231:28;;;;;;7297:1;7278:21;;:7;:21;;;;7270:30;;;;;;7341:6;7311:11;:18;7323:5;7311:18;;;;;;;;;;;;;;;:27;7330:7;7311:27;;;;;;;;;;;;;;;:36;;;;7379:7;7363:32;;7372:5;7363:32;;;7388:6;7363:32;;;;;;:::i;:::-;;;;;;;;7146:257;;;:::o;7411:1594::-;7515:1;7499:18;;:4;:18;;;;7491:27;;;;;;7551:1;7537:16;;:2;:16;;;;7529:25;;;;;;7582:1;7573:6;:10;7565:19;;;;;;7595:12;7626:15;7672:7;:5;:7::i;:::-;7664:15;;:4;:15;;;;:32;;;;;7689:7;:5;:7::i;:::-;7683:13;;:2;:13;;;;7664:32;:52;;;;;7714:1;7700:16;;:2;:16;;;;7664:52;:77;;;;;7734:6;7720:21;;:2;:21;;;;7664:77;:90;;;;;7746:8;;;;;;;;;;;7745:9;7664:90;7660:808;;;7780:4;:10;7785:4;7780:10;;;;;;;;;;;;;;;;;;;;;;;;;7779:11;:24;;;;;7795:4;:8;7800:2;7795:8;;;;;;;;;;;;;;;;;;;;;;;;;7794:9;7779:24;7771:33;;;;;;7831:4;7821:14;;7862:13;;;;;;;;;;;7854:21;;:4;:21;;;:55;;;;;7893:15;;;;;;;;;;;7879:30;;:2;:30;;;;7854:55;:82;;;;;7914:18;:22;7933:2;7914:22;;;;;;;;;;;;;;;;;;;;;;;;;7913:23;7854:82;:101;;;;;7940:15;;;;;;;;;;;7854:101;7850:366;;;7994:13;;7984:6;:23;;7976:32;;;;;;8061:16;;8051:6;8035:13;8045:2;8035:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;8027:51;;;;;;8120:15;8105:8;:12;8114:2;8105:12;;;;;;;;;;;;;;;;:30;8097:39;;;;;;8189:10;8170:15;:30;;;;:::i;:::-;8155:8;:12;8164:2;8155:12;;;;;;;;;;;;;;;:45;;;;7850:366;8254:13;;;;;;;;;;;8248:19;;:2;:19;;;:55;;;;;8287:15;;;;;;;;;;;8271:32;;:4;:32;;;;8248:55;:84;;;;;8308:18;:24;8327:4;8308:24;;;;;;;;;;;;;;;;;;;;;;;;;8307:25;8248:84;:103;;;;;8336:15;;;;;;;;;;;8248:103;8244:213;;;8390:14;;8380:6;:24;;8372:33;;;;;;8437:4;8424:17;;8244:213;7660:808;8483:18;:24;8502:4;8483:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8511:18;:22;8530:2;8511:22;;;;;;;;;;;;;;;;;;;;;;;;;8483:50;8480:97;;;8560:5;8550:15;;8480:97;8589:28;8620:24;8638:4;8620:9;:24::i;:::-;8589:55;;8655:12;8694:18;;8671:20;:41;8670:57;;;;;8717:10;8670:57;8655:72;;8744:7;:22;;;;;8755:11;;;;;;;;;;;8744:22;:35;;;;;8771:8;;;;;;;;;;;8770:9;8744:35;:64;;;;;8784:18;:24;8803:4;8784:24;;;;;;;;;;;;;;;;;;;;;;;;;8783:25;8744:64;:91;;;;;8813:18;:22;8832:2;8813:22;;;;;;;;;;;;;;;;;;;;;;;;;8812:23;8744:91;8740:195;;;8863:4;8852:8;;:15;;;;;;;;;;;;;;;;;;8882:10;:8;:10::i;:::-;8918:5;8907:8;;:16;;;;;;;;;;;;;;;;;;8740:195;8947:50;8962:4;8967:2;8970:6;8977:7;8986:10;8947:14;:50::i;:::-;7411:1594;;;;;;;:::o;1097:136::-;1155:7;1182:43;1186:1;1189;1182:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1175:50;;1097:136;;;;:::o;9623:483::-;5141:4;5132:6;;:13;;;;;;;;;;;;;;;;;;9701:21:::1;9739:1;9725:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9701:40;;9770:4;9752;9757:1;9752:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9796:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9786:4;9791:1;9786:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9829:62;9846:4;9861:15;;;;;;;;;;;9879:11;9829:8;:62::i;:::-;9902:15;;;;;;;;;;;:66;;;9983:11;10009:1;10025:4;10052;10072:15;9902:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5156:1;5177:5:::0;5168:6;;:14;;;;;;;;;;;;;;;;;;9623:483;:::o;9013:602::-;9052:28;9083:24;9101:4;9083:9;:24::i;:::-;9052:55;;9128:12;9188:1;9164:20;:25;9161:39;;;9192:7;;;;9161:39;9259:2;9238:18;;:23;;;;:::i;:::-;9215:20;:46;9212:124;;;9322:2;9301:18;;:23;;;;:::i;:::-;9278:46;;9212:124;9364:25;9392:21;9364:49;;9426:38;9443:20;9426:16;:38::i;:::-;9529:18;;;;;;;;;;;9521:32;;9585:17;9561:21;:41;;;;:::i;:::-;9521:86;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9508:99;;;;;9013:602;;;;:::o;12984:389::-;13109:7;13105:129;;13133:14;:12;:14::i;:::-;13105:129;;;13189:33;13199:6;13207;13215;13189:9;:33::i;:::-;13180:42;;13105:129;13246:44;13264:6;13272:9;13283:6;13246:17;:44::i;:::-;13315:7;13311:55;;13339:15;:13;:15::i;:::-;13311:55;12984:389;;;;;:::o;1241:190::-;1327:7;1360:1;1355;:6;;1363:12;1347:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1387:9;1403:1;1399;:5;;;;:::i;:::-;1387:17;;1422:1;1415:8;;;1241:190;;;;;:::o;12461:334::-;12529:1;12507:18;;:23;:51;;;;;12557:1;12534:19;;:24;12507:51;12504:63;;;12560:7;;12504:63;12616:18;;12587:26;:47;;;;12675:19;;12645:27;:49;;;;12744:1;12723:18;:22;;;;12778:1;12756:19;:23;;;;12461:334;:::o;13656:725::-;13737:7;13757:14;13827:12;13806:17;;13785:18;;:38;;;;:::i;:::-;:54;13782:315;;13864:2;13855:11;;13782:315;;;13915:6;13911:175;;;13951:19;;13942:28;;13911:175;;;14036:18;;14027:27;;13911:175;13782:315;14125:28;14156:27;14179:3;14156:18;14167:6;14156;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;14125:58;;14220:1;14197:20;:24;14194:118;;;14238:62;14256:6;14272:4;14279:20;14238:17;:62::i;:::-;14194:118;14353:20;14343:30;;;;;:::i;:::-;;;;14336:37;;;;13656:725;;;;;:::o;13381:267::-;13497:28;13517:7;13497;:15;13505:6;13497:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13479:7;:15;13487:6;13479:15;;;;;;;;;;;;;;;:46;;;;13557:31;13580:7;13557;:18;13565:9;13557:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;13536:7;:18;13544:9;13536:18;;;;;;;;;;;;;;;:52;;;;13621:9;13604:36;;13613:6;13604:36;;;13632:7;13604:36;;;;;;:::i;:::-;;;;;;;;13381:267;;;:::o;12807:159::-;12872:26;;12851:18;:47;;;;12931:27;;12909:19;:49;;;;12807:159::o;1439:246::-;1497:7;1526:1;1521;:6;1517:47;;;1551:1;1544:8;;;;1517:47;1574:9;1590:1;1586;:5;;;;:::i;:::-;1574:17;;1619:1;1614;1610;:5;;;;:::i;:::-;:10;1602:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1676:1;1669:8;;;1439:246;;;;;:::o;1693:132::-;1751:7;1778:39;1782:1;1785;1778:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1771:46;;1693:132;;;;:::o;910:179::-;968:7;988:9;1004:1;1000;:5;;;;:::i;:::-;988:17;;1029:1;1024;:6;;1016:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1080:1;1073:8;;;910:179;;;;:::o;1833:189::-;1919:7;1951:1;1947;:5;1954:12;1939:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1978:9;1994:1;1990;:5;;;;:::i;:::-;1978:17;;2013:1;2006:8;;;1833:189;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:262::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;1001:1;998;991:12;953:2;1044:1;1069:53;1114:7;1105:6;1094:9;1090:22;1069:53;:::i;:::-;1059:63;;1015:117;943:196;;;;:::o;1145:284::-;1215:6;1264:2;1252:9;1243:7;1239:23;1235:32;1232:2;;;1280:1;1277;1270:12;1232:2;1323:1;1348:64;1404:7;1395:6;1384:9;1380:22;1348:64;:::i;:::-;1338:74;;1294:128;1222:207;;;;:::o;1435:407::-;1503:6;1511;1560:2;1548:9;1539:7;1535:23;1531:32;1528:2;;;1576:1;1573;1566:12;1528:2;1619:1;1644:53;1689:7;1680:6;1669:9;1665:22;1644:53;:::i;:::-;1634:63;;1590:117;1746:2;1772:53;1817:7;1808:6;1797:9;1793:22;1772:53;:::i;:::-;1762:63;;1717:118;1518:324;;;;;:::o;1848:552::-;1925:6;1933;1941;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2049:1;2074:53;2119:7;2110:6;2099:9;2095:22;2074:53;:::i;:::-;2064:63;;2020:117;2176:2;2202:53;2247:7;2238:6;2227:9;2223:22;2202:53;:::i;:::-;2192:63;;2147:118;2304:2;2330:53;2375:7;2366:6;2355:9;2351:22;2330:53;:::i;:::-;2320:63;;2275:118;1948:452;;;;;:::o;2406:407::-;2474:6;2482;2531:2;2519:9;2510:7;2506:23;2502:32;2499:2;;;2547:1;2544;2537:12;2499:2;2590:1;2615:53;2660:7;2651:6;2640:9;2636:22;2615:53;:::i;:::-;2605:63;;2561:117;2717:2;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2688:118;2489:324;;;;;:::o;2819:256::-;2875:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:2;;;2940:1;2937;2930:12;2892:2;2983:1;3008:50;3050:7;3041:6;3030:9;3026:22;3008:50;:::i;:::-;2998:60;;2954:114;2882:193;;;;:::o;3081:278::-;3148:6;3197:2;3185:9;3176:7;3172:23;3168:32;3165:2;;;3213:1;3210;3203:12;3165:2;3256:1;3281:61;3334:7;3325:6;3314:9;3310:22;3281:61;:::i;:::-;3271:71;;3227:125;3155:204;;;;:::o;3365:262::-;3424:6;3473:2;3461:9;3452:7;3448:23;3444:32;3441:2;;;3489:1;3486;3479:12;3441:2;3532:1;3557:53;3602:7;3593:6;3582:9;3578:22;3557:53;:::i;:::-;3547:63;;3503:117;3431:196;;;;:::o;3633:596::-;3721:6;3729;3737;3786:2;3774:9;3765:7;3761:23;3757:32;3754:2;;;3802:1;3799;3792:12;3754:2;3845:1;3870:64;3926:7;3917:6;3906:9;3902:22;3870:64;:::i;:::-;3860:74;;3816:128;3983:2;4009:64;4065:7;4056:6;4045:9;4041:22;4009:64;:::i;:::-;3999:74;;3954:129;4122:2;4148:64;4204:7;4195:6;4184:9;4180:22;4148:64;:::i;:::-;4138:74;;4093:129;3744:485;;;;;:::o;4235:179::-;4304:10;4325:46;4367:3;4359:6;4325:46;:::i;:::-;4403:4;4398:3;4394:14;4380:28;;4315:99;;;;:::o;4420:108::-;4497:24;4515:5;4497:24;:::i;:::-;4492:3;4485:37;4475:53;;:::o;4534:118::-;4621:24;4639:5;4621:24;:::i;:::-;4616:3;4609:37;4599:53;;:::o;4688:732::-;4807:3;4836:54;4884:5;4836:54;:::i;:::-;4906:86;4985:6;4980:3;4906:86;:::i;:::-;4899:93;;5016:56;5066:5;5016:56;:::i;:::-;5095:7;5126:1;5111:284;5136:6;5133:1;5130:13;5111:284;;;5212:6;5206:13;5239:63;5298:3;5283:13;5239:63;:::i;:::-;5232:70;;5325:60;5378:6;5325:60;:::i;:::-;5315:70;;5171:224;5158:1;5155;5151:9;5146:14;;5111:284;;;5115:14;5411:3;5404:10;;4812:608;;;;;;;:::o;5426:109::-;5507:21;5522:5;5507:21;:::i;:::-;5502:3;5495:34;5485:50;;:::o;5541:183::-;5654:63;5711:5;5654:63;:::i;:::-;5649:3;5642:76;5632:92;;:::o;5730:147::-;5825:45;5864:5;5825:45;:::i;:::-;5820:3;5813:58;5803:74;;:::o;5883:364::-;5971:3;5999:39;6032:5;5999:39;:::i;:::-;6054:71;6118:6;6113:3;6054:71;:::i;:::-;6047:78;;6134:52;6179:6;6174:3;6167:4;6160:5;6156:16;6134:52;:::i;:::-;6211:29;6233:6;6211:29;:::i;:::-;6206:3;6202:39;6195:46;;5975:272;;;;;:::o;6253:366::-;6395:3;6416:67;6480:2;6475:3;6416:67;:::i;:::-;6409:74;;6492:93;6581:3;6492:93;:::i;:::-;6610:2;6605:3;6601:12;6594:19;;6399:220;;;:::o;6625:366::-;6767:3;6788:67;6852:2;6847:3;6788:67;:::i;:::-;6781:74;;6864:93;6953:3;6864:93;:::i;:::-;6982:2;6977:3;6973:12;6966:19;;6771:220;;;:::o;6997:366::-;7139:3;7160:67;7224:2;7219:3;7160:67;:::i;:::-;7153:74;;7236:93;7325:3;7236:93;:::i;:::-;7354:2;7349:3;7345:12;7338:19;;7143:220;;;:::o;7369:398::-;7528:3;7549:83;7630:1;7625:3;7549:83;:::i;:::-;7542:90;;7641:93;7730:3;7641:93;:::i;:::-;7759:1;7754:3;7750:11;7743:18;;7532:235;;;:::o;7773:366::-;7915:3;7936:67;8000:2;7995:3;7936:67;:::i;:::-;7929:74;;8012:93;8101:3;8012:93;:::i;:::-;8130:2;8125:3;8121:12;8114:19;;7919:220;;;:::o;8145:118::-;8232:24;8250:5;8232:24;:::i;:::-;8227:3;8220:37;8210:53;;:::o;8269:112::-;8352:22;8368:5;8352:22;:::i;:::-;8347:3;8340:35;8330:51;;:::o;8387:379::-;8571:3;8593:147;8736:3;8593:147;:::i;:::-;8586:154;;8757:3;8750:10;;8575:191;;;:::o;8772:222::-;8865:4;8903:2;8892:9;8888:18;8880:26;;8916:71;8984:1;8973:9;8969:17;8960:6;8916:71;:::i;:::-;8870:124;;;;:::o;9000:332::-;9121:4;9159:2;9148:9;9144:18;9136:26;;9172:71;9240:1;9229:9;9225:17;9216:6;9172:71;:::i;:::-;9253:72;9321:2;9310:9;9306:18;9297:6;9253:72;:::i;:::-;9126:206;;;;;:::o;9338:332::-;9459:4;9497:2;9486:9;9482:18;9474:26;;9510:71;9578:1;9567:9;9563:17;9554:6;9510:71;:::i;:::-;9591:72;9659:2;9648:9;9644:18;9635:6;9591:72;:::i;:::-;9464:206;;;;;:::o;9676:807::-;9925:4;9963:3;9952:9;9948:19;9940:27;;9977:71;10045:1;10034:9;10030:17;10021:6;9977:71;:::i;:::-;10058:72;10126:2;10115:9;10111:18;10102:6;10058:72;:::i;:::-;10140:80;10216:2;10205:9;10201:18;10192:6;10140:80;:::i;:::-;10230;10306:2;10295:9;10291:18;10282:6;10230:80;:::i;:::-;10320:73;10388:3;10377:9;10373:19;10364:6;10320:73;:::i;:::-;10403;10471:3;10460:9;10456:19;10447:6;10403:73;:::i;:::-;9930:553;;;;;;;;;:::o;10489:210::-;10576:4;10614:2;10603:9;10599:18;10591:26;;10627:65;10689:1;10678:9;10674:17;10665:6;10627:65;:::i;:::-;10581:118;;;;:::o;10705:274::-;10824:4;10862:2;10851:9;10847:18;10839:26;;10875:97;10969:1;10958:9;10954:17;10945:6;10875:97;:::i;:::-;10829:150;;;;:::o;10985:313::-;11098:4;11136:2;11125:9;11121:18;11113:26;;11185:9;11179:4;11175:20;11171:1;11160:9;11156:17;11149:47;11213:78;11286:4;11277:6;11213:78;:::i;:::-;11205:86;;11103:195;;;;:::o;11304:419::-;11470:4;11508:2;11497:9;11493:18;11485:26;;11557:9;11551:4;11547:20;11543:1;11532:9;11528:17;11521:47;11585:131;11711:4;11585:131;:::i;:::-;11577:139;;11475:248;;;:::o;11729:419::-;11895:4;11933:2;11922:9;11918:18;11910:26;;11982:9;11976:4;11972:20;11968:1;11957:9;11953:17;11946:47;12010:131;12136:4;12010:131;:::i;:::-;12002:139;;11900:248;;;:::o;12154:419::-;12320:4;12358:2;12347:9;12343:18;12335:26;;12407:9;12401:4;12397:20;12393:1;12382:9;12378:17;12371:47;12435:131;12561:4;12435:131;:::i;:::-;12427:139;;12325:248;;;:::o;12579:419::-;12745:4;12783:2;12772:9;12768:18;12760:26;;12832:9;12826:4;12822:20;12818:1;12807:9;12803:17;12796:47;12860:131;12986:4;12860:131;:::i;:::-;12852:139;;12750:248;;;:::o;13004:222::-;13097:4;13135:2;13124:9;13120:18;13112:26;;13148:71;13216:1;13205:9;13201:17;13192:6;13148:71;:::i;:::-;13102:124;;;;:::o;13232:831::-;13495:4;13533:3;13522:9;13518:19;13510:27;;13547:71;13615:1;13604:9;13600:17;13591:6;13547:71;:::i;:::-;13628:80;13704:2;13693:9;13689:18;13680:6;13628:80;:::i;:::-;13755:9;13749:4;13745:20;13740:2;13729:9;13725:18;13718:48;13783:108;13886:4;13877:6;13783:108;:::i;:::-;13775:116;;13901:72;13969:2;13958:9;13954:18;13945:6;13901:72;:::i;:::-;13983:73;14051:3;14040:9;14036:19;14027:6;13983:73;:::i;:::-;13500:563;;;;;;;;:::o;14069:214::-;14158:4;14196:2;14185:9;14181:18;14173:26;;14209:67;14273:1;14262:9;14258:17;14249:6;14209:67;:::i;:::-;14163:120;;;;:::o;14289:132::-;14356:4;14379:3;14371:11;;14409:4;14404:3;14400:14;14392:22;;14361:60;;;:::o;14427:114::-;14494:6;14528:5;14522:12;14512:22;;14501:40;;;:::o;14547:99::-;14599:6;14633:5;14627:12;14617:22;;14606:40;;;:::o;14652:113::-;14722:4;14754;14749:3;14745:14;14737:22;;14727:38;;;:::o;14771:184::-;14870:11;14904:6;14899:3;14892:19;14944:4;14939:3;14935:14;14920:29;;14882:73;;;;:::o;14961:147::-;15062:11;15099:3;15084:18;;15074:34;;;;:::o;15114:169::-;15198:11;15232:6;15227:3;15220:19;15272:4;15267:3;15263:14;15248:29;;15210:73;;;;:::o;15289:305::-;15329:3;15348:20;15366:1;15348:20;:::i;:::-;15343:25;;15382:20;15400:1;15382:20;:::i;:::-;15377:25;;15536:1;15468:66;15464:74;15461:1;15458:81;15455:2;;;15542:18;;:::i;:::-;15455:2;15586:1;15583;15579:9;15572:16;;15333:261;;;;:::o;15600:185::-;15640:1;15657:20;15675:1;15657:20;:::i;:::-;15652:25;;15691:20;15709:1;15691:20;:::i;:::-;15686:25;;15730:1;15720:2;;15735:18;;:::i;:::-;15720:2;15777:1;15774;15770:9;15765:14;;15642:143;;;;:::o;15791:348::-;15831:7;15854:20;15872:1;15854:20;:::i;:::-;15849:25;;15888:20;15906:1;15888:20;:::i;:::-;15883:25;;16076:1;16008:66;16004:74;16001:1;15998:81;15993:1;15986:9;15979:17;15975:105;15972:2;;;16083:18;;:::i;:::-;15972:2;16131:1;16128;16124:9;16113:20;;15839:300;;;;:::o;16145:191::-;16185:4;16205:20;16223:1;16205:20;:::i;:::-;16200:25;;16239:20;16257:1;16239:20;:::i;:::-;16234:25;;16278:1;16275;16272:8;16269:2;;;16283:18;;:::i;:::-;16269:2;16328:1;16325;16321:9;16313:17;;16190:146;;;;:::o;16342:96::-;16379:7;16408:24;16426:5;16408:24;:::i;:::-;16397:35;;16387:51;;;:::o;16444:90::-;16478:7;16521:5;16514:13;16507:21;16496:32;;16486:48;;;:::o;16540:126::-;16577:7;16617:42;16610:5;16606:54;16595:65;;16585:81;;;:::o;16672:77::-;16709:7;16738:5;16727:16;;16717:32;;;:::o;16755:86::-;16790:7;16830:4;16823:5;16819:16;16808:27;;16798:43;;;:::o;16847:178::-;16923:9;16956:63;17013:5;16956:63;:::i;:::-;16943:76;;16933:92;;;:::o;17031:139::-;17107:9;17140:24;17158:5;17140:24;:::i;:::-;17127:37;;17117:53;;;:::o;17176:121::-;17234:9;17267:24;17285:5;17267:24;:::i;:::-;17254:37;;17244:53;;;:::o;17303:307::-;17371:1;17381:113;17395:6;17392:1;17389:13;17381:113;;;17480:1;17475:3;17471:11;17465:18;17461:1;17456:3;17452:11;17445:39;17417:2;17414:1;17410:10;17405:15;;17381:113;;;17512:6;17509:1;17506:13;17503:2;;;17592:1;17583:6;17578:3;17574:16;17567:27;17503:2;17352:258;;;;:::o;17616:180::-;17664:77;17661:1;17654:88;17761:4;17758:1;17751:15;17785:4;17782:1;17775:15;17802:180;17850:77;17847:1;17840:88;17947:4;17944:1;17937:15;17971:4;17968:1;17961:15;17988:102;18029:6;18080:2;18076:7;18071:2;18064:5;18060:14;18056:28;18046:38;;18036:54;;;:::o;18096:177::-;18236:29;18232:1;18224:6;18220:14;18213:53;18202:71;:::o;18279:220::-;18419:34;18415:1;18407:6;18403:14;18396:58;18488:3;18483:2;18475:6;18471:15;18464:28;18385:114;:::o;18505:182::-;18645:34;18641:1;18633:6;18629:14;18622:58;18611:76;:::o;18693:114::-;18799:8;:::o;18813:173::-;18953:25;18949:1;18941:6;18937:14;18930:49;18919:67;:::o;18992:122::-;19065:24;19083:5;19065:24;:::i;:::-;19058:5;19055:35;19045:2;;19104:1;19101;19094:12;19045:2;19035:79;:::o;19120:116::-;19190:21;19205:5;19190:21;:::i;:::-;19183:5;19180:32;19170:2;;19226:1;19223;19216:12;19170:2;19160:76;:::o;19242:122::-;19315:24;19333:5;19315:24;:::i;:::-;19308:5;19305:35;19295:2;;19354:1;19351;19344:12;19295:2;19285:79;:::o

Swarm Source

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