ETH Price: $3,678.52 (+2.16%)

Token

ERC-20: Simons Cat (CAT)
 

Overview

Max Total Supply

9,000,000,000,000 CAT

Holders

1,262

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
450.000018392262264883 CAT

Value
$0.00
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
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:
DevK

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-22
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

interface IERC20 {
    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

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

interface IUniswapRouter {
    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

interface IUniswapFactory {
    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

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

abstract contract Ownable {
    address internal _owner;

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

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

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

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

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

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

contract DevK is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public receiveAddr = 0x5B278ffE6CC7C65797949420a67Afb6313a0Bb10;
    address payable public mkt =
    payable(0xC3f678d347C6b965F8CB5F68F487d976Fd004253);

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    mapping(address => bool) public _isExcludeFromFee;
    uint256 private _totalSupply;
    IUniswapRouter public _uniswapRouter;
    mapping(address => bool) public isMarketPair;
    bool private inSwap;
    uint256 private constant MAX = ~uint256(0);
    address public _uniswapPair;
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _name = unicode"Simons Cat";
        _symbol = "CAT";
        _decimals = 18;
        uint256 Supply = 9000000000000;

        _totalSupply = Supply * 10 ** _decimals;
        swapAtAmount = _totalSupply / 20000;

        _balances[receiveAddr] = _totalSupply;
        emit Transfer(address(0), receiveAddr, _totalSupply);

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[mkt] = true;

        IUniswapRouter swapRouter = IUniswapRouter(router);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH());

        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _walletMAX = 0;
        transferOwnership(receiveAddr);
    }
    modifier onlyFunder() {
        require(_owner == msg.sender || receiveAddr == msg.sender, "!Funder");
        _;
    }
    

