ETH Price: $3,385.37 (-2.75%)
Gas: 1 Gwei

Token

fineX (fineX)
 

Overview

Max Total Supply

420,000,000,000,000,000 fineX

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.446183126 fineX

Value
$0.00
0xcea1c8482094d49a4c6aef1f5b504b3ccfbfb2ac
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:
fineX

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 2023-09-18
*/

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

interface IBEP20 {
    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);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract fineX is Context, IBEP20, Ownable {
    using Address for address payable;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcluded;

    address[] private _excluded;

    bool private swapping;

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 420 *10**15 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 public swapTokensAtAmount = 1e14 * 10**_decimals;

    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet = 0x7f7f7af647A2bF7DB29CAa980267117803A2E921;

    string private constant _name = "fineX";
    string private constant _symbol = "fineX";

    struct Taxes {
        uint256 rfi;
        uint256 marketing;
    }

    Taxes public taxes = Taxes(0, 3);

    struct TotFeesPaidStruct {
        uint256 rfi;
        uint256 marketing;
    }

    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues {
        uint256 rAmount;
        uint256 rTransferAmount;
        uint256 rRfi;
        uint256 rMarketing;
        uint256 tTransferAmount;
        uint256 tRfi;
        uint256 tMarketing;
    }

    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor(address routerAddress) {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;

        excludeFromReward(pair);
        excludeFromReward(deadWallet);

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;
        emit Transfer(address(0), owner(), _tTotal);
    }

    //std BEP20:
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

    //override BEP20:
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "BEP20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "BEP20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }


    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi)
        public
        view
        returns (uint256)
    {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rTransferAmount;
        }
    }

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

    //@dev kept original RFI naming -> "reward" as in reflection
    function excludeFromReward(address account) public onlyOwner {
        require(!_isExcluded[account], "Account is already excluded");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

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

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

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

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -= rRfi;
        totFeesPaid.rfi += tRfi;
    }


    function _takeMarketing(uint256 rMarketing, uint256 tMarketing) private {
        totFeesPaid.marketing += tMarketing;

        if (_isExcluded[address(this)]) {
            _tOwned[address(this)] += tMarketing;
        }
        _rOwned[address(this)] += rMarketing;
    }


    function _getValues(
        uint256 tAmount,
        bool takeFee
    ) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (
            to_return.rAmount,
            to_return.rTransferAmount,
            to_return.rRfi,
            to_return.rMarketing
        ) = _getRValues(to_return, tAmount, takeFee, _getRate());

        return to_return;
    }

    function _getTValues(
        uint256 tAmount,
        bool takeFee
    ) private view returns (valuesFromGetValues memory s) {
        if (!takeFee) {
            s.tTransferAmount = tAmount;
            return s;
        }

        s.tRfi = (tAmount * taxes.rfi) / 100;
        s.tMarketing = (tAmount * taxes.marketing) / 100;
        s.tTransferAmount =
            tAmount -
            s.tRfi -
            s.tMarketing;
        return s;
    }

    function _getRValues(
        valuesFromGetValues memory s,
        uint256 tAmount,
        bool takeFee,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rRfi,
            uint256 rMarketing
        )
    {
        rAmount = tAmount * currentRate;

        if (!takeFee) {
            return (rAmount, rAmount, 0, 0);
        }

        rRfi = s.tRfi * currentRate;
        rMarketing = s.tMarketing * currentRate;
        rTransferAmount =
            rAmount -
            rRfi -
            rMarketing;
        return (rAmount, rTransferAmount, rRfi, rMarketing);
    }

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

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply)
                return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "BEP20: transfer from the zero address");
        require(to != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(
            amount <= balanceOf(from),
            "You are trying to transfer more than your balance"
        );

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if (
            !swapping &&
            canSwap &&
            from != pair &&
            !_isExcludedFromFee[from] &&
            !_isExcludedFromFee[to]
        ) {
            swapAndLiquify();
        }
        bool takeFee = true;
        if (swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false;

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

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {

        valuesFromGetValues memory s = _getValues(tAmount, takeFee);

        if (_isExcluded[sender]) {
            //from excluded
            _tOwned[sender] = _tOwned[sender] - tAmount;
        }
        if (_isExcluded[recipient]) {
            //to excluded
            _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender] - s.rAmount;
        _rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount;

        if (s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if (s.rMarketing > 0 || s.tMarketing > 0) _takeMarketing(s.rMarketing, s.tMarketing);
        emit Transfer(sender, recipient, s.tTransferAmount);
    }

    function swapAndLiquify() private lockTheSwap {
       
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForBNB(contractBalance);
        uint256 deltaBalance = address(this).balance;
       
        if (deltaBalance > 0) {
            payable(marketingWallet).sendValue(deltaBalance);
        }

    }

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

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

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

    function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = state;
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000f14565b6705d423c655aa000062000029919062000f65565b6009556009546000196200003e919062000fdf565b6000196200004d919062001017565b600a556009600a62000060919062000f14565b655af3107a400062000073919062000f65565b600b5561dead600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737f7f7af647a2bf7db29caa980267117803a2e921600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600081526020016003815250600e600082015181600001556020820151816001015550503480156200014a57600080fd5b50604051620050a7380380620050a78339818101604052810190620001709190620010bc565b62000190620001846200067060201b60201c565b6200067860201b60201c565b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002099190620010bc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000271573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002979190620010bc565b6040518363ffffffff1660e01b8152600401620002b6929190620010ff565b6020604051808303816000875af1158015620002d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fc9190620010bc565b905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003b3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200073c60201b60201c565b620003e6600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200073c60201b60201c565b600a5460016000620003fd620009f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620004a9620009f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005fe620009f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200065f91906200113d565b60405180910390a35050506200139b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200074c6200067060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000772620009f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c290620011bb565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200085b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000852906200122d565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156200093857620008f4600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000a1f60201b60201c565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600a5482111562000a69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a6090620012c5565b60405180910390fd5b600062000a7b62000a9360201b60201c565b9050808362000a8b9190620012e7565b915050919050565b600080600062000aa862000ac160201b60201c565b91509150808262000aba9190620012e7565b9250505090565b6000806000600a5490506000600954905060005b60068054905081101562000d405782600160006006848154811062000aff5762000afe6200131f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118062000bf1575081600260006006848154811062000b895762000b886200131f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1562000c0a57600a546009549450945050505062000d76565b600160006006838154811062000c255762000c246200131f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548362000c98919062001017565b9250600260006006838154811062000cb55762000cb46200131f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548262000d28919062001017565b9150808062000d37906200134e565b91505062000ad5565b50600954600a5462000d539190620012e7565b82101562000d6d57600a5460095493509350505062000d76565b81819350935050505b9091565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000e085780860481111562000de05762000ddf62000d7a565b5b600185161562000df05780820291505b808102905062000e008562000da9565b945062000dc0565b94509492505050565b60008262000e23576001905062000ef6565b8162000e33576000905062000ef6565b816001811462000e4c576002811462000e575762000e8d565b600191505062000ef6565b60ff84111562000e6c5762000e6b62000d7a565b5b8360020a91508482111562000e865762000e8562000d7a565b5b5062000ef6565b5060208310610133831016604e8410600b841016171562000ec75782820a90508381111562000ec15762000ec062000d7a565b5b62000ef6565b62000ed6848484600162000db6565b9250905081840481111562000ef05762000eef62000d7a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f218262000efd565b915062000f2e8362000f07565b925062000f5d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e11565b905092915050565b600062000f728262000efd565b915062000f7f8362000efd565b925082820262000f8f8162000efd565b9150828204841483151762000fa95762000fa862000d7a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fec8262000efd565b915062000ff98362000efd565b9250826200100c576200100b62000fb0565b5b828206905092915050565b6000620010248262000efd565b9150620010318362000efd565b92508282039050818111156200104c576200104b62000d7a565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010848262001057565b9050919050565b620010968162001077565b8114620010a257600080fd5b50565b600081519050620010b6816200108b565b92915050565b600060208284031215620010d557620010d462001052565b5b6000620010e584828501620010a5565b91505092915050565b620010f98162001077565b82525050565b6000604082019050620011166000830185620010ee565b620011256020830184620010ee565b9392505050565b620011378162000efd565b82525050565b60006020820190506200115460008301846200112c565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620011a36020836200115a565b9150620011b0826200116b565b602082019050919050565b60006020820190508181036000830152620011d68162001194565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b600062001215601b836200115a565b91506200122282620011dd565b602082019050919050565b60006020820190508181036000830152620012488162001206565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000620012ad602a836200115a565b9150620012ba826200124f565b604082019050919050565b60006020820190508181036000830152620012e0816200129e565b9050919050565b6000620012f48262000efd565b9150620013018362000efd565b92508262001314576200131362000fb0565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006200135b8262000efd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362001390576200138f62000d7a565b5b600182019050919050565b613cfc80620013ab6000396000f3fe6080604052600436106101c65760003560e01c8063728f8eea116100f75780639ba5e4d511610095578063dd62ed3e11610064578063dd62ed3e1461069f578063e2f45605146106dc578063ea2f0b3714610707578063f887ea4014610730576101cd565b80639ba5e4d5146105ce578063a457c2d7146105fa578063a8aa1b3114610637578063a9059cbb14610662576101cd565b806388f82020116100d157806388f82020146105125780638da5cb5b1461054f5780638e2839ff1461057a57806395d89b41146105a3576101cd565b8063728f8eea1461049057806375f0a874146104bc57806385141a77146104e7576101cd565b8063395093511161016457806352390c021161013e57806352390c02146103d65780635342acb4146103ff57806370a082311461043c578063715018a614610479576101cd565b80633950935114610333578063437823ec146103705780634549b03914610399576101cd565b806323b872dd116101a057806323b872dd146102655780632d838119146102a2578063313ce567146102df5780633685d4191461030a576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e761075b565b6040516101f49190612bd1565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612c9b565b610798565b6040516102319190612cf6565b60405180910390f35b34801561024657600080fd5b5061024f6107b6565b60405161025c9190612d20565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612d3b565b6107c0565b6040516102999190612cf6565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190612d8e565b6108c1565b6040516102d69190612d20565b60405180910390f35b3480156102eb57600080fd5b506102f4610928565b6040516103019190612dd7565b60405180910390f35b34801561031657600080fd5b50610331600480360381019061032c9190612df2565b610931565b005b34801561033f57600080fd5b5061035a60048036038101906103559190612c9b565b610c66565b6040516103679190612cf6565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190612df2565b610d12565b005b3480156103a557600080fd5b506103c060048036038101906103bb9190612e4b565b610de9565b6040516103cd9190612d20565b60405180910390f35b3480156103e257600080fd5b506103fd60048036038101906103f89190612df2565b610e6f565b005b34801561040b57600080fd5b5061042660048036038101906104219190612df2565b61110a565b6040516104339190612cf6565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190612df2565b611160565b6040516104709190612d20565b60405180910390f35b34801561048557600080fd5b5061048e61124b565b005b34801561049c57600080fd5b506104a56112d3565b6040516104b3929190612e8b565b60405180910390f35b3480156104c857600080fd5b506104d16112e5565b6040516104de9190612ec3565b60405180910390f35b3480156104f357600080fd5b506104fc61130b565b6040516105099190612ec3565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612df2565b611331565b6040516105469190612cf6565b60405180910390f35b34801561055b57600080fd5b50610564611387565b6040516105719190612ec3565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613026565b6113b0565b005b3480156105af57600080fd5b506105b86114c1565b6040516105c59190612bd1565b60405180910390f35b3480156105da57600080fd5b506105e36114fe565b6040516105f1929190612e8b565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612c9b565b611510565b60405161062e9190612cf6565b60405180910390f35b34801561064357600080fd5b5061064c611604565b6040516106599190612ec3565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190612c9b565b61162a565b6040516106969190612cf6565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c19190613082565b611641565b6040516106d39190612d20565b60405180910390f35b3480156106e857600080fd5b506106f16116c8565b6040516106fe9190612d20565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190612df2565b6116ce565b005b34801561073c57600080fd5b506107456117a5565b6040516107529190613121565b60405180910390f35b60606040518060400160405280600581526020017f66696e6558000000000000000000000000000000000000000000000000000000815250905090565b60006107ac6107a56117cb565b84846117d3565b6001905092915050565b6000600954905090565b60006107cd84848461199c565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108186117cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f906131ae565b60405180910390fd5b6108b5856108a46117cb565b85846108b091906131fd565b6117d3565b60019150509392505050565b6000600a54821115610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906132a3565b60405180910390fd5b6000610912611d23565b9050808361092091906132f2565b915050919050565b60006009905090565b6109396117cb565b73ffffffffffffffffffffffffffffffffffffffff16610957611387565b73ffffffffffffffffffffffffffffffffffffffff16146109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a49061336f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a30906133db565b60405180910390fd5b60005b600680549050811015610c62578173ffffffffffffffffffffffffffffffffffffffff1660068281548110610a7457610a736133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c4f5760066001600680549050610ace91906131fd565b81548110610adf57610ade6133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660068281548110610b1e57610b1d6133fb565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006805480610c1557610c1461342a565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610c62565b8080610c5a90613459565b915050610a3c565b5050565b6000610d08610c736117cb565b848460036000610c816117cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0391906134a1565b6117d3565b6001905092915050565b610d1a6117cb565b73ffffffffffffffffffffffffffffffffffffffff16610d38611387565b73ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d859061336f565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600954831115610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790613521565b60405180910390fd5b81610e51576000610e42846001611d47565b90508060000151915050610e69565b6000610e5e846001611d47565b905080602001519150505b92915050565b610e776117cb565b73ffffffffffffffffffffffffffffffffffffffff16610e95611387565b73ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee29061336f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f9061358d565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561104c57611008600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108c1565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111fb57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611246565b611243600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108c1565b90505b919050565b6112536117cb565b73ffffffffffffffffffffffffffffffffffffffff16611271611387565b73ffffffffffffffffffffffffffffffffffffffff16146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be9061336f565b60405180910390fd5b6112d16000611d98565b565b600e8060000154908060010154905082565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113b86117cb565b73ffffffffffffffffffffffffffffffffffffffff166113d6611387565b73ffffffffffffffffffffffffffffffffffffffff161461142c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114239061336f565b60405180910390fd5b60005b82518110156114bc5781600460008584815181106114505761144f6133fb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114b490613459565b91505061142f565b505050565b60606040518060400160405280600581526020017f66696e6558000000000000000000000000000000000000000000000000000000815250905090565b60108060000154908060010154905082565b6000806003600061151f6117cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d39061361f565b60405180910390fd5b6115f96115e76117cb565b8585846115f491906131fd565b6117d3565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061163733848461199c565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6116d66117cb565b73ffffffffffffffffffffffffffffffffffffffff166116f4611387565b73ffffffffffffffffffffffffffffffffffffffff161461174a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117419061336f565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611839906136b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890613743565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161198f9190612d20565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a02906137d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613867565b60405180910390fd5b60008111611abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab4906138f9565b60405180910390fd5b611ac683611160565b811115611b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aff9061398b565b60405180910390fd5b6000600b54611b1630611160565b10159050600760009054906101000a900460ff16158015611b345750805b8015611b8e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611be45750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c3a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4857611c47611e5c565b5b600060019050600760009054906101000a900460ff1680611cb25750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d065750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d1057600090505b611d1c85858584611f06565b5050505050565b6000806000611d306122cc565b915091508082611d4091906132f2565b9250505090565b611d4f612b04565b611d59838361256a565b9050611d6e818484611d69611d23565b612601565b84600001856020018660400187606001848152508481525084815250848152505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600760006101000a81548160ff0219169083151502179055506000611e8230611160565b9050611e8d81612675565b60004790506000811115611ee757611ee681600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128b890919063ffffffff16565b5b50506000600760006101000a81548160ff021916908315150217905550565b6000611f128383611d47565b9050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ff55782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb191906131fd565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120da578060800151600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209691906134a1565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060000151600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212991906131fd565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060200151600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bb91906134a1565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081604001511180612215575060008160a00151115b1561222d5761222c81604001518260a001516129ac565b5b600081606001511180612244575060008160c00151115b1561225c5761225b81606001518260c001516129e5565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83608001516040516122bd9190612d20565b60405180910390a35050505050565b6000806000600a5490506000600954905060005b60068054905081101561253457826001600060068481548110612306576123056133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806123f4575081600260006006848154811061238c5761238b6133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561240b57600a5460095494509450505050612566565b6001600060068381548110612423576124226133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361249491906131fd565b925060026000600683815481106124ae576124ad6133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261251f91906131fd565b9150808061252c90613459565b9150506122e0565b50600954600a5461254591906132f2565b82101561255d57600a54600954935093505050612566565b81819350935050505b9091565b612572612b04565b8161258657828160800181815250506125fb565b6064600e600001548461259991906139ab565b6125a391906132f2565b8160a00181815250506064600e60010154846125bf91906139ab565b6125c991906132f2565b8160c00181815250508060c001518160a00151846125e791906131fd565b6125f191906131fd565b8160800181815250505b92915050565b600080600080848761261391906139ab565b93508561262c578384600080935093509350935061266a565b848860a0015161263c91906139ab565b9150848860c0015161264e91906139ab565b905080828561265d91906131fd565b61266791906131fd565b92505b945094509450949050565b6000600267ffffffffffffffff81111561269257612691612ee3565b5b6040519080825280602002602001820160405280156126c05781602001602082028036833780820191505090505b50905030816000815181106126d8576126d76133fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561277f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a39190613a02565b816001815181106127b7576127b66133fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061281e30600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117d3565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612882959493929190613b28565b600060405180830381600087803b15801561289c57600080fd5b505af11580156128b0573d6000803e3d6000fd5b505050505050565b804710156128fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f290613bce565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161292190613c1f565b60006040518083038185875af1925050503d806000811461295e576040519150601f19603f3d011682016040523d82523d6000602084013e612963565b606091505b50509050806129a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299e90613ca6565b60405180910390fd5b505050565b81600a60008282546129be91906131fd565b9250508190555080601060000160008282546129da91906134a1565b925050819055505050565b80601060010160008282546129fa91906134a1565b92505081905550600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612aaa5780600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612aa291906134a1565b925050819055505b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612af991906134a1565b925050819055505050565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b7b578082015181840152602081019050612b60565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ba382612b41565b612bad8185612b4c565b9350612bbd818560208601612b5d565b612bc681612b87565b840191505092915050565b60006020820190508181036000830152612beb8184612b98565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c3282612c07565b9050919050565b612c4281612c27565b8114612c4d57600080fd5b50565b600081359050612c5f81612c39565b92915050565b6000819050919050565b612c7881612c65565b8114612c8357600080fd5b50565b600081359050612c9581612c6f565b92915050565b60008060408385031215612cb257612cb1612bfd565b5b6000612cc085828601612c50565b9250506020612cd185828601612c86565b9150509250929050565b60008115159050919050565b612cf081612cdb565b82525050565b6000602082019050612d0b6000830184612ce7565b92915050565b612d1a81612c65565b82525050565b6000602082019050612d356000830184612d11565b92915050565b600080600060608486031215612d5457612d53612bfd565b5b6000612d6286828701612c50565b9350506020612d7386828701612c50565b9250506040612d8486828701612c86565b9150509250925092565b600060208284031215612da457612da3612bfd565b5b6000612db284828501612c86565b91505092915050565b600060ff82169050919050565b612dd181612dbb565b82525050565b6000602082019050612dec6000830184612dc8565b92915050565b600060208284031215612e0857612e07612bfd565b5b6000612e1684828501612c50565b91505092915050565b612e2881612cdb565b8114612e3357600080fd5b50565b600081359050612e4581612e1f565b92915050565b60008060408385031215612e6257612e61612bfd565b5b6000612e7085828601612c86565b9250506020612e8185828601612e36565b9150509250929050565b6000604082019050612ea06000830185612d11565b612ead6020830184612d11565b9392505050565b612ebd81612c27565b82525050565b6000602082019050612ed86000830184612eb4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f1b82612b87565b810181811067ffffffffffffffff82111715612f3a57612f39612ee3565b5b80604052505050565b6000612f4d612bf3565b9050612f598282612f12565b919050565b600067ffffffffffffffff821115612f7957612f78612ee3565b5b602082029050602081019050919050565b600080fd5b6000612fa2612f9d84612f5e565b612f43565b90508083825260208201905060208402830185811115612fc557612fc4612f8a565b5b835b81811015612fee5780612fda8882612c50565b845260208401935050602081019050612fc7565b5050509392505050565b600082601f83011261300d5761300c612ede565b5b813561301d848260208601612f8f565b91505092915050565b6000806040838503121561303d5761303c612bfd565b5b600083013567ffffffffffffffff81111561305b5761305a612c02565b5b61306785828601612ff8565b925050602061307885828601612e36565b9150509250929050565b6000806040838503121561309957613098612bfd565b5b60006130a785828601612c50565b92505060206130b885828601612c50565b9150509250929050565b6000819050919050565b60006130e76130e26130dd84612c07565b6130c2565b612c07565b9050919050565b60006130f9826130cc565b9050919050565b600061310b826130ee565b9050919050565b61311b81613100565b82525050565b60006020820190506131366000830184613112565b92915050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613198602883612b4c565b91506131a38261313c565b604082019050919050565b600060208201905081810360008301526131c78161318b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061320882612c65565b915061321383612c65565b925082820390508181111561322b5761322a6131ce565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061328d602a83612b4c565b915061329882613231565b604082019050919050565b600060208201905081810360008301526132bc81613280565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132fd82612c65565b915061330883612c65565b925082613318576133176132c3565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613359602083612b4c565b915061336482613323565b602082019050919050565b600060208201905081810360008301526133888161334c565b9050919050565b7f4163636f756e74206973206e6f74206578636c75646564000000000000000000600082015250565b60006133c5601783612b4c565b91506133d08261338f565b602082019050919050565b600060208201905081810360008301526133f4816133b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061346482612c65565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613496576134956131ce565b5b600182019050919050565b60006134ac82612c65565b91506134b783612c65565b92508282019050808211156134cf576134ce6131ce565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b600061350b601f83612b4c565b9150613516826134d5565b602082019050919050565b6000602082019050818103600083015261353a816134fe565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000613577601b83612b4c565b915061358282613541565b602082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613609602583612b4c565b9150613614826135ad565b604082019050919050565b60006020820190508181036000830152613638816135fc565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061369b602483612b4c565b91506136a68261363f565b604082019050919050565b600060208201905081810360008301526136ca8161368e565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061372d602283612b4c565b9150613738826136d1565b604082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137bf602583612b4c565b91506137ca82613763565b604082019050919050565b600060208201905081810360008301526137ee816137b2565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613851602383612b4c565b915061385c826137f5565b604082019050919050565b6000602082019050818103600083015261388081613844565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006138e3602983612b4c565b91506138ee82613887565b604082019050919050565b60006020820190508181036000830152613912816138d6565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000613975603183612b4c565b915061398082613919565b604082019050919050565b600060208201905081810360008301526139a481613968565b9050919050565b60006139b682612c65565b91506139c183612c65565b92508282026139cf81612c65565b915082820484148315176139e6576139e56131ce565b5b5092915050565b6000815190506139fc81612c39565b92915050565b600060208284031215613a1857613a17612bfd565b5b6000613a26848285016139ed565b91505092915050565b6000819050919050565b6000613a54613a4f613a4a84613a2f565b6130c2565b612c65565b9050919050565b613a6481613a39565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a9f81612c27565b82525050565b6000613ab18383613a96565b60208301905092915050565b6000602082019050919050565b6000613ad582613a6a565b613adf8185613a75565b9350613aea83613a86565b8060005b83811015613b1b578151613b028882613aa5565b9750613b0d83613abd565b925050600181019050613aee565b5085935050505092915050565b600060a082019050613b3d6000830188612d11565b613b4a6020830187613a5b565b8181036040830152613b5c8186613aca565b9050613b6b6060830185612eb4565b613b786080830184612d11565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613bb8601d83612b4c565b9150613bc382613b82565b602082019050919050565b60006020820190508181036000830152613be781613bab565b9050919050565b600081905092915050565b50565b6000613c09600083613bee565b9150613c1482613bf9565b600082019050919050565b6000613c2a82613bfc565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613c90603a83612b4c565b9150613c9b82613c34565b604082019050919050565b60006020820190508181036000830152613cbf81613c83565b905091905056fea2646970667358221220987d9f09e007bff3bc85b3658372149ad04db24ebd02e3da92d78dbebaa6ec1564736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063728f8eea116100f75780639ba5e4d511610095578063dd62ed3e11610064578063dd62ed3e1461069f578063e2f45605146106dc578063ea2f0b3714610707578063f887ea4014610730576101cd565b80639ba5e4d5146105ce578063a457c2d7146105fa578063a8aa1b3114610637578063a9059cbb14610662576101cd565b806388f82020116100d157806388f82020146105125780638da5cb5b1461054f5780638e2839ff1461057a57806395d89b41146105a3576101cd565b8063728f8eea1461049057806375f0a874146104bc57806385141a77146104e7576101cd565b8063395093511161016457806352390c021161013e57806352390c02146103d65780635342acb4146103ff57806370a082311461043c578063715018a614610479576101cd565b80633950935114610333578063437823ec146103705780634549b03914610399576101cd565b806323b872dd116101a057806323b872dd146102655780632d838119146102a2578063313ce567146102df5780633685d4191461030a576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e761075b565b6040516101f49190612bd1565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612c9b565b610798565b6040516102319190612cf6565b60405180910390f35b34801561024657600080fd5b5061024f6107b6565b60405161025c9190612d20565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612d3b565b6107c0565b6040516102999190612cf6565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190612d8e565b6108c1565b6040516102d69190612d20565b60405180910390f35b3480156102eb57600080fd5b506102f4610928565b6040516103019190612dd7565b60405180910390f35b34801561031657600080fd5b50610331600480360381019061032c9190612df2565b610931565b005b34801561033f57600080fd5b5061035a60048036038101906103559190612c9b565b610c66565b6040516103679190612cf6565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190612df2565b610d12565b005b3480156103a557600080fd5b506103c060048036038101906103bb9190612e4b565b610de9565b6040516103cd9190612d20565b60405180910390f35b3480156103e257600080fd5b506103fd60048036038101906103f89190612df2565b610e6f565b005b34801561040b57600080fd5b5061042660048036038101906104219190612df2565b61110a565b6040516104339190612cf6565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190612df2565b611160565b6040516104709190612d20565b60405180910390f35b34801561048557600080fd5b5061048e61124b565b005b34801561049c57600080fd5b506104a56112d3565b6040516104b3929190612e8b565b60405180910390f35b3480156104c857600080fd5b506104d16112e5565b6040516104de9190612ec3565b60405180910390f35b3480156104f357600080fd5b506104fc61130b565b6040516105099190612ec3565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612df2565b611331565b6040516105469190612cf6565b60405180910390f35b34801561055b57600080fd5b50610564611387565b6040516105719190612ec3565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613026565b6113b0565b005b3480156105af57600080fd5b506105b86114c1565b6040516105c59190612bd1565b60405180910390f35b3480156105da57600080fd5b506105e36114fe565b6040516105f1929190612e8b565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612c9b565b611510565b60405161062e9190612cf6565b60405180910390f35b34801561064357600080fd5b5061064c611604565b6040516106599190612ec3565b60405180910390f35b34801561066e57600080fd5b5061068960048036038101906106849190612c9b565b61162a565b6040516106969190612cf6565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c19190613082565b611641565b6040516106d39190612d20565b60405180910390f35b3480156106e857600080fd5b506106f16116c8565b6040516106fe9190612d20565b60405180910390f35b34801561071357600080fd5b5061072e60048036038101906107299190612df2565b6116ce565b005b34801561073c57600080fd5b506107456117a5565b6040516107529190613121565b60405180910390f35b60606040518060400160405280600581526020017f66696e6558000000000000000000000000000000000000000000000000000000815250905090565b60006107ac6107a56117cb565b84846117d3565b6001905092915050565b6000600954905090565b60006107cd84848461199c565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108186117cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f906131ae565b60405180910390fd5b6108b5856108a46117cb565b85846108b091906131fd565b6117d3565b60019150509392505050565b6000600a54821115610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906132a3565b60405180910390fd5b6000610912611d23565b9050808361092091906132f2565b915050919050565b60006009905090565b6109396117cb565b73ffffffffffffffffffffffffffffffffffffffff16610957611387565b73ffffffffffffffffffffffffffffffffffffffff16146109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a49061336f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a30906133db565b60405180910390fd5b60005b600680549050811015610c62578173ffffffffffffffffffffffffffffffffffffffff1660068281548110610a7457610a736133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c4f5760066001600680549050610ace91906131fd565b81548110610adf57610ade6133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660068281548110610b1e57610b1d6133fb565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006805480610c1557610c1461342a565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610c62565b8080610c5a90613459565b915050610a3c565b5050565b6000610d08610c736117cb565b848460036000610c816117cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0391906134a1565b6117d3565b6001905092915050565b610d1a6117cb565b73ffffffffffffffffffffffffffffffffffffffff16610d38611387565b73ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d859061336f565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600954831115610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790613521565b60405180910390fd5b81610e51576000610e42846001611d47565b90508060000151915050610e69565b6000610e5e846001611d47565b905080602001519150505b92915050565b610e776117cb565b73ffffffffffffffffffffffffffffffffffffffff16610e95611387565b73ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee29061336f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f9061358d565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561104c57611008600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108c1565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111fb57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611246565b611243600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108c1565b90505b919050565b6112536117cb565b73ffffffffffffffffffffffffffffffffffffffff16611271611387565b73ffffffffffffffffffffffffffffffffffffffff16146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be9061336f565b60405180910390fd5b6112d16000611d98565b565b600e8060000154908060010154905082565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113b86117cb565b73ffffffffffffffffffffffffffffffffffffffff166113d6611387565b73ffffffffffffffffffffffffffffffffffffffff161461142c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114239061336f565b60405180910390fd5b60005b82518110156114bc5781600460008584815181106114505761144f6133fb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114b490613459565b91505061142f565b505050565b60606040518060400160405280600581526020017f66696e6558000000000000000000000000000000000000000000000000000000815250905090565b60108060000154908060010154905082565b6000806003600061151f6117cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d39061361f565b60405180910390fd5b6115f96115e76117cb565b8585846115f491906131fd565b6117d3565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061163733848461199c565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6116d66117cb565b73ffffffffffffffffffffffffffffffffffffffff166116f4611387565b73ffffffffffffffffffffffffffffffffffffffff161461174a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117419061336f565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611839906136b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890613743565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161198f9190612d20565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a02906137d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613867565b60405180910390fd5b60008111611abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab4906138f9565b60405180910390fd5b611ac683611160565b811115611b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aff9061398b565b60405180910390fd5b6000600b54611b1630611160565b10159050600760009054906101000a900460ff16158015611b345750805b8015611b8e5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611be45750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c3a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4857611c47611e5c565b5b600060019050600760009054906101000a900460ff1680611cb25750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d065750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d1057600090505b611d1c85858584611f06565b5050505050565b6000806000611d306122cc565b915091508082611d4091906132f2565b9250505090565b611d4f612b04565b611d59838361256a565b9050611d6e818484611d69611d23565b612601565b84600001856020018660400187606001848152508481525084815250848152505050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600760006101000a81548160ff0219169083151502179055506000611e8230611160565b9050611e8d81612675565b60004790506000811115611ee757611ee681600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128b890919063ffffffff16565b5b50506000600760006101000a81548160ff021916908315150217905550565b6000611f128383611d47565b9050600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ff55782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb191906131fd565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120da578060800151600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209691906134a1565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060000151600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212991906131fd565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060200151600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121bb91906134a1565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081604001511180612215575060008160a00151115b1561222d5761222c81604001518260a001516129ac565b5b600081606001511180612244575060008160c00151115b1561225c5761225b81606001518260c001516129e5565b5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83608001516040516122bd9190612d20565b60405180910390a35050505050565b6000806000600a5490506000600954905060005b60068054905081101561253457826001600060068481548110612306576123056133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806123f4575081600260006006848154811061238c5761238b6133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561240b57600a5460095494509450505050612566565b6001600060068381548110612423576124226133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361249491906131fd565b925060026000600683815481106124ae576124ad6133fb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261251f91906131fd565b9150808061252c90613459565b9150506122e0565b50600954600a5461254591906132f2565b82101561255d57600a54600954935093505050612566565b81819350935050505b9091565b612572612b04565b8161258657828160800181815250506125fb565b6064600e600001548461259991906139ab565b6125a391906132f2565b8160a00181815250506064600e60010154846125bf91906139ab565b6125c991906132f2565b8160c00181815250508060c001518160a00151846125e791906131fd565b6125f191906131fd565b8160800181815250505b92915050565b600080600080848761261391906139ab565b93508561262c578384600080935093509350935061266a565b848860a0015161263c91906139ab565b9150848860c0015161264e91906139ab565b905080828561265d91906131fd565b61266791906131fd565b92505b945094509450949050565b6000600267ffffffffffffffff81111561269257612691612ee3565b5b6040519080825280602002602001820160405280156126c05781602001602082028036833780820191505090505b50905030816000815181106126d8576126d76133fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561277f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a39190613a02565b816001815181106127b7576127b66133fb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061281e30600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117d3565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612882959493929190613b28565b600060405180830381600087803b15801561289c57600080fd5b505af11580156128b0573d6000803e3d6000fd5b505050505050565b804710156128fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f290613bce565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161292190613c1f565b60006040518083038185875af1925050503d806000811461295e576040519150601f19603f3d011682016040523d82523d6000602084013e612963565b606091505b50509050806129a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299e90613ca6565b60405180910390fd5b505050565b81600a60008282546129be91906131fd565b9250508190555080601060000160008282546129da91906134a1565b925050819055505050565b80601060010160008282546129fa91906134a1565b92505081905550600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612aaa5780600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612aa291906134a1565b925050819055505b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612af991906134a1565b925050819055505050565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b7b578082015181840152602081019050612b60565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ba382612b41565b612bad8185612b4c565b9350612bbd818560208601612b5d565b612bc681612b87565b840191505092915050565b60006020820190508181036000830152612beb8184612b98565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c3282612c07565b9050919050565b612c4281612c27565b8114612c4d57600080fd5b50565b600081359050612c5f81612c39565b92915050565b6000819050919050565b612c7881612c65565b8114612c8357600080fd5b50565b600081359050612c9581612c6f565b92915050565b60008060408385031215612cb257612cb1612bfd565b5b6000612cc085828601612c50565b9250506020612cd185828601612c86565b9150509250929050565b60008115159050919050565b612cf081612cdb565b82525050565b6000602082019050612d0b6000830184612ce7565b92915050565b612d1a81612c65565b82525050565b6000602082019050612d356000830184612d11565b92915050565b600080600060608486031215612d5457612d53612bfd565b5b6000612d6286828701612c50565b9350506020612d7386828701612c50565b9250506040612d8486828701612c86565b9150509250925092565b600060208284031215612da457612da3612bfd565b5b6000612db284828501612c86565b91505092915050565b600060ff82169050919050565b612dd181612dbb565b82525050565b6000602082019050612dec6000830184612dc8565b92915050565b600060208284031215612e0857612e07612bfd565b5b6000612e1684828501612c50565b91505092915050565b612e2881612cdb565b8114612e3357600080fd5b50565b600081359050612e4581612e1f565b92915050565b60008060408385031215612e6257612e61612bfd565b5b6000612e7085828601612c86565b9250506020612e8185828601612e36565b9150509250929050565b6000604082019050612ea06000830185612d11565b612ead6020830184612d11565b9392505050565b612ebd81612c27565b82525050565b6000602082019050612ed86000830184612eb4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f1b82612b87565b810181811067ffffffffffffffff82111715612f3a57612f39612ee3565b5b80604052505050565b6000612f4d612bf3565b9050612f598282612f12565b919050565b600067ffffffffffffffff821115612f7957612f78612ee3565b5b602082029050602081019050919050565b600080fd5b6000612fa2612f9d84612f5e565b612f43565b90508083825260208201905060208402830185811115612fc557612fc4612f8a565b5b835b81811015612fee5780612fda8882612c50565b845260208401935050602081019050612fc7565b5050509392505050565b600082601f83011261300d5761300c612ede565b5b813561301d848260208601612f8f565b91505092915050565b6000806040838503121561303d5761303c612bfd565b5b600083013567ffffffffffffffff81111561305b5761305a612c02565b5b61306785828601612ff8565b925050602061307885828601612e36565b9150509250929050565b6000806040838503121561309957613098612bfd565b5b60006130a785828601612c50565b92505060206130b885828601612c50565b9150509250929050565b6000819050919050565b60006130e76130e26130dd84612c07565b6130c2565b612c07565b9050919050565b60006130f9826130cc565b9050919050565b600061310b826130ee565b9050919050565b61311b81613100565b82525050565b60006020820190506131366000830184613112565b92915050565b7f42455032303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613198602883612b4c565b91506131a38261313c565b604082019050919050565b600060208201905081810360008301526131c78161318b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061320882612c65565b915061321383612c65565b925082820390508181111561322b5761322a6131ce565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061328d602a83612b4c565b915061329882613231565b604082019050919050565b600060208201905081810360008301526132bc81613280565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132fd82612c65565b915061330883612c65565b925082613318576133176132c3565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613359602083612b4c565b915061336482613323565b602082019050919050565b600060208201905081810360008301526133888161334c565b9050919050565b7f4163636f756e74206973206e6f74206578636c75646564000000000000000000600082015250565b60006133c5601783612b4c565b91506133d08261338f565b602082019050919050565b600060208201905081810360008301526133f4816133b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061346482612c65565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613496576134956131ce565b5b600182019050919050565b60006134ac82612c65565b91506134b783612c65565b92508282019050808211156134cf576134ce6131ce565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b600061350b601f83612b4c565b9150613516826134d5565b602082019050919050565b6000602082019050818103600083015261353a816134fe565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000613577601b83612b4c565b915061358282613541565b602082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f42455032303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613609602583612b4c565b9150613614826135ad565b604082019050919050565b60006020820190508181036000830152613638816135fc565b9050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061369b602483612b4c565b91506136a68261363f565b604082019050919050565b600060208201905081810360008301526136ca8161368e565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061372d602283612b4c565b9150613738826136d1565b604082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137bf602583612b4c565b91506137ca82613763565b604082019050919050565b600060208201905081810360008301526137ee816137b2565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613851602383612b4c565b915061385c826137f5565b604082019050919050565b6000602082019050818103600083015261388081613844565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006138e3602983612b4c565b91506138ee82613887565b604082019050919050565b60006020820190508181036000830152613912816138d6565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000613975603183612b4c565b915061398082613919565b604082019050919050565b600060208201905081810360008301526139a481613968565b9050919050565b60006139b682612c65565b91506139c183612c65565b92508282026139cf81612c65565b915082820484148315176139e6576139e56131ce565b5b5092915050565b6000815190506139fc81612c39565b92915050565b600060208284031215613a1857613a17612bfd565b5b6000613a26848285016139ed565b91505092915050565b6000819050919050565b6000613a54613a4f613a4a84613a2f565b6130c2565b612c65565b9050919050565b613a6481613a39565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a9f81612c27565b82525050565b6000613ab18383613a96565b60208301905092915050565b6000602082019050919050565b6000613ad582613a6a565b613adf8185613a75565b9350613aea83613a86565b8060005b83811015613b1b578151613b028882613aa5565b9750613b0d83613abd565b925050600181019050613aee565b5085935050505092915050565b600060a082019050613b3d6000830188612d11565b613b4a6020830187613a5b565b8181036040830152613b5c8186613aca565b9050613b6b6060830185612eb4565b613b786080830184612d11565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613bb8601d83612b4c565b9150613bc382613b82565b602082019050919050565b60006020820190508181036000830152613be781613bab565b9050919050565b600081905092915050565b50565b6000613c09600083613bee565b9150613c1482613bf9565b600082019050919050565b6000613c2a82613bfc565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613c90603a83612b4c565b9150613c9b82613c34565b604082019050919050565b60006020820190508181036000830152613cbf81613c83565b905091905056fea2646970667358221220987d9f09e007bff3bc85b3658372149ad04db24ebd02e3da92d78dbebaa6ec1564736f6c63430008110033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

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

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


Deployed Bytecode Sourcemap

3113:12842:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5381:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6141:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5681:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6310:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8181:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5567:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8845:473;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6766:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9326:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7684:489;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8505:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9563:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5784:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1627:94;;;;;;;;;;;;;:::i;:::-;;4225:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3966:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3889:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7554:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1404:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15703:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5472:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4357:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6981:392;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3584:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7381:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5990:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3824:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9445:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3556:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5381:83;5418:13;5451:5;;;;;;;;;;;;;;;;;5444:12;;5381:83;:::o;6141:161::-;6216:4;6233:39;6242:12;:10;:12::i;:::-;6256:7;6265:6;6233:8;:39::i;:::-;6290:4;6283:11;;6141:161;;;;:::o;5681:95::-;5734:7;5761;;5754:14;;5681:95;:::o;6310:448::-;6442:4;6459:36;6469:6;6477:9;6488:6;6459:9;:36::i;:::-;6508:24;6535:11;:19;6547:6;6535:19;;;;;;;;;;;;;;;:33;6555:12;:10;:12::i;:::-;6535:33;;;;;;;;;;;;;;;;6508:60;;6607:6;6587:16;:26;;6579:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6669:57;6678:6;6686:12;:10;:12::i;:::-;6719:6;6700:16;:25;;;;:::i;:::-;6669:8;:57::i;:::-;6746:4;6739:11;;;6310:448;;;;;:::o;8181:250::-;8248:7;8287;;8276;:18;;8268:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8352:19;8374:10;:8;:10::i;:::-;8352:32;;8412:11;8402:7;:21;;;;:::i;:::-;8395:28;;;8181:250;;;:::o;5567:83::-;5608:5;3647:1;5626:16;;5567:83;:::o;8845:473::-;1550:12;:10;:12::i;:::-;1539:23;;:7;:5;:7::i;:::-;:23;;;1531:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8925:11:::1;:20;8937:7;8925:20;;;;;;;;;;;;;;;;;;;;;;;;;8917:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8989:9;8984:327;9008:9;:16;;;;9004:1;:20;8984:327;;;9066:7;9050:23;;:9;9060:1;9050:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:23;;::::0;9046:254:::1;;9109:9;9138:1;9119:9;:16;;;;:20;;;;:::i;:::-;9109:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9094:9;9104:1;9094:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;9178:1;9159:7;:16;9167:7;9159:16;;;;;;;;;;;;;;;:20;;;;9221:5;9198:11;:20;9210:7;9198:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;9245:9;:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;9279:5;;9046:254;9026:3;;;;;:::i;:::-;;;;8984:327;;;;8845:473:::0;:::o;6766:207::-;6846:4;6863:80;6872:12;:10;:12::i;:::-;6886:7;6932:10;6895:11;:25;6907:12;:10;:12::i;:::-;6895:25;;;;;;;;;;;;;;;:34;6921:7;6895:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6863:8;:80::i;:::-;6961:4;6954:11;;6766:207;;;;:::o;9326:111::-;1550:12;:10;:12::i;:::-;1539:23;;:7;:5;:7::i;:::-;:23;;;1531:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9425:4:::1;9395:18;:27;9414:7;9395:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;9326:111:::0;:::o;7684:489::-;7802:7;7846;;7835;:18;;7827:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7905:17;7900:266;;7939:28;7970:25;7981:7;7990:4;7970:10;:25::i;:::-;7939:56;;8017:1;:9;;;8010:16;;;;;7900:266;8059:28;8090:25;8101:7;8110:4;8090:10;:25::i;:::-;8059:56;;8137:1;:17;;;8130:24;;;7684:489;;;;;:::o;8505:332::-;1550:12;:10;:12::i;:::-;1539:23;;:7;:5;:7::i;:::-;:23;;;1531:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8586:11:::1;:20;8598:7;8586:20;;;;;;;;;;;;;;;;;;;;;;;;;8585:21;8577:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8672:1;8653:7;:16;8661:7;8653:16;;;;;;;;;;;;;;;;:20;8649:109;;;8709:37;8729:7;:16;8737:7;8729:16;;;;;;;;;;;;;;;;8709:19;:37::i;:::-;8690:7;:16;8698:7;8690:16;;;;;;;;;;;;;;;:56;;;;8649:109;8791:4;8768:11;:20;8780:7;8768:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;8806:9;8821:7;8806:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8505:332:::0;:::o;9563:124::-;9628:4;9652:18;:27;9671:7;9652:27;;;;;;;;;;;;;;;;;;;;;;;;;9645:34;;9563:124;;;:::o;5784:198::-;5850:7;5874:11;:20;5886:7;5874:20;;;;;;;;;;;;;;;;;;;;;;;;;5870:49;;;5903:7;:16;5911:7;5903:16;;;;;;;;;;;;;;;;5896:23;;;;5870:49;5937:37;5957:7;:16;5965:7;5957:16;;;;;;;;;;;;;;;;5937:19;:37::i;:::-;5930:44;;5784:198;;;;:::o;1627:94::-;1550:12;:10;:12::i;:::-;1539:23;;:7;:5;:7::i;:::-;:23;;;1531:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1692:21:::1;1710:1;1692:9;:21::i;:::-;1627:94::o:0;4225:32::-;;;;;;;;;;;;;;:::o;3966:75::-;;;;;;;;;;;;;:::o;3889:70::-;;;;;;;;;;;;;:::o;7554:120::-;7622:4;7646:11;:20;7658:7;7646:20;;;;;;;;;;;;;;;;;;;;;;;;;7639:27;;7554:120;;;:::o;1404:87::-;1450:7;1477:6;;;;;;;;;;;1470:13;;1404:87;:::o;15703:212::-;1550:12;:10;:12::i;:::-;1539:23;;:7;:5;:7::i;:::-;:23;;;1531:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15801:9:::1;15796:112;15820:8;:15;15816:1;:19;15796:112;;;15891:5;15857:18;:31;15876:8;15885:1;15876:11;;;;;;;;:::i;:::-;;;;;;;;15857:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15837:3;;;;;:::i;:::-;;;;15796:112;;;;15703:212:::0;;:::o;5472:87::-;5511:13;5544:7;;;;;;;;;;;;;;;;;5537:14;;5472:87;:::o;4357:36::-;;;;;;;;;;;;;;:::o;6981:392::-;7084:4;7106:24;7133:11;:25;7145:12;:10;:12::i;:::-;7133:25;;;;;;;;;;;;;;;:34;7159:7;7133:34;;;;;;;;;;;;;;;;7106:61;;7206:15;7186:16;:35;;7178:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7274:67;7283:12;:10;:12::i;:::-;7297:7;7325:15;7306:16;:34;;;;:::i;:::-;7274:8;:67::i;:::-;7361:4;7354:11;;;6981:392;;;;:::o;3584:19::-;;;;;;;;;;;;;:::o;7381:165::-;7459:4;7476:40;7486:10;7498:9;7509:6;7476:9;:40::i;:::-;7534:4;7527:11;;7381:165;;;;:::o;5990:143::-;6071:7;6098:11;:18;6110:5;6098:18;;;;;;;;;;;;;;;:27;6117:7;6098:27;;;;;;;;;;;;;;;;6091:34;;5990:143;;;;:::o;3824:56::-;;;;:::o;9445:110::-;1550:12;:10;:12::i;:::-;1539:23;;:7;:5;:7::i;:::-;:23;;;1531:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9542:5:::1;9512:18;:27;9531:7;9512:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;9445:110:::0;:::o;3556:21::-;;;;;;;;;;;;;:::o;825:98::-;878:7;905:10;898:17;;825:98;:::o;12509:369::-;12653:1;12636:19;;:5;:19;;;12628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12734:1;12715:21;;:7;:21;;;12707:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12816:6;12786:11;:18;12798:5;12786:18;;;;;;;;;;;;;;;:27;12805:7;12786:27;;;;;;;;;;;;;;;:36;;;;12854:7;12838:32;;12847:5;12838:32;;;12863:6;12838:32;;;;;;:::i;:::-;;;;;;;;12509:369;;;:::o;12886:954::-;13024:1;13008:18;;:4;:18;;;13000:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13101:1;13087:16;;:2;:16;;;13079:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13171:1;13162:6;:10;13154:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13261:15;13271:4;13261:9;:15::i;:::-;13251:6;:25;;13229:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;13366:12;13409:18;;13381:24;13399:4;13381:9;:24::i;:::-;:46;;13366:61;;13457:8;;;;;;;;;;;13456:9;:33;;;;;13482:7;13456:33;:62;;;;;13514:4;;;;;;;;;;;13506:12;;:4;:12;;;;13456:62;:104;;;;;13536:18;:24;13555:4;13536:24;;;;;;;;;;;;;;;;;;;;;;;;;13535:25;13456:104;:144;;;;;13578:18;:22;13597:2;13578:22;;;;;;;;;;;;;;;;;;;;;;;;;13577:23;13456:144;13438:217;;;13627:16;:14;:16::i;:::-;13438:217;13665:12;13680:4;13665:19;;13699:8;;;;;;;;;;;:36;;;;13711:18;:24;13730:4;13711:24;;;;;;;;;;;;;;;;;;;;;;;;;13699:36;:62;;;;13739:18;:22;13758:2;13739:22;;;;;;;;;;;;;;;;;;;;;;;;;13699:62;13695:83;;;13773:5;13763:15;;13695:83;13791:41;13806:4;13812:2;13816:6;13824:7;13791:14;:41::i;:::-;12989:851;;12886:954;;;:::o;11768:161::-;11810:7;11831:15;11848;11867:19;:17;:19::i;:::-;11830:56;;;;11914:7;11904;:17;;;;:::i;:::-;11897:24;;;;11768:161;:::o;10120:438::-;10218:36;;:::i;:::-;10279:29;10291:7;10300;10279:11;:29::i;:::-;10267:41;;10469:52;10481:9;10492:7;10501;10510:10;:8;:10::i;:::-;10469:11;:52::i;:::-;10334:9;:17;;10366:9;:25;;10406:9;:14;;10435:9;:20;;10319:202;;;;;;;;;;;;;;;;;;;;10120:438;;;;:::o;1729:173::-;1785:16;1804:6;;;;;;;;;;;1785:25;;1830:8;1821:6;;:17;;;;;;;;;;;;;;;;;;1885:8;1854:40;;1875:8;1854:40;;;;;;;;;;;;1774:128;1729:173;:::o;14792:341::-;4688:4;4677:8;;:15;;;;;;;;;;;;;;;;;;14858:23:::1;14884:24;14902:4;14884:9;:24::i;:::-;14858:50;;14919:33;14936:15;14919:16;:33::i;:::-;14963:20;14986:21;14963:44;;15046:1;15031:12;:16;15027:97;;;15064:48;15099:12;15072:15;;;;;;;;;;;15064:34;;;;:48;;;;:::i;:::-;15027:97;14838:295;;4726:5:::0;4715:8;;:16;;;;;;;;;;;;;;;;;;14792:341::o;13921:863::-;14075:28;14106;14117:7;14126;14106:10;:28::i;:::-;14075:59;;14151:11;:19;14163:6;14151:19;;;;;;;;;;;;;;;;;;;;;;;;;14147:124;;;14252:7;14234;:15;14242:6;14234:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;14216:7;:15;14224:6;14216:15;;;;;;;;;;;;;;;:43;;;;14147:124;14285:11;:22;14297:9;14285:22;;;;;;;;;;;;;;;;;;;;;;;;;14281:141;;;14393:1;:17;;;14372:7;:18;14380:9;14372:18;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;14351:7;:18;14359:9;14351:18;;;;;;;;;;;;;;;:59;;;;14281:141;14470:1;:9;;;14452:7;:15;14460:6;14452:15;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;14434:7;:15;14442:6;14434:15;;;;;;;;;;;;;;;:45;;;;14532:1;:17;;;14511:7;:18;14519:9;14511:18;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;14490:7;:18;14498:9;14490:18;;;;;;;;;;;;;;;:59;;;;14575:1;14566;:6;;;:10;:24;;;;14589:1;14580;:6;;;:10;14566:24;14562:57;;;14592:27;14604:1;:6;;;14612:1;:6;;;14592:11;:27::i;:::-;14562:57;14649:1;14634;:12;;;:16;:36;;;;14669:1;14654;:12;;;:16;14634:36;14630:84;;;14672:42;14687:1;:12;;;14701:1;:12;;;14672:14;:42::i;:::-;14630:84;14747:9;14730:46;;14739:6;14730:46;;;14758:1;:17;;;14730:46;;;;;;:::i;:::-;;;;;;;;14062:722;13921:863;;;;:::o;11937:564::-;11988:7;11997;12017:15;12035:7;;12017:25;;12053:15;12071:7;;12053:25;;12094:9;12089:300;12113:9;:16;;;;12109:1;:20;12089:300;;;12179:7;12155;:21;12163:9;12173:1;12163:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12155:21;;;;;;;;;;;;;;;;:31;:66;;;;12214:7;12190;:21;12198:9;12208:1;12198:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12190:21;;;;;;;;;;;;;;;;:31;12155:66;12151:114;;;12248:7;;12257;;12240:25;;;;;;;;;12151:114;12300:7;:21;12308:9;12318:1;12308:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12300:21;;;;;;;;;;;;;;;;12290:7;:31;;;;:::i;:::-;12280:41;;12356:7;:21;12364:9;12374:1;12364:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12356:21;;;;;;;;;;;;;;;;12346:7;:31;;;;:::i;:::-;12336:41;;12131:3;;;;;:::i;:::-;;;;12089:300;;;;12423:7;;12413;;:17;;;;:::i;:::-;12403:7;:27;12399:58;;;12440:7;;12449;;12432:25;;;;;;;;12399:58;12476:7;12485;12468:25;;;;;;11937:564;;;:::o;10566:466::-;10665:28;;:::i;:::-;10711:7;10706:91;;10755:7;10735:1;:17;;:27;;;;;10777:8;;10706:91;10842:3;10829:5;:9;;;10819:7;:19;;;;:::i;:::-;10818:27;;;;:::i;:::-;10809:1;:6;;:36;;;;;10901:3;10882:5;:15;;;10872:7;:25;;;;:::i;:::-;10871:33;;;;:::i;:::-;10856:1;:12;;:48;;;;;10993:1;:12;;;10971:1;:6;;;10948:7;:29;;;;:::i;:::-;:57;;;;:::i;:::-;10915:1;:17;;:90;;;;;10566:466;;;;;:::o;11040:720::-;11249:15;11279:23;11317:12;11344:18;11410:11;11400:7;:21;;;;:::i;:::-;11390:31;;11439:7;11434:72;;11471:7;11480;11489:1;11492;11463:31;;;;;;;;;;11434:72;11534:11;11525:1;:6;;;:20;;;;:::i;:::-;11518:27;;11584:11;11569:1;:12;;;:26;;;;:::i;:::-;11556:39;;11680:10;11660:4;11637:7;:27;;;;:::i;:::-;:53;;;;:::i;:::-;11606:84;;11040:720;;;;;;;;;;:::o;15141:554::-;15259:21;15297:1;15283:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15259:40;;15328:4;15310;15315:1;15310:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15354:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15344:4;15349:1;15344:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15380:53;15397:4;15412:6;;;;;;;;;;;15421:11;15380:8;:53::i;:::-;15472:6;;;;;;;;;;;:57;;;15544:11;15570:1;15614:4;15641;15661:15;15472:215;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15196:499;15141:554;:::o;2787:319::-;2902:6;2877:21;:31;;2869:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:12;2974:9;:14;;2997:6;2974:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:54;;;3028:7;3020:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;2858:248;2787:319;;:::o;9695:125::-;9774:4;9763:7;;:15;;;;;;;:::i;:::-;;;;;;;;9808:4;9789:11;:15;;;:23;;;;;;;:::i;:::-;;;;;;;;9695:125;;:::o;9830:280::-;9938:10;9913:11;:21;;;:35;;;;;;;:::i;:::-;;;;;;;;9965:11;:26;9985:4;9965:26;;;;;;;;;;;;;;;;;;;;;;;;;9961:95;;;10034:10;10008:7;:22;10024:4;10008:22;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;9961:95;10092:10;10066:7;:22;10082:4;10066:22;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;9830:280;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:116::-;5593:21;5608:5;5593:21;:::i;:::-;5586:5;5583:32;5573:60;;5629:1;5626;5619:12;5573:60;5523:116;:::o;5645:133::-;5688:5;5726:6;5713:20;5704:29;;5742:30;5766:5;5742:30;:::i;:::-;5645:133;;;;:::o;5784:468::-;5849:6;5857;5906:2;5894:9;5885:7;5881:23;5877:32;5874:119;;;5912:79;;:::i;:::-;5874:119;6032:1;6057:53;6102:7;6093:6;6082:9;6078:22;6057:53;:::i;:::-;6047:63;;6003:117;6159:2;6185:50;6227:7;6218:6;6207:9;6203:22;6185:50;:::i;:::-;6175:60;;6130:115;5784:468;;;;;:::o;6258:332::-;6379:4;6417:2;6406:9;6402:18;6394:26;;6430:71;6498:1;6487:9;6483:17;6474:6;6430:71;:::i;:::-;6511:72;6579:2;6568:9;6564:18;6555:6;6511:72;:::i;:::-;6258:332;;;;;:::o;6596:118::-;6683:24;6701:5;6683:24;:::i;:::-;6678:3;6671:37;6596:118;;:::o;6720:222::-;6813:4;6851:2;6840:9;6836:18;6828:26;;6864:71;6932:1;6921:9;6917:17;6908:6;6864:71;:::i;:::-;6720:222;;;;:::o;6948:117::-;7057:1;7054;7047:12;7071:180;7119:77;7116:1;7109:88;7216:4;7213:1;7206:15;7240:4;7237:1;7230:15;7257:281;7340:27;7362:4;7340:27;:::i;:::-;7332:6;7328:40;7470:6;7458:10;7455:22;7434:18;7422:10;7419:34;7416:62;7413:88;;;7481:18;;:::i;:::-;7413:88;7521:10;7517:2;7510:22;7300:238;7257:281;;:::o;7544:129::-;7578:6;7605:20;;:::i;:::-;7595:30;;7634:33;7662:4;7654:6;7634:33;:::i;:::-;7544:129;;;:::o;7679:311::-;7756:4;7846:18;7838:6;7835:30;7832:56;;;7868:18;;:::i;:::-;7832:56;7918:4;7910:6;7906:17;7898:25;;7978:4;7972;7968:15;7960:23;;7679:311;;;:::o;7996:117::-;8105:1;8102;8095:12;8136:710;8232:5;8257:81;8273:64;8330:6;8273:64;:::i;:::-;8257:81;:::i;:::-;8248:90;;8358:5;8387:6;8380:5;8373:21;8421:4;8414:5;8410:16;8403:23;;8474:4;8466:6;8462:17;8454:6;8450:30;8503:3;8495:6;8492:15;8489:122;;;8522:79;;:::i;:::-;8489:122;8637:6;8620:220;8654:6;8649:3;8646:15;8620:220;;;8729:3;8758:37;8791:3;8779:10;8758:37;:::i;:::-;8753:3;8746:50;8825:4;8820:3;8816:14;8809:21;;8696:144;8680:4;8675:3;8671:14;8664:21;;8620:220;;;8624:21;8238:608;;8136:710;;;;;:::o;8869:370::-;8940:5;8989:3;8982:4;8974:6;8970:17;8966:27;8956:122;;8997:79;;:::i;:::-;8956:122;9114:6;9101:20;9139:94;9229:3;9221:6;9214:4;9206:6;9202:17;9139:94;:::i;:::-;9130:103;;8946:293;8869:370;;;;:::o;9245:678::-;9335:6;9343;9392:2;9380:9;9371:7;9367:23;9363:32;9360:119;;;9398:79;;:::i;:::-;9360:119;9546:1;9535:9;9531:17;9518:31;9576:18;9568:6;9565:30;9562:117;;;9598:79;;:::i;:::-;9562:117;9703:78;9773:7;9764:6;9753:9;9749:22;9703:78;:::i;:::-;9693:88;;9489:302;9830:2;9856:50;9898:7;9889:6;9878:9;9874:22;9856:50;:::i;:::-;9846:60;;9801:115;9245:678;;;;;:::o;9929:474::-;9997:6;10005;10054:2;10042:9;10033:7;10029:23;10025:32;10022:119;;;10060:79;;:::i;:::-;10022:119;10180:1;10205:53;10250:7;10241:6;10230:9;10226:22;10205:53;:::i;:::-;10195:63;;10151:117;10307:2;10333:53;10378:7;10369:6;10358:9;10354:22;10333:53;:::i;:::-;10323:63;;10278:118;9929:474;;;;;:::o;10409:60::-;10437:3;10458:5;10451:12;;10409:60;;;:::o;10475:142::-;10525:9;10558:53;10576:34;10585:24;10603:5;10585:24;:::i;:::-;10576:34;:::i;:::-;10558:53;:::i;:::-;10545:66;;10475:142;;;:::o;10623:126::-;10673:9;10706:37;10737:5;10706:37;:::i;:::-;10693:50;;10623:126;;;:::o;10755:141::-;10820:9;10853:37;10884:5;10853:37;:::i;:::-;10840:50;;10755:141;;;:::o;10902:161::-;11004:52;11050:5;11004:52;:::i;:::-;10999:3;10992:65;10902:161;;:::o;11069:252::-;11177:4;11215:2;11204:9;11200:18;11192:26;;11228:86;11311:1;11300:9;11296:17;11287:6;11228:86;:::i;:::-;11069:252;;;;:::o;11327:227::-;11467:34;11463:1;11455:6;11451:14;11444:58;11536:10;11531:2;11523:6;11519:15;11512:35;11327:227;:::o;11560:366::-;11702:3;11723:67;11787:2;11782:3;11723:67;:::i;:::-;11716:74;;11799:93;11888:3;11799:93;:::i;:::-;11917:2;11912:3;11908:12;11901:19;;11560:366;;;:::o;11932:419::-;12098:4;12136:2;12125:9;12121:18;12113:26;;12185:9;12179:4;12175:20;12171:1;12160:9;12156:17;12149:47;12213:131;12339:4;12213:131;:::i;:::-;12205:139;;11932:419;;;:::o;12357:180::-;12405:77;12402:1;12395:88;12502:4;12499:1;12492:15;12526:4;12523:1;12516:15;12543:194;12583:4;12603:20;12621:1;12603:20;:::i;:::-;12598:25;;12637:20;12655:1;12637:20;:::i;:::-;12632:25;;12681:1;12678;12674:9;12666:17;;12705:1;12699:4;12696:11;12693:37;;;12710:18;;:::i;:::-;12693:37;12543:194;;;;:::o;12743:229::-;12883:34;12879:1;12871:6;12867:14;12860:58;12952:12;12947:2;12939:6;12935:15;12928:37;12743:229;:::o;12978:366::-;13120:3;13141:67;13205:2;13200:3;13141:67;:::i;:::-;13134:74;;13217:93;13306:3;13217:93;:::i;:::-;13335:2;13330:3;13326:12;13319:19;;12978:366;;;:::o;13350:419::-;13516:4;13554:2;13543:9;13539:18;13531:26;;13603:9;13597:4;13593:20;13589:1;13578:9;13574:17;13567:47;13631:131;13757:4;13631:131;:::i;:::-;13623:139;;13350:419;;;:::o;13775:180::-;13823:77;13820:1;13813:88;13920:4;13917:1;13910:15;13944:4;13941:1;13934:15;13961:185;14001:1;14018:20;14036:1;14018:20;:::i;:::-;14013:25;;14052:20;14070:1;14052:20;:::i;:::-;14047:25;;14091:1;14081:35;;14096:18;;:::i;:::-;14081:35;14138:1;14135;14131:9;14126:14;;13961:185;;;;:::o;14152:182::-;14292:34;14288:1;14280:6;14276:14;14269:58;14152:182;:::o;14340:366::-;14482:3;14503:67;14567:2;14562:3;14503:67;:::i;:::-;14496:74;;14579:93;14668:3;14579:93;:::i;:::-;14697:2;14692:3;14688:12;14681:19;;14340:366;;;:::o;14712:419::-;14878:4;14916:2;14905:9;14901:18;14893:26;;14965:9;14959:4;14955:20;14951:1;14940:9;14936:17;14929:47;14993:131;15119:4;14993:131;:::i;:::-;14985:139;;14712:419;;;:::o;15137:173::-;15277:25;15273:1;15265:6;15261:14;15254:49;15137:173;:::o;15316:366::-;15458:3;15479:67;15543:2;15538:3;15479:67;:::i;:::-;15472:74;;15555:93;15644:3;15555:93;:::i;:::-;15673:2;15668:3;15664:12;15657:19;;15316:366;;;:::o;15688:419::-;15854:4;15892:2;15881:9;15877:18;15869:26;;15941:9;15935:4;15931:20;15927:1;15916:9;15912:17;15905:47;15969:131;16095:4;15969:131;:::i;:::-;15961:139;;15688:419;;;:::o;16113:180::-;16161:77;16158:1;16151:88;16258:4;16255:1;16248:15;16282:4;16279:1;16272:15;16299:180;16347:77;16344:1;16337:88;16444:4;16441:1;16434:15;16468:4;16465:1;16458:15;16485:233;16524:3;16547:24;16565:5;16547:24;:::i;:::-;16538:33;;16593:66;16586:5;16583:77;16580:103;;16663:18;;:::i;:::-;16580:103;16710:1;16703:5;16699:13;16692:20;;16485:233;;;:::o;16724:191::-;16764:3;16783:20;16801:1;16783:20;:::i;:::-;16778:25;;16817:20;16835:1;16817:20;:::i;:::-;16812:25;;16860:1;16857;16853:9;16846:16;;16881:3;16878:1;16875:10;16872:36;;;16888:18;;:::i;:::-;16872:36;16724:191;;;;:::o;16921:181::-;17061:33;17057:1;17049:6;17045:14;17038:57;16921:181;:::o;17108:366::-;17250:3;17271:67;17335:2;17330:3;17271:67;:::i;:::-;17264:74;;17347:93;17436:3;17347:93;:::i;:::-;17465:2;17460:3;17456:12;17449:19;;17108:366;;;:::o;17480:419::-;17646:4;17684:2;17673:9;17669:18;17661:26;;17733:9;17727:4;17723:20;17719:1;17708:9;17704:17;17697:47;17761:131;17887:4;17761:131;:::i;:::-;17753:139;;17480:419;;;:::o;17905:177::-;18045:29;18041:1;18033:6;18029:14;18022:53;17905:177;:::o;18088:366::-;18230:3;18251:67;18315:2;18310:3;18251:67;:::i;:::-;18244:74;;18327:93;18416:3;18327:93;:::i;:::-;18445:2;18440:3;18436:12;18429:19;;18088:366;;;:::o;18460:419::-;18626:4;18664:2;18653:9;18649:18;18641:26;;18713:9;18707:4;18703:20;18699:1;18688:9;18684:17;18677:47;18741:131;18867:4;18741:131;:::i;:::-;18733:139;;18460:419;;;:::o;18885:224::-;19025:34;19021:1;19013:6;19009:14;19002:58;19094:7;19089:2;19081:6;19077:15;19070:32;18885:224;:::o;19115:366::-;19257:3;19278:67;19342:2;19337:3;19278:67;:::i;:::-;19271:74;;19354:93;19443:3;19354:93;:::i;:::-;19472:2;19467:3;19463:12;19456:19;;19115:366;;;:::o;19487:419::-;19653:4;19691:2;19680:9;19676:18;19668:26;;19740:9;19734:4;19730:20;19726:1;19715:9;19711:17;19704:47;19768:131;19894:4;19768:131;:::i;:::-;19760:139;;19487:419;;;:::o;19912:223::-;20052:34;20048:1;20040:6;20036:14;20029:58;20121:6;20116:2;20108:6;20104:15;20097:31;19912:223;:::o;20141:366::-;20283:3;20304:67;20368:2;20363:3;20304:67;:::i;:::-;20297:74;;20380:93;20469:3;20380:93;:::i;:::-;20498:2;20493:3;20489:12;20482:19;;20141:366;;;:::o;20513:419::-;20679:4;20717:2;20706:9;20702:18;20694:26;;20766:9;20760:4;20756:20;20752:1;20741:9;20737:17;20730:47;20794:131;20920:4;20794:131;:::i;:::-;20786:139;;20513:419;;;:::o;20938:221::-;21078:34;21074:1;21066:6;21062:14;21055:58;21147:4;21142:2;21134:6;21130:15;21123:29;20938:221;:::o;21165:366::-;21307:3;21328:67;21392:2;21387:3;21328:67;:::i;:::-;21321:74;;21404:93;21493:3;21404:93;:::i;:::-;21522:2;21517:3;21513:12;21506:19;;21165:366;;;:::o;21537:419::-;21703:4;21741:2;21730:9;21726:18;21718:26;;21790:9;21784:4;21780:20;21776:1;21765:9;21761:17;21754:47;21818:131;21944:4;21818:131;:::i;:::-;21810:139;;21537:419;;;:::o;21962:224::-;22102:34;22098:1;22090:6;22086:14;22079:58;22171:7;22166:2;22158:6;22154:15;22147:32;21962:224;:::o;22192:366::-;22334:3;22355:67;22419:2;22414:3;22355:67;:::i;:::-;22348:74;;22431:93;22520:3;22431:93;:::i;:::-;22549:2;22544:3;22540:12;22533:19;;22192:366;;;:::o;22564:419::-;22730:4;22768:2;22757:9;22753:18;22745:26;;22817:9;22811:4;22807:20;22803:1;22792:9;22788:17;22781:47;22845:131;22971:4;22845:131;:::i;:::-;22837:139;;22564:419;;;:::o;22989:222::-;23129:34;23125:1;23117:6;23113:14;23106:58;23198:5;23193:2;23185:6;23181:15;23174:30;22989:222;:::o;23217:366::-;23359:3;23380:67;23444:2;23439:3;23380:67;:::i;:::-;23373:74;;23456:93;23545:3;23456:93;:::i;:::-;23574:2;23569:3;23565:12;23558:19;;23217:366;;;:::o;23589:419::-;23755:4;23793:2;23782:9;23778:18;23770:26;;23842:9;23836:4;23832:20;23828:1;23817:9;23813:17;23806:47;23870:131;23996:4;23870:131;:::i;:::-;23862:139;;23589:419;;;:::o;24014:228::-;24154:34;24150:1;24142:6;24138:14;24131:58;24223:11;24218:2;24210:6;24206:15;24199:36;24014:228;:::o;24248:366::-;24390:3;24411:67;24475:2;24470:3;24411:67;:::i;:::-;24404:74;;24487:93;24576:3;24487:93;:::i;:::-;24605:2;24600:3;24596:12;24589:19;;24248:366;;;:::o;24620:419::-;24786:4;24824:2;24813:9;24809:18;24801:26;;24873:9;24867:4;24863:20;24859:1;24848:9;24844:17;24837:47;24901:131;25027:4;24901:131;:::i;:::-;24893:139;;24620:419;;;:::o;25045:236::-;25185:34;25181:1;25173:6;25169:14;25162:58;25254:19;25249:2;25241:6;25237:15;25230:44;25045:236;:::o;25287:366::-;25429:3;25450:67;25514:2;25509:3;25450:67;:::i;:::-;25443:74;;25526:93;25615:3;25526:93;:::i;:::-;25644:2;25639:3;25635:12;25628:19;;25287:366;;;:::o;25659:419::-;25825:4;25863:2;25852:9;25848:18;25840:26;;25912:9;25906:4;25902:20;25898:1;25887:9;25883:17;25876:47;25940:131;26066:4;25940:131;:::i;:::-;25932:139;;25659:419;;;:::o;26084:410::-;26124:7;26147:20;26165:1;26147:20;:::i;:::-;26142:25;;26181:20;26199:1;26181:20;:::i;:::-;26176:25;;26236:1;26233;26229:9;26258:30;26276:11;26258:30;:::i;:::-;26247:41;;26437:1;26428:7;26424:15;26421:1;26418:22;26398:1;26391:9;26371:83;26348:139;;26467:18;;:::i;:::-;26348:139;26132:362;26084:410;;;;:::o;26500:143::-;26557:5;26588:6;26582:13;26573:22;;26604:33;26631:5;26604:33;:::i;:::-;26500:143;;;;:::o;26649:351::-;26719:6;26768:2;26756:9;26747:7;26743:23;26739:32;26736:119;;;26774:79;;:::i;:::-;26736:119;26894:1;26919:64;26975:7;26966:6;26955:9;26951:22;26919:64;:::i;:::-;26909:74;;26865:128;26649:351;;;;:::o;27006:85::-;27051:7;27080:5;27069:16;;27006:85;;;:::o;27097:158::-;27155:9;27188:61;27206:42;27215:32;27241:5;27215:32;:::i;:::-;27206:42;:::i;:::-;27188:61;:::i;:::-;27175:74;;27097:158;;;:::o;27261:147::-;27356:45;27395:5;27356:45;:::i;:::-;27351:3;27344:58;27261:147;;:::o;27414:114::-;27481:6;27515:5;27509:12;27499:22;;27414:114;;;:::o;27534:184::-;27633:11;27667:6;27662:3;27655:19;27707:4;27702:3;27698:14;27683:29;;27534:184;;;;:::o;27724:132::-;27791:4;27814:3;27806:11;;27844:4;27839:3;27835:14;27827:22;;27724:132;;;:::o;27862:108::-;27939:24;27957:5;27939:24;:::i;:::-;27934:3;27927:37;27862:108;;:::o;27976:179::-;28045:10;28066:46;28108:3;28100:6;28066:46;:::i;:::-;28144:4;28139:3;28135:14;28121:28;;27976:179;;;;:::o;28161:113::-;28231:4;28263;28258:3;28254:14;28246:22;;28161:113;;;:::o;28310:732::-;28429:3;28458:54;28506:5;28458:54;:::i;:::-;28528:86;28607:6;28602:3;28528:86;:::i;:::-;28521:93;;28638:56;28688:5;28638:56;:::i;:::-;28717:7;28748:1;28733:284;28758:6;28755:1;28752:13;28733:284;;;28834:6;28828:13;28861:63;28920:3;28905:13;28861:63;:::i;:::-;28854:70;;28947:60;29000:6;28947:60;:::i;:::-;28937:70;;28793:224;28780:1;28777;28773:9;28768:14;;28733:284;;;28737:14;29033:3;29026:10;;28434:608;;;28310:732;;;;:::o;29048:831::-;29311:4;29349:3;29338:9;29334:19;29326:27;;29363:71;29431:1;29420:9;29416:17;29407:6;29363:71;:::i;:::-;29444:80;29520:2;29509:9;29505:18;29496:6;29444:80;:::i;:::-;29571:9;29565:4;29561:20;29556:2;29545:9;29541:18;29534:48;29599:108;29702:4;29693:6;29599:108;:::i;:::-;29591:116;;29717:72;29785:2;29774:9;29770:18;29761:6;29717:72;:::i;:::-;29799:73;29867:3;29856:9;29852:19;29843:6;29799:73;:::i;:::-;29048:831;;;;;;;;:::o;29885:179::-;30025:31;30021:1;30013:6;30009:14;30002:55;29885:179;:::o;30070:366::-;30212:3;30233:67;30297:2;30292:3;30233:67;:::i;:::-;30226:74;;30309:93;30398:3;30309:93;:::i;:::-;30427:2;30422:3;30418:12;30411:19;;30070:366;;;:::o;30442:419::-;30608:4;30646:2;30635:9;30631:18;30623:26;;30695:9;30689:4;30685:20;30681:1;30670:9;30666:17;30659:47;30723:131;30849:4;30723:131;:::i;:::-;30715:139;;30442:419;;;:::o;30867:147::-;30968:11;31005:3;30990:18;;30867:147;;;;:::o;31020:114::-;;:::o;31140:398::-;31299:3;31320:83;31401:1;31396:3;31320:83;:::i;:::-;31313:90;;31412:93;31501:3;31412:93;:::i;:::-;31530:1;31525:3;31521:11;31514:18;;31140:398;;;:::o;31544:379::-;31728:3;31750:147;31893:3;31750:147;:::i;:::-;31743:154;;31914:3;31907:10;;31544:379;;;:::o;31929:245::-;32069:34;32065:1;32057:6;32053:14;32046:58;32138:28;32133:2;32125:6;32121:15;32114:53;31929:245;:::o;32180:366::-;32322:3;32343:67;32407:2;32402:3;32343:67;:::i;:::-;32336:74;;32419:93;32508:3;32419:93;:::i;:::-;32537:2;32532:3;32528:12;32521:19;;32180:366;;;:::o;32552:419::-;32718:4;32756:2;32745:9;32741:18;32733:26;;32805:9;32799:4;32795:20;32791:1;32780:9;32776:17;32769:47;32833:131;32959:4;32833:131;:::i;:::-;32825:139;;32552:419;;;:::o

Swarm Source

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