ETH Price: $3,876.38 (+5.78%)

Token

ERC-20: Hojutsu (KNO3 v2)
 

Overview

Max Total Supply

1,000,000,000,000 KNO3 v2

Holders

221

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,670,965.042910395 KNO3 v2

Value
$0.00
0x11bcce8958eb63c84e1d4868304a56e430750b05
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:
Hojutsu

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-13
*/

// SPDX-License-Identifier: MIT
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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Hojutsu is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Hojutsu";
    string private constant _symbol = "KNO3 v2";
    uint8 private constant _decimals = 9;

    // RFI
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee = 2; // 2% Reflection
    uint256 private _teamFee = 4; // 2% Laika and 2% War Chest
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    uint256 private _numOfTokensToExchangeForTeam = 500000 * 10**9;
    uint256 private _routermax = 5000000000 * 10**9;

    // Bot detection
    mapping(address => bool) private bots;
    mapping(address => uint256) private cooldown;
    address payable private _Marketingfund;
    address payable private _Deployer;
    address payable private _Buyback;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 public launchBlock;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address payable marketfund, address payable developer, address payable buyback) {
        _Marketingfund = marketfund;
        _Deployer = developer;
        _Buyback = buyback;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_Marketingfund] = true;
        _isExcludedFromFee[_Buyback] = true;
        _isExcludedFromFee[_Deployer] = 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 tokenFromReflection(_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,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;

        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;

        _taxFee = 0;
        _teamFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }
    
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if (from != owner() && to != owner()) {

            if(from != address(this)){
                require(amount <= _maxTxAmount);
            }
            require(!bots[from] && !bots[to] && !bots[msg.sender]);
            
              
             uint256 contractTokenBalance = balanceOf(address(this));
            
            if(contractTokenBalance >= _routermax)
            {
                contractTokenBalance = _routermax;
            }
            bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForTeam;
            if (!inSwap && swapEnabled && overMinTokenBalance && from != uniswapV2Pair && from != address(uniswapV2Router)
            ) {
                // We need to swap the current tokens to ETH and send to the team wallet
                swapTokensForEth(contractTokenBalance);
                
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

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

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

    function isExcluded(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function isBlackListed(address account) public view returns (bool) {
        return bots[account];
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{
            // generate the uniswap pair path of token -> weth
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = uniswapV2Router.WETH();

            _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function sendETHToFee(uint256 amount) private {
        _Marketingfund.transfer(amount.div(4).mul(2));
        _Buyback.transfer(amount.div(4).mul(2));
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");
        IUniswapV2Router02 _uniswapV2Router =
            IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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 = false;
        _maxTxAmount = 20000000000 * 10**9;
        launchBlock = block.number;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }
    
    function setSwapEnabled(bool enabled) external {
        require(_msgSender() == _Deployer);
        swapEnabled = enabled;
    }
        

    function manualswap() external {
        require(_msgSender() == _Deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _Deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setBots(address[] memory bots_) public onlyOwner() {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBot(address notbot) public onlyOwner() {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 taxFee,
        uint256 TeamFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
    function setRouterPercent(uint256 maxRouterPercent) external onlyOwner() {
        require(maxRouterPercent > 0, "Amount must be greater than 0");
        _routermax = _tTotal.mul(maxRouterPercent).div(10**4);
    }
    
    function _setTeamFee(uint256 teamFee) external onlyOwner() {
        require(teamFee >= 1 && teamFee <= 25, 'teamFee should be in 1 - 25');
        _teamFee = teamFee;
    }
        function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
        function setMarketingWallet(address payable account) external onlyOwner() {
        _Marketingfund = account;
    }

    function setDev(address payable account) external onlyOwner() {
        _Deployer = account;
    }
    function setBB(address payable account) external onlyOwner() {
        _Buyback = account;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"marketfund","type":"address"},{"internalType":"address payable","name":"developer","type":"address"},{"internalType":"address payable","name":"buyback","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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"uint256","name":"teamFee","type":"uint256"}],"name":"_setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","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":"address payable","name":"account","type":"address"}],"name":"setBB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"setDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxRouterPercent","type":"uint256"}],"name":"setRouterPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","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"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d9190620006b0565b6000196200002c919062000637565b60065560026008556004600955600854600a55600954600b556601c6bf52634000600c55674563918244f40000600d556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055506000601460176101000a81548160ff021916908315150217905550683635c9adc5dea00000601555348015620000c757600080fd5b5060405162004669380380620046698339818101604052810190620000ed9190620005b3565b6000620000ff6200056b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460026000620002776200056b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002cb6200057360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004f26200056b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200055a91906200061a565b60405180910390a350505062000760565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620005ad8162000746565b92915050565b600080600060608486031215620005c957600080fd5b6000620005d9868287016200059c565b9350506020620005ec868287016200059c565b9250506040620005ff868287016200059c565b9150509250925092565b6200061481620006a6565b82525050565b600060208201905062000631600083018462000609565b92915050565b60006200064482620006a6565b91506200065183620006a6565b925082821015620006675762000666620006e8565b5b828203905092915050565b60006200067f8262000686565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620006bd82620006a6565b9150620006ca83620006a6565b925082620006dd57620006dc62000717565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620007518162000672565b81146200075d57600080fd5b50565b613ef980620007706000396000f3fe6080604052600436106101bb5760003560e01c806395d89b41116100ec578063d00efb2f1161008a578063d65169c911610064578063d65169c9146105c7578063dd62ed3e146105f0578063e01af92c1461062d578063e47d606014610656576101c2565b8063d00efb2f1461054a578063d477f05f14610575578063d543dbeb1461059e576101c2565b8063c0e6b46e116100c6578063c0e6b46e146104b6578063c3c8cd80146104df578063c9567bf9146104f6578063cba0e9961461050d576101c2565b806395d89b4114610425578063a9059cbb14610450578063b515566a1461048d576101c2565b8063437823ec116101595780636fc3eaec116101335780636fc3eaec1461038f57806370a08231146103a6578063715018a6146103e35780638da5cb5b146103fa576101c2565b8063437823ec146103145780635932ead11461033d5780635d098b3814610366576101c2565b806323b872dd1161019557806323b872dd1461025a578063273123b71461029757806328667162146102c0578063313ce567146102e9576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610693565b6040516101e99190613598565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906130bb565b6106d0565b604051610226919061357d565b60405180910390f35b34801561023b57600080fd5b506102446106ee565b604051610251919061373a565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061306c565b6106ff565b60405161028e919061357d565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b99190612fb5565b6107d8565b005b3480156102cc57600080fd5b506102e760048036038101906102e2919061318a565b6108c8565b005b3480156102f557600080fd5b506102fe6109b8565b60405161030b91906137af565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190612fb5565b6109c1565b005b34801561034957600080fd5b50610364600480360381019061035f9190613138565b610ab1565b005b34801561037257600080fd5b5061038d60048036038101906103889190613007565b610b63565b005b34801561039b57600080fd5b506103a4610c3c565b005b3480156103b257600080fd5b506103cd60048036038101906103c89190612fb5565b610cae565b6040516103da919061373a565b60405180910390f35b3480156103ef57600080fd5b506103f8610cff565b005b34801561040657600080fd5b5061040f610e52565b60405161041c91906134af565b60405180910390f35b34801561043157600080fd5b5061043a610e7b565b6040516104479190613598565b60405180910390f35b34801561045c57600080fd5b50610477600480360381019061047291906130bb565b610eb8565b604051610484919061357d565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906130f7565b610ed6565b005b3480156104c257600080fd5b506104dd60048036038101906104d8919061318a565b611026565b005b3480156104eb57600080fd5b506104f4611137565b005b34801561050257600080fd5b5061050b6111b1565b005b34801561051957600080fd5b50610534600480360381019061052f9190612fb5565b611712565b604051610541919061357d565b60405180910390f35b34801561055657600080fd5b5061055f611768565b60405161056c919061373a565b60405180910390f35b34801561058157600080fd5b5061059c60048036038101906105979190613007565b61176e565b005b3480156105aa57600080fd5b506105c560048036038101906105c0919061318a565b611847565b005b3480156105d357600080fd5b506105ee60048036038101906105e99190613007565b611990565b005b3480156105fc57600080fd5b5061061760048036038101906106129190613030565b611a69565b604051610624919061373a565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f9190613138565b611af0565b005b34801561066257600080fd5b5061067d60048036038101906106789190612fb5565b611b6e565b60405161068a919061357d565b60405180910390f35b60606040518060400160405280600781526020017f486f6a7574737500000000000000000000000000000000000000000000000000815250905090565b60006106e46106dd611bc4565b8484611bcc565b6001905092915050565b6000683635c9adc5dea00000905090565b600061070c848484611d97565b6107cd84610718611bc4565b6107c885604051806060016040528060288152602001613e9c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061077e611bc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122759092919063ffffffff16565b611bcc565b600190509392505050565b6107e0611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108649061369a565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6108d0611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109549061369a565b60405180910390fd5b6001811015801561096f575060198111155b6109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a59061361a565b60405180910390fd5b8060098190555050565b60006009905090565b6109c9611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4d9061369a565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ab9611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d9061369a565b60405180910390fd5b80601460176101000a81548160ff02191690831515021790555050565b610b6b611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef9061369a565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d611bc4565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d57600080fd5b6000479050610cab816122d9565b50565b6000610cf8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123fa565b9050919050565b610d07611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b9061369a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4b4e4f3320763200000000000000000000000000000000000000000000000000815250905090565b6000610ecc610ec5611bc4565b8484611d97565b6001905092915050565b610ede611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f629061369a565b60405180910390fd5b60005b8151811015611022576001600e6000848481518110610fb6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101a90613a62565b915050610f6e565b5050565b61102e611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b29061369a565b60405180910390fd5b600081116110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f59061365a565b60405180910390fd5b61112e61271061112083683635c9adc5dea0000061246890919063ffffffff16565b6124e390919063ffffffff16565b600d8190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611178611bc4565b73ffffffffffffffffffffffffffffffffffffffff161461119857600080fd5b60006111a330610cae565b90506111ae8161252d565b50565b6111b9611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d9061369a565b60405180910390fd5b60148054906101000a900460ff1615611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b9061371a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061132430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611bcc565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561136a57600080fd5b505afa15801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a29190612fde565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561140457600080fd5b505afa158015611418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143c9190612fde565b6040518363ffffffff1660e01b81526004016114599291906134ca565b602060405180830381600087803b15801561147357600080fd5b505af1158015611487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ab9190612fde565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061153430610cae565b60008061153f610e52565b426040518863ffffffff1660e01b81526004016115619695949392919061351c565b6060604051808303818588803b15801561157a57600080fd5b505af115801561158e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115b391906131b3565b5050506001601460166101000a81548160ff0219169083151502179055506000601460176101000a81548160ff0219169083151502179055506801158e460913d000006015819055504360168190555060016014806101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116bc9291906134f3565b602060405180830381600087803b1580156116d657600080fd5b505af11580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e9190613161565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60165481565b611776611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa9061369a565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61184f611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d39061369a565b60405180910390fd5b6000811161191f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119169061365a565b60405180910390fd5b61194e606461194083683635c9adc5dea0000061246890919063ffffffff16565b6124e390919063ffffffff16565b6015819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601554604051611985919061373a565b60405180910390a150565b611998611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c9061369a565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b31611bc4565b73ffffffffffffffffffffffffffffffffffffffff1614611b5157600080fd5b80601460166101000a81548160ff02191690831515021790555050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906136fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca3906135fa565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d8a919061373a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfe906136da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6e906135ba565b60405180910390fd5b60008111611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb1906136ba565b60405180910390fd5b611ec2610e52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f305750611f00610e52565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121b2573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f7857601554811115611f7757600080fd5b5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561201c5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120725750600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61207b57600080fd5b600061208630610cae565b9050600d54811061209757600d5490505b6000600c548210159050601460159054906101000a900460ff161580156120ca5750601460169054906101000a900460ff165b80156120d35750805b801561212d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121875750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156121af576121958261252d565b600047905060008111156121ad576121ac476122d9565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122595750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561226357600090505b61226f84848484612827565b50505050565b60008383111582906122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b49190613598565b60405180910390fd5b50600083856122cc9190613951565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61233c600261232e6004866124e390919063ffffffff16565b61246890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612367573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123cb60026123bd6004866124e390919063ffffffff16565b61246890919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123f6573d6000803e3d6000fd5b5050565b6000600654821115612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906135da565b60405180910390fd5b600061244b612854565b905061246081846124e390919063ffffffff16565b915050919050565b60008083141561247b57600090506124dd565b6000828461248991906138f7565b905082848261249891906138c6565b146124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf9061367a565b60405180910390fd5b809150505b92915050565b600061252583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061287f565b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561258b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125b95781602001602082028036833780820191505090505b50905030816000815181106125f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561269957600080fd5b505afa1580156126ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d19190612fde565b8160018151811061270b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061277230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bcc565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127d6959493929190613755565b600060405180830381600087803b1580156127f057600080fd5b505af1158015612804573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b80612835576128346128e2565b5b612840848484612925565b8061284e5761284d612af0565b5b50505050565b6000806000612861612b04565b9150915061287881836124e390919063ffffffff16565b9250505090565b600080831182906128c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bd9190613598565b60405180910390fd5b50600083856128d591906138c6565b9050809150509392505050565b60006008541480156128f657506000600954145b1561290057612923565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b60008060008060008061293787612b66565b95509550955095509550955061299586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bce90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a2a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7681612c76565b612a808483612d33565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612add919061373a565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b600080600060065490506000683635c9adc5dea000009050612b3a683635c9adc5dea000006006546124e390919063ffffffff16565b821015612b5957600654683635c9adc5dea00000935093505050612b62565b81819350935050505b9091565b6000806000806000806000806000612b838a600854600954612d6d565b9250925092506000612b93612854565b90506000806000612ba68e878787612e03565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c1083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612275565b905092915050565b6000808284612c279190613870565b905083811015612c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c639061363a565b60405180910390fd5b8091505092915050565b6000612c80612854565b90506000612c97828461246890919063ffffffff16565b9050612ceb81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612d4882600654612bce90919063ffffffff16565b600681905550612d6381600754612c1890919063ffffffff16565b6007819055505050565b600080600080612d996064612d8b888a61246890919063ffffffff16565b6124e390919063ffffffff16565b90506000612dc36064612db5888b61246890919063ffffffff16565b6124e390919063ffffffff16565b90506000612dec82612dde858c612bce90919063ffffffff16565b612bce90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e1c858961246890919063ffffffff16565b90506000612e33868961246890919063ffffffff16565b90506000612e4a878961246890919063ffffffff16565b90506000612e7382612e658587612bce90919063ffffffff16565b612bce90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612e9f612e9a846137ef565b6137ca565b90508083825260208201905082856020860282011115612ebe57600080fd5b60005b85811015612eee5781612ed48882612ef8565b845260208401935060208301925050600181019050612ec1565b5050509392505050565b600081359050612f0781613e3f565b92915050565b600081519050612f1c81613e3f565b92915050565b600081359050612f3181613e56565b92915050565b600082601f830112612f4857600080fd5b8135612f58848260208601612e8c565b91505092915050565b600081359050612f7081613e6d565b92915050565b600081519050612f8581613e6d565b92915050565b600081359050612f9a81613e84565b92915050565b600081519050612faf81613e84565b92915050565b600060208284031215612fc757600080fd5b6000612fd584828501612ef8565b91505092915050565b600060208284031215612ff057600080fd5b6000612ffe84828501612f0d565b91505092915050565b60006020828403121561301957600080fd5b600061302784828501612f22565b91505092915050565b6000806040838503121561304357600080fd5b600061305185828601612ef8565b925050602061306285828601612ef8565b9150509250929050565b60008060006060848603121561308157600080fd5b600061308f86828701612ef8565b93505060206130a086828701612ef8565b92505060406130b186828701612f8b565b9150509250925092565b600080604083850312156130ce57600080fd5b60006130dc85828601612ef8565b92505060206130ed85828601612f8b565b9150509250929050565b60006020828403121561310957600080fd5b600082013567ffffffffffffffff81111561312357600080fd5b61312f84828501612f37565b91505092915050565b60006020828403121561314a57600080fd5b600061315884828501612f61565b91505092915050565b60006020828403121561317357600080fd5b600061318184828501612f76565b91505092915050565b60006020828403121561319c57600080fd5b60006131aa84828501612f8b565b91505092915050565b6000806000606084860312156131c857600080fd5b60006131d686828701612fa0565b93505060206131e786828701612fa0565b92505060406131f886828701612fa0565b9150509250925092565b600061320e838361321a565b60208301905092915050565b61322381613985565b82525050565b61323281613985565b82525050565b60006132438261382b565b61324d818561384e565b93506132588361381b565b8060005b838110156132895781516132708882613202565b975061327b83613841565b92505060018101905061325c565b5085935050505092915050565b61329f816139a9565b82525050565b6132ae816139ec565b82525050565b60006132bf82613836565b6132c9818561385f565b93506132d98185602086016139fe565b6132e281613b38565b840191505092915050565b60006132fa60238361385f565b915061330582613b49565b604082019050919050565b600061331d602a8361385f565b915061332882613b98565b604082019050919050565b600061334060228361385f565b915061334b82613be7565b604082019050919050565b6000613363601b8361385f565b915061336e82613c36565b602082019050919050565b6000613386601b8361385f565b915061339182613c5f565b602082019050919050565b60006133a9601d8361385f565b91506133b482613c88565b602082019050919050565b60006133cc60218361385f565b91506133d782613cb1565b604082019050919050565b60006133ef60208361385f565b91506133fa82613d00565b602082019050919050565b600061341260298361385f565b915061341d82613d29565b604082019050919050565b600061343560258361385f565b915061344082613d78565b604082019050919050565b600061345860248361385f565b915061346382613dc7565b604082019050919050565b600061347b60178361385f565b915061348682613e16565b602082019050919050565b61349a816139d5565b82525050565b6134a9816139df565b82525050565b60006020820190506134c46000830184613229565b92915050565b60006040820190506134df6000830185613229565b6134ec6020830184613229565b9392505050565b60006040820190506135086000830185613229565b6135156020830184613491565b9392505050565b600060c0820190506135316000830189613229565b61353e6020830188613491565b61354b60408301876132a5565b61355860608301866132a5565b6135656080830185613229565b61357260a0830184613491565b979650505050505050565b60006020820190506135926000830184613296565b92915050565b600060208201905081810360008301526135b281846132b4565b905092915050565b600060208201905081810360008301526135d3816132ed565b9050919050565b600060208201905081810360008301526135f381613310565b9050919050565b6000602082019050818103600083015261361381613333565b9050919050565b6000602082019050818103600083015261363381613356565b9050919050565b6000602082019050818103600083015261365381613379565b9050919050565b600060208201905081810360008301526136738161339c565b9050919050565b60006020820190508181036000830152613693816133bf565b9050919050565b600060208201905081810360008301526136b3816133e2565b9050919050565b600060208201905081810360008301526136d381613405565b9050919050565b600060208201905081810360008301526136f381613428565b9050919050565b600060208201905081810360008301526137138161344b565b9050919050565b600060208201905081810360008301526137338161346e565b9050919050565b600060208201905061374f6000830184613491565b92915050565b600060a08201905061376a6000830188613491565b61377760208301876132a5565b81810360408301526137898186613238565b90506137986060830185613229565b6137a56080830184613491565b9695505050505050565b60006020820190506137c460008301846134a0565b92915050565b60006137d46137e5565b90506137e08282613a31565b919050565b6000604051905090565b600067ffffffffffffffff82111561380a57613809613b09565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061387b826139d5565b9150613886836139d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138bb576138ba613aab565b5b828201905092915050565b60006138d1826139d5565b91506138dc836139d5565b9250826138ec576138eb613ada565b5b828204905092915050565b6000613902826139d5565b915061390d836139d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561394657613945613aab565b5b828202905092915050565b600061395c826139d5565b9150613967836139d5565b92508282101561397a57613979613aab565b5b828203905092915050565b6000613990826139b5565b9050919050565b60006139a2826139b5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006139f7826139d5565b9050919050565b60005b83811015613a1c578082015181840152602081019050613a01565b83811115613a2b576000848401525b50505050565b613a3a82613b38565b810181811067ffffffffffffffff82111715613a5957613a58613b09565b5b80604052505050565b6000613a6d826139d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613aa057613a9f613aab565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f7465616d4665652073686f756c6420626520696e2031202d2032350000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613e4881613985565b8114613e5357600080fd5b50565b613e5f81613997565b8114613e6a57600080fd5b50565b613e76816139a9565b8114613e8157600080fd5b50565b613e8d816139d5565b8114613e9857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122067c5a34a18388abf168700baf422d0f2a89ba18137a56bf84f30d99d4949a9e264736f6c634300080400330000000000000000000000008dbaff4539b1ac3b23925558f46757acf9407b650000000000000000000000004b12b55b59d9abf6e4dd06ff754e7f28d82e481c000000000000000000000000447bf1ba97d9d6e6247b4f3cfe69d07165be0c58

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806395d89b41116100ec578063d00efb2f1161008a578063d65169c911610064578063d65169c9146105c7578063dd62ed3e146105f0578063e01af92c1461062d578063e47d606014610656576101c2565b8063d00efb2f1461054a578063d477f05f14610575578063d543dbeb1461059e576101c2565b8063c0e6b46e116100c6578063c0e6b46e146104b6578063c3c8cd80146104df578063c9567bf9146104f6578063cba0e9961461050d576101c2565b806395d89b4114610425578063a9059cbb14610450578063b515566a1461048d576101c2565b8063437823ec116101595780636fc3eaec116101335780636fc3eaec1461038f57806370a08231146103a6578063715018a6146103e35780638da5cb5b146103fa576101c2565b8063437823ec146103145780635932ead11461033d5780635d098b3814610366576101c2565b806323b872dd1161019557806323b872dd1461025a578063273123b71461029757806328667162146102c0578063313ce567146102e9576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610693565b6040516101e99190613598565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906130bb565b6106d0565b604051610226919061357d565b60405180910390f35b34801561023b57600080fd5b506102446106ee565b604051610251919061373a565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061306c565b6106ff565b60405161028e919061357d565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b99190612fb5565b6107d8565b005b3480156102cc57600080fd5b506102e760048036038101906102e2919061318a565b6108c8565b005b3480156102f557600080fd5b506102fe6109b8565b60405161030b91906137af565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190612fb5565b6109c1565b005b34801561034957600080fd5b50610364600480360381019061035f9190613138565b610ab1565b005b34801561037257600080fd5b5061038d60048036038101906103889190613007565b610b63565b005b34801561039b57600080fd5b506103a4610c3c565b005b3480156103b257600080fd5b506103cd60048036038101906103c89190612fb5565b610cae565b6040516103da919061373a565b60405180910390f35b3480156103ef57600080fd5b506103f8610cff565b005b34801561040657600080fd5b5061040f610e52565b60405161041c91906134af565b60405180910390f35b34801561043157600080fd5b5061043a610e7b565b6040516104479190613598565b60405180910390f35b34801561045c57600080fd5b50610477600480360381019061047291906130bb565b610eb8565b604051610484919061357d565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906130f7565b610ed6565b005b3480156104c257600080fd5b506104dd60048036038101906104d8919061318a565b611026565b005b3480156104eb57600080fd5b506104f4611137565b005b34801561050257600080fd5b5061050b6111b1565b005b34801561051957600080fd5b50610534600480360381019061052f9190612fb5565b611712565b604051610541919061357d565b60405180910390f35b34801561055657600080fd5b5061055f611768565b60405161056c919061373a565b60405180910390f35b34801561058157600080fd5b5061059c60048036038101906105979190613007565b61176e565b005b3480156105aa57600080fd5b506105c560048036038101906105c0919061318a565b611847565b005b3480156105d357600080fd5b506105ee60048036038101906105e99190613007565b611990565b005b3480156105fc57600080fd5b5061061760048036038101906106129190613030565b611a69565b604051610624919061373a565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f9190613138565b611af0565b005b34801561066257600080fd5b5061067d60048036038101906106789190612fb5565b611b6e565b60405161068a919061357d565b60405180910390f35b60606040518060400160405280600781526020017f486f6a7574737500000000000000000000000000000000000000000000000000815250905090565b60006106e46106dd611bc4565b8484611bcc565b6001905092915050565b6000683635c9adc5dea00000905090565b600061070c848484611d97565b6107cd84610718611bc4565b6107c885604051806060016040528060288152602001613e9c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061077e611bc4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122759092919063ffffffff16565b611bcc565b600190509392505050565b6107e0611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108649061369a565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6108d0611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109549061369a565b60405180910390fd5b6001811015801561096f575060198111155b6109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a59061361a565b60405180910390fd5b8060098190555050565b60006009905090565b6109c9611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4d9061369a565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ab9611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d9061369a565b60405180910390fd5b80601460176101000a81548160ff02191690831515021790555050565b610b6b611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef9061369a565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7d611bc4565b73ffffffffffffffffffffffffffffffffffffffff1614610c9d57600080fd5b6000479050610cab816122d9565b50565b6000610cf8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123fa565b9050919050565b610d07611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b9061369a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4b4e4f3320763200000000000000000000000000000000000000000000000000815250905090565b6000610ecc610ec5611bc4565b8484611d97565b6001905092915050565b610ede611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f629061369a565b60405180910390fd5b60005b8151811015611022576001600e6000848481518110610fb6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101a90613a62565b915050610f6e565b5050565b61102e611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b29061369a565b60405180910390fd5b600081116110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f59061365a565b60405180910390fd5b61112e61271061112083683635c9adc5dea0000061246890919063ffffffff16565b6124e390919063ffffffff16565b600d8190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611178611bc4565b73ffffffffffffffffffffffffffffffffffffffff161461119857600080fd5b60006111a330610cae565b90506111ae8161252d565b50565b6111b9611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d9061369a565b60405180910390fd5b60148054906101000a900460ff1615611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b9061371a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061132430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611bcc565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561136a57600080fd5b505afa15801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a29190612fde565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561140457600080fd5b505afa158015611418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143c9190612fde565b6040518363ffffffff1660e01b81526004016114599291906134ca565b602060405180830381600087803b15801561147357600080fd5b505af1158015611487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ab9190612fde565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061153430610cae565b60008061153f610e52565b426040518863ffffffff1660e01b81526004016115619695949392919061351c565b6060604051808303818588803b15801561157a57600080fd5b505af115801561158e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115b391906131b3565b5050506001601460166101000a81548160ff0219169083151502179055506000601460176101000a81548160ff0219169083151502179055506801158e460913d000006015819055504360168190555060016014806101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116bc9291906134f3565b602060405180830381600087803b1580156116d657600080fd5b505af11580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e9190613161565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60165481565b611776611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa9061369a565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61184f611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d39061369a565b60405180910390fd5b6000811161191f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119169061365a565b60405180910390fd5b61194e606461194083683635c9adc5dea0000061246890919063ffffffff16565b6124e390919063ffffffff16565b6015819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601554604051611985919061373a565b60405180910390a150565b611998611bc4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1c9061369a565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b31611bc4565b73ffffffffffffffffffffffffffffffffffffffff1614611b5157600080fd5b80601460166101000a81548160ff02191690831515021790555050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906136fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca3906135fa565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d8a919061373a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfe906136da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6e906135ba565b60405180910390fd5b60008111611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb1906136ba565b60405180910390fd5b611ec2610e52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f305750611f00610e52565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121b2573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f7857601554811115611f7757600080fd5b5b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561201c5750600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120725750600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61207b57600080fd5b600061208630610cae565b9050600d54811061209757600d5490505b6000600c548210159050601460159054906101000a900460ff161580156120ca5750601460169054906101000a900460ff165b80156120d35750805b801561212d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121875750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156121af576121958261252d565b600047905060008111156121ad576121ac476122d9565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122595750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561226357600090505b61226f84848484612827565b50505050565b60008383111582906122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b49190613598565b60405180910390fd5b50600083856122cc9190613951565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61233c600261232e6004866124e390919063ffffffff16565b61246890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612367573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123cb60026123bd6004866124e390919063ffffffff16565b61246890919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123f6573d6000803e3d6000fd5b5050565b6000600654821115612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906135da565b60405180910390fd5b600061244b612854565b905061246081846124e390919063ffffffff16565b915050919050565b60008083141561247b57600090506124dd565b6000828461248991906138f7565b905082848261249891906138c6565b146124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf9061367a565b60405180910390fd5b809150505b92915050565b600061252583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061287f565b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561258b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125b95781602001602082028036833780820191505090505b50905030816000815181106125f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561269957600080fd5b505afa1580156126ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d19190612fde565b8160018151811061270b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061277230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bcc565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127d6959493929190613755565b600060405180830381600087803b1580156127f057600080fd5b505af1158015612804573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b80612835576128346128e2565b5b612840848484612925565b8061284e5761284d612af0565b5b50505050565b6000806000612861612b04565b9150915061287881836124e390919063ffffffff16565b9250505090565b600080831182906128c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bd9190613598565b60405180910390fd5b50600083856128d591906138c6565b9050809150509392505050565b60006008541480156128f657506000600954145b1561290057612923565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b60008060008060008061293787612b66565b95509550955095509550955061299586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bce90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a2a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7681612c76565b612a808483612d33565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612add919061373a565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b600080600060065490506000683635c9adc5dea000009050612b3a683635c9adc5dea000006006546124e390919063ffffffff16565b821015612b5957600654683635c9adc5dea00000935093505050612b62565b81819350935050505b9091565b6000806000806000806000806000612b838a600854600954612d6d565b9250925092506000612b93612854565b90506000806000612ba68e878787612e03565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c1083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612275565b905092915050565b6000808284612c279190613870565b905083811015612c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c639061363a565b60405180910390fd5b8091505092915050565b6000612c80612854565b90506000612c97828461246890919063ffffffff16565b9050612ceb81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612d4882600654612bce90919063ffffffff16565b600681905550612d6381600754612c1890919063ffffffff16565b6007819055505050565b600080600080612d996064612d8b888a61246890919063ffffffff16565b6124e390919063ffffffff16565b90506000612dc36064612db5888b61246890919063ffffffff16565b6124e390919063ffffffff16565b90506000612dec82612dde858c612bce90919063ffffffff16565b612bce90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e1c858961246890919063ffffffff16565b90506000612e33868961246890919063ffffffff16565b90506000612e4a878961246890919063ffffffff16565b90506000612e7382612e658587612bce90919063ffffffff16565b612bce90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612e9f612e9a846137ef565b6137ca565b90508083825260208201905082856020860282011115612ebe57600080fd5b60005b85811015612eee5781612ed48882612ef8565b845260208401935060208301925050600181019050612ec1565b5050509392505050565b600081359050612f0781613e3f565b92915050565b600081519050612f1c81613e3f565b92915050565b600081359050612f3181613e56565b92915050565b600082601f830112612f4857600080fd5b8135612f58848260208601612e8c565b91505092915050565b600081359050612f7081613e6d565b92915050565b600081519050612f8581613e6d565b92915050565b600081359050612f9a81613e84565b92915050565b600081519050612faf81613e84565b92915050565b600060208284031215612fc757600080fd5b6000612fd584828501612ef8565b91505092915050565b600060208284031215612ff057600080fd5b6000612ffe84828501612f0d565b91505092915050565b60006020828403121561301957600080fd5b600061302784828501612f22565b91505092915050565b6000806040838503121561304357600080fd5b600061305185828601612ef8565b925050602061306285828601612ef8565b9150509250929050565b60008060006060848603121561308157600080fd5b600061308f86828701612ef8565b93505060206130a086828701612ef8565b92505060406130b186828701612f8b565b9150509250925092565b600080604083850312156130ce57600080fd5b60006130dc85828601612ef8565b92505060206130ed85828601612f8b565b9150509250929050565b60006020828403121561310957600080fd5b600082013567ffffffffffffffff81111561312357600080fd5b61312f84828501612f37565b91505092915050565b60006020828403121561314a57600080fd5b600061315884828501612f61565b91505092915050565b60006020828403121561317357600080fd5b600061318184828501612f76565b91505092915050565b60006020828403121561319c57600080fd5b60006131aa84828501612f8b565b91505092915050565b6000806000606084860312156131c857600080fd5b60006131d686828701612fa0565b93505060206131e786828701612fa0565b92505060406131f886828701612fa0565b9150509250925092565b600061320e838361321a565b60208301905092915050565b61322381613985565b82525050565b61323281613985565b82525050565b60006132438261382b565b61324d818561384e565b93506132588361381b565b8060005b838110156132895781516132708882613202565b975061327b83613841565b92505060018101905061325c565b5085935050505092915050565b61329f816139a9565b82525050565b6132ae816139ec565b82525050565b60006132bf82613836565b6132c9818561385f565b93506132d98185602086016139fe565b6132e281613b38565b840191505092915050565b60006132fa60238361385f565b915061330582613b49565b604082019050919050565b600061331d602a8361385f565b915061332882613b98565b604082019050919050565b600061334060228361385f565b915061334b82613be7565b604082019050919050565b6000613363601b8361385f565b915061336e82613c36565b602082019050919050565b6000613386601b8361385f565b915061339182613c5f565b602082019050919050565b60006133a9601d8361385f565b91506133b482613c88565b602082019050919050565b60006133cc60218361385f565b91506133d782613cb1565b604082019050919050565b60006133ef60208361385f565b91506133fa82613d00565b602082019050919050565b600061341260298361385f565b915061341d82613d29565b604082019050919050565b600061343560258361385f565b915061344082613d78565b604082019050919050565b600061345860248361385f565b915061346382613dc7565b604082019050919050565b600061347b60178361385f565b915061348682613e16565b602082019050919050565b61349a816139d5565b82525050565b6134a9816139df565b82525050565b60006020820190506134c46000830184613229565b92915050565b60006040820190506134df6000830185613229565b6134ec6020830184613229565b9392505050565b60006040820190506135086000830185613229565b6135156020830184613491565b9392505050565b600060c0820190506135316000830189613229565b61353e6020830188613491565b61354b60408301876132a5565b61355860608301866132a5565b6135656080830185613229565b61357260a0830184613491565b979650505050505050565b60006020820190506135926000830184613296565b92915050565b600060208201905081810360008301526135b281846132b4565b905092915050565b600060208201905081810360008301526135d3816132ed565b9050919050565b600060208201905081810360008301526135f381613310565b9050919050565b6000602082019050818103600083015261361381613333565b9050919050565b6000602082019050818103600083015261363381613356565b9050919050565b6000602082019050818103600083015261365381613379565b9050919050565b600060208201905081810360008301526136738161339c565b9050919050565b60006020820190508181036000830152613693816133bf565b9050919050565b600060208201905081810360008301526136b3816133e2565b9050919050565b600060208201905081810360008301526136d381613405565b9050919050565b600060208201905081810360008301526136f381613428565b9050919050565b600060208201905081810360008301526137138161344b565b9050919050565b600060208201905081810360008301526137338161346e565b9050919050565b600060208201905061374f6000830184613491565b92915050565b600060a08201905061376a6000830188613491565b61377760208301876132a5565b81810360408301526137898186613238565b90506137986060830185613229565b6137a56080830184613491565b9695505050505050565b60006020820190506137c460008301846134a0565b92915050565b60006137d46137e5565b90506137e08282613a31565b919050565b6000604051905090565b600067ffffffffffffffff82111561380a57613809613b09565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061387b826139d5565b9150613886836139d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138bb576138ba613aab565b5b828201905092915050565b60006138d1826139d5565b91506138dc836139d5565b9250826138ec576138eb613ada565b5b828204905092915050565b6000613902826139d5565b915061390d836139d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561394657613945613aab565b5b828202905092915050565b600061395c826139d5565b9150613967836139d5565b92508282101561397a57613979613aab565b5b828203905092915050565b6000613990826139b5565b9050919050565b60006139a2826139b5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006139f7826139d5565b9050919050565b60005b83811015613a1c578082015181840152602081019050613a01565b83811115613a2b576000848401525b50505050565b613a3a82613b38565b810181811067ffffffffffffffff82111715613a5957613a58613b09565b5b80604052505050565b6000613a6d826139d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613aa057613a9f613aab565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f7465616d4665652073686f756c6420626520696e2031202d2032350000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613e4881613985565b8114613e5357600080fd5b50565b613e5f81613997565b8114613e6a57600080fd5b50565b613e76816139a9565b8114613e8157600080fd5b50565b613e8d816139d5565b8114613e9857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122067c5a34a18388abf168700baf422d0f2a89ba18137a56bf84f30d99d4949a9e264736f6c63430008040033

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

0000000000000000000000008dbaff4539b1ac3b23925558f46757acf9407b650000000000000000000000004b12b55b59d9abf6e4dd06ff754e7f28d82e481c000000000000000000000000447bf1ba97d9d6e6247b4f3cfe69d07165be0c58

-----Decoded View---------------
Arg [0] : marketfund (address): 0x8DBaFf4539B1aC3b23925558F46757ACf9407B65
Arg [1] : developer (address): 0x4b12b55B59D9aBF6E4Dd06Ff754e7f28D82E481c
Arg [2] : buyback (address): 0x447bF1Ba97D9d6e6247B4f3cFe69d07165be0c58

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000008dbaff4539b1ac3b23925558f46757acf9407b65
Arg [1] : 0000000000000000000000004b12b55b59d9abf6e4dd06ff754e7f28d82e481c
Arg [2] : 000000000000000000000000447bf1ba97d9d6e6247b4f3cfe69d07165be0c58


Deployed Bytecode Sourcemap

3852:14097:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6118:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7043:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7244:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13326:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17310:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6304:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17496:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7698:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17617:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12953:188;;;;;;;;;;;;;:::i;:::-;;6498:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2804:148;;;;;;;;;;;;;:::i;:::-;;2590:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6209:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6644:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13149:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17080:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12756:189;;;;;;;;;;;;;:::i;:::-;;11578:1016;;;;;;;;;;;;;:::i;:::-;;10511:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5383:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17742:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16819:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17848:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6851:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12606:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10636:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6118:83;6155:13;6188:5;;;;;;;;;;;;;;;;;6181:12;;6118:83;:::o;7043:193::-;7145:4;7167:39;7176:12;:10;:12::i;:::-;7190:7;7199:6;7167:8;:39::i;:::-;7224:4;7217:11;;7043:193;;;;:::o;6395:95::-;6448:7;4410:21;6468:14;;6395:95;:::o;7244:446::-;7376:4;7393:36;7403:6;7411:9;7422:6;7393:9;:36::i;:::-;7440:220;7463:6;7484:12;:10;:12::i;:::-;7511:138;7567:6;7511:138;;;;;;;;;;;;;;;;;:11;:19;7523:6;7511:19;;;;;;;;;;;;;;;:33;7531:12;:10;:12::i;:::-;7511:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7440:8;:220::i;:::-;7678:4;7671:11;;7244:446;;;;;:::o;13326:90::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13403:5:::1;13388:4;:12;13393:6;13388:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13326:90:::0;:::o;17310:176::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17399:1:::1;17388:7;:12;;:29;;;;;17415:2;17404:7;:13;;17388:29;17380:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17471:7;17460:8;:18;;;;17310:176:::0;:::o;6304:83::-;6345:5;4072:1;6363:16;;6304:83;:::o;17496:111::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17595:4:::1;17565:18;:27;17584:7;17565:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;17496:111:::0;:::o;7698:103::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7788:5:::1;7770:15;;:23;;;;;;;;;;;;;;;;;;7698:103:::0;:::o;17617:117::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17719:7:::1;17702:14;;:24;;;;;;;;;;;;;;;;;;17617:117:::0;:::o;12953:188::-;13019:9;;;;;;;;;;;13003:25;;:12;:10;:12::i;:::-;:25;;;12995:34;;;;;;13040:26;13069:21;13040:50;;13101:32;13114:18;13101:12;:32::i;:::-;12953:188;:::o;6498:138::-;6564:7;6591:37;6611:7;:16;6619:7;6611:16;;;;;;;;;;;;;;;;6591:19;:37::i;:::-;6584:44;;6498:138;;;:::o;2804:148::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2911:1:::1;2874:40;;2895:6;::::0;::::1;;;;;;;;2874:40;;;;;;;;;;;;2942:1;2925:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2804:148::o:0;2590:79::-;2628:7;2655:6;;;;;;;;;;;2648:13;;2590:79;:::o;6209:87::-;6248:13;6281:7;;;;;;;;;;;;;;;;;6274:14;;6209:87;:::o;6644:199::-;6749:4;6771:42;6781:12;:10;:12::i;:::-;6795:9;6806:6;6771:9;:42::i;:::-;6831:4;6824:11;;6644:199;;;;:::o;13149:169::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13225:9:::1;13220:91;13244:5;:12;13240:1;:16;13220:91;;;13295:4;13278;:14;13283:5;13289:1;13283:8;;;;;;;;;;;;;;;;;;;;;;13278:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13258:3;;;;;:::i;:::-;;;;13220:91;;;;13149:169:::0;:::o;17080:218::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17191:1:::1;17172:16;:20;17164:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;17250:40;17284:5;17250:29;17262:16;4410:21;17250:11;;:29;;;;:::i;:::-;:33;;:40;;;;:::i;:::-;17237:10;:53;;;;17080:218:::0;:::o;12756:189::-;12822:9;;;;;;;;;;;12806:25;;:12;:10;:12::i;:::-;:25;;;12798:34;;;;;;12843:23;12869:24;12887:4;12869:9;:24::i;:::-;12843:50;;12904:33;12921:15;12904:16;:33::i;:::-;12756:189;:::o;11578:1016::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:11:::1;::::0;::::1;;;;;;;;11641:12;11633:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11692:35;11762:42;11692:113;;11834:16;11816:15;;:34;;;;;;;;;;;;;;;;;;11861:58;11878:4;11893:15;;;;;;;;;;;4410:21;11861:8;:58::i;:::-;11964:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11946:70;;;12025:4;12032:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11946:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11930:13;;:126;;;;;;;;;;;;;;;;;;12067:15;;;;;;;;;;;:31;;;12106:21;12151:4;12171:24;12189:4;12171:9;:24::i;:::-;12210:1;12226::::0;12242:7:::1;:5;:7::i;:::-;12264:15;12067:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12315:4;12301:11;;:18;;;;;;;;;;;;;;;;;;12348:5;12330:15;;:23;;;;;;;;;;;;;;;;;;12379:19;12364:12;:34;;;;12423:12;12409:11;:26;;;;12460:4;12446:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12482:13;;;;;;;;;;;12475:29;;;12527:15;;;;;;;;;;;12558:17;12475:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2787:1;11578:1016::o:0;10511:117::-;10569:4;10593:18;:27;10612:7;10593:27;;;;;;;;;;;;;;;;;;;;;;;;;10586:34;;10511:117;;;:::o;5383:26::-;;;;:::o;17742:100::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17827:7:::1;17815:9;;:19;;;;;;;;;;;;;;;;;;17742:100:::0;:::o;16819:255::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16921:1:::1;16906:12;:16;16898:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;16982:36;17012:5;16982:25;16994:12;4410:21;16982:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;16967:12;:51;;;;17034:32;17053:12;;17034:32;;;;;;:::i;:::-;;;;;;;;16819:255:::0;:::o;17848:98::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17931:7:::1;17920:8;;:18;;;;;;;;;;;;;;;;;;17848:98:::0;:::o;6851:184::-;6968:7;7000:11;:18;7012:5;7000:18;;;;;;;;;;;;;;;:27;7019:7;7000:27;;;;;;;;;;;;;;;;6993:34;;6851:184;;;;:::o;12606:132::-;12688:9;;;;;;;;;;;12672:25;;:12;:10;:12::i;:::-;:25;;;12664:34;;;;;;12723:7;12709:11;;:21;;;;;;;;;;;;;;;;;;12606:132;:::o;10636:106::-;10697:4;10721;:13;10726:7;10721:13;;;;;;;;;;;;;;;;;;;;;;;;;10714:20;;10636:106;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8489:369::-;8633:1;8616:19;;:5;:19;;;;8608:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8714:1;8695:21;;:7;:21;;;;8687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8796:6;8766:11;:18;8778:5;8766:18;;;;;;;;;;;;;;;:27;8785:7;8766:27;;;;;;;;;;;;;;;:36;;;;8834:7;8818:32;;8827:5;8818:32;;;8843:6;8818:32;;;;;;:::i;:::-;;;;;;;;8489:369;;;:::o;8866:1637::-;9004:1;8988:18;;:4;:18;;;;8980:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9081:1;9067:16;;:2;:16;;;;9059:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9151:1;9142:6;:10;9134:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9231:7;:5;:7::i;:::-;9223:15;;:4;:15;;;;:32;;;;;9248:7;:5;:7::i;:::-;9242:13;;:2;:13;;;;9223:32;9219:1083;;;9293:4;9277:21;;:4;:21;;;9274:91;;9336:12;;9326:6;:22;;9318:31;;;;;;9274:91;9388:4;:10;9393:4;9388:10;;;;;;;;;;;;;;;;;;;;;;;;;9387:11;:24;;;;;9403:4;:8;9408:2;9403:8;;;;;;;;;;;;;;;;;;;;;;;;;9402:9;9387:24;:45;;;;;9416:4;:16;9421:10;9416:16;;;;;;;;;;;;;;;;;;;;;;;;;9415:17;9387:45;9379:54;;;;;;9479:28;9510:24;9528:4;9510:9;:24::i;:::-;9479:55;;9590:10;;9566:20;:34;9563:120;;9657:10;;9634:33;;9563:120;9697:24;9748:29;;9724:20;:53;;9697:80;;9797:6;;;;;;;;;;;9796:7;:22;;;;;9807:11;;;;;;;;;;;9796:22;:45;;;;;9822:19;9796:45;:70;;;;;9853:13;;;;;;;;;;;9845:21;;:4;:21;;;;9796:70;:106;;;;;9886:15;;;;;;;;;;;9870:32;;:4;:32;;;;9796:106;9792:499;;;10027:38;10044:20;10027:16;:38::i;:::-;10102:26;10131:21;10102:50;;10195:1;10174:18;:22;10171:105;;;10221:35;10234:21;10221:12;:35::i;:::-;10171:105;9792:499;;9219:1083;;;10312:12;10327:4;10312:19;;10348:18;:24;10367:4;10348:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10376:18;:22;10395:2;10376:22;;;;;;;;;;;;;;;;;;;;;;;;;10348:50;10344:98;;;10425:5;10415:15;;10344:98;10454:41;10469:4;10475:2;10479:6;10487:7;10454:14;:41::i;:::-;8866:1637;;;;:::o;1355:224::-;1475:7;1508:1;1503;:6;;1511:12;1495:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1535:9;1551:1;1547;:5;;;;:::i;:::-;1535:17;;1570:1;1563:8;;;1355:224;;;;;:::o;11410:160::-;11467:14;;;;;;;;;;;:23;;:45;11491:20;11509:1;11491:13;11502:1;11491:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;11467:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11523:8;;;;;;;;;;;:17;;:39;11541:20;11559:1;11541:13;11552:1;11541:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;11523:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11410:160;:::o;7809:323::-;7904:7;7962;;7951;:18;;7929:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8050:19;8072:10;:8;:10::i;:::-;8050:32;;8100:24;8112:11;8100:7;:11;;:24;;;;:::i;:::-;8093:31;;;7809:323;;;:::o;1587:246::-;1645:7;1674:1;1669;:6;1665:47;;;1699:1;1692:8;;;;1665:47;1722:9;1738:1;1734;:5;;;;:::i;:::-;1722:17;;1767:1;1762;1758;:5;;;;:::i;:::-;:10;1750:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1824:1;1817:8;;;1587:246;;;;;:::o;1841:132::-;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1919:46;;1841:132;;;;:::o;10750:652::-;5512:4;5503:6;;:13;;;;;;;;;;;;;;;;;;10895:21:::1;10933:1;10919:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10895:40;;10968:4;10950;10955:1;10950:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10998:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10988:4;10993:1;10988:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;11037:62;11054:4;11069:15;;;;;;;;;;;11087:11;11037:8;:62::i;:::-;11146:15;;;;;;;;;;;:66;;;11231:11;11261:1;11309:4;11340;11364:15;11146:248;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5527:1;5548:5:::0;5539:6;;:14;;;;;;;;;;;;;;;;;;10750:652;:::o;13424:282::-;13580:7;13575:28;;13589:14;:12;:14::i;:::-;13575:28;13614:44;13632:6;13640:9;13651:6;13614:17;:44::i;:::-;13674:7;13669:29;;13683:15;:13;:15::i;:::-;13669:29;13424:282;;;;:::o;16382:164::-;16424:7;16445:15;16462;16481:19;:17;:19::i;:::-;16444:56;;;;16518:20;16530:7;16518;:11;;:20;;;;:::i;:::-;16511:27;;;;16382:164;:::o;1981:223::-;2101:7;2133:1;2129;:5;2136:12;2121:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2160:9;2176:1;2172;:5;;;;:::i;:::-;2160:17;;2195:1;2188:8;;;1981:223;;;;;:::o;8140:214::-;8197:1;8186:7;;:12;:29;;;;;8214:1;8202:8;;:13;8186:29;8183:41;;;8217:7;;8183:41;8254:7;;8236:15;:25;;;;8291:8;;8272:16;:27;;;;8322:1;8312:7;:11;;;;8345:1;8334:8;:12;;;;8140:214;:::o;13714:610::-;13861:15;13891:23;13929:12;13956:23;13994:12;14021:13;14048:19;14059:7;14048:10;:19::i;:::-;13846:221;;;;;;;;;;;;14096:28;14116:7;14096;:15;14104:6;14096:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14078:7;:15;14086:6;14078:15;;;;;;;;;;;;;;;:46;;;;14156:39;14179:15;14156:7;:18;14164:9;14156:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14135:7;:18;14143:9;14135:18;;;;;;;;;;;;;;;:60;;;;14206:16;14216:5;14206:9;:16::i;:::-;14233:23;14245:4;14251;14233:11;:23::i;:::-;14289:9;14272:44;;14281:6;14272:44;;;14300:15;14272:44;;;;;;:::i;:::-;;;;;;;;13714:610;;;;;;;;;:::o;8362:115::-;8416:15;;8406:7;:25;;;;8453:16;;8442:8;:27;;;;8362:115::o;16554:257::-;16605:7;16614;16634:15;16652:7;;16634:25;;16670:15;4410:21;16670:25;;16720:20;4410:21;16720:7;;:11;;:20;;;;:::i;:::-;16710:7;:30;16706:61;;;16750:7;;4410:21;16742:25;;;;;;;;16706:61;16786:7;16795;16778:25;;;;;;16554:257;;;:::o;14743:614::-;14843:7;14865;14887;14909;14931;14953;14989:23;15014:12;15028:13;15058:39;15070:7;15079;;15088:8;;15058:11;:39::i;:::-;14988:109;;;;;;15108:19;15130:10;:8;:10::i;:::-;15108:32;;15152:15;15169:23;15194:12;15223:46;15235:7;15244:4;15250:5;15257:11;15223;:46::i;:::-;15151:118;;;;;;15288:7;15297:15;15314:4;15320:15;15337:4;15343:5;15280:69;;;;;;;;;;;;;;;;;;;14743:614;;;;;;;:::o;1211:136::-;1269:7;1296:43;1300:1;1303;1296:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1289:50;;1211:136;;;;:::o;1024:179::-;1082:7;1102:9;1118:1;1114;:5;;;;:::i;:::-;1102:17;;1143:1;1138;:6;;1130:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1194:1;1187:8;;;1024:179;;;;:::o;14332:211::-;14385:19;14407:10;:8;:10::i;:::-;14385:32;;14428:13;14444:22;14454:11;14444:5;:9;;:22;;;;:::i;:::-;14428:38;;14502:33;14529:5;14502:7;:22;14518:4;14502:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14477:7;:22;14493:4;14477:22;;;;;;;;;;;;;;;:58;;;;14332:211;;;:::o;14551:147::-;14629:17;14641:4;14629:7;;:11;;:17;;;;:::i;:::-;14619:7;:27;;;;14670:20;14685:4;14670:10;;:14;;:20;;;;:::i;:::-;14657:10;:33;;;;14551:147;;:::o;15365:467::-;15533:7;15555;15577;15612:12;15627:28;15651:3;15627:19;15639:6;15627:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15612:43;;15666:13;15682:29;15707:3;15682:20;15694:7;15682;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15666:45;;15722:23;15748:28;15770:5;15748:17;15760:4;15748:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15722:54;;15795:15;15812:4;15818:5;15787:37;;;;;;;;;15365:467;;;;;;;:::o;15840:534::-;16034:7;16056;16078;16113:15;16131:24;16143:11;16131:7;:11;;:24;;;;:::i;:::-;16113:42;;16166:12;16181:21;16190:11;16181:4;:8;;:21;;;;:::i;:::-;16166:36;;16213:13;16229:22;16239:11;16229:5;:9;;:22;;;;:::i;:::-;16213:38;;16262:23;16288:28;16310:5;16288:17;16300:4;16288:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16262:54;;16335:7;16344:15;16361:4;16327:39;;;;;;;;;;15840:534;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:303::-;1228:5;1277:3;1270:4;1262:6;1258:17;1254:27;1244:2;;1295:1;1292;1285:12;1244:2;1335:6;1322:20;1360:94;1450:3;1442:6;1435:4;1427:6;1423:17;1360:94;:::i;:::-;1351:103;;1234:226;;;;;:::o;1466:133::-;1509:5;1547:6;1534:20;1525:29;;1563:30;1587:5;1563:30;:::i;:::-;1515:84;;;;:::o;1605:137::-;1659:5;1690:6;1684:13;1675:22;;1706:30;1730:5;1706:30;:::i;:::-;1665:77;;;;:::o;1748:139::-;1794:5;1832:6;1819:20;1810:29;;1848:33;1875:5;1848:33;:::i;:::-;1800:87;;;;:::o;1893:143::-;1950:5;1981:6;1975:13;1966:22;;1997:33;2024:5;1997:33;:::i;:::-;1956:80;;;;:::o;2042:262::-;2101:6;2150:2;2138:9;2129:7;2125:23;2121:32;2118:2;;;2166:1;2163;2156:12;2118:2;2209:1;2234:53;2279:7;2270:6;2259:9;2255:22;2234:53;:::i;:::-;2224:63;;2180:117;2108:196;;;;:::o;2310:284::-;2380:6;2429:2;2417:9;2408:7;2404:23;2400:32;2397:2;;;2445:1;2442;2435:12;2397:2;2488:1;2513:64;2569:7;2560:6;2549:9;2545:22;2513:64;:::i;:::-;2503:74;;2459:128;2387:207;;;;:::o;2600:278::-;2667:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:2;;;2732:1;2729;2722:12;2684:2;2775:1;2800:61;2853:7;2844:6;2833:9;2829:22;2800:61;:::i;:::-;2790:71;;2746:125;2674:204;;;;:::o;2884:407::-;2952:6;2960;3009:2;2997:9;2988:7;2984:23;2980:32;2977:2;;;3025:1;3022;3015:12;2977:2;3068:1;3093:53;3138:7;3129:6;3118:9;3114:22;3093:53;:::i;:::-;3083:63;;3039:117;3195:2;3221:53;3266:7;3257:6;3246:9;3242:22;3221:53;:::i;:::-;3211:63;;3166:118;2967:324;;;;;:::o;3297:552::-;3374:6;3382;3390;3439:2;3427:9;3418:7;3414:23;3410:32;3407:2;;;3455:1;3452;3445:12;3407:2;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3625:2;3651:53;3696:7;3687:6;3676:9;3672:22;3651:53;:::i;:::-;3641:63;;3596:118;3753:2;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3724:118;3397:452;;;;;:::o;3855:407::-;3923:6;3931;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;3996:1;3993;3986:12;3948:2;4039:1;4064:53;4109:7;4100:6;4089:9;4085:22;4064:53;:::i;:::-;4054:63;;4010:117;4166:2;4192:53;4237:7;4228:6;4217:9;4213:22;4192:53;:::i;:::-;4182:63;;4137:118;3938:324;;;;;:::o;4268:405::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:2;;;4417:1;4414;4407:12;4369:2;4488:1;4477:9;4473:17;4460:31;4518:18;4510:6;4507:30;4504:2;;;4550:1;4547;4540:12;4504:2;4578:78;4648:7;4639:6;4628:9;4624:22;4578:78;:::i;:::-;4568:88;;4431:235;4359:314;;;;:::o;4679:256::-;4735:6;4784:2;4772:9;4763:7;4759:23;4755:32;4752:2;;;4800:1;4797;4790:12;4752:2;4843:1;4868:50;4910:7;4901:6;4890:9;4886:22;4868:50;:::i;:::-;4858:60;;4814:114;4742:193;;;;:::o;4941:278::-;5008:6;5057:2;5045:9;5036:7;5032:23;5028:32;5025:2;;;5073:1;5070;5063:12;5025:2;5116:1;5141:61;5194:7;5185:6;5174:9;5170:22;5141:61;:::i;:::-;5131:71;;5087:125;5015:204;;;;:::o;5225:262::-;5284:6;5333:2;5321:9;5312:7;5308:23;5304:32;5301:2;;;5349:1;5346;5339:12;5301:2;5392:1;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5363:117;5291:196;;;;:::o;5493:596::-;5581:6;5589;5597;5646:2;5634:9;5625:7;5621:23;5617:32;5614:2;;;5662:1;5659;5652:12;5614:2;5705:1;5730:64;5786:7;5777:6;5766:9;5762:22;5730:64;:::i;:::-;5720:74;;5676:128;5843:2;5869:64;5925:7;5916:6;5905:9;5901:22;5869:64;:::i;:::-;5859:74;;5814:129;5982:2;6008:64;6064:7;6055:6;6044:9;6040:22;6008:64;:::i;:::-;5998:74;;5953:129;5604:485;;;;;:::o;6095:179::-;6164:10;6185:46;6227:3;6219:6;6185:46;:::i;:::-;6263:4;6258:3;6254:14;6240:28;;6175:99;;;;:::o;6280:108::-;6357:24;6375:5;6357:24;:::i;:::-;6352:3;6345:37;6335:53;;:::o;6394:118::-;6481:24;6499:5;6481:24;:::i;:::-;6476:3;6469:37;6459:53;;:::o;6548:732::-;6667:3;6696:54;6744:5;6696:54;:::i;:::-;6766:86;6845:6;6840:3;6766:86;:::i;:::-;6759:93;;6876:56;6926:5;6876:56;:::i;:::-;6955:7;6986:1;6971:284;6996:6;6993:1;6990:13;6971:284;;;7072:6;7066:13;7099:63;7158:3;7143:13;7099:63;:::i;:::-;7092:70;;7185:60;7238:6;7185:60;:::i;:::-;7175:70;;7031:224;7018:1;7015;7011:9;7006:14;;6971:284;;;6975:14;7271:3;7264:10;;6672:608;;;;;;;:::o;7286:109::-;7367:21;7382:5;7367:21;:::i;:::-;7362:3;7355:34;7345:50;;:::o;7401:147::-;7496:45;7535:5;7496:45;:::i;:::-;7491:3;7484:58;7474:74;;:::o;7554:364::-;7642:3;7670:39;7703:5;7670:39;:::i;:::-;7725:71;7789:6;7784:3;7725:71;:::i;:::-;7718:78;;7805:52;7850:6;7845:3;7838:4;7831:5;7827:16;7805:52;:::i;:::-;7882:29;7904:6;7882:29;:::i;:::-;7877:3;7873:39;7866:46;;7646:272;;;;;:::o;7924:366::-;8066:3;8087:67;8151:2;8146:3;8087:67;:::i;:::-;8080:74;;8163:93;8252:3;8163:93;:::i;:::-;8281:2;8276:3;8272:12;8265:19;;8070:220;;;:::o;8296:366::-;8438:3;8459:67;8523:2;8518:3;8459:67;:::i;:::-;8452:74;;8535:93;8624:3;8535:93;:::i;:::-;8653:2;8648:3;8644:12;8637:19;;8442:220;;;:::o;8668:366::-;8810:3;8831:67;8895:2;8890:3;8831:67;:::i;:::-;8824:74;;8907:93;8996:3;8907:93;:::i;:::-;9025:2;9020:3;9016:12;9009:19;;8814:220;;;:::o;9040:366::-;9182:3;9203:67;9267:2;9262:3;9203:67;:::i;:::-;9196:74;;9279:93;9368:3;9279:93;:::i;:::-;9397:2;9392:3;9388:12;9381:19;;9186:220;;;:::o;9412:366::-;9554:3;9575:67;9639:2;9634:3;9575:67;:::i;:::-;9568:74;;9651:93;9740:3;9651:93;:::i;:::-;9769:2;9764:3;9760:12;9753:19;;9558:220;;;:::o;9784:366::-;9926:3;9947:67;10011:2;10006:3;9947:67;:::i;:::-;9940:74;;10023:93;10112:3;10023:93;:::i;:::-;10141:2;10136:3;10132:12;10125:19;;9930:220;;;:::o;10156:366::-;10298:3;10319:67;10383:2;10378:3;10319:67;:::i;:::-;10312:74;;10395:93;10484:3;10395:93;:::i;:::-;10513:2;10508:3;10504:12;10497:19;;10302:220;;;:::o;10528:366::-;10670:3;10691:67;10755:2;10750:3;10691:67;:::i;:::-;10684:74;;10767:93;10856:3;10767:93;:::i;:::-;10885:2;10880:3;10876:12;10869:19;;10674:220;;;:::o;10900:366::-;11042:3;11063:67;11127:2;11122:3;11063:67;:::i;:::-;11056:74;;11139:93;11228:3;11139:93;:::i;:::-;11257:2;11252:3;11248:12;11241:19;;11046:220;;;:::o;11272:366::-;11414:3;11435:67;11499:2;11494:3;11435:67;:::i;:::-;11428:74;;11511:93;11600:3;11511:93;:::i;:::-;11629:2;11624:3;11620:12;11613:19;;11418:220;;;:::o;11644:366::-;11786:3;11807:67;11871:2;11866:3;11807:67;:::i;:::-;11800:74;;11883:93;11972:3;11883:93;:::i;:::-;12001:2;11996:3;11992:12;11985:19;;11790:220;;;:::o;12016:366::-;12158:3;12179:67;12243:2;12238:3;12179:67;:::i;:::-;12172:74;;12255:93;12344:3;12255:93;:::i;:::-;12373:2;12368:3;12364:12;12357:19;;12162:220;;;:::o;12388:118::-;12475:24;12493:5;12475:24;:::i;:::-;12470:3;12463:37;12453:53;;:::o;12512:112::-;12595:22;12611:5;12595:22;:::i;:::-;12590:3;12583:35;12573:51;;:::o;12630:222::-;12723:4;12761:2;12750:9;12746:18;12738:26;;12774:71;12842:1;12831:9;12827:17;12818:6;12774:71;:::i;:::-;12728:124;;;;:::o;12858:332::-;12979:4;13017:2;13006:9;13002:18;12994:26;;13030:71;13098:1;13087:9;13083:17;13074:6;13030:71;:::i;:::-;13111:72;13179:2;13168:9;13164:18;13155:6;13111:72;:::i;:::-;12984:206;;;;;:::o;13196:332::-;13317:4;13355:2;13344:9;13340:18;13332:26;;13368:71;13436:1;13425:9;13421:17;13412:6;13368:71;:::i;:::-;13449:72;13517:2;13506:9;13502:18;13493:6;13449:72;:::i;:::-;13322:206;;;;;:::o;13534:807::-;13783:4;13821:3;13810:9;13806:19;13798:27;;13835:71;13903:1;13892:9;13888:17;13879:6;13835:71;:::i;:::-;13916:72;13984:2;13973:9;13969:18;13960:6;13916:72;:::i;:::-;13998:80;14074:2;14063:9;14059:18;14050:6;13998:80;:::i;:::-;14088;14164:2;14153:9;14149:18;14140:6;14088:80;:::i;:::-;14178:73;14246:3;14235:9;14231:19;14222:6;14178:73;:::i;:::-;14261;14329:3;14318:9;14314:19;14305:6;14261:73;:::i;:::-;13788:553;;;;;;;;;:::o;14347:210::-;14434:4;14472:2;14461:9;14457:18;14449:26;;14485:65;14547:1;14536:9;14532:17;14523:6;14485:65;:::i;:::-;14439:118;;;;:::o;14563:313::-;14676:4;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:78;14864:4;14855:6;14791:78;:::i;:::-;14783:86;;14681:195;;;;:::o;14882:419::-;15048:4;15086:2;15075:9;15071:18;15063:26;;15135:9;15129:4;15125:20;15121:1;15110:9;15106:17;15099:47;15163:131;15289:4;15163:131;:::i;:::-;15155:139;;15053:248;;;:::o;15307:419::-;15473:4;15511:2;15500:9;15496:18;15488:26;;15560:9;15554:4;15550:20;15546:1;15535:9;15531:17;15524:47;15588:131;15714:4;15588:131;:::i;:::-;15580:139;;15478:248;;;:::o;15732:419::-;15898:4;15936:2;15925:9;15921:18;15913:26;;15985:9;15979:4;15975:20;15971:1;15960:9;15956:17;15949:47;16013:131;16139:4;16013:131;:::i;:::-;16005:139;;15903:248;;;:::o;16157:419::-;16323:4;16361:2;16350:9;16346:18;16338:26;;16410:9;16404:4;16400:20;16396:1;16385:9;16381:17;16374:47;16438:131;16564:4;16438:131;:::i;:::-;16430:139;;16328:248;;;:::o;16582:419::-;16748:4;16786:2;16775:9;16771:18;16763:26;;16835:9;16829:4;16825:20;16821:1;16810:9;16806:17;16799:47;16863:131;16989:4;16863:131;:::i;:::-;16855:139;;16753:248;;;:::o;17007:419::-;17173:4;17211:2;17200:9;17196:18;17188:26;;17260:9;17254:4;17250:20;17246:1;17235:9;17231:17;17224:47;17288:131;17414:4;17288:131;:::i;:::-;17280:139;;17178:248;;;:::o;17432:419::-;17598:4;17636:2;17625:9;17621:18;17613:26;;17685:9;17679:4;17675:20;17671:1;17660:9;17656:17;17649:47;17713:131;17839:4;17713:131;:::i;:::-;17705:139;;17603:248;;;:::o;17857:419::-;18023:4;18061:2;18050:9;18046:18;18038:26;;18110:9;18104:4;18100:20;18096:1;18085:9;18081:17;18074:47;18138:131;18264:4;18138:131;:::i;:::-;18130:139;;18028:248;;;:::o;18282:419::-;18448:4;18486:2;18475:9;18471:18;18463:26;;18535:9;18529:4;18525:20;18521:1;18510:9;18506:17;18499:47;18563:131;18689:4;18563:131;:::i;:::-;18555:139;;18453:248;;;:::o;18707:419::-;18873:4;18911:2;18900:9;18896:18;18888:26;;18960:9;18954:4;18950:20;18946:1;18935:9;18931:17;18924:47;18988:131;19114:4;18988:131;:::i;:::-;18980:139;;18878:248;;;:::o;19132:419::-;19298:4;19336:2;19325:9;19321:18;19313:26;;19385:9;19379:4;19375:20;19371:1;19360:9;19356:17;19349:47;19413:131;19539:4;19413:131;:::i;:::-;19405:139;;19303:248;;;:::o;19557:419::-;19723:4;19761:2;19750:9;19746:18;19738:26;;19810:9;19804:4;19800:20;19796:1;19785:9;19781:17;19774:47;19838:131;19964:4;19838:131;:::i;:::-;19830:139;;19728:248;;;:::o;19982:222::-;20075:4;20113:2;20102:9;20098:18;20090:26;;20126:71;20194:1;20183:9;20179:17;20170:6;20126:71;:::i;:::-;20080:124;;;;:::o;20210:831::-;20473:4;20511:3;20500:9;20496:19;20488:27;;20525:71;20593:1;20582:9;20578:17;20569:6;20525:71;:::i;:::-;20606:80;20682:2;20671:9;20667:18;20658:6;20606:80;:::i;:::-;20733:9;20727:4;20723:20;20718:2;20707:9;20703:18;20696:48;20761:108;20864:4;20855:6;20761:108;:::i;:::-;20753:116;;20879:72;20947:2;20936:9;20932:18;20923:6;20879:72;:::i;:::-;20961:73;21029:3;21018:9;21014:19;21005:6;20961:73;:::i;:::-;20478:563;;;;;;;;:::o;21047:214::-;21136:4;21174:2;21163:9;21159:18;21151:26;;21187:67;21251:1;21240:9;21236:17;21227:6;21187:67;:::i;:::-;21141:120;;;;:::o;21267:129::-;21301:6;21328:20;;:::i;:::-;21318:30;;21357:33;21385:4;21377:6;21357:33;:::i;:::-;21308:88;;;:::o;21402:75::-;21435:6;21468:2;21462:9;21452:19;;21442:35;:::o;21483:311::-;21560:4;21650:18;21642:6;21639:30;21636:2;;;21672:18;;:::i;:::-;21636:2;21722:4;21714:6;21710:17;21702:25;;21782:4;21776;21772:15;21764:23;;21565:229;;;:::o;21800:132::-;21867:4;21890:3;21882:11;;21920:4;21915:3;21911:14;21903:22;;21872:60;;;:::o;21938:114::-;22005:6;22039:5;22033:12;22023:22;;22012:40;;;:::o;22058:99::-;22110:6;22144:5;22138:12;22128:22;;22117:40;;;:::o;22163:113::-;22233:4;22265;22260:3;22256:14;22248:22;;22238:38;;;:::o;22282:184::-;22381:11;22415:6;22410:3;22403:19;22455:4;22450:3;22446:14;22431:29;;22393:73;;;;:::o;22472:169::-;22556:11;22590:6;22585:3;22578:19;22630:4;22625:3;22621:14;22606:29;;22568:73;;;;:::o;22647:305::-;22687:3;22706:20;22724:1;22706:20;:::i;:::-;22701:25;;22740:20;22758:1;22740:20;:::i;:::-;22735:25;;22894:1;22826:66;22822:74;22819:1;22816:81;22813:2;;;22900:18;;:::i;:::-;22813:2;22944:1;22941;22937:9;22930:16;;22691:261;;;;:::o;22958:185::-;22998:1;23015:20;23033:1;23015:20;:::i;:::-;23010:25;;23049:20;23067:1;23049:20;:::i;:::-;23044:25;;23088:1;23078:2;;23093:18;;:::i;:::-;23078:2;23135:1;23132;23128:9;23123:14;;23000:143;;;;:::o;23149:348::-;23189:7;23212:20;23230:1;23212:20;:::i;:::-;23207:25;;23246:20;23264:1;23246:20;:::i;:::-;23241:25;;23434:1;23366:66;23362:74;23359:1;23356:81;23351:1;23344:9;23337:17;23333:105;23330:2;;;23441:18;;:::i;:::-;23330:2;23489:1;23486;23482:9;23471:20;;23197:300;;;;:::o;23503:191::-;23543:4;23563:20;23581:1;23563:20;:::i;:::-;23558:25;;23597:20;23615:1;23597:20;:::i;:::-;23592:25;;23636:1;23633;23630:8;23627:2;;;23641:18;;:::i;:::-;23627:2;23686:1;23683;23679:9;23671:17;;23548:146;;;;:::o;23700:96::-;23737:7;23766:24;23784:5;23766:24;:::i;:::-;23755:35;;23745:51;;;:::o;23802:104::-;23847:7;23876:24;23894:5;23876:24;:::i;:::-;23865:35;;23855:51;;;:::o;23912:90::-;23946:7;23989:5;23982:13;23975:21;23964:32;;23954:48;;;:::o;24008:126::-;24045:7;24085:42;24078:5;24074:54;24063:65;;24053:81;;;:::o;24140:77::-;24177:7;24206:5;24195:16;;24185:32;;;:::o;24223:86::-;24258:7;24298:4;24291:5;24287:16;24276:27;;24266:43;;;:::o;24315:121::-;24373:9;24406:24;24424:5;24406:24;:::i;:::-;24393:37;;24383:53;;;:::o;24442:307::-;24510:1;24520:113;24534:6;24531:1;24528:13;24520:113;;;24619:1;24614:3;24610:11;24604:18;24600:1;24595:3;24591:11;24584:39;24556:2;24553:1;24549:10;24544:15;;24520:113;;;24651:6;24648:1;24645:13;24642:2;;;24731:1;24722:6;24717:3;24713:16;24706:27;24642:2;24491:258;;;;:::o;24755:281::-;24838:27;24860:4;24838:27;:::i;:::-;24830:6;24826:40;24968:6;24956:10;24953:22;24932:18;24920:10;24917:34;24914:62;24911:2;;;24979:18;;:::i;:::-;24911:2;25019:10;25015:2;25008:22;24798:238;;;:::o;25042:233::-;25081:3;25104:24;25122:5;25104:24;:::i;:::-;25095:33;;25150:66;25143:5;25140:77;25137:2;;;25220:18;;:::i;:::-;25137:2;25267:1;25260:5;25256:13;25249:20;;25085:190;;;:::o;25281:180::-;25329:77;25326:1;25319:88;25426:4;25423:1;25416:15;25450:4;25447:1;25440:15;25467:180;25515:77;25512:1;25505:88;25612:4;25609:1;25602:15;25636:4;25633:1;25626:15;25653:180;25701:77;25698:1;25691:88;25798:4;25795:1;25788:15;25822:4;25819:1;25812:15;25839:102;25880:6;25931:2;25927:7;25922:2;25915:5;25911:14;25907:28;25897:38;;25887:54;;;:::o;25947:222::-;26087:34;26083:1;26075:6;26071:14;26064:58;26156:5;26151:2;26143:6;26139:15;26132:30;26053:116;:::o;26175:229::-;26315:34;26311:1;26303:6;26299:14;26292:58;26384:12;26379:2;26371:6;26367:15;26360:37;26281:123;:::o;26410:221::-;26550:34;26546:1;26538:6;26534:14;26527:58;26619:4;26614:2;26606:6;26602:15;26595:29;26516:115;:::o;26637:177::-;26777:29;26773:1;26765:6;26761:14;26754:53;26743:71;:::o;26820:177::-;26960:29;26956:1;26948:6;26944:14;26937:53;26926:71;:::o;27003:179::-;27143:31;27139:1;27131:6;27127:14;27120:55;27109:73;:::o;27188:220::-;27328:34;27324:1;27316:6;27312:14;27305:58;27397:3;27392:2;27384:6;27380:15;27373:28;27294:114;:::o;27414:182::-;27554:34;27550:1;27542:6;27538:14;27531:58;27520:76;:::o;27602:228::-;27742:34;27738:1;27730:6;27726:14;27719:58;27811:11;27806:2;27798:6;27794:15;27787:36;27708:122;:::o;27836:224::-;27976:34;27972:1;27964:6;27960:14;27953:58;28045:7;28040:2;28032:6;28028:15;28021:32;27942:118;:::o;28066:223::-;28206:34;28202:1;28194:6;28190:14;28183:58;28275:6;28270:2;28262:6;28258:15;28251:31;28172:117;:::o;28295:173::-;28435:25;28431:1;28423:6;28419:14;28412:49;28401:67;:::o;28474:122::-;28547:24;28565:5;28547:24;:::i;:::-;28540:5;28537:35;28527:2;;28586:1;28583;28576:12;28527:2;28517:79;:::o;28602:138::-;28683:32;28709:5;28683:32;:::i;:::-;28676:5;28673:43;28663:2;;28730:1;28727;28720:12;28663:2;28653:87;:::o;28746:116::-;28816:21;28831:5;28816:21;:::i;:::-;28809:5;28806:32;28796:2;;28852:1;28849;28842:12;28796:2;28786:76;:::o;28868:122::-;28941:24;28959:5;28941:24;:::i;:::-;28934:5;28931:35;28921:2;;28980:1;28977;28970:12;28921:2;28911:79;:::o

Swarm Source

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