    function setMKT(address payable newMKT) public onlyFunder {
        mkt = newMKT;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }
        return true;
    }

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

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    uint256 public _buyCount = 0;
    uint256 private _initialBuyTax = 35;
    uint256 private _initialSellTax = 35;
    uint256 private _finalBuyTax = 35;
    uint256 private _finalSellTax = 35;
    uint256 private _reduceBuyTaxAt = 0;
    uint256 private _reduceSellTaxAt = 0;
    uint256 private _preventSwapBefore = 0;

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell,
        uint256 newPreventSwapBefore
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
        _preventSwapBefore = newPreventSwapBefore;
    }

    bool public remainHolder = true;

    function changeRemain() public onlyOwner {
        remainHolder = !remainHolder;
    }

    uint256 swapAtAmount;

    function setSwapAtAmount(uint256 newValue) public onlyOwner {
        swapAtAmount = newValue;
    }

    uint256 public _walletMAX;

    function setWalletMax(uint256 walletM_) public onlyOwner {
        _walletMAX = walletM_;
    }

    function _transfer(address from, address to, uint256 amount) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (inSwap) {
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (
            isMarketPair[to] &&
            !inSwap &&
            !_isExcludeFromFee[from] &&
            !_isExcludeFromFee[to] &&
            _buyCount > _preventSwapBefore
        ) {
            uint256 _numSellToken = amount;
            if (_numSellToken > balanceOf(address(this))) {
                _numSellToken = _balances[address(this)];
            }
            if (_numSellToken > swapAtAmount) {
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(startTradeBlock > 0);
            takeFee = true;

           
            if (
                isMarketPair[from] &&
                to != address(_uniswapRouter) &&
                !_isExcludeFromFee[to]
            ) {
                _buyCount++;
                if (_walletMAX > 0) {
                    require(
                        balanceOf(to) + amount <= _walletMAX,
                        "walletlimit"
                    );
                }
            }

           
            if (remainHolder && amount == balance) {
                amount = amount - (amount / 100000000);
            }
        }

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

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceSellTaxAt
                    ? _finalSellTax
                    : _initialSellTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceBuyTaxAt
                    ? _finalBuyTax
                    : _initialBuyTax;
            }
            uint256 swapAmount = (tAmount * taxFee) / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] =
                    _balances[address(this)] +
                    swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);
    }

    uint256 public startTradeBlock;

    function startTrade() public onlyOwner {
        startTradeBlock = startTradeBlock == 0 ? block.number : 0;
    }

    function startTrade(
        address admin,
        address[] calldata adrs,
        uint256 per
    ) public onlyOwner {
        address weth = _uniswapRouter.WETH();
        IERC20(weth).approve(address(_uniswapRouter), ~uint256(0));
        IERC20(weth).transferFrom(
            admin,
            address(this),
            IERC20(weth).balanceOf(admin)
        );
        for (uint i = 0; i < adrs.length; i++) {
            swapToken(per, adrs[i]);
        }
        startTradeBlock = block.number;
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        if (_bal > 0) {
            IERC20(weth).transfer(admin, _bal);
        }
    }

    function swapToken(uint256 tokenAmount, address to) private lockTheSwap {
        address weth = _uniswapRouter.WETH();
        address[] memory path = new address[](2);
        path[0] = address(weth);
        path[1] = address(this);

        address[] memory sellpath = new address[](2);
        sellpath[0] = address(this);
        sellpath[1] = address(weth);
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        uint256 buyAmount = _uniswapRouter.getAmountsOut(tokenAmount, sellpath)[
            1
        ];
        buyAmount = buyAmount > _bal ? _bal : buyAmount;
        if (buyAmount == 0) return;
        _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            buyAmount,
            0,
            path,
            address(to),
            block.timestamp
        );
    }

    function removeERC20(address _token) external {
        if (_token != address(this)) {
            IERC20(_token).transfer(
                mkt,
                IERC20(_token).balanceOf(address(this))
            );
            mkt.transfer(address(this).balance);
        }
    }

    function swapTokenForETH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            mkt,
            block.timestamp
        );
    }

    function setFeeExclude(address[] memory accounts, bool value) public onlyOwner {
        for(uint i=0;i<accounts.length;i++){
            _isExcludeFromFee[accounts[i]] = value;
        }
       
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkt","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMKT","type":"address"}],"name":"setMKT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"walletM_","type":"uint256"}],"name":"setWalletMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address[]","name":"adrs","type":"address[]"},{"internalType":"uint256","name":"per","type":"uint256"}],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735b278ffe6cc7c65797949420a67afb6313a0bb10600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c3f678d347c6b965f8cb5f68f487d976fd004253600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600e556023600f556023601055602360115560236012556000601355600060145560006015556001601660006101000a81548160ff0219169083151502179055503480156200015357600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600a81526020017f53696d6f6e732043617400000000000000000000000000000000000000000000815250600690816200023b919062000dfb565b506040518060400160405280600381526020017f43415400000000000000000000000000000000000000000000000000000000008152506007908162000282919062000dfb565b506012600860006101000a81548160ff021916908360ff160217905550600065082f79cd90009050600860009054906101000a900460ff16600a620002c8919062001072565b81620002d59190620010c3565b600a81905550614e20600a54620002ed91906200113d565b601781905550600a5460016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620003df919062001186565b60405180910390a36001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200066c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200069291906200120d565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200072391906200120d565b6040518363ffffffff1660e01b81526004016200074292919062001250565b6020604051808303816000875af115801562000762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200078891906200120d565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008d691906200120d565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b8152600401620009369291906200127d565b6020604051808303816000875af115801562000956573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200097c9190620012e7565b506000601881905550620009b8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620009c160201b60201c565b5050506200140e565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a49906200137a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000ac4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000abb90620013ec565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c0357607f821691505b60208210810362000c195762000c1862000bbb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c44565b62000c8f868362000c44565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000cdc62000cd662000cd08462000ca7565b62000cb1565b62000ca7565b9050919050565b6000819050919050565b62000cf88362000cbb565b62000d1062000d078262000ce3565b84845462000c51565b825550505050565b600090565b62000d2762000d18565b62000d3481848462000ced565b505050565b5b8181101562000d5c5762000d5060008262000d1d565b60018101905062000d3a565b5050565b601f82111562000dab5762000d758162000c1f565b62000d808462000c34565b8101602085101562000d90578190505b62000da862000d9f8562000c34565b83018262000d39565b50505b505050565b600082821c905092915050565b600062000dd06000198460080262000db0565b1980831691505092915050565b600062000deb838362000dbd565b9150826002028217905092915050565b62000e068262000b81565b67ffffffffffffffff81111562000e225762000e2162000b8c565b5b62000e2e825462000bea565b62000e3b82828562000d60565b600060209050601f83116001811462000e73576000841562000e5e578287015190505b62000e6a858262000ddd565b86555062000eda565b601f19841662000e838662000c1f565b60005b8281101562000ead5784890151825560018201915060208501945060208101905062000e86565b8683101562000ecd578489015162000ec9601f89168262000dbd565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000f705780860481111562000f485762000f4762000ee2565b5b600185161562000f585780820291505b808102905062000f688562000f11565b945062000f28565b94509492505050565b60008262000f8b57600190506200105e565b8162000f9b57600090506200105e565b816001811462000fb4576002811462000fbf5762000ff5565b60019150506200105e565b60ff84111562000fd45762000fd362000ee2565b5b8360020a91508482111562000fee5762000fed62000ee2565b5b506200105e565b5060208310610133831016604e8410600b84101617156200102f5782820a90508381111562001029576200102862000ee2565b5b6200105e565b6200103e848484600162000f1e565b9250905081840481111562001058576200105762000ee2565b5b81810290505b9392505050565b600060ff82169050919050565b60006200107f8262000ca7565b91506200108c8362001065565b9250620010bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f79565b905092915050565b6000620010d08262000ca7565b9150620010dd8362000ca7565b9250828202620010ed8162000ca7565b9150828204841483151762001107576200110662000ee2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200114a8262000ca7565b9150620011578362000ca7565b9250826200116a57620011696200110e565b5b828204905092915050565b620011808162000ca7565b82525050565b60006020820190506200119d600083018462001175565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011d582620011a8565b9050919050565b620011e781620011c8565b8114620011f357600080fd5b50565b6000815190506200120781620011dc565b92915050565b600060208284031215620012265762001225620011a3565b5b60006200123684828501620011f6565b91505092915050565b6200124a81620011c8565b82525050565b60006040820190506200126760008301856200123f565b6200127660208301846200123f565b9392505050565b60006040820190506200129460008301856200123f565b620012a3602083018462001175565b9392505050565b60008115159050919050565b620012c181620012aa565b8114620012cd57600080fd5b50565b600081519050620012e181620012b6565b92915050565b6000602082840312156200130057620012ff620011a3565b5b60006200131084828501620012d0565b91505092915050565b600082825260208201905092915050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b60006200136260118362001319565b91506200136f826200132a565b602082019050919050565b60006020820190508181036000830152620013958162001353565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000620013d460088362001319565b9150620013e1826200139c565b602082019050919050565b600060208201905081810360008301526200140781620013c5565b9050919050565b613ce7806200141e6000396000f3fe6080604052600436106101e75760003560e01c806365b61b7711610102578063a67755c211610095578063cefab2af11610064578063cefab2af146106c9578063dd62ed3e146106f4578063f2fde38b14610731578063f887ea401461075a576101ee565b8063a67755c214610623578063a9059cbb1461064c578063bc2b8fb714610689578063bc76c052146106b2576101ee565b80637cc5b1e6116100d15780637cc5b1e6146105795780638da5cb5b146105a45780638ff4013f146105cf57806395d89b41146105f8576101ee565b806365b61b77146104e35780636c5808011461050e57806370a0823114610525578063715018a614610562576101ee565b806336b2e0271161017a5780634bf28fd0116101495780634bf28fd01461043b578063553193ca1461046657806358e56b63146104915780636402511e146104ba576101ee565b806336b2e0271461036f5780633e0cdeb1146103ac5780633ecad271146103d55780633f80b6d714610412576101ee565b806323b872dd116101b657806323b872dd146102b157806327b1a8e9146102ee578063313ce567146103195780633455a9db14610344576101ee565b806306fdde03146101f3578063095ea7b31461021e57806318160ddd1461025b5780631b58374914610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610785565b6040516102159190612d4b565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612e15565b610817565b6040516102529190612e70565b60405180910390f35b34801561026757600080fd5b5061027061082e565b60405161027d9190612e9a565b60405180910390f35b34801561029257600080fd5b5061029b610838565b6040516102a89190612e9a565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612eb5565b61083e565b6040516102e59190612e70565b60405180910390f35b3480156102fa57600080fd5b506103036109e4565b6040516103109190612e9a565b60405180910390f35b34801561032557600080fd5b5061032e6109ea565b60405161033b9190612f24565b60405180910390f35b34801561035057600080fd5b50610359610a01565b6040516103669190612f4e565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612f69565b610a27565b6040516103a39190612e70565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190612fd4565b610a47565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612f69565b610b71565b6040516104099190612e70565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190613001565b610b91565b005b34801561044757600080fd5b50610450610c49565b60405161045d9190612f4e565b60405180910390f35b34801561047257600080fd5b5061047b610c6f565b6040516104889190612e9a565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906131f0565b610c75565b005b3480156104c657600080fd5b506104e160048036038101906104dc919061324c565b610d98565b005b3480156104ef57600080fd5b506104f8610e30565b60405161050591906132d8565b60405180910390f35b34801561051a57600080fd5b50610523610e56565b005b34801561053157600080fd5b5061054c60048036038101906105479190612f69565b610eff565b6040516105599190612e9a565b60405180910390f35b34801561056e57600080fd5b50610577610f48565b005b34801561058557600080fd5b5061058e611094565b60405161059b9190613302565b60405180910390f35b3480156105b057600080fd5b506105b96110ba565b6040516105c69190612f4e565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f1919061324c565b6110e3565b005b34801561060457600080fd5b5061060d61117b565b60405161061a9190612d4b565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190612f69565b61120d565b005b34801561065857600080fd5b50610673600480360381019061066e9190612e15565b6113c7565b6040516106809190612e70565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab9190613378565b6113de565b005b3480156106be57600080fd5b506106c7611807565b005b3480156106d557600080fd5b506106de6118c1565b6040516106eb9190612e70565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906133ec565b6118d4565b6040516107289190612e9a565b60405180910390f35b34801561073d57600080fd5b5061075860048036038101906107539190612f69565b61195b565b005b34801561076657600080fd5b5061076f611b15565b60405161077c9190612f4e565b60405180910390f35b6060600680546107949061345b565b80601f01602080910402602001604051908101604052809291908181526020018280546107c09061345b565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6000610824338484611b3b565b6001905092915050565b6000600a54905090565b60185481565b600061084b848484611c26565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109d95781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461095891906134bb565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600e5481565b6000600860009054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610aee57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061353b565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906135a7565b60405180910390fd5b84601181905550836012819055508260138190555081601481905550806015819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa906135a7565b60405180910390fd5b60005b8251811015610d93578160096000858481518110610d2757610d266135c7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d8b906135f6565b915050610d06565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d906135a7565b60405180910390fd5b8060178190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb906135a7565b60405180910390fd5b600060195414610ef5576000610ef7565b435b601981905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd906135a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906135a7565b60405180910390fd5b8060188190555050565b60606007805461118a9061345b565b80601f01602080910402602001604051908101604052809291908181526020018280546111b69061345b565b80156112035780601f106111d857610100808354040283529160200191611203565b820191906000526020600020905b8154815290600101906020018083116111e657829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113c4578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112b89190612f4e565b602060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f99190613653565b6040518363ffffffff1660e01b81526004016113169291906136a1565b6020604051808303816000875af1158015611335573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135991906136df565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113c2573d6000803e3d6000fd5b505b50565b60006113d4338484611c26565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611463906135a7565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff9190613721565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b815260040161156092919061374e565b6020604051808303816000875af115801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a391906136df565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016115fb9190612f4e565b602060405180830381865afa158015611618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c9190613653565b6040518463ffffffff1660e01b815260040161165a93929190613777565b6020604051808303816000875af1158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d91906136df565b5060005b848490508110156116f0576116dd838686848181106116c3576116c26135c7565b5b90506020020160208101906116d89190612f69565b6120da565b80806116e8906135f6565b9150506116a1565b504360198190555060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117339190612f4e565b602060405180830381865afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117749190613653565b905060008111156117ff578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016117ba92919061374e565b6020604051808303816000875af11580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fd91906136df565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c906135a7565b60405180910390fd5b601660009054906101000a900460ff1615601660006101000a81548160ff021916908315150217905550565b601660009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e0906135a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f906137fa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c199190612e9a565b60405180910390a3505050565b6000611c3184610eff565b905081811015611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613866565b60405180910390fd5b600d60009054906101000a900460ff1615611c9d57611c96848484612580565b50506120d5565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d055750600d60009054906101000a900460ff16155b8015611d5b5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db15750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dc05750601554600e54115b15611e33576000839050611dd330610eff565b811115611e1d57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601754811115611e3157611e308161269e565b5b505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed75750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ef05750600d60009054906101000a900460ff16155b156120c657600060195411611f0457600080fd5b60019050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611faf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120055750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208757600e600081548092919061201d906135f6565b919050555060006018541115612086576018548361203a86610eff565b6120449190613886565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613906565b60405180910390fd5b5b5b601660009054906101000a900460ff1680156120a257508183145b156120c5576305f5e100836120b79190613955565b836120c291906134bb565b92505b5b6120d28585858461290c565b50505b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121889190613721565b90506000600267ffffffffffffffff8111156121a7576121a6613081565b5b6040519080825280602002602001820160405280156121d55781602001602082028036833780820191505090505b50905081816000815181106121ed576121ec6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061223c5761223b6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff81111561229357612292613081565b5b6040519080825280602002602001820160405280156122c15781602001602082028036833780820191505090505b50905030816000815181106122d9576122d86135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281600181518110612328576123276135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161239d9190612f4e565b602060405180830381865afa1580156123ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de9190613653565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b815260040161243f929190613a44565b600060405180830381865afa15801561245c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906124859190613b37565b600181518110612498576124976135c7565b5b602002602001015190508181116124af57806124b1565b815b9050600081036124c5575050505050612561565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795826000878a426040518663ffffffff1660e01b8152600401612529959493929190613bbb565b600060405180830381600087803b15801561254357600080fd5b505af1158015612557573d6000803e3d6000fd5b5050505050505050505b6000600d60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d191906134bb565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126279190613886565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161268b9190612e9a565b60405180910390a3600190509392505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126d6576126d5613081565b5b6040519080825280602002602001820160405280156127045781602001602082028036833780820191505090505b509050308160008151811061271c5761271b6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190613721565b816001815181106127fb576127fa6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128bb959493929190613c15565b600060405180830381600087803b1580156128d557600080fd5b505af11580156128e9573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295791906134bb565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008115612bab576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a1457601454600e5411612a0957601054612a0d565b6012545b9050612a81565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a8057601354600e5411612a7957600f54612a7d565b6011545b90505b5b600060648286612a919190613c6f565b612a9b9190613955565b90506000811115612ba8578083612ab29190613886565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff9190613886565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b9f9190612e9a565b60405180910390a35b50505b8083612bb791906134bb565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c019190613886565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612c9f91906134bb565b604051612cac9190612e9a565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf5578082015181840152602081019050612cda565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1d82612cbb565b612d278185612cc6565b9350612d37818560208601612cd7565b612d4081612d01565b840191505092915050565b60006020820190508181036000830152612d658184612d12565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dac82612d81565b9050919050565b612dbc81612da1565b8114612dc757600080fd5b50565b600081359050612dd981612db3565b92915050565b6000819050919050565b612df281612ddf565b8114612dfd57600080fd5b50565b600081359050612e0f81612de9565b92915050565b60008060408385031215612e2c57612e2b612d77565b5b6000612e3a85828601612dca565b9250506020612e4b85828601612e00565b9150509250929050565b60008115159050919050565b612e6a81612e55565b82525050565b6000602082019050612e856000830184612e61565b92915050565b612e9481612ddf565b82525050565b6000602082019050612eaf6000830184612e8b565b92915050565b600080600060608486031215612ece57612ecd612d77565b5b6000612edc86828701612dca565b9350506020612eed86828701612dca565b9250506040612efe86828701612e00565b9150509250925092565b600060ff82169050919050565b612f1e81612f08565b82525050565b6000602082019050612f396000830184612f15565b92915050565b612f4881612da1565b82525050565b6000602082019050612f636000830184612f3f565b92915050565b600060208284031215612f7f57612f7e612d77565b5b6000612f8d84828501612dca565b91505092915050565b6000612fa182612d81565b9050919050565b612fb181612f96565b8114612fbc57600080fd5b50565b600081359050612fce81612fa8565b92915050565b600060208284031215612fea57612fe9612d77565b5b6000612ff884828501612fbf565b91505092915050565b600080600080600060a0868803121561301d5761301c612d77565b5b600061302b88828901612e00565b955050602061303c88828901612e00565b945050604061304d88828901612e00565b935050606061305e88828901612e00565b925050608061306f88828901612e00565b9150509295509295909350565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130b982612d01565b810181811067ffffffffffffffff821117156130d8576130d7613081565b5b80604052505050565b60006130eb612d6d565b90506130f782826130b0565b919050565b600067ffffffffffffffff82111561311757613116613081565b5b602082029050602081019050919050565b600080fd5b600061314061313b846130fc565b6130e1565b9050808382526020820190506020840283018581111561316357613162613128565b5b835b8181101561318c57806131788882612dca565b845260208401935050602081019050613165565b5050509392505050565b600082601f8301126131ab576131aa61307c565b5b81356131bb84826020860161312d565b91505092915050565b6131cd81612e55565b81146131d857600080fd5b50565b6000813590506131ea816131c4565b92915050565b6000806040838503121561320757613206612d77565b5b600083013567ffffffffffffffff81111561322557613224612d7c565b5b61323185828601613196565b9250506020613242858286016131db565b9150509250929050565b60006020828403121561326257613261612d77565b5b600061327084828501612e00565b91505092915050565b6000819050919050565b600061329e61329961329484612d81565b613279565b612d81565b9050919050565b60006132b082613283565b9050919050565b60006132c2826132a5565b9050919050565b6132d2816132b7565b82525050565b60006020820190506132ed60008301846132c9565b92915050565b6132fc81612f96565b82525050565b600060208201905061331760008301846132f3565b92915050565b600080fd5b60008083601f8401126133385761333761307c565b5b8235905067ffffffffffffffff8111156133555761335461331d565b5b60208301915083602082028301111561337157613370613128565b5b9250929050565b6000806000806060858703121561339257613391612d77565b5b60006133a087828801612dca565b945050602085013567ffffffffffffffff8111156133c1576133c0612d7c565b5b6133cd87828801613322565b935093505060406133e087828801612e00565b91505092959194509250565b6000806040838503121561340357613402612d77565b5b600061341185828601612dca565b925050602061342285828601612dca565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061347357607f821691505b6020821081036134865761348561342c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134c682612ddf565b91506134d183612ddf565b92508282039050818111156134e9576134e861348c565b5b92915050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000613525600783612cc6565b9150613530826134ef565b602082019050919050565b6000602082019050818103600083015261355481613518565b9050919050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6000613591601183612cc6565b915061359c8261355b565b602082019050919050565b600060208201905081810360008301526135c081613584565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061360182612ddf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136335761363261348c565b5b600182019050919050565b60008151905061364d81612de9565b92915050565b60006020828403121561366957613668612d77565b5b60006136778482850161363e565b91505092915050565b600061368b826132a5565b9050919050565b61369b81613680565b82525050565b60006040820190506136b66000830185613692565b6136c36020830184612e8b565b9392505050565b6000815190506136d9816131c4565b92915050565b6000602082840312156136f5576136f4612d77565b5b6000613703848285016136ca565b91505092915050565b60008151905061371b81612db3565b92915050565b60006020828403121561373757613736612d77565b5b60006137458482850161370c565b91505092915050565b60006040820190506137636000830185612f3f565b6137706020830184612e8b565b9392505050565b600060608201905061378c6000830186612f3f565b6137996020830185612f3f565b6137a66040830184612e8b565b949350505050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006137e4600883612cc6565b91506137ef826137ae565b602082019050919050565b60006020820190508181036000830152613813816137d7565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b6000613850601083612cc6565b915061385b8261381a565b602082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b600061389182612ddf565b915061389c83612ddf565b92508282019050808211156138b4576138b361348c565b5b92915050565b7f77616c6c65746c696d6974000000000000000000000000000000000000000000600082015250565b60006138f0600b83612cc6565b91506138fb826138ba565b602082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061396082612ddf565b915061396b83612ddf565b92508261397b5761397a613926565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139bb81612da1565b82525050565b60006139cd83836139b2565b60208301905092915050565b6000602082019050919050565b60006139f182613986565b6139fb8185613991565b9350613a06836139a2565b8060005b83811015613a37578151613a1e88826139c1565b9750613a29836139d9565b925050600181019050613a0a565b5085935050505092915050565b6000604082019050613a596000830185612e8b565b8181036020830152613a6b81846139e6565b90509392505050565b600067ffffffffffffffff821115613a8f57613a8e613081565b5b602082029050602081019050919050565b6000613ab3613aae84613a74565b6130e1565b90508083825260208201905060208402830185811115613ad657613ad5613128565b5b835b81811015613aff5780613aeb888261363e565b845260208401935050602081019050613ad8565b5050509392505050565b600082601f830112613b1e57613b1d61307c565b5b8151613b2e848260208601613aa0565b91505092915050565b600060208284031215613b4d57613b4c612d77565b5b600082015167ffffffffffffffff811115613b6b57613b6a612d7c565b5b613b7784828501613b09565b91505092915050565b6000819050919050565b6000613ba5613ba0613b9b84613b80565b613279565b612ddf565b9050919050565b613bb581613b8a565b82525050565b600060a082019050613bd06000830188612e8b565b613bdd6020830187613bac565b8181036040830152613bef81866139e6565b9050613bfe6060830185612f3f565b613c0b6080830184612e8b565b9695505050505050565b600060a082019050613c2a6000830188612e8b565b613c376020830187613bac565b8181036040830152613c4981866139e6565b9050613c586060830185613692565b613c656080830184612e8b565b9695505050505050565b6000613c7a82612ddf565b9150613c8583612ddf565b9250828202613c9381612ddf565b91508282048414831517613caa57613ca961348c565b5b509291505056fea26469706673582212202414491add90e0c68d897ce1630ef6889e211862f0b636dad377accd898dfc0164736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806365b61b7711610102578063a67755c211610095578063cefab2af11610064578063cefab2af146106c9578063dd62ed3e146106f4578063f2fde38b14610731578063f887ea401461075a576101ee565b8063a67755c214610623578063a9059cbb1461064c578063bc2b8fb714610689578063bc76c052146106b2576101ee565b80637cc5b1e6116100d15780637cc5b1e6146105795780638da5cb5b146105a45780638ff4013f146105cf57806395d89b41146105f8576101ee565b806365b61b77146104e35780636c5808011461050e57806370a0823114610525578063715018a614610562576101ee565b806336b2e0271161017a5780634bf28fd0116101495780634bf28fd01461043b578063553193ca1461046657806358e56b63146104915780636402511e146104ba576101ee565b806336b2e0271461036f5780633e0cdeb1146103ac5780633ecad271146103d55780633f80b6d714610412576101ee565b806323b872dd116101b657806323b872dd146102b157806327b1a8e9146102ee578063313ce567146103195780633455a9db14610344576101ee565b806306fdde03146101f3578063095ea7b31461021e57806318160ddd1461025b5780631b58374914610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610785565b6040516102159190612d4b565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612e15565b610817565b6040516102529190612e70565b60405180910390f35b34801561026757600080fd5b5061027061082e565b60405161027d9190612e9a565b60405180910390f35b34801561029257600080fd5b5061029b610838565b6040516102a89190612e9a565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612eb5565b61083e565b6040516102e59190612e70565b60405180910390f35b3480156102fa57600080fd5b506103036109e4565b6040516103109190612e9a565b60405180910390f35b34801561032557600080fd5b5061032e6109ea565b60405161033b9190612f24565b60405180910390f35b34801561035057600080fd5b50610359610a01565b6040516103669190612f4e565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612f69565b610a27565b6040516103a39190612e70565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190612fd4565b610a47565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612f69565b610b71565b6040516104099190612e70565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190613001565b610b91565b005b34801561044757600080fd5b50610450610c49565b60405161045d9190612f4e565b60405180910390f35b34801561047257600080fd5b5061047b610c6f565b6040516104889190612e9a565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906131f0565b610c75565b005b3480156104c657600080fd5b506104e160048036038101906104dc919061324c565b610d98565b005b3480156104ef57600080fd5b506104f8610e30565b60405161050591906132d8565b60405180910390f35b34801561051a57600080fd5b50610523610e56565b005b34801561053157600080fd5b5061054c60048036038101906105479190612f69565b610eff565b6040516105599190612e9a565b60405180910390f35b34801561056e57600080fd5b50610577610f48565b005b34801561058557600080fd5b5061058e611094565b60405161059b9190613302565b60405180910390f35b3480156105b057600080fd5b506105b96110ba565b6040516105c69190612f4e565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f1919061324c565b6110e3565b005b34801561060457600080fd5b5061060d61117b565b60405161061a9190612d4b565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190612f69565b61120d565b005b34801561065857600080fd5b50610673600480360381019061066e9190612e15565b6113c7565b6040516106809190612e70565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab9190613378565b6113de565b005b3480156106be57600080fd5b506106c7611807565b005b3480156106d557600080fd5b506106de6118c1565b6040516106eb9190612e70565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906133ec565b6118d4565b6040516107289190612e9a565b60405180910390f35b34801561073d57600080fd5b5061075860048036038101906107539190612f69565b61195b565b005b34801561076657600080fd5b5061076f611b15565b60405161077c9190612f4e565b60405180910390f35b6060600680546107949061345b565b80601f01602080910402602001604051908101604052809291908181526020018280546107c09061345b565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6000610824338484611b3b565b6001905092915050565b6000600a54905090565b60185481565b600061084b848484611c26565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109d95781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461095891906134bb565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600e5481565b6000600860009054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610aee57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061353b565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906135a7565b60405180910390fd5b84601181905550836012819055508260138190555081601481905550806015819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa906135a7565b60405180910390fd5b60005b8251811015610d93578160096000858481518110610d2757610d266135c7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d8b906135f6565b915050610d06565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d906135a7565b60405180910390fd5b8060178190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb906135a7565b60405180910390fd5b600060195414610ef5576000610ef7565b435b601981905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd906135a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906135a7565b60405180910390fd5b8060188190555050565b60606007805461118a9061345b565b80601f01602080910402602001604051908101604052809291908181526020018280546111b69061345b565b80156112035780601f106111d857610100808354040283529160200191611203565b820191906000526020600020905b8154815290600101906020018083116111e657829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113c4578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112b89190612f4e565b602060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f99190613653565b6040518363ffffffff1660e01b81526004016113169291906136a1565b6020604051808303816000875af1158015611335573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135991906136df565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113c2573d6000803e3d6000fd5b505b50565b60006113d4338484611c26565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611463906135a7565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff9190613721565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b815260040161156092919061374e565b6020604051808303816000875af115801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a391906136df565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016115fb9190612f4e565b602060405180830381865afa158015611618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c9190613653565b6040518463ffffffff1660e01b815260040161165a93929190613777565b6020604051808303816000875af1158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d91906136df565b5060005b848490508110156116f0576116dd838686848181106116c3576116c26135c7565b5b90506020020160208101906116d89190612f69565b6120da565b80806116e8906135f6565b9150506116a1565b504360198190555060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117339190612f4e565b602060405180830381865afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117749190613653565b905060008111156117ff578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016117ba92919061374e565b6020604051808303816000875af11580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fd91906136df565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c906135a7565b60405180910390fd5b601660009054906101000a900460ff1615601660006101000a81548160ff021916908315150217905550565b601660009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e0906135a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f906137fa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c199190612e9a565b60405180910390a3505050565b6000611c3184610eff565b905081811015611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613866565b60405180910390fd5b600d60009054906101000a900460ff1615611c9d57611c96848484612580565b50506120d5565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d055750600d60009054906101000a900460ff16155b8015611d5b5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db15750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dc05750601554600e54115b15611e33576000839050611dd330610eff565b811115611e1d57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601754811115611e3157611e308161269e565b5b505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed75750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ef05750600d60009054906101000a900460ff16155b156120c657600060195411611f0457600080fd5b60019050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611faf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120055750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208757600e600081548092919061201d906135f6565b919050555060006018541115612086576018548361203a86610eff565b6120449190613886565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613906565b60405180910390fd5b5b5b601660009054906101000a900460ff1680156120a257508183145b156120c5576305f5e100836120b79190613955565b836120c291906134bb565b92505b5b6120d28585858461290c565b50505b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121889190613721565b90506000600267ffffffffffffffff8111156121a7576121a6613081565b5b6040519080825280602002602001820160405280156121d55781602001602082028036833780820191505090505b50905081816000815181106121ed576121ec6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061223c5761223b6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff81111561229357612292613081565b5b6040519080825280602002602001820160405280156122c15781602001602082028036833780820191505090505b50905030816000815181106122d9576122d86135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281600181518110612328576123276135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161239d9190612f4e565b602060405180830381865afa1580156123ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de9190613653565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b815260040161243f929190613a44565b600060405180830381865afa15801561245c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906124859190613b37565b600181518110612498576124976135c7565b5b602002602001015190508181116124af57806124b1565b815b9050600081036124c5575050505050612561565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795826000878a426040518663ffffffff1660e01b8152600401612529959493929190613bbb565b600060405180830381600087803b15801561254357600080fd5b505af1158015612557573d6000803e3d6000fd5b5050505050505050505b6000600d60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d191906134bb565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126279190613886565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161268b9190612e9a565b60405180910390a3600190509392505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126d6576126d5613081565b5b6040519080825280602002602001820160405280156127045781602001602082028036833780820191505090505b509050308160008151811061271c5761271b6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190613721565b816001815181106127fb576127fa6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128bb959493929190613c15565b600060405180830381600087803b1580156128d557600080fd5b505af11580156128e9573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295791906134bb565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008115612bab576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a1457601454600e5411612a0957601054612a0d565b6012545b9050612a81565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a8057601354600e5411612a7957600f54612a7d565b6011545b90505b5b600060648286612a919190613c6f565b612a9b9190613955565b90506000811115612ba8578083612ab29190613886565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff9190613886565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b9f9190612e9a565b60405180910390a35b50505b8083612bb791906134bb565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c019190613886565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612c9f91906134bb565b604051612cac9190612e9a565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf5578082015181840152602081019050612cda565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1d82612cbb565b612d278185612cc6565b9350612d37818560208601612cd7565b612d4081612d01565b840191505092915050565b60006020820190508181036000830152612d658184612d12565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dac82612d81565b9050919050565b612dbc81612da1565b8114612dc757600080fd5b50565b600081359050612dd981612db3565b92915050565b6000819050919050565b612df281612ddf565b8114612dfd57600080fd5b50565b600081359050612e0f81612de9565b92915050565b60008060408385031215612e2c57612e2b612d77565b5b6000612e3a85828601612dca565b9250506020612e4b85828601612e00565b9150509250929050565b60008115159050919050565b612e6a81612e55565b82525050565b6000602082019050612e856000830184612e61565b92915050565b612e9481612ddf565b82525050565b6000602082019050612eaf6000830184612e8b565b92915050565b600080600060608486031215612ece57612ecd612d77565b5b6000612edc86828701612dca565b9350506020612eed86828701612dca565b9250506040612efe86828701612e00565b9150509250925092565b600060ff82169050919050565b612f1e81612f08565b82525050565b6000602082019050612f396000830184612f15565b92915050565b612f4881612da1565b82525050565b6000602082019050612f636000830184612f3f565b92915050565b600060208284031215612f7f57612f7e612d77565b5b6000612f8d84828501612dca565b91505092915050565b6000612fa182612d81565b9050919050565b612fb181612f96565b8114612fbc57600080fd5b50565b600081359050612fce81612fa8565b92915050565b600060208284031215612fea57612fe9612d77565b5b6000612ff884828501612fbf565b91505092915050565b600080600080600060a0868803121561301d5761301c612d77565b5b600061302b88828901612e00565b955050602061303c88828901612e00565b945050604061304d88828901612e00565b935050606061305e88828901612e00565b925050608061306f88828901612e00565b9150509295509295909350565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130b982612d01565b810181811067ffffffffffffffff821117156130d8576130d7613081565b5b80604052505050565b60006130eb612d6d565b90506130f782826130b0565b919050565b600067ffffffffffffffff82111561311757613116613081565b5b602082029050602081019050919050565b600080fd5b600061314061313b846130fc565b6130e1565b9050808382526020820190506020840283018581111561316357613162613128565b5b835b8181101561318c57806131788882612dca565b845260208401935050602081019050613165565b5050509392505050565b600082601f8301126131ab576131aa61307c565b5b81356131bb84826020860161312d565b91505092915050565b6131cd81612e55565b81146131d857600080fd5b50565b6000813590506131ea816131c4565b92915050565b6000806040838503121561320757613206612d77565b5b600083013567ffffffffffffffff81111561322557613224612d7c565b5b61323185828601613196565b9250506020613242858286016131db565b9150509250929050565b60006020828403121561326257613261612d77565b5b600061327084828501612e00565b91505092915050565b6000819050919050565b600061329e61329961329484612d81565b613279565b612d81565b9050919050565b60006132b082613283565b9050919050565b60006132c2826132a5565b9050919050565b6132d2816132b7565b82525050565b60006020820190506132ed60008301846132c9565b92915050565b6132fc81612f96565b82525050565b600060208201905061331760008301846132f3565b92915050565b600080fd5b60008083601f8401126133385761333761307c565b5b8235905067ffffffffffffffff8111156133555761335461331d565b5b60208301915083602082028301111561337157613370613128565b5b9250929050565b6000806000806060858703121561339257613391612d77565b5b60006133a087828801612dca565b945050602085013567ffffffffffffffff8111156133c1576133c0612d7c565b5b6133cd87828801613322565b935093505060406133e087828801612e00565b91505092959194509250565b6000806040838503121561340357613402612d77565b5b600061341185828601612dca565b925050602061342285828601612dca565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061347357607f821691505b6020821081036134865761348561342c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134c682612ddf565b91506134d183612ddf565b92508282039050818111156134e9576134e861348c565b5b92915050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000613525600783612cc6565b9150613530826134ef565b602082019050919050565b6000602082019050818103600083015261355481613518565b9050919050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6000613591601183612cc6565b915061359c8261355b565b602082019050919050565b600060208201905081810360008301526135c081613584565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061360182612ddf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136335761363261348c565b5b600182019050919050565b60008151905061364d81612de9565b92915050565b60006020828403121561366957613668612d77565b5b60006136778482850161363e565b91505092915050565b600061368b826132a5565b9050919050565b61369b81613680565b82525050565b60006040820190506136b66000830185613692565b6136c36020830184612e8b565b9392505050565b6000815190506136d9816131c4565b92915050565b6000602082840312156136f5576136f4612d77565b5b6000613703848285016136ca565b91505092915050565b60008151905061371b81612db3565b92915050565b60006020828403121561373757613736612d77565b5b60006137458482850161370c565b91505092915050565b60006040820190506137636000830185612f3f565b6137706020830184612e8b565b9392505050565b600060608201905061378c6000830186612f3f565b6137996020830185612f3f565b6137a66040830184612e8b565b949350505050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006137e4600883612cc6565b91506137ef826137ae565b602082019050919050565b60006020820190508181036000830152613813816137d7565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b6000613850601083612cc6565b915061385b8261381a565b602082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b600061389182612ddf565b915061389c83612ddf565b92508282019050808211156138b4576138b361348c565b5b92915050565b7f77616c6c65746c696d6974000000000000000000000000000000000000000000600082015250565b60006138f0600b83612cc6565b91506138fb826138ba565b602082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061396082612ddf565b915061396b83612ddf565b92508261397b5761397a613926565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139bb81612da1565b82525050565b60006139cd83836139b2565b60208301905092915050565b6000602082019050919050565b60006139f182613986565b6139fb8185613991565b9350613a06836139a2565b8060005b83811015613a37578151613a1e88826139c1565b9750613a29836139d9565b925050600181019050613a0a565b5085935050505092915050565b6000604082019050613a596000830185612e8b565b8181036020830152613a6b81846139e6565b90509392505050565b600067ffffffffffffffff821115613a8f57613a8e613081565b5b602082029050602081019050919050565b6000613ab3613aae84613a74565b6130e1565b90508083825260208201905060208402830185811115613ad657613ad5613128565b5b835b81811015613aff5780613aeb888261363e565b845260208401935050602081019050613ad8565b5050509392505050565b600082601f830112613b1e57613b1d61307c565b5b8151613b2e848260208601613aa0565b91505092915050565b600060208284031215613b4d57613b4c612d77565b5b600082015167ffffffffffffffff811115613b6b57613b6a612d7c565b5b613b7784828501613b09565b91505092915050565b6000819050919050565b6000613ba5613ba0613b9b84613b80565b613279565b612ddf565b9050919050565b613bb581613b8a565b82525050565b600060a082019050613bd06000830188612e8b565b613bdd6020830187613bac565b8181036040830152613bef81866139e6565b9050613bfe6060830185612f3f565b613c0b6080830184612e8b565b9695505050505050565b600060a082019050613c2a6000830188612e8b565b613c376020830187613bac565b8181036040830152613c4981866139e6565b9050613c586060830185613692565b613c656080830184612e8b565b9695505050505050565b6000613c7a82612ddf565b9150613c8583612ddf565b9250828202613c9381612ddf565b91508282048414831517613caa57613ca961348c565b5b509291505056fea26469706673582212202414491add90e0c68d897ce1630ef6889e211862f0b636dad377accd898dfc0164736f6c63430008110033

