ETH Price: $3,883.26 (+7.61%)

Token

ERC-20: BTC6900 (BTC6900)
 

Overview

Max Total Supply

21,000,000 BTC6900

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
0.003916665531216664 BTC6900

Value
$0.00
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BTC6900

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-12
*/

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

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

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

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

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

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

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

abstract contract Ownable {
    address internal _owner;

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

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

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

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

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

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

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

    address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public receiveAddr = 0x77ddc8A3C85a54bF2F7886f9aF7958Ce094CA41c;
    address payable public mkt = payable(0xc1624d96385302bD1959E8E58BEf0F0749150800);

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

    constructor() {
        _name = unicode"BTC6900";
        _symbol = "BTC6900";
        _decimals = 18;
        uint256 Supply = 21000000;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    bool public remainHolder = true;

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

    uint256 swapAtAmount;

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

    uint256 public _walletMAX;

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

    function _transfer(address from, address to, uint256 amount) private {
        uint256 balance = balanceOf(from);
         require(amount > 0, "Transfer amount must be greater than zero");

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

        bool takeFee;

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

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

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

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

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

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

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

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

    uint256 public startTradeBlock;

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

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

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

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

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

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

   

    receive() external payable {}
}

Contract Security Audit

Contract ABI

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

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507377ddc8a3c85a54bf2f7886f9af7958ce094ca41c600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c1624d96385302bd1959e8e58bef0f0749150800600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f5560146010556014601155601460125560146013556000601455600060155560006016556001601760006101000a81548160ff0219169083151502179055503480156200015357600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600781526020017f4254433639303000000000000000000000000000000000000000000000000000815250600690816200023b919062000ef0565b506040518060400160405280600781526020017f42544336393030000000000000000000000000000000000000000000000000008152506007908162000282919062000ef0565b506012600860006101000a81548160ff021916908360ff16021790555060006301406f409050600860009054906101000a900460ff16600a620002c6919062001167565b81620002d39190620011b8565b600a81905550614e20600a54620002eb919062001232565b601881905550600a5460016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620003dd91906200127b565b60405180910390a36001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006200045362000a8d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000620005ae62000a8d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000738573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200075e919062001302565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007ef919062001302565b6040518363ffffffff1660e01b81526004016200080e92919062001345565b6020604051808303816000875af11580156200082e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000854919062001302565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200097c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009a2919062001302565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b815260040162000a0292919062001372565b6020604051808303816000875af115801562000a22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a489190620013dc565b50600060198190555062000a84600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000ab660201b60201c565b50505062001503565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b3e906200146f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000bb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bb090620014e1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000cf857607f821691505b60208210810362000d0e5762000d0d62000cb0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d39565b62000d84868362000d39565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000dd162000dcb62000dc58462000d9c565b62000da6565b62000d9c565b9050919050565b6000819050919050565b62000ded8362000db0565b62000e0562000dfc8262000dd8565b84845462000d46565b825550505050565b600090565b62000e1c62000e0d565b62000e2981848462000de2565b505050565b5b8181101562000e515762000e4560008262000e12565b60018101905062000e2f565b5050565b601f82111562000ea05762000e6a8162000d14565b62000e758462000d29565b8101602085101562000e85578190505b62000e9d62000e948562000d29565b83018262000e2e565b50505b505050565b600082821c905092915050565b600062000ec56000198460080262000ea5565b1980831691505092915050565b600062000ee0838362000eb2565b9150826002028217905092915050565b62000efb8262000c76565b67ffffffffffffffff81111562000f175762000f1662000c81565b5b62000f23825462000cdf565b62000f3082828562000e55565b600060209050601f83116001811462000f68576000841562000f53578287015190505b62000f5f858262000ed2565b86555062000fcf565b601f19841662000f788662000d14565b60005b8281101562000fa25784890151825560018201915060208501945060208101905062000f7b565b8683101562000fc2578489015162000fbe601f89168262000eb2565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001065578086048111156200103d576200103c62000fd7565b5b60018516156200104d5780820291505b80810290506200105d8562001006565b94506200101d565b94509492505050565b60008262001080576001905062001153565b8162001090576000905062001153565b8160018114620010a95760028114620010b457620010ea565b600191505062001153565b60ff841115620010c957620010c862000fd7565b5b8360020a915084821115620010e357620010e262000fd7565b5b5062001153565b5060208310610133831016604e8410600b8410161715620011245782820a9050838111156200111e576200111d62000fd7565b5b62001153565b62001133848484600162001013565b925090508184048111156200114d576200114c62000fd7565b5b81810290505b9392505050565b600060ff82169050919050565b6000620011748262000d9c565b915062001181836200115a565b9250620011b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200106e565b905092915050565b6000620011c58262000d9c565b9150620011d28362000d9c565b9250828202620011e28162000d9c565b91508282048414831517620011fc57620011fb62000fd7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200123f8262000d9c565b91506200124c8362000d9c565b9250826200125f576200125e62001203565b5b828204905092915050565b620012758162000d9c565b82525050565b60006020820190506200129260008301846200126a565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620012ca826200129d565b9050919050565b620012dc81620012bd565b8114620012e857600080fd5b50565b600081519050620012fc81620012d1565b92915050565b6000602082840312156200131b576200131a62001298565b5b60006200132b84828501620012eb565b91505092915050565b6200133f81620012bd565b82525050565b60006040820190506200135c600083018562001334565b6200136b602083018462001334565b9392505050565b600060408201905062001389600083018562001334565b6200139860208301846200126a565b9392505050565b60008115159050919050565b620013b6816200139f565b8114620013c257600080fd5b50565b600081519050620013d681620013ab565b92915050565b600060208284031215620013f557620013f462001298565b5b60006200140584828501620013c5565b91505092915050565b600082825260208201905092915050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6000620014576011836200140e565b915062001464826200141f565b602082019050919050565b600060208201905081810360008301526200148a8162001448565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000620014c96008836200140e565b9150620014d68262001491565b602082019050919050565b60006020820190508181036000830152620014fc81620014ba565b9050919050565b613ad480620015136000396000f3fe6080604052600436106101dc5760003560e01c806365b61b7711610102578063a67755c211610095578063cefab2af11610064578063cefab2af14610695578063dd62ed3e146106c0578063f2fde38b146106fd578063f887ea4014610726576101e3565b8063a67755c2146105ef578063a9059cbb14610618578063bc2b8fb714610655578063bc76c0521461067e576101e3565b80637cc5b1e6116100d15780637cc5b1e6146105455780638da5cb5b146105705780638ff4013f1461059b57806395d89b41146105c4576101e3565b806365b61b77146104af5780636c580801146104da57806370a08231146104f1578063715018a61461052e576101e3565b80633455a9db1161017a5780633f80b6d7116101495780633f80b6d7146104075780634bf28fd014610430578063553193ca1461045b5780636402511e14610486576101e3565b80633455a9db1461033957806336b2e027146103645780633e0cdeb1146103a15780633ecad271146103ca576101e3565b80631b583749116101b65780631b5837491461027b57806323b872dd146102a657806327b1a8e9146102e3578063313ce5671461030e576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610751565b60405161020a9190612c46565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612d10565b6107e3565b6040516102479190612d6b565b60405180910390f35b34801561025c57600080fd5b506102656107fa565b6040516102729190612d95565b60405180910390f35b34801561028757600080fd5b50610290610804565b60405161029d9190612d95565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190612db0565b61080a565b6040516102da9190612d6b565b60405180910390f35b3480156102ef57600080fd5b506102f86109b0565b6040516103059190612d95565b60405180910390f35b34801561031a57600080fd5b506103236109b6565b6040516103309190612e1f565b60405180910390f35b34801561034557600080fd5b5061034e6109cd565b60405161035b9190612e49565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612e64565b6109f3565b6040516103989190612d6b565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612ecf565b610a13565b005b3480156103d657600080fd5b506103f160048036038101906103ec9190612e64565b610b3d565b6040516103fe9190612d6b565b60405180910390f35b34801561041357600080fd5b5061042e60048036038101906104299190612efc565b610b5d565b005b34801561043c57600080fd5b50610445610c15565b6040516104529190612e49565b60405180910390f35b34801561046757600080fd5b50610470610c3b565b60405161047d9190612d95565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a89190612f77565b610c41565b005b3480156104bb57600080fd5b506104c4610cd9565b6040516104d19190613003565b60405180910390f35b3480156104e657600080fd5b506104ef610cff565b005b3480156104fd57600080fd5b5061051860048036038101906105139190612e64565b610da8565b6040516105259190612d95565b60405180910390f35b34801561053a57600080fd5b50610543610df1565b005b34801561055157600080fd5b5061055a610f3d565b604051610567919061302d565b60405180910390f35b34801561057c57600080fd5b50610585610f63565b6040516105929190612e49565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190612f77565b610f8c565b005b3480156105d057600080fd5b506105d9611024565b6040516105e69190612c46565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190612e64565b6110b6565b005b34801561062457600080fd5b5061063f600480360381019061063a9190612d10565b611270565b60405161064c9190612d6b565b60405180910390f35b34801561066157600080fd5b5061067c600480360381019061067791906130ad565b611287565b005b34801561068a57600080fd5b506106936116b0565b005b3480156106a157600080fd5b506106aa61176a565b6040516106b79190612d6b565b60405180910390f35b3480156106cc57600080fd5b506106e760048036038101906106e29190613121565b61177d565b6040516106f49190612d95565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190612e64565b611804565b005b34801561073257600080fd5b5061073b6119be565b6040516107489190612e49565b60405180910390f35b60606006805461076090613190565b80601f016020809104026020016040519081016040528092919081815260200182805461078c90613190565b80156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f03384846119e4565b6001905092915050565b6000600a54905090565b60195481565b6000610817848484611acf565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109a55781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461092491906131f0565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600f5481565b6000600860009054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610aba57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af090613270565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be2906132dc565b60405180910390fd5b84601281905550836013819055508260148190555081601581905550806016819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc6906132dc565b60405180910390fd5b8060188190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d84906132dc565b60405180910390fd5b6000601a5414610d9e576000610da0565b435b601a81905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e76906132dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611011906132dc565b60405180910390fd5b8060198190555050565b60606007805461103390613190565b80601f016020809104026020016040519081016040528092919081815260200182805461105f90613190565b80156110ac5780601f10611081576101008083540402835291602001916110ac565b820191906000526020600020905b81548152906001019060200180831161108f57829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461126d578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111619190612e49565b602060405180830381865afa15801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190613311565b6040518363ffffffff1660e01b81526004016111bf92919061335f565b6020604051808303816000875af11580156111de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120291906133b4565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561126b573d6000803e3d6000fd5b505b50565b600061127d338484611acf565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c906132dc565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a891906133f6565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b8152600401611409929190613423565b6020604051808303816000875af1158015611428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144c91906133b4565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016114a49190612e49565b602060405180830381865afa1580156114c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e59190613311565b6040518463ffffffff1660e01b81526004016115039392919061344c565b6020604051808303816000875af1158015611522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154691906133b4565b5060005b84849050811015611599576115868386868481811061156c5761156b613483565b5b90506020020160208101906115819190612e64565b611f83565b8080611591906134b2565b91505061154a565b5043601a8190555060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115dc9190612e49565b602060405180830381865afa1580156115f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161d9190613311565b905060008111156116a8578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b8152600401611663929190613423565b6020604051808303816000875af1158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a691906133b4565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611735906132dc565b60405180910390fd5b601760009054906101000a900460ff1615601760006101000a81548160ff021916908315150217905550565b601760009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906132dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f890613546565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ac29190612d95565b60405180910390a3505050565b6000611ada84610da8565b905060008211611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b16906135d8565b60405180910390fd5b600d60009054906101000a900460ff1615611b4657611b3f848484612429565b5050611f7e565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611bae5750600d60009054906101000a900460ff16155b8015611c045750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c5a5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c695750601654600f54115b15611cdc576000839050611c7c30610da8565b811115611cc657600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601854811115611cda57611cd981612547565b5b505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d805750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d995750600d60009054906101000a900460ff16155b15611f6f576000601a5411611dad57600080fd5b60019050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e585750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611eae5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f3057600f6000815480929190611ec6906134b2565b919050555060006019541115611f2f5760195483611ee386610da8565b611eed91906135f8565b1115611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2590613678565b60405180910390fd5b5b5b601760009054906101000a900460ff168015611f4b57508183145b15611f6e576305f5e10083611f6091906136c7565b83611f6b91906131f0565b92505b5b611f7b858585846127b5565b50505b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203191906133f6565b90506000600267ffffffffffffffff8111156120505761204f6136f8565b5b60405190808252806020026020018201604052801561207e5781602001602082028036833780820191505090505b509050818160008151811061209657612095613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106120e5576120e4613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff81111561213c5761213b6136f8565b5b60405190808252806020026020018201604052801561216a5781602001602082028036833780820191505090505b509050308160008151811061218257612181613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082816001815181106121d1576121d0613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122469190612e49565b602060405180830381865afa158015612263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122879190613311565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b81526004016122e89291906137e5565b600060405180830381865afa158015612305573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061232e9190613924565b60018151811061234157612340613483565b5b60200260200101519050818111612358578061235a565b815b90506000810361236e57505050505061240a565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795826000878a426040518663ffffffff1660e01b81526004016123d29594939291906139a8565b600060405180830381600087803b1580156123ec57600080fd5b505af1158015612400573d6000803e3d6000fd5b5050505050505050505b6000600d60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461247a91906131f0565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124d091906135f8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125349190612d95565b60405180910390a3600190509392505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561257f5761257e6136f8565b5b6040519080825280602002602001820160405280156125ad5781602001602082028036833780820191505090505b50905030816000815181106125c5576125c4613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561266c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269091906133f6565b816001815181106126a4576126a3613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612764959493929190613a02565b600060405180830381600087803b15801561277e57600080fd5b505af1158015612792573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128955781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285191906131f0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008115612aa6576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561290f57601554600f541161290457601154612908565b6013545b905061297c565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561297b57601454600f541161297457601054612978565b6012545b90505b5b60006064828661298c9190613a5c565b61299691906136c7565b90506000811115612aa35780836129ad91906135f8565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129fa91906135f8565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a9a9190612d95565b60405180910390a35b50505b8083612ab291906131f0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afc91906135f8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612b9a91906131f0565b604051612ba79190612d95565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bf0578082015181840152602081019050612bd5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c1882612bb6565b612c228185612bc1565b9350612c32818560208601612bd2565b612c3b81612bfc565b840191505092915050565b60006020820190508181036000830152612c608184612c0d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ca782612c7c565b9050919050565b612cb781612c9c565b8114612cc257600080fd5b50565b600081359050612cd481612cae565b92915050565b6000819050919050565b612ced81612cda565b8114612cf857600080fd5b50565b600081359050612d0a81612ce4565b92915050565b60008060408385031215612d2757612d26612c72565b5b6000612d3585828601612cc5565b9250506020612d4685828601612cfb565b9150509250929050565b60008115159050919050565b612d6581612d50565b82525050565b6000602082019050612d806000830184612d5c565b92915050565b612d8f81612cda565b82525050565b6000602082019050612daa6000830184612d86565b92915050565b600080600060608486031215612dc957612dc8612c72565b5b6000612dd786828701612cc5565b9350506020612de886828701612cc5565b9250506040612df986828701612cfb565b9150509250925092565b600060ff82169050919050565b612e1981612e03565b82525050565b6000602082019050612e346000830184612e10565b92915050565b612e4381612c9c565b82525050565b6000602082019050612e5e6000830184612e3a565b92915050565b600060208284031215612e7a57612e79612c72565b5b6000612e8884828501612cc5565b91505092915050565b6000612e9c82612c7c565b9050919050565b612eac81612e91565b8114612eb757600080fd5b50565b600081359050612ec981612ea3565b92915050565b600060208284031215612ee557612ee4612c72565b5b6000612ef384828501612eba565b91505092915050565b600080600080600060a08688031215612f1857612f17612c72565b5b6000612f2688828901612cfb565b9550506020612f3788828901612cfb565b9450506040612f4888828901612cfb565b9350506060612f5988828901612cfb565b9250506080612f6a88828901612cfb565b9150509295509295909350565b600060208284031215612f8d57612f8c612c72565b5b6000612f9b84828501612cfb565b91505092915050565b6000819050919050565b6000612fc9612fc4612fbf84612c7c565b612fa4565b612c7c565b9050919050565b6000612fdb82612fae565b9050919050565b6000612fed82612fd0565b9050919050565b612ffd81612fe2565b82525050565b60006020820190506130186000830184612ff4565b92915050565b61302781612e91565b82525050565b6000602082019050613042600083018461301e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261306d5761306c613048565b5b8235905067ffffffffffffffff81111561308a5761308961304d565b5b6020830191508360208202830111156130a6576130a5613052565b5b9250929050565b600080600080606085870312156130c7576130c6612c72565b5b60006130d587828801612cc5565b945050602085013567ffffffffffffffff8111156130f6576130f5612c77565b5b61310287828801613057565b9350935050604061311587828801612cfb565b91505092959194509250565b6000806040838503121561313857613137612c72565b5b600061314685828601612cc5565b925050602061315785828601612cc5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806131a857607f821691505b6020821081036131bb576131ba613161565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131fb82612cda565b915061320683612cda565b925082820390508181111561321e5761321d6131c1565b5b92915050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b600061325a600783612bc1565b915061326582613224565b602082019050919050565b600060208201905081810360008301526132898161324d565b9050919050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b60006132c6601183612bc1565b91506132d182613290565b602082019050919050565b600060208201905081810360008301526132f5816132b9565b9050919050565b60008151905061330b81612ce4565b92915050565b60006020828403121561332757613326612c72565b5b6000613335848285016132fc565b91505092915050565b600061334982612fd0565b9050919050565b6133598161333e565b82525050565b60006040820190506133746000830185613350565b6133816020830184612d86565b9392505050565b61339181612d50565b811461339c57600080fd5b50565b6000815190506133ae81613388565b92915050565b6000602082840312156133ca576133c9612c72565b5b60006133d88482850161339f565b91505092915050565b6000815190506133f081612cae565b92915050565b60006020828403121561340c5761340b612c72565b5b600061341a848285016133e1565b91505092915050565b60006040820190506134386000830185612e3a565b6134456020830184612d86565b9392505050565b60006060820190506134616000830186612e3a565b61346e6020830185612e3a565b61347b6040830184612d86565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134bd82612cda565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134ef576134ee6131c1565b5b600182019050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000613530600883612bc1565b915061353b826134fa565b602082019050919050565b6000602082019050818103600083015261355f81613523565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135c2602983612bc1565b91506135cd82613566565b604082019050919050565b600060208201905081810360008301526135f1816135b5565b9050919050565b600061360382612cda565b915061360e83612cda565b9250828201905080821115613626576136256131c1565b5b92915050565b7f77616c6c65746c696d6974000000000000000000000000000000000000000000600082015250565b6000613662600b83612bc1565b915061366d8261362c565b602082019050919050565b6000602082019050818103600083015261369181613655565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136d282612cda565b91506136dd83612cda565b9250826136ed576136ec613698565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61375c81612c9c565b82525050565b600061376e8383613753565b60208301905092915050565b6000602082019050919050565b600061379282613727565b61379c8185613732565b93506137a783613743565b8060005b838110156137d85781516137bf8882613762565b97506137ca8361377a565b9250506001810190506137ab565b5085935050505092915050565b60006040820190506137fa6000830185612d86565b818103602083015261380c8184613787565b90509392505050565b61381e82612bfc565b810181811067ffffffffffffffff8211171561383d5761383c6136f8565b5b80604052505050565b6000613850612c68565b905061385c8282613815565b919050565b600067ffffffffffffffff82111561387c5761387b6136f8565b5b602082029050602081019050919050565b60006138a061389b84613861565b613846565b905080838252602082019050602084028301858111156138c3576138c2613052565b5b835b818110156138ec57806138d888826132fc565b8452602084019350506020810190506138c5565b5050509392505050565b600082601f83011261390b5761390a613048565b5b815161391b84826020860161388d565b91505092915050565b60006020828403121561393a57613939612c72565b5b600082015167ffffffffffffffff81111561395857613957612c77565b5b613964848285016138f6565b91505092915050565b6000819050919050565b600061399261398d6139888461396d565b612fa4565b612cda565b9050919050565b6139a281613977565b82525050565b600060a0820190506139bd6000830188612d86565b6139ca6020830187613999565b81810360408301526139dc8186613787565b90506139eb6060830185612e3a565b6139f86080830184612d86565b9695505050505050565b600060a082019050613a176000830188612d86565b613a246020830187613999565b8181036040830152613a368186613787565b9050613a456060830185613350565b613a526080830184612d86565b9695505050505050565b6000613a6782612cda565b9150613a7283612cda565b9250828202613a8081612cda565b91508282048414831517613a9757613a966131c1565b5b509291505056fea26469706673582212201c60bf54c4d9484e2e0ecb0747f85228469e3c2af5abc1a64038bac0a7102cae64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c806365b61b7711610102578063a67755c211610095578063cefab2af11610064578063cefab2af14610695578063dd62ed3e146106c0578063f2fde38b146106fd578063f887ea4014610726576101e3565b8063a67755c2146105ef578063a9059cbb14610618578063bc2b8fb714610655578063bc76c0521461067e576101e3565b80637cc5b1e6116100d15780637cc5b1e6146105455780638da5cb5b146105705780638ff4013f1461059b57806395d89b41146105c4576101e3565b806365b61b77146104af5780636c580801146104da57806370a08231146104f1578063715018a61461052e576101e3565b80633455a9db1161017a5780633f80b6d7116101495780633f80b6d7146104075780634bf28fd014610430578063553193ca1461045b5780636402511e14610486576101e3565b80633455a9db1461033957806336b2e027146103645780633e0cdeb1146103a15780633ecad271146103ca576101e3565b80631b583749116101b65780631b5837491461027b57806323b872dd146102a657806327b1a8e9146102e3578063313ce5671461030e576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610751565b60405161020a9190612c46565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612d10565b6107e3565b6040516102479190612d6b565b60405180910390f35b34801561025c57600080fd5b506102656107fa565b6040516102729190612d95565b60405180910390f35b34801561028757600080fd5b50610290610804565b60405161029d9190612d95565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190612db0565b61080a565b6040516102da9190612d6b565b60405180910390f35b3480156102ef57600080fd5b506102f86109b0565b6040516103059190612d95565b60405180910390f35b34801561031a57600080fd5b506103236109b6565b6040516103309190612e1f565b60405180910390f35b34801561034557600080fd5b5061034e6109cd565b60405161035b9190612e49565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612e64565b6109f3565b6040516103989190612d6b565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612ecf565b610a13565b005b3480156103d657600080fd5b506103f160048036038101906103ec9190612e64565b610b3d565b6040516103fe9190612d6b565b60405180910390f35b34801561041357600080fd5b5061042e60048036038101906104299190612efc565b610b5d565b005b34801561043c57600080fd5b50610445610c15565b6040516104529190612e49565b60405180910390f35b34801561046757600080fd5b50610470610c3b565b60405161047d9190612d95565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a89190612f77565b610c41565b005b3480156104bb57600080fd5b506104c4610cd9565b6040516104d19190613003565b60405180910390f35b3480156104e657600080fd5b506104ef610cff565b005b3480156104fd57600080fd5b5061051860048036038101906105139190612e64565b610da8565b6040516105259190612d95565b60405180910390f35b34801561053a57600080fd5b50610543610df1565b005b34801561055157600080fd5b5061055a610f3d565b604051610567919061302d565b60405180910390f35b34801561057c57600080fd5b50610585610f63565b6040516105929190612e49565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd9190612f77565b610f8c565b005b3480156105d057600080fd5b506105d9611024565b6040516105e69190612c46565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190612e64565b6110b6565b005b34801561062457600080fd5b5061063f600480360381019061063a9190612d10565b611270565b60405161064c9190612d6b565b60405180910390f35b34801561066157600080fd5b5061067c600480360381019061067791906130ad565b611287565b005b34801561068a57600080fd5b506106936116b0565b005b3480156106a157600080fd5b506106aa61176a565b6040516106b79190612d6b565b60405180910390f35b3480156106cc57600080fd5b506106e760048036038101906106e29190613121565b61177d565b6040516106f49190612d95565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f9190612e64565b611804565b005b34801561073257600080fd5b5061073b6119be565b6040516107489190612e49565b60405180910390f35b60606006805461076090613190565b80601f016020809104026020016040519081016040528092919081815260200182805461078c90613190565b80156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f03384846119e4565b6001905092915050565b6000600a54905090565b60195481565b6000610817848484611acf565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109a55781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461092491906131f0565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600f5481565b6000600860009054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610aba57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af090613270565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be2906132dc565b60405180910390fd5b84601281905550836013819055508260148190555081601581905550806016819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc6906132dc565b60405180910390fd5b8060188190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d84906132dc565b60405180910390fd5b6000601a5414610d9e576000610da0565b435b601a81905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e76906132dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611011906132dc565b60405180910390fd5b8060198190555050565b60606007805461103390613190565b80601f016020809104026020016040519081016040528092919081815260200182805461105f90613190565b80156110ac5780601f10611081576101008083540402835291602001916110ac565b820191906000526020600020905b81548152906001019060200180831161108f57829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461126d578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111619190612e49565b602060405180830381865afa15801561117e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a29190613311565b6040518363ffffffff1660e01b81526004016111bf92919061335f565b6020604051808303816000875af11580156111de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120291906133b4565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561126b573d6000803e3d6000fd5b505b50565b600061127d338484611acf565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130c906132dc565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a891906133f6565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b8152600401611409929190613423565b6020604051808303816000875af1158015611428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144c91906133b4565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016114a49190612e49565b602060405180830381865afa1580156114c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e59190613311565b6040518463ffffffff1660e01b81526004016115039392919061344c565b6020604051808303816000875af1158015611522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154691906133b4565b5060005b84849050811015611599576115868386868481811061156c5761156b613483565b5b90506020020160208101906115819190612e64565b611f83565b8080611591906134b2565b91505061154a565b5043601a8190555060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115dc9190612e49565b602060405180830381865afa1580156115f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161d9190613311565b905060008111156116a8578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b8152600401611663929190613423565b6020604051808303816000875af1158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a691906133b4565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461173e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611735906132dc565b60405180910390fd5b601760009054906101000a900460ff1615601760006101000a81548160ff021916908315150217905550565b601760009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906132dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f890613546565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ac29190612d95565b60405180910390a3505050565b6000611ada84610da8565b905060008211611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b16906135d8565b60405180910390fd5b600d60009054906101000a900460ff1615611b4657611b3f848484612429565b5050611f7e565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611bae5750600d60009054906101000a900460ff16155b8015611c045750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c5a5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c695750601654600f54115b15611cdc576000839050611c7c30610da8565b811115611cc657600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601854811115611cda57611cd981612547565b5b505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d805750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d995750600d60009054906101000a900460ff16155b15611f6f576000601a5411611dad57600080fd5b60019050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e585750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611eae5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f3057600f6000815480929190611ec6906134b2565b919050555060006019541115611f2f5760195483611ee386610da8565b611eed91906135f8565b1115611f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2590613678565b60405180910390fd5b5b5b601760009054906101000a900460ff168015611f4b57508183145b15611f6e576305f5e10083611f6091906136c7565b83611f6b91906131f0565b92505b5b611f7b858585846127b5565b50505b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203191906133f6565b90506000600267ffffffffffffffff8111156120505761204f6136f8565b5b60405190808252806020026020018201604052801561207e5781602001602082028036833780820191505090505b509050818160008151811061209657612095613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106120e5576120e4613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff81111561213c5761213b6136f8565b5b60405190808252806020026020018201604052801561216a5781602001602082028036833780820191505090505b509050308160008151811061218257612181613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082816001815181106121d1576121d0613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016122469190612e49565b602060405180830381865afa158015612263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122879190613311565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b81526004016122e89291906137e5565b600060405180830381865afa158015612305573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061232e9190613924565b60018151811061234157612340613483565b5b60200260200101519050818111612358578061235a565b815b90506000810361236e57505050505061240a565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795826000878a426040518663ffffffff1660e01b81526004016123d29594939291906139a8565b600060405180830381600087803b1580156123ec57600080fd5b505af1158015612400573d6000803e3d6000fd5b5050505050505050505b6000600d60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461247a91906131f0565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124d091906135f8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125349190612d95565b60405180910390a3600190509392505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561257f5761257e6136f8565b5b6040519080825280602002602001820160405280156125ad5781602001602082028036833780820191505090505b50905030816000815181106125c5576125c4613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561266c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269091906133f6565b816001815181106126a4576126a3613483565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612764959493929190613a02565b600060405180830381600087803b15801561277e57600080fd5b505af1158015612792573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166128955781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285191906131f0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60008115612aa6576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561290f57601554600f541161290457601154612908565b6013545b905061297c565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561297b57601454600f541161297457601054612978565b6012545b90505b5b60006064828661298c9190613a5c565b61299691906136c7565b90506000811115612aa35780836129ad91906135f8565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129fa91906135f8565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a9a9190612d95565b60405180910390a35b50505b8083612ab291906131f0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612afc91906135f8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612b9a91906131f0565b604051612ba79190612d95565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bf0578082015181840152602081019050612bd5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c1882612bb6565b612c228185612bc1565b9350612c32818560208601612bd2565b612c3b81612bfc565b840191505092915050565b60006020820190508181036000830152612c608184612c0d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ca782612c7c565b9050919050565b612cb781612c9c565b8114612cc257600080fd5b50565b600081359050612cd481612cae565b92915050565b6000819050919050565b612ced81612cda565b8114612cf857600080fd5b50565b600081359050612d0a81612ce4565b92915050565b60008060408385031215612d2757612d26612c72565b5b6000612d3585828601612cc5565b9250506020612d4685828601612cfb565b9150509250929050565b60008115159050919050565b612d6581612d50565b82525050565b6000602082019050612d806000830184612d5c565b92915050565b612d8f81612cda565b82525050565b6000602082019050612daa6000830184612d86565b92915050565b600080600060608486031215612dc957612dc8612c72565b5b6000612dd786828701612cc5565b9350506020612de886828701612cc5565b9250506040612df986828701612cfb565b9150509250925092565b600060ff82169050919050565b612e1981612e03565b82525050565b6000602082019050612e346000830184612e10565b92915050565b612e4381612c9c565b82525050565b6000602082019050612e5e6000830184612e3a565b92915050565b600060208284031215612e7a57612e79612c72565b5b6000612e8884828501612cc5565b91505092915050565b6000612e9c82612c7c565b9050919050565b612eac81612e91565b8114612eb757600080fd5b50565b600081359050612ec981612ea3565b92915050565b600060208284031215612ee557612ee4612c72565b5b6000612ef384828501612eba565b91505092915050565b600080600080600060a08688031215612f1857612f17612c72565b5b6000612f2688828901612cfb565b9550506020612f3788828901612cfb565b9450506040612f4888828901612cfb565b9350506060612f5988828901612cfb565b9250506080612f6a88828901612cfb565b9150509295509295909350565b600060208284031215612f8d57612f8c612c72565b5b6000612f9b84828501612cfb565b91505092915050565b6000819050919050565b6000612fc9612fc4612fbf84612c7c565b612fa4565b612c7c565b9050919050565b6000612fdb82612fae565b9050919050565b6000612fed82612fd0565b9050919050565b612ffd81612fe2565b82525050565b60006020820190506130186000830184612ff4565b92915050565b61302781612e91565b82525050565b6000602082019050613042600083018461301e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261306d5761306c613048565b5b8235905067ffffffffffffffff81111561308a5761308961304d565b5b6020830191508360208202830111156130a6576130a5613052565b5b9250929050565b600080600080606085870312156130c7576130c6612c72565b5b60006130d587828801612cc5565b945050602085013567ffffffffffffffff8111156130f6576130f5612c77565b5b61310287828801613057565b9350935050604061311587828801612cfb565b91505092959194509250565b6000806040838503121561313857613137612c72565b5b600061314685828601612cc5565b925050602061315785828601612cc5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806131a857607f821691505b6020821081036131bb576131ba613161565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131fb82612cda565b915061320683612cda565b925082820390508181111561321e5761321d6131c1565b5b92915050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b600061325a600783612bc1565b915061326582613224565b602082019050919050565b600060208201905081810360008301526132898161324d565b9050919050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b60006132c6601183612bc1565b91506132d182613290565b602082019050919050565b600060208201905081810360008301526132f5816132b9565b9050919050565b60008151905061330b81612ce4565b92915050565b60006020828403121561332757613326612c72565b5b6000613335848285016132fc565b91505092915050565b600061334982612fd0565b9050919050565b6133598161333e565b82525050565b60006040820190506133746000830185613350565b6133816020830184612d86565b9392505050565b61339181612d50565b811461339c57600080fd5b50565b6000815190506133ae81613388565b92915050565b6000602082840312156133ca576133c9612c72565b5b60006133d88482850161339f565b91505092915050565b6000815190506133f081612cae565b92915050565b60006020828403121561340c5761340b612c72565b5b600061341a848285016133e1565b91505092915050565b60006040820190506134386000830185612e3a565b6134456020830184612d86565b9392505050565b60006060820190506134616000830186612e3a565b61346e6020830185612e3a565b61347b6040830184612d86565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134bd82612cda565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134ef576134ee6131c1565b5b600182019050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000613530600883612bc1565b915061353b826134fa565b602082019050919050565b6000602082019050818103600083015261355f81613523565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135c2602983612bc1565b91506135cd82613566565b604082019050919050565b600060208201905081810360008301526135f1816135b5565b9050919050565b600061360382612cda565b915061360e83612cda565b9250828201905080821115613626576136256131c1565b5b92915050565b7f77616c6c65746c696d6974000000000000000000000000000000000000000000600082015250565b6000613662600b83612bc1565b915061366d8261362c565b602082019050919050565b6000602082019050818103600083015261369181613655565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136d282612cda565b91506136dd83612cda565b9250826136ed576136ec613698565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61375c81612c9c565b82525050565b600061376e8383613753565b60208301905092915050565b6000602082019050919050565b600061379282613727565b61379c8185613732565b93506137a783613743565b8060005b838110156137d85781516137bf8882613762565b97506137ca8361377a565b9250506001810190506137ab565b5085935050505092915050565b60006040820190506137fa6000830185612d86565b818103602083015261380c8184613787565b90509392505050565b61381e82612bfc565b810181811067ffffffffffffffff8211171561383d5761383c6136f8565b5b80604052505050565b6000613850612c68565b905061385c8282613815565b919050565b600067ffffffffffffffff82111561387c5761387b6136f8565b5b602082029050602081019050919050565b60006138a061389b84613861565b613846565b905080838252602082019050602084028301858111156138c3576138c2613052565b5b835b818110156138ec57806138d888826132fc565b8452602084019350506020810190506138c5565b5050509392505050565b600082601f83011261390b5761390a613048565b5b815161391b84826020860161388d565b91505092915050565b60006020828403121561393a57613939612c72565b5b600082015167ffffffffffffffff81111561395857613957612c77565b5b613964848285016138f6565b91505092915050565b6000819050919050565b600061399261398d6139888461396d565b612fa4565b612cda565b9050919050565b6139a281613977565b82525050565b600060a0820190506139bd6000830188612d86565b6139ca6020830187613999565b81810360408301526139dc8186613787565b90506139eb6060830185612e3a565b6139f86080830184612d86565b9695505050505050565b600060a082019050613a176000830188612d86565b613a246020830187613999565b8181036040830152613a368186613787565b9050613a456060830185613350565b613a526080830184612d86565b9695505050505050565b6000613a6782612cda565b9150613a7283612cda565b9250828202613a8081612cda565b91508282048414831517613a9757613a966131c1565b5b509291505056fea26469706673582212201c60bf54c4d9484e2e0ecb0747f85228469e3c2af5abc1a64038bac0a7102cae64736f6c63430008110033

Deployed Bytecode Sourcemap

3266:10818:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5714:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6527:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5918:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8639:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6719:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7617:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3510:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3763:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5511:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3897:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7950:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4023:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11640:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8529:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3854:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11679:115;;;;;;;;;;;;;:::i;:::-;;6026:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:148;;;;;;;;;;;;;:::i;:::-;;3588:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8673:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5608:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13344:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6153:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11802:675;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8404:88;;;;;;;;;;;;;:::i;:::-;;8364:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6351:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3437:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5714:94;5762:13;5795:5;5788:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5714:94;:::o;6527:184::-;6627:4;6644:37;6653:10;6665:7;6674:6;6644:8;:37::i;:::-;6699:4;6692:11;;6527:184;;;;:::o;5918:100::-;5971:7;5998:12;;5991:19;;5918:100;:::o;8639:25::-;;;;:::o;6719:404::-;6851:4;6868:36;6878:6;6886:9;6897:6;6868:9;:36::i;:::-;4014:1;4005:11;6919;:19;6931:6;6919:19;;;;;;;;;;;;;;;:31;6939:10;6919:31;;;;;;;;;;;;;;;;:38;6915:179;;7076:6;7025:11;:19;7037:6;7025:19;;;;;;;;;;;;;;;:31;7045:10;7025:31;;;;;;;;;;;;;;;;:57;;;;:::i;:::-;6974:11;:19;6986:6;6974:19;;;;;;;;;;;;;;;:31;6994:10;6974:31;;;;;;;;;;;;;;;:108;;;;6915:179;7111:4;7104:11;;6719:404;;;;;:::o;7617:28::-;;;;:::o;5816:94::-;5868:5;5893:9;;;;;;;;;;;5886:16;;5816:94;:::o;3510:71::-;;;;;;;;;;;;;:::o;3763:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5511:89::-;5426:10;5416:20;;:6;;;;;;;;;;:20;;;:49;;;;5455:10;5440:25;;:11;;;;;;;;;;;:25;;;5416:49;5408:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;5586:6:::1;5580:3;;:12;;;;;;;;;;;;;;;;;;5511:89:::0;:::o;3897:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7950:406::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8172:6:::1;8157:12;:21;;;;8205:7;8189:13;:23;;;;8241:12;8223:15;:30;;;;8283:13;8264:16;:32;;;;8328:20;8307:18;:41;;;;7950:406:::0;;;;;:::o;4023:27::-;;;;;;;;;;;;;:::o;11640:30::-;;;;:::o;8529:102::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8615:8:::1;8600:12;:23;;;;8529:102:::0;:::o;3854:36::-;;;;;;;;;;;;;:::o;11679:115::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11766:1:::1;11747:15;;:20;:39;;11785:1;11747:39;;;11770:12;11747:39;11729:15;:57;;;;11679:115::o:0;6026:119::-;6092:7;6119:9;:18;6129:7;6119:18;;;;;;;;;;;;;;;;6112:25;;6026:119;;;:::o;2889:148::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2996:1:::1;2959:40;;2980:6;::::0;::::1;;;;;;;;2959:40;;;;;;;;;;;;3027:1;3010:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2889:148::o:0;3588:80::-;;;;;;;;;;;;;:::o;2686:79::-;2724:7;2751:6;;;;;;;;;;;2744:13;;2686:79;:::o;8673:97::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8754:8:::1;8741:10;:21;;;;8673:97:::0;:::o;5608:98::-;5658:13;5691:7;5684:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5608:98;:::o;13344:288::-;13423:4;13405:23;;:6;:23;;;13401:224;;13452:6;13445:23;;;13487:3;;;;;;;;;;;13516:6;13509:24;;;13542:4;13509:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13445:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13578:3;;;;;;;;;;;:12;;:35;13591:21;13578:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13401:224;13344:288;:::o;6153:190::-;6256:4;6273:40;6283:10;6295:9;6306:6;6273:9;:40::i;:::-;6331:4;6324:11;;6153:190;;;;:::o;11802:675::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11937:12:::1;11952:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11937:36;;11991:4;11984:20;;;12013:14;;;;;;;;;;;12039:1;12030:11;11984:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12060:4;12053:25;;;12093:5;12121:4;12148;12141:22;;;12164:5;12141:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12053:128;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12197:6;12192:89;12213:4;;:11;;12209:1;:15;12192:89;;;12246:23;12256:3;12261:4;;12266:1;12261:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12246:9;:23::i;:::-;12226:3;;;;;:::i;:::-;;;;12192:89;;;;12309:12;12291:15;:30;;;;12332:12;12354:4;12347:22;;;12378:4;12347:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12332:52;;12406:1;12399:4;:8;12395:75;;;12431:4;12424:21;;;12446:5;12453:4;12424:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12395:75;11926:551;;11802:675:::0;;;;:::o;8404:88::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8472:12:::1;;;;;;;;;;;8471:13;8456:12;;:28;;;;;;;;;;;;;;;;;;8404:88::o:0;8364:31::-;;;;;;;;;;;;;:::o;6351:168::-;6457:7;6484:11;:18;6496:5;6484:18;;;;;;;;;;;;;;;:27;6503:7;6484:27;;;;;;;;;;;;;;;;6477:34;;6351:168;;;;:::o;3045:214::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3154:1:::1;3134:22;;:8;:22;;::::0;3126:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3214:8;3185:38;;3206:6;::::0;::::1;;;;;;;;3185:38;;;;;;;;;;;;3243:8;3234:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3045:214:::0;:::o;3437:66::-;;;;;;;;;;;;;:::o;7131:177::-;7246:6;7216:11;:18;7228:5;7216:18;;;;;;;;;;;;;;;:27;7235:7;7216:27;;;;;;;;;;;;;;;:36;;;;7284:7;7268:32;;7277:5;7268:32;;;7293:6;7268:32;;;;;;:::i;:::-;;;;;;;;7131:177;;;:::o;8778:1636::-;8858:15;8876;8886:4;8876:9;:15::i;:::-;8858:33;;8920:1;8911:6;:10;8903:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8984:6;;;;;;;;;;;8980:92;;;9007:32;9022:4;9028:2;9032:6;9007:14;:32::i;:::-;;9054:7;;;8980:92;9084:12;9127;:16;9140:2;9127:16;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;9161:6;;;;;;;;;;;9160:7;9127:40;:81;;;;;9185:17;:23;9203:4;9185:23;;;;;;;;;;;;;;;;;;;;;;;;;9184:24;9127:81;:120;;;;;9226:17;:21;9244:2;9226:21;;;;;;;;;;;;;;;;;;;;;;;;;9225:22;9127:120;:167;;;;;9276:18;;9264:9;;:30;9127:167;9109:502;;;9321:21;9345:6;9321:30;;9386:24;9404:4;9386:9;:24::i;:::-;9370:13;:40;9366:121;;;9447:9;:24;9465:4;9447:24;;;;;;;;;;;;;;;;9431:40;;9366:121;9521:12;;9505:13;:28;9501:99;;;9554:30;9570:13;9554:15;:30::i;:::-;9501:99;9306:305;9109:502;9628:17;:23;9646:4;9628:23;;;;;;;;;;;;;;;;;;;;;;;;;9627:24;:50;;;;;9656:17;:21;9674:2;9656:21;;;;;;;;;;;;;;;;;;;;;;;;;9655:22;9627:50;:61;;;;;9682:6;;;;;;;;;;;9681:7;9627:61;9623:730;;;9731:1;9713:15;;:19;9705:28;;;;;;9758:4;9748:14;;9814:12;:18;9827:4;9814:18;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;9867:14;;;;;;;;;;;9853:29;;:2;:29;;;;9814:68;:111;;;;;9904:17;:21;9922:2;9904:21;;;;;;;;;;;;;;;;;;;;;;;;;9903:22;9814:111;9792:409;;;9960:9;;:11;;;;;;;;;:::i;:::-;;;;;;10007:1;9994:10;;:14;9990:196;;;10093:10;;10083:6;10067:13;10077:2;10067:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;10033:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9990:196;9792:409;10234:12;;;;;;;;;;;:33;;;;;10260:7;10250:6;:17;10234:33;10230:112;;;10316:9;10307:6;:18;;;;:::i;:::-;10297:6;:29;;;;:::i;:::-;10288:38;;10230:112;9623:730;10365:41;10380:4;10386:2;10390:6;10398:7;10365:14;:41::i;:::-;8847:1567;;8778:1636;;;;:::o;12485:851::-;4156:4;4147:6;;:13;;;;;;;;;;;;;;;;;;12568:12:::1;12583:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12568:36;;12615:21;12653:1;12639:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12615:40;;12684:4;12666;12671:1;12666:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12718:4;12700;12705:1;12700:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12736:25;12778:1;12764:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12736:44;;12813:4;12791:8;12800:1;12791:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12851:4;12829:8;12838:1;12829:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12867:12;12889:4;12882:22;;;12913:4;12882:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12867:52;;12930:17;12950:14;;;;;;;;;;;:28;;;12979:11;12992:8;12950:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13016:1;12950:78;;;;;;;;:::i;:::-;;;;;;;;12930:98;;13063:4;13051:9;:16;:35;;13077:9;13051:35;;;13070:4;13051:35;13039:47;;13114:1;13101:9;:14:::0;13097:27:::1;;13117:7;;;;;;;13097:27;13134:14;;;;;;;;;;;:68;;;13217:9;13241:1;13257:4;13284:2;13302:15;13134:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12557:779;;;;;4171:1;4192:5:::0;4183:6;;:14;;;;;;;;;;;;;;;;;;12485:851;;:::o;7316:293::-;7443:4;7481:6;7460:9;:17;7470:6;7460:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;7522:6;7498:9;:20;7508:9;7498:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7561:9;7544:35;;7553:6;7544:35;;;7572:6;7544:35;;;;;;:::i;:::-;;;;;;;;7597:4;7590:11;;7316:293;;;;;:::o;13640:397::-;4156:4;4147:6;;:13;;;;;;;;;;;;;;;;;;13717:21:::1;13755:1;13741:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13717:40;;13786:4;13768;13773:1;13768:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13812:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13802:4;13807:1;13802:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;13844:14;;;;;;;;;;;:65;;;13924:11;13950:1;13966:4;13985:3;;;;;;;;;;;14003:15;13844:185;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13706:331;4192:5:::0;4183:6;;:14;;;;;;;;;;;;;;;;;;13640:397;:::o;10422:1210::-;10578:15;:23;10594:6;10578:23;;;;;;;;;;;;;;;;;;;;;;;;;10574:101;;10656:7;10636:9;:17;10646:6;10636:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10616:9;:17;10626:6;10616:17;;;;;;;;;;;;;;;:47;;;;10574:101;10685:17;10719:7;10715:766;;;10743:14;10776:12;:23;10789:9;10776:23;;;;;;;;;;;;;;;;;;;;;;;;;10772:354;;;10841:16;;10829:9;;:28;:104;;10918:15;;10829:104;;;10881:13;;10829:104;10820:113;;10772:354;;;10959:12;:20;10972:6;10959:20;;;;;;;;;;;;;;;;;;;;;;;;;10955:171;;;11021:15;;11009:9;;:27;:101;;11096:14;;11009:101;;;11060:12;;11009:101;11000:110;;10955:171;10772:354;11140:18;11182:3;11172:6;11162:7;:16;;;;:::i;:::-;11161:24;;;;:::i;:::-;11140:45;;11217:1;11204:10;:14;11200:270;;;11252:10;11239:23;;;;;:::i;:::-;;;11377:10;11329:9;:24;11347:4;11329:24;;;;;;;;;;;;;;;;:58;;;;:::i;:::-;11281:9;:24;11299:4;11281:24;;;;;;;;;;;;;;;:106;;;;11436:4;11411:43;;11420:6;11411:43;;;11443:10;11411:43;;;;;;:::i;:::-;;;;;;;;11200:270;10728:753;;10715:766;11550:9;11540:7;:19;;;;:::i;:::-;11516:9;:20;11526:9;11516:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;11493:9;:20;11503:9;11493:20;;;;;;;;;;;;;;;:67;;;;11593:9;11576:48;;11585:6;11576:48;;;11614:9;11604:7;:19;;;;:::i;:::-;11576:48;;;;;;:::i;:::-;;;;;;;;10563:1069;10422:1210;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:104::-;5585:7;5614:24;5632:5;5614:24;:::i;:::-;5603:35;;5540:104;;;:::o;5650:138::-;5731:32;5757:5;5731:32;:::i;:::-;5724:5;5721:43;5711:71;;5778:1;5775;5768:12;5711:71;5650:138;:::o;5794:155::-;5848:5;5886:6;5873:20;5864:29;;5902:41;5937:5;5902:41;:::i;:::-;5794:155;;;;:::o;5955:345::-;6022:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:119;;;6077:79;;:::i;:::-;6039:119;6197:1;6222:61;6275:7;6266:6;6255:9;6251:22;6222:61;:::i;:::-;6212:71;;6168:125;5955:345;;;;:::o;6306:911::-;6401:6;6409;6417;6425;6433;6482:3;6470:9;6461:7;6457:23;6453:33;6450:120;;;6489:79;;:::i;:::-;6450:120;6609:1;6634:53;6679:7;6670:6;6659:9;6655:22;6634:53;:::i;:::-;6624:63;;6580:117;6736:2;6762:53;6807:7;6798:6;6787:9;6783:22;6762:53;:::i;:::-;6752:63;;6707:118;6864:2;6890:53;6935:7;6926:6;6915:9;6911:22;6890:53;:::i;:::-;6880:63;;6835:118;6992:2;7018:53;7063:7;7054:6;7043:9;7039:22;7018:53;:::i;:::-;7008:63;;6963:118;7120:3;7147:53;7192:7;7183:6;7172:9;7168:22;7147:53;:::i;:::-;7137:63;;7091:119;6306:911;;;;;;;;:::o;7223:329::-;7282:6;7331:2;7319:9;7310:7;7306:23;7302:32;7299:119;;;7337:79;;:::i;:::-;7299:119;7457:1;7482:53;7527:7;7518:6;7507:9;7503:22;7482:53;:::i;:::-;7472:63;;7428:117;7223:329;;;;:::o;7558:60::-;7586:3;7607:5;7600:12;;7558:60;;;:::o;7624:142::-;7674:9;7707:53;7725:34;7734:24;7752:5;7734:24;:::i;:::-;7725:34;:::i;:::-;7707:53;:::i;:::-;7694:66;;7624:142;;;:::o;7772:126::-;7822:9;7855:37;7886:5;7855:37;:::i;:::-;7842:50;;7772:126;;;:::o;7904:148::-;7976:9;8009:37;8040:5;8009:37;:::i;:::-;7996:50;;7904:148;;;:::o;8058:175::-;8167:59;8220:5;8167:59;:::i;:::-;8162:3;8155:72;8058:175;;:::o;8239:266::-;8354:4;8392:2;8381:9;8377:18;8369:26;;8405:93;8495:1;8484:9;8480:17;8471:6;8405:93;:::i;:::-;8239:266;;;;:::o;8511:142::-;8614:32;8640:5;8614:32;:::i;:::-;8609:3;8602:45;8511:142;;:::o;8659:254::-;8768:4;8806:2;8795:9;8791:18;8783:26;;8819:87;8903:1;8892:9;8888:17;8879:6;8819:87;:::i;:::-;8659:254;;;;:::o;8919:117::-;9028:1;9025;9018:12;9042:117;9151:1;9148;9141:12;9165:117;9274:1;9271;9264:12;9305:568;9378:8;9388:6;9438:3;9431:4;9423:6;9419:17;9415:27;9405:122;;9446:79;;:::i;:::-;9405:122;9559:6;9546:20;9536:30;;9589:18;9581:6;9578:30;9575:117;;;9611:79;;:::i;:::-;9575:117;9725:4;9717:6;9713:17;9701:29;;9779:3;9771:4;9763:6;9759:17;9749:8;9745:32;9742:41;9739:128;;;9786:79;;:::i;:::-;9739:128;9305:568;;;;;:::o;9879:849::-;9983:6;9991;9999;10007;10056:2;10044:9;10035:7;10031:23;10027:32;10024:119;;;10062:79;;:::i;:::-;10024:119;10182:1;10207:53;10252:7;10243:6;10232:9;10228:22;10207:53;:::i;:::-;10197:63;;10153:117;10337:2;10326:9;10322:18;10309:32;10368:18;10360:6;10357:30;10354:117;;;10390:79;;:::i;:::-;10354:117;10503:80;10575:7;10566:6;10555:9;10551:22;10503:80;:::i;:::-;10485:98;;;;10280:313;10632:2;10658:53;10703:7;10694:6;10683:9;10679:22;10658:53;:::i;:::-;10648:63;;10603:118;9879:849;;;;;;;:::o;10734:474::-;10802:6;10810;10859:2;10847:9;10838:7;10834:23;10830:32;10827:119;;;10865:79;;:::i;:::-;10827:119;10985:1;11010:53;11055:7;11046:6;11035:9;11031:22;11010:53;:::i;:::-;11000:63;;10956:117;11112:2;11138:53;11183:7;11174:6;11163:9;11159:22;11138:53;:::i;:::-;11128:63;;11083:118;10734:474;;;;;:::o;11214:180::-;11262:77;11259:1;11252:88;11359:4;11356:1;11349:15;11383:4;11380:1;11373:15;11400:320;11444:6;11481:1;11475:4;11471:12;11461:22;;11528:1;11522:4;11518:12;11549:18;11539:81;;11605:4;11597:6;11593:17;11583:27;;11539:81;11667:2;11659:6;11656:14;11636:18;11633:38;11630:84;;11686:18;;:::i;:::-;11630:84;11451:269;11400:320;;;:::o;11726:180::-;11774:77;11771:1;11764:88;11871:4;11868:1;11861:15;11895:4;11892:1;11885:15;11912:194;11952:4;11972:20;11990:1;11972:20;:::i;:::-;11967:25;;12006:20;12024:1;12006:20;:::i;:::-;12001:25;;12050:1;12047;12043:9;12035:17;;12074:1;12068:4;12065:11;12062:37;;;12079:18;;:::i;:::-;12062:37;11912:194;;;;:::o;12112:157::-;12252:9;12248:1;12240:6;12236:14;12229:33;12112:157;:::o;12275:365::-;12417:3;12438:66;12502:1;12497:3;12438:66;:::i;:::-;12431:73;;12513:93;12602:3;12513:93;:::i;:::-;12631:2;12626:3;12622:12;12615:19;;12275:365;;;:::o;12646:419::-;12812:4;12850:2;12839:9;12835:18;12827:26;;12899:9;12893:4;12889:20;12885:1;12874:9;12870:17;12863:47;12927:131;13053:4;12927:131;:::i;:::-;12919:139;;12646:419;;;:::o;13071:167::-;13211:19;13207:1;13199:6;13195:14;13188:43;13071:167;:::o;13244:366::-;13386:3;13407:67;13471:2;13466:3;13407:67;:::i;:::-;13400:74;;13483:93;13572:3;13483:93;:::i;:::-;13601:2;13596:3;13592:12;13585:19;;13244:366;;;:::o;13616:419::-;13782:4;13820:2;13809:9;13805:18;13797:26;;13869:9;13863:4;13859:20;13855:1;13844:9;13840:17;13833:47;13897:131;14023:4;13897:131;:::i;:::-;13889:139;;13616:419;;;:::o;14041:143::-;14098:5;14129:6;14123:13;14114:22;;14145:33;14172:5;14145:33;:::i;:::-;14041:143;;;;:::o;14190:351::-;14260:6;14309:2;14297:9;14288:7;14284:23;14280:32;14277:119;;;14315:79;;:::i;:::-;14277:119;14435:1;14460:64;14516:7;14507:6;14496:9;14492:22;14460:64;:::i;:::-;14450:74;;14406:128;14190:351;;;;:::o;14547:134::-;14605:9;14638:37;14669:5;14638:37;:::i;:::-;14625:50;;14547:134;;;:::o;14687:147::-;14782:45;14821:5;14782:45;:::i;:::-;14777:3;14770:58;14687:147;;:::o;14840:348::-;14969:4;15007:2;14996:9;14992:18;14984:26;;15020:79;15096:1;15085:9;15081:17;15072:6;15020:79;:::i;:::-;15109:72;15177:2;15166:9;15162:18;15153:6;15109:72;:::i;:::-;14840:348;;;;;:::o;15194:116::-;15264:21;15279:5;15264:21;:::i;:::-;15257:5;15254:32;15244:60;;15300:1;15297;15290:12;15244:60;15194:116;:::o;15316:137::-;15370:5;15401:6;15395:13;15386:22;;15417:30;15441:5;15417:30;:::i;:::-;15316:137;;;;:::o;15459:345::-;15526:6;15575:2;15563:9;15554:7;15550:23;15546:32;15543:119;;;15581:79;;:::i;:::-;15543:119;15701:1;15726:61;15779:7;15770:6;15759:9;15755:22;15726:61;:::i;:::-;15716:71;;15672:125;15459:345;;;;:::o;15810:143::-;15867:5;15898:6;15892:13;15883:22;;15914:33;15941:5;15914:33;:::i;:::-;15810:143;;;;:::o;15959:351::-;16029:6;16078:2;16066:9;16057:7;16053:23;16049:32;16046:119;;;16084:79;;:::i;:::-;16046:119;16204:1;16229:64;16285:7;16276:6;16265:9;16261:22;16229:64;:::i;:::-;16219:74;;16175:128;15959:351;;;;:::o;16316:332::-;16437:4;16475:2;16464:9;16460:18;16452:26;;16488:71;16556:1;16545:9;16541:17;16532:6;16488:71;:::i;:::-;16569:72;16637:2;16626:9;16622:18;16613:6;16569:72;:::i;:::-;16316:332;;;;;:::o;16654:442::-;16803:4;16841:2;16830:9;16826:18;16818:26;;16854:71;16922:1;16911:9;16907:17;16898:6;16854:71;:::i;:::-;16935:72;17003:2;16992:9;16988:18;16979:6;16935:72;:::i;:::-;17017;17085:2;17074:9;17070:18;17061:6;17017:72;:::i;:::-;16654:442;;;;;;:::o;17102:180::-;17150:77;17147:1;17140:88;17247:4;17244:1;17237:15;17271:4;17268:1;17261:15;17288:233;17327:3;17350:24;17368:5;17350:24;:::i;:::-;17341:33;;17396:66;17389:5;17386:77;17383:103;;17466:18;;:::i;:::-;17383:103;17513:1;17506:5;17502:13;17495:20;;17288:233;;;:::o;17527:158::-;17667:10;17663:1;17655:6;17651:14;17644:34;17527:158;:::o;17691:365::-;17833:3;17854:66;17918:1;17913:3;17854:66;:::i;:::-;17847:73;;17929:93;18018:3;17929:93;:::i;:::-;18047:2;18042:3;18038:12;18031:19;;17691:365;;;:::o;18062:419::-;18228:4;18266:2;18255:9;18251:18;18243:26;;18315:9;18309:4;18305:20;18301:1;18290:9;18286:17;18279:47;18343:131;18469:4;18343:131;:::i;:::-;18335:139;;18062:419;;;:::o;18487:228::-;18627:34;18623:1;18615:6;18611:14;18604:58;18696:11;18691:2;18683:6;18679:15;18672:36;18487:228;:::o;18721:366::-;18863:3;18884:67;18948:2;18943:3;18884:67;:::i;:::-;18877:74;;18960:93;19049:3;18960:93;:::i;:::-;19078:2;19073:3;19069:12;19062:19;;18721:366;;;:::o;19093:419::-;19259:4;19297:2;19286:9;19282:18;19274:26;;19346:9;19340:4;19336:20;19332:1;19321:9;19317:17;19310:47;19374:131;19500:4;19374:131;:::i;:::-;19366:139;;19093:419;;;:::o;19518:191::-;19558:3;19577:20;19595:1;19577:20;:::i;:::-;19572:25;;19611:20;19629:1;19611:20;:::i;:::-;19606:25;;19654:1;19651;19647:9;19640:16;;19675:3;19672:1;19669:10;19666:36;;;19682:18;;:::i;:::-;19666:36;19518:191;;;;:::o;19715:161::-;19855:13;19851:1;19843:6;19839:14;19832:37;19715:161;:::o;19882:366::-;20024:3;20045:67;20109:2;20104:3;20045:67;:::i;:::-;20038:74;;20121:93;20210:3;20121:93;:::i;:::-;20239:2;20234:3;20230:12;20223:19;;19882:366;;;:::o;20254:419::-;20420:4;20458:2;20447:9;20443:18;20435:26;;20507:9;20501:4;20497:20;20493:1;20482:9;20478:17;20471:47;20535:131;20661:4;20535:131;:::i;:::-;20527:139;;20254:419;;;:::o;20679:180::-;20727:77;20724:1;20717:88;20824:4;20821:1;20814:15;20848:4;20845:1;20838:15;20865:185;20905:1;20922:20;20940:1;20922:20;:::i;:::-;20917:25;;20956:20;20974:1;20956:20;:::i;:::-;20951:25;;20995:1;20985:35;;21000:18;;:::i;:::-;20985:35;21042:1;21039;21035:9;21030:14;;20865:185;;;;:::o;21056:180::-;21104:77;21101:1;21094:88;21201:4;21198:1;21191:15;21225:4;21222:1;21215:15;21242:114;21309:6;21343:5;21337:12;21327:22;;21242:114;;;:::o;21362:184::-;21461:11;21495:6;21490:3;21483:19;21535:4;21530:3;21526:14;21511:29;;21362:184;;;;:::o;21552:132::-;21619:4;21642:3;21634:11;;21672:4;21667:3;21663:14;21655:22;;21552:132;;;:::o;21690:108::-;21767:24;21785:5;21767:24;:::i;:::-;21762:3;21755:37;21690:108;;:::o;21804:179::-;21873:10;21894:46;21936:3;21928:6;21894:46;:::i;:::-;21972:4;21967:3;21963:14;21949:28;;21804:179;;;;:::o;21989:113::-;22059:4;22091;22086:3;22082:14;22074:22;;21989:113;;;:::o;22138:732::-;22257:3;22286:54;22334:5;22286:54;:::i;:::-;22356:86;22435:6;22430:3;22356:86;:::i;:::-;22349:93;;22466:56;22516:5;22466:56;:::i;:::-;22545:7;22576:1;22561:284;22586:6;22583:1;22580:13;22561:284;;;22662:6;22656:13;22689:63;22748:3;22733:13;22689:63;:::i;:::-;22682:70;;22775:60;22828:6;22775:60;:::i;:::-;22765:70;;22621:224;22608:1;22605;22601:9;22596:14;;22561:284;;;22565:14;22861:3;22854:10;;22262:608;;;22138:732;;;;:::o;22876:483::-;23047:4;23085:2;23074:9;23070:18;23062:26;;23098:71;23166:1;23155:9;23151:17;23142:6;23098:71;:::i;:::-;23216:9;23210:4;23206:20;23201:2;23190:9;23186:18;23179:48;23244:108;23347:4;23338:6;23244:108;:::i;:::-;23236:116;;22876:483;;;;;:::o;23365:281::-;23448:27;23470:4;23448:27;:::i;:::-;23440:6;23436:40;23578:6;23566:10;23563:22;23542:18;23530:10;23527:34;23524:62;23521:88;;;23589:18;;:::i;:::-;23521:88;23629:10;23625:2;23618:22;23408:238;23365:281;;:::o;23652:129::-;23686:6;23713:20;;:::i;:::-;23703:30;;23742:33;23770:4;23762:6;23742:33;:::i;:::-;23652:129;;;:::o;23787:311::-;23864:4;23954:18;23946:6;23943:30;23940:56;;;23976:18;;:::i;:::-;23940:56;24026:4;24018:6;24014:17;24006:25;;24086:4;24080;24076:15;24068:23;;23787:311;;;:::o;24121:732::-;24228:5;24253:81;24269:64;24326:6;24269:64;:::i;:::-;24253:81;:::i;:::-;24244:90;;24354:5;24383:6;24376:5;24369:21;24417:4;24410:5;24406:16;24399:23;;24470:4;24462:6;24458:17;24450:6;24446:30;24499:3;24491:6;24488:15;24485:122;;;24518:79;;:::i;:::-;24485:122;24633:6;24616:231;24650:6;24645:3;24642:15;24616:231;;;24725:3;24754:48;24798:3;24786:10;24754:48;:::i;:::-;24749:3;24742:61;24832:4;24827:3;24823:14;24816:21;;24692:155;24676:4;24671:3;24667:14;24660:21;;24616:231;;;24620:21;24234:619;;24121:732;;;;;:::o;24876:385::-;24958:5;25007:3;25000:4;24992:6;24988:17;24984:27;24974:122;;25015:79;;:::i;:::-;24974:122;25125:6;25119:13;25150:105;25251:3;25243:6;25236:4;25228:6;25224:17;25150:105;:::i;:::-;25141:114;;24964:297;24876:385;;;;:::o;25267:554::-;25362:6;25411:2;25399:9;25390:7;25386:23;25382:32;25379:119;;;25417:79;;:::i;:::-;25379:119;25558:1;25547:9;25543:17;25537:24;25588:18;25580:6;25577:30;25574:117;;;25610:79;;:::i;:::-;25574:117;25715:89;25796:7;25787:6;25776:9;25772:22;25715:89;:::i;:::-;25705:99;;25508:306;25267:554;;;;:::o;25827:85::-;25872:7;25901:5;25890:16;;25827:85;;;:::o;25918:158::-;25976:9;26009:61;26027:42;26036:32;26062:5;26036:32;:::i;:::-;26027:42;:::i;:::-;26009:61;:::i;:::-;25996:74;;25918:158;;;:::o;26082:147::-;26177:45;26216:5;26177:45;:::i;:::-;26172:3;26165:58;26082:147;;:::o;26235:831::-;26498:4;26536:3;26525:9;26521:19;26513:27;;26550:71;26618:1;26607:9;26603:17;26594:6;26550:71;:::i;:::-;26631:80;26707:2;26696:9;26692:18;26683:6;26631:80;:::i;:::-;26758:9;26752:4;26748:20;26743:2;26732:9;26728:18;26721:48;26786:108;26889:4;26880:6;26786:108;:::i;:::-;26778:116;;26904:72;26972:2;26961:9;26957:18;26948:6;26904:72;:::i;:::-;26986:73;27054:3;27043:9;27039:19;27030:6;26986:73;:::i;:::-;26235:831;;;;;;;;:::o;27072:847::-;27343:4;27381:3;27370:9;27366:19;27358:27;;27395:71;27463:1;27452:9;27448:17;27439:6;27395:71;:::i;:::-;27476:80;27552:2;27541:9;27537:18;27528:6;27476:80;:::i;:::-;27603:9;27597:4;27593:20;27588:2;27577:9;27573:18;27566:48;27631:108;27734:4;27725:6;27631:108;:::i;:::-;27623:116;;27749:80;27825:2;27814:9;27810:18;27801:6;27749:80;:::i;:::-;27839:73;27907:3;27896:9;27892:19;27883:6;27839:73;:::i;:::-;27072:847;;;;;;;;:::o;27925:410::-;27965:7;27988:20;28006:1;27988:20;:::i;:::-;27983:25;;28022:20;28040:1;28022:20;:::i;:::-;28017:25;;28077:1;28074;28070:9;28099:30;28117:11;28099:30;:::i;:::-;28088:41;;28278:1;28269:7;28265:15;28262:1;28259:22;28239:1;28232:9;28212:83;28189:139;;28308:18;;:::i;:::-;28189:139;27973:362;27925:410;;;;:::o

Swarm Source

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