Deployed Bytecode Sourcemap

3266:10817:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5578:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6391:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5782:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8503:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6583:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7481:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5680:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3507:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3765:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5375:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3899:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7814:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4025:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11432:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13837:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8393:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3856:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11471:115;;;;;;;;;;;;;:::i;:::-;;5890:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:148;;;;;;;;;;;;;:::i;:::-;;3585:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8537:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5472:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13136:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6017:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11594:675;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8268:88;;;;;;;;;;;;;:::i;:::-;;8228:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6215:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3434:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5578:94;5626:13;5659:5;5652:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5578:94;:::o;6391:184::-;6491:4;6508:37;6517:10;6529:7;6538:6;6508:8;:37::i;:::-;6563:4;6556:11;;6391:184;;;;:::o;5782:100::-;5835:7;5862:12;;5855:19;;5782:100;:::o;8503:25::-;;;;:::o;6583:404::-;6715:4;6732:36;6742:6;6750:9;6761:6;6732:9;:36::i;:::-;4016:1;4007:11;6783;:19;6795:6;6783:19;;;;;;;;;;;;;;;:31;6803:10;6783:31;;;;;;;;;;;;;;;;:38;6779:179;;6940:6;6889:11;:19;6901:6;6889:19;;;;;;;;;;;;;;;:31;6909:10;6889:31;;;;;;;;;;;;;;;;:57;;;;:::i;:::-;6838:11;:19;6850:6;6838:19;;;;;;;;;;;;;;;:31;6858:10;6838:31;;;;;;;;;;;;;;;:108;;;;6779:179;6975:4;6968:11;;6583:404;;;;;:::o;7481:28::-;;;;:::o;5680:94::-;5732:5;5757:9;;;;;;;;;;;5750:16;;5680:94;:::o;3507:71::-;;;;;;;;;;;;;:::o;3765:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5375:89::-;5290:10;5280:20;;:6;;;;;;;;;;:20;;;:49;;;;5319:10;5304:25;;:11;;;;;;;;;;;:25;;;5280:49;5272:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;5450:6:::1;5444:3;;:12;;;;;;;;;;;;;;;;;;5375:89:::0;:::o;3899:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7814:406::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8036:6:::1;8021:12;:21;;;;8069:7;8053:13;:23;;;;8105:12;8087:15;:30;;;;8147:13;8128:16;:32;;;;8192:20;8171:18;:41;;;;7814:406:::0;;;;;:::o;4025:27::-;;;;;;;;;;;;;:::o;11432:30::-;;;;:::o;13837:206::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13931:6:::1;13927:100;13942:8;:15;13940:1;:17;13927:100;;;14010:5;13977:17;:30;13995:8;14004:1;13995:11;;;;;;;;:::i;:::-;;;;;;;;13977:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;13958:3;;;;;:::i;:::-;;;;13927:100;;;;13837:206:::0;;:::o;8393:102::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8479:8:::1;8464:12;:23;;;;8393:102:::0;:::o;3856:36::-;;;;;;;;;;;;;:::o;11471:115::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11558:1:::1;11539:15;;:20;:39;;11577:1;11539:39;;;11562:12;11539:39;11521:15;:57;;;;11471:115::o:0;5890:119::-;5956:7;5983:9;:18;5993:7;5983:18;;;;;;;;;;;;;;;;5976:25;;5890:119;;;:::o;2889:148::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2996:1:::1;2959:40;;2980:6;::::0;::::1;;;;;;;;2959:40;;;;;;;;;;;;3027:1;3010:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2889:148::o:0;3585:85::-;;;;;;;;;;;;;:::o;2686:79::-;2724:7;2751:6;;;;;;;;;;;2744:13;;2686:79;:::o;8537:97::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8618:8:::1;8605:10;:21;;;;8537:97:::0;:::o;5472:98::-;5522:13;5555:7;5548:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5472:98;:::o;13136:288::-;13215:4;13197:23;;:6;:23;;;13193:224;;13244:6;13237:23;;;13279:3;;;;;;;;;;;13308:6;13301:24;;;13334:4;13301:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13237:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13370:3;;;;;;;;;;;:12;;:35;13383:21;13370:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13193:224;13136:288;:::o;6017:190::-;6120:4;6137:40;6147:10;6159:9;6170:6;6137:9;:40::i;:::-;6195:4;6188:11;;6017:190;;;;:::o;11594:675::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11729:12:::1;11744:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11729:36;;11783:4;11776:20;;;11805:14;;;;;;;;;;;11831:1;11822:11;11776:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11852:4;11845:25;;;11885:5;11913:4;11940;11933:22;;;11956:5;11933:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11845:128;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11989:6;11984:89;12005:4;;:11;;12001:1;:15;11984:89;;;12038:23;12048:3;12053:4;;12058:1;12053:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12038:9;:23::i;:::-;12018:3;;;;;:::i;:::-;;;;11984:89;;;;12101:12;12083:15;:30;;;;12124:12;12146:4;12139:22;;;12170:4;12139:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12124:52;;12198:1;12191:4;:8;12187:75;;;12223:4;12216:21;;;12238:5;12245:4;12216:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12187:75;11718:551;;11594:675:::0;;;;:::o;8268:88::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8336:12:::1;;;;;;;;;;;8335:13;8320:12;;:28;;;;;;;;;;;;;;;;;;8268:88::o:0;8228:31::-;;;;;;;;;;;;;:::o;6215:168::-;6321:7;6348:11;:18;6360:5;6348:18;;;;;;;;;;;;;;;:27;6367:7;6348:27;;;;;;;;;;;;;;;;6341:34;;6215:168;;;;:::o;3045:214::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3154:1:::1;3134:22;;:8;:22;;::::0;3126:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3214:8;3185:38;;3206:6;::::0;::::1;;;;;;;;3185:38;;;;;;;;;;;;3243:8;3234:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3045:214:::0;:::o;3434:66::-;;;;;;;;;;;;;:::o;6995:177::-;7110:6;7080:11;:18;7092:5;7080:18;;;;;;;;;;;;;;;:27;7099:7;7080:27;;;;;;;;;;;;;;;:36;;;;7148:7;7132:32;;7141:5;7132:32;;;7157:6;7132:32;;;;;;:::i;:::-;;;;;;;;6995:177;;;:::o;8642:1617::-;8722:15;8740;8750:4;8740:9;:15::i;:::-;8722:33;;8785:6;8774:7;:17;;8766:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8829:6;;;;;;;;;;;8825:92;;;8852:32;8867:4;8873:2;8877:6;8852:14;:32::i;:::-;;8899:7;;;8825:92;8929:12;8972;:16;8985:2;8972:16;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;9006:6;;;;;;;;;;;9005:7;8972:40;:81;;;;;9030:17;:23;9048:4;9030:23;;;;;;;;;;;;;;;;;;;;;;;;;9029:24;8972:81;:120;;;;;9071:17;:21;9089:2;9071:21;;;;;;;;;;;;;;;;;;;;;;;;;9070:22;8972:120;:167;;;;;9121:18;;9109:9;;:30;8972:167;8954:502;;;9166:21;9190:6;9166:30;;9231:24;9249:4;9231:9;:24::i;:::-;9215:13;:40;9211:121;;;9292:9;:24;9310:4;9292:24;;;;;;;;;;;;;;;;9276:40;;9211:121;9366:12;;9350:13;:28;9346:99;;;9399:30;9415:13;9399:15;:30::i;:::-;9346:99;9151:305;8954:502;9473:17;:23;9491:4;9473:23;;;;;;;;;;;;;;;;;;;;;;;;;9472:24;:50;;;;;9501:17;:21;9519:2;9501:21;;;;;;;;;;;;;;;;;;;;;;;;;9500:22;9472:50;:61;;;;;9527:6;;;;;;;;;;;9526:7;9472:61;9468:730;;;9576:1;9558:15;;:19;9550:28;;;;;;9603:4;9593:14;;9659:12;:18;9672:4;9659:18;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;9712:14;;;;;;;;;;;9698:29;;:2;:29;;;;9659:68;:111;;;;;9749:17;:21;9767:2;9749:21;;;;;;;;;;;;;;;;;;;;;;;;;9748:22;9659:111;9637:409;;;9805:9;;:11;;;;;;;;;:::i;:::-;;;;;;9852:1;9839:10;;:14;9835:196;;;9938:10;;9928:6;9912:13;9922:2;9912:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;9878:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9835:196;9637:409;10079:12;;;;;;;;;;;:33;;;;;10105:7;10095:6;:17;10079:33;10075:112;;;10161:9;10152:6;:18;;;;:::i;:::-;10142:6;:29;;;;:::i;:::-;10133:38;;10075:112;9468:730;10210:41;10225:4;10231:2;10235:6;10243:7;10210:14;:41::i;:::-;8711:1548;;8642:1617;;;;:::o;12277:851::-;4102:4;4093:6;;:13;;;;;;;;;;;;;;;;;;12360:12:::1;12375:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12360:36;;12407:21;12445:1;12431:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12407:40;;12476:4;12458;12463:1;12458:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12510:4;12492;12497:1;12492:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12528:25;12570:1;12556:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12528:44;;12605:4;12583:8;12592:1;12583:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12643:4;12621:8;12630:1;12621:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12659:12;12681:4;12674:22;;;12705:4;12674:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12659:52;;12722:17;12742:14;;;;;;;;;;;:28;;;12771:11;12784:8;12742:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12808:1;12742:78;;;;;;;;:::i;:::-;;;;;;;;12722:98;;12855:4;12843:9;:16;:35;;12869:9;12843:35;;;12862:4;12843:35;12831:47;;12906:1;12893:9;:14:::0;12889:27:::1;;12909:7;;;;;;;12889:27;12926:14;;;;;;;;;;;:68;;;13009:9;13033:1;13049:4;13076:2;13094:15;12926:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12349:779;;;;;4117:1;4138:5:::0;4129:6;;:14;;;;;;;;;;;;;;;;;;12277:851;;:::o;7180:293::-;7307:4;7345:6;7324:9;:17;7334:6;7324:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;7386:6;7362:9;:20;7372:9;7362:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7425:9;7408:35;;7417:6;7408:35;;;7436:6;7408:35;;;;;;:::i;:::-;;;;;;;;7461:4;7454:11;;7180:293;;;;;:::o;13432:397::-;4102:4;4093:6;;:13;;;;;;;;;;;;;;;;;;13509:21:::1;13547:1;13533:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13509:40;;13578:4;13560;13565:1;13560:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13604:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13594:4;13599:1;13594:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;13636:14;;;;;;;;;;;:65;;;13716:11;13742:1;13758:4;13777:3;;;;;;;;;;;13795:15;13636:185;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13498:331;4138:5:::0;4129:6;;:14;;;;;;;;;;;;;;;;;;13432:397;:::o;10267:1157::-;10459:7;10439:9;:17;10449:6;10439:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10419:9;:17;10429:6;10419:17;;;;;;;;;;;;;;;:47;;;;10477:17;10511:7;10507:766;;;10535:14;10568:12;:23;10581:9;10568:23;;;;;;;;;;;;;;;;;;;;;;;;;10564:354;;;10633:16;;10621:9;;:28;:104;;10710:15;;10621:104;;;10673:13;;10621:104;10612:113;;10564:354;;;10751:12;:20;10764:6;10751:20;;;;;;;;;;;;;;;;;;;;;;;;;10747:171;;;10813:15;;10801:9;;:27;:101;;10888:14;;10801:101;;;10852:12;;10801:101;10792:110;;10747:171;10564:354;10932:18;10974:3;10964:6;10954:7;:16;;;;:::i;:::-;10953:24;;;;:::i;:::-;10932:45;;11009:1;10996:10;:14;10992:270;;;11044:10;11031:23;;;;;:::i;:::-;;;11169:10;11121:9;:24;11139:4;11121:24;;;;;;;;;;;;;;;;:58;;;;:::i;:::-;11073:9;:24;11091:4;11073:24;;;;;;;;;;;;;;;:106;;;;11228:4;11203:43;;11212:6;11203:43;;;11235:10;11203:43;;;;;;:::i;:::-;;;;;;;;10992:270;10520:753;;10507:766;11342:9;11332:7;:19;;;;:::i;:::-;11308:9;:20;11318:9;11308:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;11285:9;:20;11295:9;11285:20;;;;;;;;;;;;;;;:67;;;;11385:9;11368:48;;11377:6;11368:48;;;11406:9;11396:7;:19;;;;:::i;:::-;11368:48;;;;;;:::i;:::-;;;;;;;;10408:1016;10267:1157;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:104::-;5585:7;5614:24;5632:5;5614:24;:::i;:::-;5603:35;;5540:104;;;:::o;5650:138::-;5731:32;5757:5;5731:32;:::i;:::-;5724:5;5721:43;5711:71;;5778:1;5775;5768:12;5711:71;5650:138;:::o;5794:155::-;5848:5;5886:6;5873:20;5864:29;;5902:41;5937:5;5902:41;:::i;:::-;5794:155;;;;:::o;5955:345::-;6022:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:119;;;6077:79;;:::i;:::-;6039:119;6197:1;6222:61;6275:7;6266:6;6255:9;6251:22;6222:61;:::i;:::-;6212:71;;6168:125;5955:345;;;;:::o;6306:911::-;6401:6;6409;6417;6425;6433;6482:3;6470:9;6461:7;6457:23;6453:33;6450:120;;;6489:79;;:::i;:::-;6450:120;6609:1;6634:53;6679:7;6670:6;6659:9;6655:22;6634:53;:::i;:::-;6624:63;;6580:117;6736:2;6762:53;6807:7;6798:6;6787:9;6783:22;6762:53;:::i;:::-;6752:63;;6707:118;6864:2;6890:53;6935:7;6926:6;6915:9;6911:22;6890:53;:::i;:::-;6880:63;;6835:118;6992:2;7018:53;7063:7;7054:6;7043:9;7039:22;7018:53;:::i;:::-;7008:63;;6963:118;7120:3;7147:53;7192:7;7183:6;7172:9;7168:22;7147:53;:::i;:::-;7137:63;;7091:119;6306:911;;;;;;;;:::o;7223:117::-;7332:1;7329;7322:12;7346:180;7394:77;7391:1;7384:88;7491:4;7488:1;7481:15;7515:4;7512:1;7505:15;7532:281;7615:27;7637:4;7615:27;:::i;:::-;7607:6;7603:40;7745:6;7733:10;7730:22;7709:18;7697:10;7694:34;7691:62;7688:88;;;7756:18;;:::i;:::-;7688:88;7796:10;7792:2;7785:22;7575:238;7532:281;;:::o;7819:129::-;7853:6;7880:20;;:::i;:::-;7870:30;;7909:33;7937:4;7929:6;7909:33;:::i;:::-;7819:129;;;:::o;7954:311::-;8031:4;8121:18;8113:6;8110:30;8107:56;;;8143:18;;:::i;:::-;8107:56;8193:4;8185:6;8181:17;8173:25;;8253:4;8247;8243:15;8235:23;;7954:311;;;:::o;8271:117::-;8380:1;8377;8370:12;8411:710;8507:5;8532:81;8548:64;8605:6;8548:64;:::i;:::-;8532:81;:::i;:::-;8523:90;;8633:5;8662:6;8655:5;8648:21;8696:4;8689:5;8685:16;8678:23;;8749:4;8741:6;8737:17;8729:6;8725:30;8778:3;8770:6;8767:15;8764:122;;;8797:79;;:::i;:::-;8764:122;8912:6;8895:220;8929:6;8924:3;8921:15;8895:220;;;9004:3;9033:37;9066:3;9054:10;9033:37;:::i;:::-;9028:3;9021:50;9100:4;9095:3;9091:14;9084:21;;8971:144;8955:4;8950:3;8946:14;8939:21;;8895:220;;;8899:21;8513:608;;8411:710;;;;;:::o;9144:370::-;9215:5;9264:3;9257:4;9249:6;9245:17;9241:27;9231:122;;9272:79;;:::i;:::-;9231:122;9389:6;9376:20;9414:94;9504:3;9496:6;9489:4;9481:6;9477:17;9414:94;:::i;:::-;9405:103;;9221:293;9144:370;;;;:::o;9520:116::-;9590:21;9605:5;9590:21;:::i;:::-;9583:5;9580:32;9570:60;;9626:1;9623;9616:12;9570:60;9520:116;:::o;9642:133::-;9685:5;9723:6;9710:20;9701:29;;9739:30;9763:5;9739:30;:::i;:::-;9642:133;;;;:::o;9781:678::-;9871:6;9879;9928:2;9916:9;9907:7;9903:23;9899:32;9896:119;;;9934:79;;:::i;:::-;9896:119;10082:1;10071:9;10067:17;10054:31;10112:18;10104:6;10101:30;10098:117;;;10134:79;;:::i;:::-;10098:117;10239:78;10309:7;10300:6;10289:9;10285:22;10239:78;:::i;:::-;10229:88;;10025:302;10366:2;10392:50;10434:7;10425:6;10414:9;10410:22;10392:50;:::i;:::-;10382:60;;10337:115;9781:678;;;;;:::o;10465:329::-;10524:6;10573:2;10561:9;10552:7;10548:23;10544:32;10541:119;;;10579:79;;:::i;:::-;10541:119;10699:1;10724:53;10769:7;10760:6;10749:9;10745:22;10724:53;:::i;:::-;10714:63;;10670:117;10465:329;;;;:::o;10800:60::-;10828:3;10849:5;10842:12;;10800:60;;;:::o;10866:142::-;10916:9;10949:53;10967:34;10976:24;10994:5;10976:24;:::i;:::-;10967:34;:::i;:::-;10949:53;:::i;:::-;10936:66;;10866:142;;;:::o;11014:126::-;11064:9;11097:37;11128:5;11097:37;:::i;:::-;11084:50;;11014:126;;;:::o;11146:148::-;11218:9;11251:37;11282:5;11251:37;:::i;:::-;11238:50;;11146:148;;;:::o;11300:175::-;11409:59;11462:5;11409:59;:::i;:::-;11404:3;11397:72;11300:175;;:::o;11481:266::-;11596:4;11634:2;11623:9;11619:18;11611:26;;11647:93;11737:1;11726:9;11722:17;11713:6;11647:93;:::i;:::-;11481:266;;;;:::o;11753:142::-;11856:32;11882:5;11856:32;:::i;:::-;11851:3;11844:45;11753:142;;:::o;11901:254::-;12010:4;12048:2;12037:9;12033:18;12025:26;;12061:87;12145:1;12134:9;12130:17;12121:6;12061:87;:::i;:::-;11901:254;;;;:::o;12161:117::-;12270:1;12267;12260:12;12301:568;12374:8;12384:6;12434:3;12427:4;12419:6;12415:17;12411:27;12401:122;;12442:79;;:::i;:::-;12401:122;12555:6;12542:20;12532:30;;12585:18;12577:6;12574:30;12571:117;;;12607:79;;:::i;:::-;12571:117;12721:4;12713:6;12709:17;12697:29;;12775:3;12767:4;12759:6;12755:17;12745:8;12741:32;12738:41;12735:128;;;12782:79;;:::i;:::-;12735:128;12301:568;;;;;:::o;12875:849::-;12979:6;12987;12995;13003;13052:2;13040:9;13031:7;13027:23;13023:32;13020:119;;;13058:79;;:::i;:::-;13020:119;13178:1;13203:53;13248:7;13239:6;13228:9;13224:22;13203:53;:::i;:::-;13193:63;;13149:117;13333:2;13322:9;13318:18;13305:32;13364:18;13356:6;13353:30;13350:117;;;13386:79;;:::i;:::-;13350:117;13499:80;13571:7;13562:6;13551:9;13547:22;13499:80;:::i;:::-;13481:98;;;;13276:313;13628:2;13654:53;13699:7;13690:6;13679:9;13675:22;13654:53;:::i;:::-;13644:63;;13599:118;12875:849;;;;;;;:::o;13730:474::-;13798:6;13806;13855:2;13843:9;13834:7;13830:23;13826:32;13823:119;;;13861:79;;:::i;:::-;13823:119;13981:1;14006:53;14051:7;14042:6;14031:9;14027:22;14006:53;:::i;:::-;13996:63;;13952:117;14108:2;14134:53;14179:7;14170:6;14159:9;14155:22;14134:53;:::i;:::-;14124:63;;14079:118;13730:474;;;;;:::o;14210:180::-;14258:77;14255:1;14248:88;14355:4;14352:1;14345:15;14379:4;14376:1;14369:15;14396:320;14440:6;14477:1;14471:4;14467:12;14457:22;;14524:1;14518:4;14514:12;14545:18;14535:81;;14601:4;14593:6;14589:17;14579:27;;14535:81;14663:2;14655:6;14652:14;14632:18;14629:38;14626:84;;14682:18;;:::i;:::-;14626:84;14447:269;14396:320;;;:::o;14722:180::-;14770:77;14767:1;14760:88;14867:4;14864:1;14857:15;14891:4;14888:1;14881:15;14908:194;14948:4;14968:20;14986:1;14968:20;:::i;:::-;14963:25;;15002:20;15020:1;15002:20;:::i;:::-;14997:25;;15046:1;15043;15039:9;15031:17;;15070:1;15064:4;15061:11;15058:37;;;15075:18;;:::i;:::-;15058:37;14908:194;;;;:::o;15108:157::-;15248:9;15244:1;15236:6;15232:14;15225:33;15108:157;:::o;15271:365::-;15413:3;15434:66;15498:1;15493:3;15434:66;:::i;:::-;15427:73;;15509:93;15598:3;15509:93;:::i;:::-;15627:2;15622:3;15618:12;15611:19;;15271:365;;;:::o;15642:419::-;15808:4;15846:2;15835:9;15831:18;15823:26;;15895:9;15889:4;15885:20;15881:1;15870:9;15866:17;15859:47;15923:131;16049:4;15923:131;:::i;:::-;15915:139;;15642:419;;;:::o;16067:167::-;16207:19;16203:1;16195:6;16191:14;16184:43;16067:167;:::o;16240:366::-;16382:3;16403:67;16467:2;16462:3;16403:67;:::i;:::-;16396:74;;16479:93;16568:3;16479:93;:::i;:::-;16597:2;16592:3;16588:12;16581:19;;16240:366;;;:::o;16612:419::-;16778:4;16816:2;16805:9;16801:18;16793:26;;16865:9;16859:4;16855:20;16851:1;16840:9;16836:17;16829:47;16893:131;17019:4;16893:131;:::i;:::-;16885:139;;16612:419;;;:::o;17037:180::-;17085:77;17082:1;17075:88;17182:4;17179:1;17172:15;17206:4;17203:1;17196:15;17223:233;17262:3;17285:24;17303:5;17285:24;:::i;:::-;17276:33;;17331:66;17324:5;17321:77;17318:103;;17401:18;;:::i;:::-;17318:103;17448:1;17441:5;17437:13;17430:20;;17223:233;;;:::o;17462:143::-;17519:5;17550:6;17544:13;17535:22;;17566:33;17593:5;17566:33;:::i;:::-;17462:143;;;;:::o;17611:351::-;17681:6;17730:2;17718:9;17709:7;17705:23;17701:32;17698:119;;;17736:79;;:::i;:::-;17698:119;17856:1;17881:64;17937:7;17928:6;17917:9;17913:22;17881:64;:::i;:::-;17871:74;;17827:128;17611:351;;;;:::o;17968:134::-;18026:9;18059:37;18090:5;18059:37;:::i;:::-;18046:50;;17968:134;;;:::o;18108:147::-;18203:45;18242:5;18203:45;:::i;:::-;18198:3;18191:58;18108:147;;:::o;18261:348::-;18390:4;18428:2;18417:9;18413:18;18405:26;;18441:79;18517:1;18506:9;18502:17;18493:6;18441:79;:::i;:::-;18530:72;18598:2;18587:9;18583:18;18574:6;18530:72;:::i;:::-;18261:348;;;;;:::o;18615:137::-;18669:5;18700:6;18694:13;18685:22;;18716:30;18740:5;18716:30;:::i;:::-;18615:137;;;;:::o;18758:345::-;18825:6;18874:2;18862:9;18853:7;18849:23;18845:32;18842:119;;;18880:79;;:::i;:::-;18842:119;19000:1;19025:61;19078:7;19069:6;19058:9;19054:22;19025:61;:::i;:::-;19015:71;;18971:125;18758:345;;;;:::o;19109:143::-;19166:5;19197:6;19191:13;19182:22;;19213:33;19240:5;19213:33;:::i;:::-;19109:143;;;;:::o;19258:351::-;19328:6;19377:2;19365:9;19356:7;19352:23;19348:32;19345:119;;;19383:79;;:::i;:::-;19345:119;19503:1;19528:64;19584:7;19575:6;19564:9;19560:22;19528:64;:::i;:::-;19518:74;;19474:128;19258:351;;;;:::o;19615:332::-;19736:4;19774:2;19763:9;19759:18;19751:26;;19787:71;19855:1;19844:9;19840:17;19831:6;19787:71;:::i;:::-;19868:72;19936:2;19925:9;19921:18;19912:6;19868:72;:::i;:::-;19615:332;;;;;:::o;19953:442::-;20102:4;20140:2;20129:9;20125:18;20117:26;;20153:71;20221:1;20210:9;20206:17;20197:6;20153:71;:::i;:::-;20234:72;20302:2;20291:9;20287:18;20278:6;20234:72;:::i;:::-;20316;20384:2;20373:9;20369:18;20360:6;20316:72;:::i;:::-;19953:442;;;;;;:::o;20401:158::-;20541:10;20537:1;20529:6;20525:14;20518:34;20401:158;:::o;20565:365::-;20707:3;20728:66;20792:1;20787:3;20728:66;:::i;:::-;20721:73;;20803:93;20892:3;20803:93;:::i;:::-;20921:2;20916:3;20912:12;20905:19;;20565:365;;;:::o;20936:419::-;21102:4;21140:2;21129:9;21125:18;21117:26;;21189:9;21183:4;21179:20;21175:1;21164:9;21160:17;21153:47;21217:131;21343:4;21217:131;:::i;:::-;21209:139;;20936:419;;;:::o;21361:166::-;21501:18;21497:1;21489:6;21485:14;21478:42;21361:166;:::o;21533:366::-;21675:3;21696:67;21760:2;21755:3;21696:67;:::i;:::-;21689:74;;21772:93;21861:3;21772:93;:::i;:::-;21890:2;21885:3;21881:12;21874:19;;21533:366;;;:::o;21905:419::-;22071:4;22109:2;22098:9;22094:18;22086:26;;22158:9;22152:4;22148:20;22144:1;22133:9;22129:17;22122:47;22186:131;22312:4;22186:131;:::i;:::-;22178:139;;21905:419;;;:::o;22330:191::-;22370:3;22389:20;22407:1;22389:20;:::i;:::-;22384:25;;22423:20;22441:1;22423:20;:::i;:::-;22418:25;;22466:1;22463;22459:9;22452:16;;22487:3;22484:1;22481:10;22478:36;;;22494:18;;:::i;:::-;22478:36;22330:191;;;;:::o;22527:161::-;22667:13;22663:1;22655:6;22651:14;22644:37;22527:161;:::o;22694:366::-;22836:3;22857:67;22921:2;22916:3;22857:67;:::i;:::-;22850:74;;22933:93;23022:3;22933:93;:::i;:::-;23051:2;23046:3;23042:12;23035:19;;22694:366;;;:::o;23066:419::-;23232:4;23270:2;23259:9;23255:18;23247:26;;23319:9;23313:4;23309:20;23305:1;23294:9;23290:17;23283:47;23347:131;23473:4;23347:131;:::i;:::-;23339:139;;23066:419;;;:::o;23491:180::-;23539:77;23536:1;23529:88;23636:4;23633:1;23626:15;23660:4;23657:1;23650:15;23677:185;23717:1;23734:20;23752:1;23734:20;:::i;:::-;23729:25;;23768:20;23786:1;23768:20;:::i;:::-;23763:25;;23807:1;23797:35;;23812:18;;:::i;:::-;23797:35;23854:1;23851;23847:9;23842:14;;23677:185;;;;:::o;23868:114::-;23935:6;23969:5;23963:12;23953:22;;23868:114;;;:::o;23988:184::-;24087:11;24121:6;24116:3;24109:19;24161:4;24156:3;24152:14;24137:29;;23988:184;;;;:::o;24178:132::-;24245:4;24268:3;24260:11;;24298:4;24293:3;24289:14;24281:22;;24178:132;;;:::o;24316:108::-;24393:24;24411:5;24393:24;:::i;:::-;24388:3;24381:37;24316:108;;:::o;24430:179::-;24499:10;24520:46;24562:3;24554:6;24520:46;:::i;:::-;24598:4;24593:3;24589:14;24575:28;;24430:179;;;;:::o;24615:113::-;24685:4;24717;24712:3;24708:14;24700:22;;24615:113;;;:::o;24764:732::-;24883:3;24912:54;24960:5;24912:54;:::i;:::-;24982:86;25061:6;25056:3;24982:86;:::i;:::-;24975:93;;25092:56;25142:5;25092:56;:::i;:::-;25171:7;25202:1;25187:284;25212:6;25209:1;25206:13;25187:284;;;25288:6;25282:13;25315:63;25374:3;25359:13;25315:63;:::i;:::-;25308:70;;25401:60;25454:6;25401:60;:::i;:::-;25391:70;;25247:224;25234:1;25231;25227:9;25222:14;;25187:284;;;25191:14;25487:3;25480:10;;24888:608;;;24764:732;;;;:::o;25502:483::-;25673:4;25711:2;25700:9;25696:18;25688:26;;25724:71;25792:1;25781:9;25777:17;25768:6;25724:71;:::i;:::-;25842:9;25836:4;25832:20;25827:2;25816:9;25812:18;25805:48;25870:108;25973:4;25964:6;25870:108;:::i;:::-;25862:116;;25502:483;;;;;:::o;25991:311::-;26068:4;26158:18;26150:6;26147:30;26144:56;;;26180:18;;:::i;:::-;26144:56;26230:4;26222:6;26218:17;26210:25;;26290:4;26284;26280:15;26272:23;;25991:311;;;:::o;26325:732::-;26432:5;26457:81;26473:64;26530:6;26473:64;:::i;:::-;26457:81;:::i;:::-;26448:90;;26558:5;26587:6;26580:5;26573:21;26621:4;26614:5;26610:16;26603:23;;26674:4;26666:6;26662:17;26654:6;26650:30;26703:3;26695:6;26692:15;26689:122;;;26722:79;;:::i;:::-;26689:122;26837:6;26820:231;26854:6;26849:3;26846:15;26820:231;;;26929:3;26958:48;27002:3;26990:10;26958:48;:::i;:::-;26953:3;26946:61;27036:4;27031:3;27027:14;27020:21;;26896:155;26880:4;26875:3;26871:14;26864:21;;26820:231;;;26824:21;26438:619;;26325:732;;;;;:::o;27080:385::-;27162:5;27211:3;27204:4;27196:6;27192:17;27188:27;27178:122;;27219:79;;:::i;:::-;27178:122;27329:6;27323:13;27354:105;27455:3;27447:6;27440:4;27432:6;27428:17;27354:105;:::i;:::-;27345:114;;27168:297;27080:385;;;;:::o;27471:554::-;27566:6;27615:2;27603:9;27594:7;27590:23;27586:32;27583:119;;;27621:79;;:::i;:::-;27583:119;27762:1;27751:9;27747:17;27741:24;27792:18;27784:6;27781:30;27778:117;;;27814:79;;:::i;:::-;27778:117;27919:89;28000:7;27991:6;27980:9;27976:22;27919:89;:::i;:::-;27909:99;;27712:306;27471:554;;;;:::o;28031:85::-;28076:7;28105:5;28094:16;;28031:85;;;:::o;28122:158::-;28180:9;28213:61;28231:42;28240:32;28266:5;28240:32;:::i;:::-;28231:42;:::i;:::-;28213:61;:::i;:::-;28200:74;;28122:158;;;:::o;28286:147::-;28381:45;28420:5;28381:45;:::i;:::-;28376:3;28369:58;28286:147;;:::o;28439:831::-;28702:4;28740:3;28729:9;28725:19;28717:27;;28754:71;28822:1;28811:9;28807:17;28798:6;28754:71;:::i;:::-;28835:80;28911:2;28900:9;28896:18;28887:6;28835:80;:::i;:::-;28962:9;28956:4;28952:20;28947:2;28936:9;28932:18;28925:48;28990:108;29093:4;29084:6;28990:108;:::i;:::-;28982:116;;29108:72;29176:2;29165:9;29161:18;29152:6;29108:72;:::i;:::-;29190:73;29258:3;29247:9;29243:19;29234:6;29190:73;:::i;:::-;28439:831;;;;;;;;:::o;29276:847::-;29547:4;29585:3;29574:9;29570:19;29562:27;;29599:71;29667:1;29656:9;29652:17;29643:6;29599:71;:::i;:::-;29680:80;29756:2;29745:9;29741:18;29732:6;29680:80;:::i;:::-;29807:9;29801:4;29797:20;29792:2;29781:9;29777:18;29770:48;29835:108;29938:4;29929:6;29835:108;:::i;:::-;29827:116;;29953:80;30029:2;30018:9;30014:18;30005:6;29953:80;:::i;:::-;30043:73;30111:3;30100:9;30096:19;30087:6;30043:73;:::i;:::-;29276:847;;;;;;;;:::o;30129:410::-;30169:7;30192:20;30210:1;30192:20;:::i;:::-;30187:25;;30226:20;30244:1;30226:20;:::i;:::-;30221:25;;30281:1;30278;30274:9;30303:30;30321:11;30303:30;:::i;:::-;30292:41;;30482:1;30473:7;30469:15;30466:1;30463:22;30443:1;30436:9;30416:83;30393:139;;30512:18;;:::i;:::-;30393:139;30177:362;30129:410;;;;:::o

Swarm Source

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