ETH Price: $3,326.95 (+2.54%)

Token

Vertex AI (VAI)
 

Overview

Max Total Supply

100,000,000 VAI

Holders

162

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
thethiccsluggar.eth
Balance
141,297.512444757 VAI

Value
$0.00
0xdf2628152ad54ffcb424f0cbfcb6cc70bf057da3
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:
VertexAI

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
    To learn more about our services and join the movement through our socials, visit www.Vertex-AI.net
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.14;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

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

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

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

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

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

}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract VertexAI is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Vertex AI";
    string private constant _symbol = "VAI";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000     * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 25;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    mapping (address => bool) public preTrader;
    address payable private _developmentAddress = payable(0x158678DafC4426707f182A3a15BE1cb7f62916b8);
    address payable private _marketingAddress = payable(0x158678DafC4426707f182A3a15BE1cb7f62916b8);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 2000000 * 10**9;
    uint256 public _maxWalletSize = 2000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

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

        	if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

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

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

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function enableTrading() external onlyOwner {
        tradingOpen = true;
    }

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

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

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

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

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

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

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

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

    receive() external payable {}

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

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

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

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

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

    function setFeeVertex(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThresholdVertex(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set maximum transaction
    function maxTransactionSetterVertex(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function maxWalletSetterVertex(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFeesVertex(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBotsVertex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFeesVertex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxTransactionSetterVertex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"maxWalletSetterVertex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFeeVertex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThresholdVertex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBotVertex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c91906200070f565b6000196200002b919062000776565b600655600060085560146009556000600a556019600b55600a54600c55600b54600d55600c54600e55600d54600f5573158678dafc4426707f182a3a15be1cb7f62916b8601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073158678dafc4426707f182a3a15be1cb7f62916b8601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff02191690831515021790555066071afd498d000060175566071afd498d000060185566038d7ea4c680006019553480156200016757600080fd5b5060006200017a620006a560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022f620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033991906200081b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c791906200081b565b6040518363ffffffff1660e01b8152600401620003e69291906200085e565b6020604051808303816000875af115801562000406573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042c91906200081b565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000482620006ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062f620006a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200069691906200089c565b60405180910390a350620008b9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200071c82620006d6565b91506200072983620006d6565b9250826200073c576200073b620006e0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078382620006d6565b91506200079083620006d6565b925082821015620007a657620007a562000747565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e382620007b6565b9050919050565b620007f581620007d6565b81146200080157600080fd5b50565b6000815190506200081581620007ea565b92915050565b600060208284031215620008345762000833620007b1565b5b6000620008448482850162000804565b91505092915050565b6200085881620007d6565b82525050565b60006040820190506200087560008301856200084d565b6200088460208301846200084d565b9392505050565b6200089681620006d6565b82525050565b6000602082019050620008b360008301846200088b565b92915050565b613dcd80620008c96000396000f3fe6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063a9059cbb11610095578063c3c8cd8011610064578063c3c8cd8014610671578063cb46e28014610688578063dd62ed3e146106b1578063f2fde38b146106ee576101d8565b8063a9059cbb14610591578063bdd795ef146105ce578063bfd792841461060b578063c00731f914610648576101d8565b80638da5cb5b116100d15780638da5cb5b146104e75780638f9a55c01461051257806395d89b411461053d5780639ae24d8d14610568576101d8565b80637d1db4a5146104685780637f2feddc146104935780638a8c523c146104d0576101d8565b8063313ce5671161016f578063626456481161013e57806362645648146103d45780636fc3eaec146103fd57806370a0823114610414578063715018a614610451576101d8565b8063313ce5671461032c57806344cb5ed21461035757806349bd5a5e14610380578063616ba1c7146103ab576101d8565b80631694505e116101ab5780631694505e1461026e57806318160ddd1461029957806323b872dd146102c45780632fd689e314610301576101d8565b806302ee331a146101dd57806306fdde0314610206578063095ea7b314610231576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612c6d565b610717565b005b34801561021257600080fd5b5061021b610851565b6040516102289190612d66565b60405180910390f35b34801561023d57600080fd5b5061025860048036038101906102539190612e1c565b61088e565b6040516102659190612e6b565b60405180910390f35b34801561027a57600080fd5b506102836108ac565b6040516102909190612ee5565b60405180910390f35b3480156102a557600080fd5b506102ae6108d2565b6040516102bb9190612f0f565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e69190612f2a565b6108e2565b6040516102f89190612e6b565b60405180910390f35b34801561030d57600080fd5b506103166109bb565b6040516103239190612f0f565b60405180910390f35b34801561033857600080fd5b506103416109c1565b60405161034e9190612f99565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190612fb4565b6109ca565b005b34801561038c57600080fd5b50610395610a69565b6040516103a29190612ff0565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190612fb4565b610a8f565b005b3480156103e057600080fd5b506103fb60048036038101906103f6919061300b565b610b2e565b005b34801561040957600080fd5b50610412610c1e565b005b34801561042057600080fd5b5061043b6004803603810190610436919061300b565b610cef565b6040516104489190612f0f565b60405180910390f35b34801561045d57600080fd5b50610466610d40565b005b34801561047457600080fd5b5061047d610e93565b60405161048a9190612f0f565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b5919061300b565b610e99565b6040516104c79190612f0f565b60405180910390f35b3480156104dc57600080fd5b506104e5610eb1565b005b3480156104f357600080fd5b506104fc610f63565b6040516105099190612ff0565b60405180910390f35b34801561051e57600080fd5b50610527610f8c565b6040516105349190612f0f565b60405180910390f35b34801561054957600080fd5b50610552610f92565b60405161055f9190612d66565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190612fb4565b610fcf565b005b34801561059d57600080fd5b506105b860048036038101906105b39190612e1c565b61106e565b6040516105c59190612e6b565b60405180910390f35b3480156105da57600080fd5b506105f560048036038101906105f0919061300b565b61108c565b6040516106029190612e6b565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d919061300b565b6110ac565b60405161063f9190612e6b565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a9190613038565b6110cc565b005b34801561067d57600080fd5b50610686611183565b005b34801561069457600080fd5b506106af60048036038101906106aa91906131dd565b61125c565b005b3480156106bd57600080fd5b506106d860048036038101906106d39190613226565b611386565b6040516106e59190612f0f565b60405180910390f35b3480156106fa57600080fd5b506107156004803603810190610710919061300b565b61140d565b005b61071f6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a3906132b2565b60405180910390fd5b60005b8383905081101561084b5781600560008686858181106107d2576107d16132d2565b5b90506020020160208101906107e7919061300b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061084390613330565b9150506107af565b50505050565b60606040518060400160405280600981526020017f5665727465782041490000000000000000000000000000000000000000000000815250905090565b60006108a261089b6115ce565b84846115d6565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006108ef84848461179f565b6109b0846108fb6115ce565b6109ab85604051806060016040528060288152602001613d7060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109616115ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e59092919063ffffffff16565b6115d6565b600190509392505050565b60195481565b60006009905090565b6109d26115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a56906132b2565b60405180910390fd5b8060178190555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a976115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b906132b2565b60405180910390fd5b8060198190555050565b610b366115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bba906132b2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5f6115ce565b73ffffffffffffffffffffffffffffffffffffffff161480610cd55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cbd6115ce565b73ffffffffffffffffffffffffffffffffffffffff16145b610cde57600080fd5b6000479050610cec81612149565b50565b6000610d39600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b5565b9050919050565b610d486115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60116020528060005260406000206000915090505481565b610eb96115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d906132b2565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600381526020017f5641490000000000000000000000000000000000000000000000000000000000815250905090565b610fd76115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b906132b2565b60405180910390fd5b8060188190555050565b600061108261107b6115ce565b848461179f565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b6110d46115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611158906132b2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c46115ce565b73ffffffffffffffffffffffffffffffffffffffff16148061123a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112226115ce565b73ffffffffffffffffffffffffffffffffffffffff16145b61124357600080fd5b600061124e30610cef565b905061125981612223565b50565b6112646115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e8906132b2565b60405180910390fd5b60005b815181101561138257600160106000848481518110611316576113156132d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061137a90613330565b9150506112f4565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114156115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611499906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611511576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611508906133ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c9061347c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab9061350e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117929190612f0f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611805906135a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490613632565b60405180910390fd5b600081116118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b7906136c4565b60405180910390fd5b6118c8610f63565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119365750611906610f63565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561198c5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119e25750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de457601660149054906101000a900460ff16611a8857601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90613756565b60405180910390fd5b5b601754811115611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac4906137c2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b715750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba790613854565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c5d5760185481611c1284610cef565b611c1c9190613874565b10611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c539061393c565b60405180910390fd5b5b6000611c6830610cef565b9050600060195482101590506017548210611c835760175491505b808015611c9d5750601660159054906101000a900460ff16155b8015611cf75750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0d575060168054906101000a900460ff165b8015611d635750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db95750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de157611dc782612223565b60004790506000811115611ddf57611dde47612149565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e8b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f3e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f3d5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f4c57600090506120d3565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ff75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200f57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ba5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120d257600a54600c81905550600b54600d819055505b5b6120df8484848461249c565b50505050565b600083831115829061212d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121249190612d66565b60405180910390fd5b506000838561213c919061395c565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121b1573d6000803e3d6000fd5b5050565b60006006548211156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613a02565b60405180910390fd5b60006122066124c9565b905061221b81846124f490919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561225b5761225a61309f565b5b6040519080825280602002602001820160405280156122895781602001602082028036833780820191505090505b50905030816000815181106122a1576122a06132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236c9190613a37565b816001815181106123805761237f6132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123e730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115d6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161244b959493929190613b5d565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806124aa576124a961253e565b5b6124b584848461257b565b806124c3576124c2612746565b5b50505050565b60008060006124d661275a565b915091506124ed81836124f490919063ffffffff16565b9250505090565b600061253683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127b9565b905092915050565b6000600c5414801561255257506000600d54145b61257957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061258d8761281c565b9550955095509550955095506125eb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061268085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ce90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126cc8161292c565b6126d684836129e9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127339190612f0f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a0000905061278e67016345785d8a00006006546124f490919063ffffffff16565b8210156127ac5760065467016345785d8a00009350935050506127b5565b81819350935050505b9091565b60008083118290612800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f79190612d66565b60405180910390fd5b506000838561280f9190613be6565b9050809150509392505050565b60008060008060008060008060006128398a600c54600d54612a23565b92509250925060006128496124c9565b9050600080600061285c8e878787612ab9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e5565b905092915050565b60008082846128dd9190613874565b905083811015612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291990613c63565b60405180910390fd5b8091505092915050565b60006129366124c9565b9050600061294d8284612b4290919063ffffffff16565b90506129a181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ce90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129fe8260065461288490919063ffffffff16565b600681905550612a19816007546128ce90919063ffffffff16565b6007819055505050565b600080600080612a4f6064612a41888a612b4290919063ffffffff16565b6124f490919063ffffffff16565b90506000612a796064612a6b888b612b4290919063ffffffff16565b6124f490919063ffffffff16565b90506000612aa282612a94858c61288490919063ffffffff16565b61288490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ad28589612b4290919063ffffffff16565b90506000612ae98689612b4290919063ffffffff16565b90506000612b008789612b4290919063ffffffff16565b90506000612b2982612b1b858761288490919063ffffffff16565b61288490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612b545760009050612bb6565b60008284612b629190613c83565b9050828482612b719190613be6565b14612bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba890613d4f565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112612bf557612bf4612bd0565b5b8235905067ffffffffffffffff811115612c1257612c11612bd5565b5b602083019150836020820283011115612c2e57612c2d612bda565b5b9250929050565b60008115159050919050565b612c4a81612c35565b8114612c5557600080fd5b50565b600081359050612c6781612c41565b92915050565b600080600060408486031215612c8657612c85612bc6565b5b600084013567ffffffffffffffff811115612ca457612ca3612bcb565b5b612cb086828701612bdf565b93509350506020612cc386828701612c58565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d07578082015181840152602081019050612cec565b83811115612d16576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d3882612ccd565b612d428185612cd8565b9350612d52818560208601612ce9565b612d5b81612d1c565b840191505092915050565b60006020820190508181036000830152612d808184612d2d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612db382612d88565b9050919050565b612dc381612da8565b8114612dce57600080fd5b50565b600081359050612de081612dba565b92915050565b6000819050919050565b612df981612de6565b8114612e0457600080fd5b50565b600081359050612e1681612df0565b92915050565b60008060408385031215612e3357612e32612bc6565b5b6000612e4185828601612dd1565b9250506020612e5285828601612e07565b9150509250929050565b612e6581612c35565b82525050565b6000602082019050612e806000830184612e5c565b92915050565b6000819050919050565b6000612eab612ea6612ea184612d88565b612e86565b612d88565b9050919050565b6000612ebd82612e90565b9050919050565b6000612ecf82612eb2565b9050919050565b612edf81612ec4565b82525050565b6000602082019050612efa6000830184612ed6565b92915050565b612f0981612de6565b82525050565b6000602082019050612f246000830184612f00565b92915050565b600080600060608486031215612f4357612f42612bc6565b5b6000612f5186828701612dd1565b9350506020612f6286828701612dd1565b9250506040612f7386828701612e07565b9150509250925092565b600060ff82169050919050565b612f9381612f7d565b82525050565b6000602082019050612fae6000830184612f8a565b92915050565b600060208284031215612fca57612fc9612bc6565b5b6000612fd884828501612e07565b91505092915050565b612fea81612da8565b82525050565b60006020820190506130056000830184612fe1565b92915050565b60006020828403121561302157613020612bc6565b5b600061302f84828501612dd1565b91505092915050565b6000806000806080858703121561305257613051612bc6565b5b600061306087828801612e07565b945050602061307187828801612e07565b935050604061308287828801612e07565b925050606061309387828801612e07565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130d782612d1c565b810181811067ffffffffffffffff821117156130f6576130f561309f565b5b80604052505050565b6000613109612bbc565b905061311582826130ce565b919050565b600067ffffffffffffffff8211156131355761313461309f565b5b602082029050602081019050919050565b60006131596131548461311a565b6130ff565b9050808382526020820190506020840283018581111561317c5761317b612bda565b5b835b818110156131a557806131918882612dd1565b84526020840193505060208101905061317e565b5050509392505050565b600082601f8301126131c4576131c3612bd0565b5b81356131d4848260208601613146565b91505092915050565b6000602082840312156131f3576131f2612bc6565b5b600082013567ffffffffffffffff81111561321157613210612bcb565b5b61321d848285016131af565b91505092915050565b6000806040838503121561323d5761323c612bc6565b5b600061324b85828601612dd1565b925050602061325c85828601612dd1565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061329c602083612cd8565b91506132a782613266565b602082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061333b82612de6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361336d5761336c613301565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133d4602683612cd8565b91506133df82613378565b604082019050919050565b60006020820190508181036000830152613403816133c7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613466602483612cd8565b91506134718261340a565b604082019050919050565b6000602082019050818103600083015261349581613459565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f8602283612cd8565b91506135038261349c565b604082019050919050565b60006020820190508181036000830152613527816134eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061358a602583612cd8565b91506135958261352e565b604082019050919050565b600060208201905081810360008301526135b98161357d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061361c602383612cd8565b9150613627826135c0565b604082019050919050565b6000602082019050818103600083015261364b8161360f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136ae602983612cd8565b91506136b982613652565b604082019050919050565b600060208201905081810360008301526136dd816136a1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613740603f83612cd8565b915061374b826136e4565b604082019050919050565b6000602082019050818103600083015261376f81613733565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006137ac601c83612cd8565b91506137b782613776565b602082019050919050565b600060208201905081810360008301526137db8161379f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061383e602383612cd8565b9150613849826137e2565b604082019050919050565b6000602082019050818103600083015261386d81613831565b9050919050565b600061387f82612de6565b915061388a83612de6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138bf576138be613301565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613926602383612cd8565b9150613931826138ca565b604082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b600061396782612de6565b915061397283612de6565b92508282101561398557613984613301565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139ec602a83612cd8565b91506139f782613990565b604082019050919050565b60006020820190508181036000830152613a1b816139df565b9050919050565b600081519050613a3181612dba565b92915050565b600060208284031215613a4d57613a4c612bc6565b5b6000613a5b84828501613a22565b91505092915050565b6000819050919050565b6000613a89613a84613a7f84613a64565b612e86565b612de6565b9050919050565b613a9981613a6e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ad481612da8565b82525050565b6000613ae68383613acb565b60208301905092915050565b6000602082019050919050565b6000613b0a82613a9f565b613b148185613aaa565b9350613b1f83613abb565b8060005b83811015613b50578151613b378882613ada565b9750613b4283613af2565b925050600181019050613b23565b5085935050505092915050565b600060a082019050613b726000830188612f00565b613b7f6020830187613a90565b8181036040830152613b918186613aff565b9050613ba06060830185612fe1565b613bad6080830184612f00565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf182612de6565b9150613bfc83612de6565b925082613c0c57613c0b613bb7565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c4d601b83612cd8565b9150613c5882613c17565b602082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b6000613c8e82612de6565b9150613c9983612de6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cd257613cd1613301565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d39602183612cd8565b9150613d4482613cdd565b604082019050919050565b60006020820190508181036000830152613d6881613d2c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209c9a30d7e75a61d786b4729e0de12232936bf6257176d986cced24591bcd255464736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063a9059cbb11610095578063c3c8cd8011610064578063c3c8cd8014610671578063cb46e28014610688578063dd62ed3e146106b1578063f2fde38b146106ee576101d8565b8063a9059cbb14610591578063bdd795ef146105ce578063bfd792841461060b578063c00731f914610648576101d8565b80638da5cb5b116100d15780638da5cb5b146104e75780638f9a55c01461051257806395d89b411461053d5780639ae24d8d14610568576101d8565b80637d1db4a5146104685780637f2feddc146104935780638a8c523c146104d0576101d8565b8063313ce5671161016f578063626456481161013e57806362645648146103d45780636fc3eaec146103fd57806370a0823114610414578063715018a614610451576101d8565b8063313ce5671461032c57806344cb5ed21461035757806349bd5a5e14610380578063616ba1c7146103ab576101d8565b80631694505e116101ab5780631694505e1461026e57806318160ddd1461029957806323b872dd146102c45780632fd689e314610301576101d8565b806302ee331a146101dd57806306fdde0314610206578063095ea7b314610231576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612c6d565b610717565b005b34801561021257600080fd5b5061021b610851565b6040516102289190612d66565b60405180910390f35b34801561023d57600080fd5b5061025860048036038101906102539190612e1c565b61088e565b6040516102659190612e6b565b60405180910390f35b34801561027a57600080fd5b506102836108ac565b6040516102909190612ee5565b60405180910390f35b3480156102a557600080fd5b506102ae6108d2565b6040516102bb9190612f0f565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e69190612f2a565b6108e2565b6040516102f89190612e6b565b60405180910390f35b34801561030d57600080fd5b506103166109bb565b6040516103239190612f0f565b60405180910390f35b34801561033857600080fd5b506103416109c1565b60405161034e9190612f99565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190612fb4565b6109ca565b005b34801561038c57600080fd5b50610395610a69565b6040516103a29190612ff0565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190612fb4565b610a8f565b005b3480156103e057600080fd5b506103fb60048036038101906103f6919061300b565b610b2e565b005b34801561040957600080fd5b50610412610c1e565b005b34801561042057600080fd5b5061043b6004803603810190610436919061300b565b610cef565b6040516104489190612f0f565b60405180910390f35b34801561045d57600080fd5b50610466610d40565b005b34801561047457600080fd5b5061047d610e93565b60405161048a9190612f0f565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b5919061300b565b610e99565b6040516104c79190612f0f565b60405180910390f35b3480156104dc57600080fd5b506104e5610eb1565b005b3480156104f357600080fd5b506104fc610f63565b6040516105099190612ff0565b60405180910390f35b34801561051e57600080fd5b50610527610f8c565b6040516105349190612f0f565b60405180910390f35b34801561054957600080fd5b50610552610f92565b60405161055f9190612d66565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a9190612fb4565b610fcf565b005b34801561059d57600080fd5b506105b860048036038101906105b39190612e1c565b61106e565b6040516105c59190612e6b565b60405180910390f35b3480156105da57600080fd5b506105f560048036038101906105f0919061300b565b61108c565b6040516106029190612e6b565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d919061300b565b6110ac565b60405161063f9190612e6b565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a9190613038565b6110cc565b005b34801561067d57600080fd5b50610686611183565b005b34801561069457600080fd5b506106af60048036038101906106aa91906131dd565b61125c565b005b3480156106bd57600080fd5b506106d860048036038101906106d39190613226565b611386565b6040516106e59190612f0f565b60405180910390f35b3480156106fa57600080fd5b506107156004803603810190610710919061300b565b61140d565b005b61071f6115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a3906132b2565b60405180910390fd5b60005b8383905081101561084b5781600560008686858181106107d2576107d16132d2565b5b90506020020160208101906107e7919061300b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061084390613330565b9150506107af565b50505050565b60606040518060400160405280600981526020017f5665727465782041490000000000000000000000000000000000000000000000815250905090565b60006108a261089b6115ce565b84846115d6565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006108ef84848461179f565b6109b0846108fb6115ce565b6109ab85604051806060016040528060288152602001613d7060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109616115ce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e59092919063ffffffff16565b6115d6565b600190509392505050565b60195481565b60006009905090565b6109d26115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a56906132b2565b60405180910390fd5b8060178190555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a976115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b906132b2565b60405180910390fd5b8060198190555050565b610b366115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bba906132b2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c5f6115ce565b73ffffffffffffffffffffffffffffffffffffffff161480610cd55750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cbd6115ce565b73ffffffffffffffffffffffffffffffffffffffff16145b610cde57600080fd5b6000479050610cec81612149565b50565b6000610d39600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b5565b9050919050565b610d486115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60116020528060005260406000206000915090505481565b610eb96115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d906132b2565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600381526020017f5641490000000000000000000000000000000000000000000000000000000000815250905090565b610fd76115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b906132b2565b60405180910390fd5b8060188190555050565b600061108261107b6115ce565b848461179f565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b6110d46115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611158906132b2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c46115ce565b73ffffffffffffffffffffffffffffffffffffffff16148061123a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112226115ce565b73ffffffffffffffffffffffffffffffffffffffff16145b61124357600080fd5b600061124e30610cef565b905061125981612223565b50565b6112646115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e8906132b2565b60405180910390fd5b60005b815181101561138257600160106000848481518110611316576113156132d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061137a90613330565b9150506112f4565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114156115ce565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611499906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611511576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611508906133ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163c9061347c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab9061350e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117929190612f0f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611805906135a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490613632565b60405180910390fd5b600081116118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b7906136c4565b60405180910390fd5b6118c8610f63565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119365750611906610f63565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561198c5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119e25750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de457601660149054906101000a900460ff16611a8857601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90613756565b60405180910390fd5b5b601754811115611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac4906137c2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b715750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba790613854565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c5d5760185481611c1284610cef565b611c1c9190613874565b10611c5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c539061393c565b60405180910390fd5b5b6000611c6830610cef565b9050600060195482101590506017548210611c835760175491505b808015611c9d5750601660159054906101000a900460ff16155b8015611cf75750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0d575060168054906101000a900460ff165b8015611d635750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db95750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611de157611dc782612223565b60004790506000811115611ddf57611dde47612149565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e8b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f3e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f3d5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f4c57600090506120d3565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ff75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561200f57600854600c81905550600954600d819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ba5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120d257600a54600c81905550600b54600d819055505b5b6120df8484848461249c565b50505050565b600083831115829061212d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121249190612d66565b60405180910390fd5b506000838561213c919061395c565b9050809150509392505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121b1573d6000803e3d6000fd5b5050565b60006006548211156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613a02565b60405180910390fd5b60006122066124c9565b905061221b81846124f490919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561225b5761225a61309f565b5b6040519080825280602002602001820160405280156122895781602001602082028036833780820191505090505b50905030816000815181106122a1576122a06132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236c9190613a37565b816001815181106123805761237f6132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123e730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115d6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161244b959493929190613b5d565b600060405180830381600087803b15801561246557600080fd5b505af1158015612479573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806124aa576124a961253e565b5b6124b584848461257b565b806124c3576124c2612746565b5b50505050565b60008060006124d661275a565b915091506124ed81836124f490919063ffffffff16565b9250505090565b600061253683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127b9565b905092915050565b6000600c5414801561255257506000600d54145b61257957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061258d8761281c565b9550955095509550955095506125eb86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061268085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ce90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126cc8161292c565b6126d684836129e9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127339190612f0f565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a0000905061278e67016345785d8a00006006546124f490919063ffffffff16565b8210156127ac5760065467016345785d8a00009350935050506127b5565b81819350935050505b9091565b60008083118290612800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f79190612d66565b60405180910390fd5b506000838561280f9190613be6565b9050809150509392505050565b60008060008060008060008060006128398a600c54600d54612a23565b92509250925060006128496124c9565b9050600080600061285c8e878787612ab9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120e5565b905092915050565b60008082846128dd9190613874565b905083811015612922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291990613c63565b60405180910390fd5b8091505092915050565b60006129366124c9565b9050600061294d8284612b4290919063ffffffff16565b90506129a181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ce90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129fe8260065461288490919063ffffffff16565b600681905550612a19816007546128ce90919063ffffffff16565b6007819055505050565b600080600080612a4f6064612a41888a612b4290919063ffffffff16565b6124f490919063ffffffff16565b90506000612a796064612a6b888b612b4290919063ffffffff16565b6124f490919063ffffffff16565b90506000612aa282612a94858c61288490919063ffffffff16565b61288490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ad28589612b4290919063ffffffff16565b90506000612ae98689612b4290919063ffffffff16565b90506000612b008789612b4290919063ffffffff16565b90506000612b2982612b1b858761288490919063ffffffff16565b61288490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612b545760009050612bb6565b60008284612b629190613c83565b9050828482612b719190613be6565b14612bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba890613d4f565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112612bf557612bf4612bd0565b5b8235905067ffffffffffffffff811115612c1257612c11612bd5565b5b602083019150836020820283011115612c2e57612c2d612bda565b5b9250929050565b60008115159050919050565b612c4a81612c35565b8114612c5557600080fd5b50565b600081359050612c6781612c41565b92915050565b600080600060408486031215612c8657612c85612bc6565b5b600084013567ffffffffffffffff811115612ca457612ca3612bcb565b5b612cb086828701612bdf565b93509350506020612cc386828701612c58565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d07578082015181840152602081019050612cec565b83811115612d16576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d3882612ccd565b612d428185612cd8565b9350612d52818560208601612ce9565b612d5b81612d1c565b840191505092915050565b60006020820190508181036000830152612d808184612d2d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612db382612d88565b9050919050565b612dc381612da8565b8114612dce57600080fd5b50565b600081359050612de081612dba565b92915050565b6000819050919050565b612df981612de6565b8114612e0457600080fd5b50565b600081359050612e1681612df0565b92915050565b60008060408385031215612e3357612e32612bc6565b5b6000612e4185828601612dd1565b9250506020612e5285828601612e07565b9150509250929050565b612e6581612c35565b82525050565b6000602082019050612e806000830184612e5c565b92915050565b6000819050919050565b6000612eab612ea6612ea184612d88565b612e86565b612d88565b9050919050565b6000612ebd82612e90565b9050919050565b6000612ecf82612eb2565b9050919050565b612edf81612ec4565b82525050565b6000602082019050612efa6000830184612ed6565b92915050565b612f0981612de6565b82525050565b6000602082019050612f246000830184612f00565b92915050565b600080600060608486031215612f4357612f42612bc6565b5b6000612f5186828701612dd1565b9350506020612f6286828701612dd1565b9250506040612f7386828701612e07565b9150509250925092565b600060ff82169050919050565b612f9381612f7d565b82525050565b6000602082019050612fae6000830184612f8a565b92915050565b600060208284031215612fca57612fc9612bc6565b5b6000612fd884828501612e07565b91505092915050565b612fea81612da8565b82525050565b60006020820190506130056000830184612fe1565b92915050565b60006020828403121561302157613020612bc6565b5b600061302f84828501612dd1565b91505092915050565b6000806000806080858703121561305257613051612bc6565b5b600061306087828801612e07565b945050602061307187828801612e07565b935050604061308287828801612e07565b925050606061309387828801612e07565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130d782612d1c565b810181811067ffffffffffffffff821117156130f6576130f561309f565b5b80604052505050565b6000613109612bbc565b905061311582826130ce565b919050565b600067ffffffffffffffff8211156131355761313461309f565b5b602082029050602081019050919050565b60006131596131548461311a565b6130ff565b9050808382526020820190506020840283018581111561317c5761317b612bda565b5b835b818110156131a557806131918882612dd1565b84526020840193505060208101905061317e565b5050509392505050565b600082601f8301126131c4576131c3612bd0565b5b81356131d4848260208601613146565b91505092915050565b6000602082840312156131f3576131f2612bc6565b5b600082013567ffffffffffffffff81111561321157613210612bcb565b5b61321d848285016131af565b91505092915050565b6000806040838503121561323d5761323c612bc6565b5b600061324b85828601612dd1565b925050602061325c85828601612dd1565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061329c602083612cd8565b91506132a782613266565b602082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061333b82612de6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361336d5761336c613301565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133d4602683612cd8565b91506133df82613378565b604082019050919050565b60006020820190508181036000830152613403816133c7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613466602483612cd8565b91506134718261340a565b604082019050919050565b6000602082019050818103600083015261349581613459565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f8602283612cd8565b91506135038261349c565b604082019050919050565b60006020820190508181036000830152613527816134eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061358a602583612cd8565b91506135958261352e565b604082019050919050565b600060208201905081810360008301526135b98161357d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061361c602383612cd8565b9150613627826135c0565b604082019050919050565b6000602082019050818103600083015261364b8161360f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136ae602983612cd8565b91506136b982613652565b604082019050919050565b600060208201905081810360008301526136dd816136a1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613740603f83612cd8565b915061374b826136e4565b604082019050919050565b6000602082019050818103600083015261376f81613733565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006137ac601c83612cd8565b91506137b782613776565b602082019050919050565b600060208201905081810360008301526137db8161379f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061383e602383612cd8565b9150613849826137e2565b604082019050919050565b6000602082019050818103600083015261386d81613831565b9050919050565b600061387f82612de6565b915061388a83612de6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138bf576138be613301565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613926602383612cd8565b9150613931826138ca565b604082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b600061396782612de6565b915061397283612de6565b92508282101561398557613984613301565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139ec602a83612cd8565b91506139f782613990565b604082019050919050565b60006020820190508181036000830152613a1b816139df565b9050919050565b600081519050613a3181612dba565b92915050565b600060208284031215613a4d57613a4c612bc6565b5b6000613a5b84828501613a22565b91505092915050565b6000819050919050565b6000613a89613a84613a7f84613a64565b612e86565b612de6565b9050919050565b613a9981613a6e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ad481612da8565b82525050565b6000613ae68383613acb565b60208301905092915050565b6000602082019050919050565b6000613b0a82613a9f565b613b148185613aaa565b9350613b1f83613abb565b8060005b83811015613b50578151613b378882613ada565b9750613b4283613af2565b925050600181019050613b23565b5085935050505092915050565b600060a082019050613b726000830188612f00565b613b7f6020830187613a90565b8181036040830152613b918186613aff565b9050613ba06060830185612fe1565b613bad6080830184612f00565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf182612de6565b9150613bfc83612de6565b925082613c0c57613c0b613bb7565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c4d601b83612cd8565b9150613c5882613c17565b602082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b6000613c8e82612de6565b9150613c9983612de6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cd257613cd1613301565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d39602183612cd8565b9150613d4482613cdd565b604082019050919050565b60006020820190508181036000830152613d6881613d2c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209c9a30d7e75a61d786b4729e0de12232936bf6257176d986cced24591bcd255464736f6c634300080e0033

Deployed Bytecode Sourcemap

4183:13454:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17394:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6728:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7653:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5578:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7005:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7854:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5874:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6914:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17139:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5626:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16955:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13102:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12676:235;;;;;;;;;;;;;:::i;:::-;;7108:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1670:148;;;;;;;;;;;;;:::i;:::-;;5768:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5271:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12343:81;;;;;;;;;;;;;:::i;:::-;;1456:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6819:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17266:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7254:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5321:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5233:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16606:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12432:236;;;;;;;;;;;;;:::i;:::-;;12919:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7461:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1826:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17394:240;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17517:9:::1;17513:114;17536:8;;:15;;17532:1;:19;17513:114;;;17607:8;17573:18;:31;17592:8;;17601:1;17592:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17573:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17553:3;;;;;:::i;:::-;;;;17513:114;;;;17394:240:::0;;;:::o;6728:83::-;6765:13;6798:5;;;;;;;;;;;;;;;;;6791:12;;6728:83;:::o;7653:193::-;7755:4;7777:39;7786:12;:10;:12::i;:::-;7800:7;7809:6;7777:8;:39::i;:::-;7834:4;7827:11;;7653:193;;;;:::o;5578:41::-;;;;;;;;;;;;;:::o;7005:95::-;7058:7;4730:21;7078:14;;7005:95;:::o;7854:446::-;7986:4;8003:36;8013:6;8021:9;8032:6;8003:9;:36::i;:::-;8050:220;8073:6;8094:12;:10;:12::i;:::-;8121:138;8177:6;8121:138;;;;;;;;;;;;;;;;;:11;:19;8133:6;8121:19;;;;;;;;;;;;;;;:33;8141:12;:10;:12::i;:::-;8121:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8050:8;:220::i;:::-;8288:4;8281:11;;7854:446;;;;;:::o;5874:52::-;;;;:::o;6914:83::-;6955:5;4404:1;6973:16;;6914:83;:::o;17139:119::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17239:11:::1;17224:12;:26;;;;17139:119:::0;:::o;5626:28::-;;;;;;;;;;;;;:::o;16955:145::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17074:18:::1;17052:19;:40;;;;16955:145:::0;:::o;13102:98::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13187:5:::1;13172:4;:12;13177:6;13172:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13102:98:::0;:::o;12676:235::-;12742:19;;;;;;;;;;;12726:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12781:17;;;;;;;;;;;12765:33;;:12;:10;:12::i;:::-;:33;;;12726:72;12718:81;;;;;;12810:26;12839:21;12810:50;;12871:32;12884:18;12871:12;:32::i;:::-;12707:204;12676:235::o;7108:138::-;7174:7;7201:37;7221:7;:16;7229:7;7221:16;;;;;;;;;;;;;;;;7201:19;:37::i;:::-;7194:44;;7108:138;;;:::o;1670:148::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1777:1:::1;1740:40;;1761:6;::::0;::::1;;;;;;;;1740:40;;;;;;;;;;;;1808:1;1791:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1670:148::o:0;5768:45::-;;;;:::o;5271:43::-;;;;;;;;;;;;;;;;;:::o;12343:81::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12412:4:::1;12398:11;;:18;;;;;;;;;;;;;;;;;;12343:81::o:0;1456:79::-;1494:7;1521:6;;;;;;;;;;;1514:13;;1456:79;:::o;5820:47::-;;;;:::o;6819:87::-;6858:13;6891:7;;;;;;;;;;;;;;;;;6884:14;;6819:87;:::o;17266:120::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17365:13:::1;17348:14;:30;;;;17266:120:::0;:::o;7254:199::-;7359:4;7381:42;7391:12;:10;:12::i;:::-;7405:9;7416:6;7381:9;:42::i;:::-;7441:4;7434:11;;7254:199;;;;:::o;5321:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5233:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;16606:297::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16763:13:::1;16746:14;:30;;;;16805:14;16787:15;:32;;;;16845:11;16830:12;:26;;;;16883:12;16867:13;:28;;;;16606:297:::0;;;;:::o;12432:236::-;12498:19;;;;;;;;;;;12482:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12537:17;;;;;;;;;;;12521:33;;:12;:10;:12::i;:::-;:33;;;12482:72;12474:81;;;;;;12566:23;12592:24;12610:4;12592:9;:24::i;:::-;12566:50;;12627:33;12644:15;12627:16;:33::i;:::-;12463:205;12432:236::o;12919:175::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13001:9:::1;12996:91;13020:5;:12;13016:1;:16;12996:91;;;13071:4;13054;:14;13059:5;13065:1;13059:8;;;;;;;;:::i;:::-;;;;;;;;13054:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13034:3;;;;;:::i;:::-;;;;12996:91;;;;12919:175:::0;:::o;7461:184::-;7578:7;7610:11;:18;7622:5;7610:18;;;;;;;;;;;;;;;:27;7629:7;7610:27;;;;;;;;;;;;;;;;7603:34;;7461:184;;;;:::o;1826:244::-;1593:12;:10;:12::i;:::-;1583:22;;:6;;;;;;;;;;:22;;;1575:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1935:1:::1;1915:22;;:8;:22;;::::0;1907:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2025:8;1996:38;;2017:6;::::0;::::1;;;;;;;;1996:38;;;;;;;;;;;;2054:8;2045:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1826:244:::0;:::o;215:98::-;268:7;295:10;288:17;;215:98;:::o;8991:369::-;9135:1;9118:19;;:5;:19;;;9110:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9216:1;9197:21;;:7;:21;;;9189:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9298:6;9268:11;:18;9280:5;9268:18;;;;;;;;;;;;;;;:27;9287:7;9268:27;;;;;;;;;;;;;;;:36;;;;9336:7;9320:32;;9329:5;9320:32;;;9345:6;9320:32;;;;;;:::i;:::-;;;;;;;;8991:369;;;:::o;9368:2369::-;9506:1;9490:18;;:4;:18;;;9482:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9583:1;9569:16;;:2;:16;;;9561:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9653:1;9644:6;:10;9636:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9726:7;:5;:7::i;:::-;9718:15;;:4;:15;;;;:32;;;;;9743:7;:5;:7::i;:::-;9737:13;;:2;:13;;;;9718:32;:52;;;;;9755:9;:15;9765:4;9755:15;;;;;;;;;;;;;;;;;;;;;;;;;9754:16;9718:52;:70;;;;;9775:9;:13;9785:2;9775:13;;;;;;;;;;;;;;;;;;;;;;;;;9774:14;9718:70;9714:1297;;;9845:11;;;;;;;;;;;9840:144;;9885:9;:15;9895:4;9885:15;;;;;;;;;;;;;;;;;;;;;;;;;9877:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9840:144;10018:12;;10008:6;:22;;10000:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10087:4;:10;10092:4;10087:10;;;;;;;;;;;;;;;;;;;;;;;;;10086:11;:24;;;;;10102:4;:8;10107:2;10102:8;;;;;;;;;;;;;;;;;;;;;;;;;10101:9;10086:24;10078:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10176:13;;;;;;;;;;;10170:19;;:2;:19;;;10167:146;;10243:14;;10234:6;10218:13;10228:2;10218:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10210:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10167:146;10329:28;10360:24;10378:4;10360:9;:24::i;:::-;10329:55;;10399:12;10438:19;;10414:20;:43;;10399:58;;10501:12;;10477:20;:36;10474:124;;10570:12;;10547:35;;10474:124;10618:7;:18;;;;;10630:6;;;;;;;;;;;10629:7;10618:18;:43;;;;;10648:13;;;;;;;;;;;10640:21;;:4;:21;;;;10618:43;:58;;;;;10665:11;;;;;;;;;;10618:58;:87;;;;;10681:18;:24;10700:4;10681:24;;;;;;;;;;;;;;;;;;;;;;;;;10680:25;10618:87;:114;;;;;10710:18;:22;10729:2;10710:22;;;;;;;;;;;;;;;;;;;;;;;;;10709:23;10618:114;10614:386;;;10753:38;10770:20;10753:16;:38::i;:::-;10810:26;10839:21;10810:50;;10904:1;10883:18;:22;10879:106;;;10930:35;10943:21;10930:12;:35::i;:::-;10879:106;10734:266;10614:386;9790:1221;;9714:1297;11023:12;11038:4;11023:19;;11087:18;:24;11106:4;11087:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11115:18;:22;11134:2;11115:22;;;;;;;;;;;;;;;;;;;;;;;;;11087:50;11086:102;;;;11151:13;;;;;;;;;;;11143:21;;:4;:21;;;;:44;;;;;11174:13;;;;;;;;;;;11168:19;;:2;:19;;;;11143:44;11086:102;11082:594;;;11215:5;11205:15;;11082:594;;;11298:13;;;;;;;;;;;11290:21;;:4;:21;;;:55;;;;;11329:15;;;;;;;;;;;11315:30;;:2;:30;;;;11290:55;11287:162;;;11378:14;;11366:9;:26;;;;11421:12;;11411:7;:22;;;;11287:162;11508:13;;;;;;;;;;;11502:19;;:2;:19;;;:55;;;;;11541:15;;;;;;;;;;;11525:32;;:4;:32;;;;11502:55;11498:165;;;11590:15;;11578:9;:27;;;;11634:13;;11624:7;:23;;;;11498:165;11082:594;11688:41;11703:4;11709:2;11713:6;11721:7;11688:14;:41::i;:::-;9471:2266;9368:2369;;;:::o;2434:224::-;2554:7;2587:1;2582;:6;;2590:12;2574:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2614:9;2630:1;2626;:5;;;;:::i;:::-;2614:17;;2649:1;2642:8;;;2434:224;;;;;:::o;12236:99::-;12293:17;;;;;;;;;;;:26;;:34;12320:6;12293:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12236:99;:::o;8308:323::-;8403:7;8461;;8450;:18;;8428:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8549:19;8571:10;:8;:10::i;:::-;8549:32;;8599:24;8611:11;8599:7;:11;;:24;;;;:::i;:::-;8592:31;;;8308:323;;;:::o;11745:483::-;6029:4;6020:6;;:13;;;;;;;;;;;;;;;;;;11823:21:::1;11861:1;11847:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11823:40;;11892:4;11874;11879:1;11874:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11918:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11908:4;11913:1;11908:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11951:62;11968:4;11983:15;;;;;;;;;;;12001:11;11951:8;:62::i;:::-;12024:15;;;;;;;;;;;:66;;;12105:11;12131:1;12147:4;12174;12194:15;12024:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11812:416;6065:5:::0;6056:6;;:14;;;;;;;;;;;;;;;;;;11745:483;:::o;13208:282::-;13364:7;13359:28;;13373:14;:12;:14::i;:::-;13359:28;13398:44;13416:6;13424:9;13435:6;13398:17;:44::i;:::-;13458:7;13453:29;;13467:15;:13;:15::i;:::-;13453:29;13208:282;;;;:::o;16169:164::-;16211:7;16232:15;16249;16268:19;:17;:19::i;:::-;16231:56;;;;16305:20;16317:7;16305;:11;;:20;;;;:::i;:::-;16298:27;;;;16169:164;:::o;2920:132::-;2978:7;3005:39;3009:1;3012;3005:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2998:46;;2920:132;;;;:::o;8639:219::-;8699:1;8686:9;;:14;:30;;;;;8715:1;8704:7;;:12;8686:30;8718:7;8682:43;8757:9;;8737:17;:29;;;;8795:7;;8777:15;:25;;;;8827:1;8815:9;:13;;;;8849:1;8839:7;:11;;;;8639:219;:::o;13498:610::-;13645:15;13675:23;13713:12;13740:23;13778:12;13805:13;13832:19;13843:7;13832:10;:19::i;:::-;13630:221;;;;;;;;;;;;13880:28;13900:7;13880;:15;13888:6;13880:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13862:7;:15;13870:6;13862:15;;;;;;;;;;;;;;;:46;;;;13940:39;13963:15;13940:7;:18;13948:9;13940:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13919:7;:18;13927:9;13919:18;;;;;;;;;;;;;;;:60;;;;13990:16;14000:5;13990:9;:16::i;:::-;14017:23;14029:4;14035;14017:11;:23::i;:::-;14073:9;14056:44;;14065:6;14056:44;;;14084:15;14056:44;;;;;;:::i;:::-;;;;;;;;13619:489;;;;;;13498:610;;;:::o;8866:117::-;8922:17;;8910:9;:29;;;;8960:15;;8950:7;:25;;;;8866:117::o;16341:257::-;16392:7;16401;16421:15;16439:7;;16421:25;;16457:15;4730:21;16457:25;;16507:20;4730:21;16507:7;;:11;;:20;;;;:::i;:::-;16497:7;:30;16493:61;;;16537:7;;4730:21;16529:25;;;;;;;;16493:61;16573:7;16582;16565:25;;;;;;16341:257;;;:::o;3060:223::-;3180:7;3212:1;3208;:5;3215:12;3200:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3239:9;3255:1;3251;:5;;;;:::i;:::-;3239:17;;3274:1;3267:8;;;3060:223;;;;;:::o;14527:615::-;14627:7;14649;14671;14693;14715;14737;14773:23;14798:12;14812:13;14842:40;14854:7;14863:9;;14874:7;;14842:11;:40::i;:::-;14772:110;;;;;;14893:19;14915:10;:8;:10::i;:::-;14893:32;;14937:15;14954:23;14979:12;15008:46;15020:7;15029:4;15035:5;15042:11;15008;:46::i;:::-;14936:118;;;;;;15073:7;15082:15;15099:4;15105:15;15122:4;15128:5;15065:69;;;;;;;;;;;;;;;;;;;14527:615;;;;;;;:::o;2290:136::-;2348:7;2375:43;2379:1;2382;2375:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2368:50;;2290:136;;;;:::o;2103:179::-;2161:7;2181:9;2197:1;2193;:5;;;;:::i;:::-;2181:17;;2222:1;2217;:6;;2209:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2273:1;2266:8;;;2103:179;;;;:::o;14116:211::-;14169:19;14191:10;:8;:10::i;:::-;14169:32;;14212:13;14228:22;14238:11;14228:5;:9;;:22;;;;:::i;:::-;14212:38;;14286:33;14313:5;14286:7;:22;14302:4;14286:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14261:7;:22;14277:4;14261:22;;;;;;;;;;;;;;;:58;;;;14158:169;;14116:211;:::o;14335:147::-;14413:17;14425:4;14413:7;;:11;;:17;;;;:::i;:::-;14403:7;:27;;;;14454:20;14469:4;14454:10;;:14;;:20;;;;:::i;:::-;14441:10;:33;;;;14335:147;;:::o;15150:469::-;15319:7;15341;15363;15398:12;15413:30;15439:3;15413:21;15425:8;15413:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15398:45;;15454:13;15470:28;15494:3;15470:19;15482:6;15470:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15454:44;;15509:23;15535:28;15557:5;15535:17;15547:4;15535:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15509:54;;15582:15;15599:4;15605:5;15574:37;;;;;;;;;15150:469;;;;;;;:::o;15627:534::-;15821:7;15843;15865;15900:15;15918:24;15930:11;15918:7;:11;;:24;;;;:::i;:::-;15900:42;;15953:12;15968:21;15977:11;15968:4;:8;;:21;;;;:::i;:::-;15953:36;;16000:13;16016:22;16026:11;16016:5;:9;;:22;;;;:::i;:::-;16000:38;;16049:23;16075:28;16097:5;16075:17;16087:4;16075:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16049:54;;16122:7;16131:15;16148:4;16114:39;;;;;;;;;;15627:534;;;;;;;;:::o;2666:246::-;2724:7;2753:1;2748;:6;2744:47;;2778:1;2771:8;;;;2744:47;2801:9;2817:1;2813;:5;;;;:::i;:::-;2801:17;;2846:1;2841;2837;:5;;;;:::i;:::-;:10;2829:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2903:1;2896:8;;;2666:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;720:568;793:8;803:6;853:3;846:4;838:6;834:17;830:27;820:122;;861:79;;:::i;:::-;820:122;974:6;961:20;951:30;;1004:18;996:6;993:30;990:117;;;1026:79;;:::i;:::-;990:117;1140:4;1132:6;1128:17;1116:29;;1194:3;1186:4;1178:6;1174:17;1164:8;1160:32;1157:41;1154:128;;;1201:79;;:::i;:::-;1154:128;720:568;;;;;:::o;1294:90::-;1328:7;1371:5;1364:13;1357:21;1346:32;;1294:90;;;:::o;1390:116::-;1460:21;1475:5;1460:21;:::i;:::-;1453:5;1450:32;1440:60;;1496:1;1493;1486:12;1440:60;1390:116;:::o;1512:133::-;1555:5;1593:6;1580:20;1571:29;;1609:30;1633:5;1609:30;:::i;:::-;1512:133;;;;:::o;1651:698::-;1743:6;1751;1759;1808:2;1796:9;1787:7;1783:23;1779:32;1776:119;;;1814:79;;:::i;:::-;1776:119;1962:1;1951:9;1947:17;1934:31;1992:18;1984:6;1981:30;1978:117;;;2014:79;;:::i;:::-;1978:117;2127:80;2199:7;2190:6;2179:9;2175:22;2127:80;:::i;:::-;2109:98;;;;1905:312;2256:2;2282:50;2324:7;2315:6;2304:9;2300:22;2282:50;:::i;:::-;2272:60;;2227:115;1651:698;;;;;:::o;2355:99::-;2407:6;2441:5;2435:12;2425:22;;2355:99;;;:::o;2460:169::-;2544:11;2578:6;2573:3;2566:19;2618:4;2613:3;2609:14;2594:29;;2460:169;;;;:::o;2635:307::-;2703:1;2713:113;2727:6;2724:1;2721:13;2713:113;;;2812:1;2807:3;2803:11;2797:18;2793:1;2788:3;2784:11;2777:39;2749:2;2746:1;2742:10;2737:15;;2713:113;;;2844:6;2841:1;2838:13;2835:101;;;2924:1;2915:6;2910:3;2906:16;2899:27;2835:101;2684:258;2635:307;;;:::o;2948:102::-;2989:6;3040:2;3036:7;3031:2;3024:5;3020:14;3016:28;3006:38;;2948:102;;;:::o;3056:364::-;3144:3;3172:39;3205:5;3172:39;:::i;:::-;3227:71;3291:6;3286:3;3227:71;:::i;:::-;3220:78;;3307:52;3352:6;3347:3;3340:4;3333:5;3329:16;3307:52;:::i;:::-;3384:29;3406:6;3384:29;:::i;:::-;3379:3;3375:39;3368:46;;3148:272;3056:364;;;;:::o;3426:313::-;3539:4;3577:2;3566:9;3562:18;3554:26;;3626:9;3620:4;3616:20;3612:1;3601:9;3597:17;3590:47;3654:78;3727:4;3718:6;3654:78;:::i;:::-;3646:86;;3426:313;;;;:::o;3745:126::-;3782:7;3822:42;3815:5;3811:54;3800:65;;3745:126;;;:::o;3877:96::-;3914:7;3943:24;3961:5;3943:24;:::i;:::-;3932:35;;3877:96;;;:::o;3979:122::-;4052:24;4070:5;4052:24;:::i;:::-;4045:5;4042:35;4032:63;;4091:1;4088;4081:12;4032:63;3979:122;:::o;4107:139::-;4153:5;4191:6;4178:20;4169:29;;4207:33;4234:5;4207:33;:::i;:::-;4107:139;;;;:::o;4252:77::-;4289:7;4318:5;4307:16;;4252:77;;;:::o;4335:122::-;4408:24;4426:5;4408:24;:::i;:::-;4401:5;4398:35;4388:63;;4447:1;4444;4437:12;4388:63;4335:122;:::o;4463:139::-;4509:5;4547:6;4534:20;4525:29;;4563:33;4590:5;4563:33;:::i;:::-;4463:139;;;;:::o;4608:474::-;4676:6;4684;4733:2;4721:9;4712:7;4708:23;4704:32;4701:119;;;4739:79;;:::i;:::-;4701:119;4859:1;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4830:117;4986:2;5012:53;5057:7;5048:6;5037:9;5033:22;5012:53;:::i;:::-;5002:63;;4957:118;4608:474;;;;;:::o;5088:109::-;5169:21;5184:5;5169:21;:::i;:::-;5164:3;5157:34;5088:109;;:::o;5203:210::-;5290:4;5328:2;5317:9;5313:18;5305:26;;5341:65;5403:1;5392:9;5388:17;5379:6;5341:65;:::i;:::-;5203:210;;;;:::o;5419:60::-;5447:3;5468:5;5461:12;;5419:60;;;:::o;5485:142::-;5535:9;5568:53;5586:34;5595:24;5613:5;5595:24;:::i;:::-;5586:34;:::i;:::-;5568:53;:::i;:::-;5555:66;;5485:142;;;:::o;5633:126::-;5683:9;5716:37;5747:5;5716:37;:::i;:::-;5703:50;;5633:126;;;:::o;5765:152::-;5841:9;5874:37;5905:5;5874:37;:::i;:::-;5861:50;;5765:152;;;:::o;5923:183::-;6036:63;6093:5;6036:63;:::i;:::-;6031:3;6024:76;5923:183;;:::o;6112:274::-;6231:4;6269:2;6258:9;6254:18;6246:26;;6282:97;6376:1;6365:9;6361:17;6352:6;6282:97;:::i;:::-;6112:274;;;;:::o;6392:118::-;6479:24;6497:5;6479:24;:::i;:::-;6474:3;6467:37;6392:118;;:::o;6516:222::-;6609:4;6647:2;6636:9;6632:18;6624:26;;6660:71;6728:1;6717:9;6713:17;6704:6;6660:71;:::i;:::-;6516:222;;;;:::o;6744:619::-;6821:6;6829;6837;6886:2;6874:9;6865:7;6861:23;6857:32;6854:119;;;6892:79;;:::i;:::-;6854:119;7012:1;7037:53;7082:7;7073:6;7062:9;7058:22;7037:53;:::i;:::-;7027:63;;6983:117;7139:2;7165:53;7210:7;7201:6;7190:9;7186:22;7165:53;:::i;:::-;7155:63;;7110:118;7267:2;7293:53;7338:7;7329:6;7318:9;7314:22;7293:53;:::i;:::-;7283:63;;7238:118;6744:619;;;;;:::o;7369:86::-;7404:7;7444:4;7437:5;7433:16;7422:27;;7369:86;;;:::o;7461:112::-;7544:22;7560:5;7544:22;:::i;:::-;7539:3;7532:35;7461:112;;:::o;7579:214::-;7668:4;7706:2;7695:9;7691:18;7683:26;;7719:67;7783:1;7772:9;7768:17;7759:6;7719:67;:::i;:::-;7579:214;;;;:::o;7799:329::-;7858:6;7907:2;7895:9;7886:7;7882:23;7878:32;7875:119;;;7913:79;;:::i;:::-;7875:119;8033:1;8058:53;8103:7;8094:6;8083:9;8079:22;8058:53;:::i;:::-;8048:63;;8004:117;7799:329;;;;:::o;8134:118::-;8221:24;8239:5;8221:24;:::i;:::-;8216:3;8209:37;8134:118;;:::o;8258:222::-;8351:4;8389:2;8378:9;8374:18;8366:26;;8402:71;8470:1;8459:9;8455:17;8446:6;8402:71;:::i;:::-;8258:222;;;;:::o;8486:329::-;8545:6;8594:2;8582:9;8573:7;8569:23;8565:32;8562:119;;;8600:79;;:::i;:::-;8562:119;8720:1;8745:53;8790:7;8781:6;8770:9;8766:22;8745:53;:::i;:::-;8735:63;;8691:117;8486:329;;;;:::o;8821:765::-;8907:6;8915;8923;8931;8980:3;8968:9;8959:7;8955:23;8951:33;8948:120;;;8987:79;;:::i;:::-;8948:120;9107:1;9132:53;9177:7;9168:6;9157:9;9153:22;9132:53;:::i;:::-;9122:63;;9078:117;9234:2;9260:53;9305:7;9296:6;9285:9;9281:22;9260:53;:::i;:::-;9250:63;;9205:118;9362:2;9388:53;9433:7;9424:6;9413:9;9409:22;9388:53;:::i;:::-;9378:63;;9333:118;9490:2;9516:53;9561:7;9552:6;9541:9;9537:22;9516:53;:::i;:::-;9506:63;;9461:118;8821:765;;;;;;;:::o;9592:180::-;9640:77;9637:1;9630:88;9737:4;9734:1;9727:15;9761:4;9758:1;9751:15;9778:281;9861:27;9883:4;9861:27;:::i;:::-;9853:6;9849:40;9991:6;9979:10;9976:22;9955:18;9943:10;9940:34;9937:62;9934:88;;;10002:18;;:::i;:::-;9934:88;10042:10;10038:2;10031:22;9821:238;9778:281;;:::o;10065:129::-;10099:6;10126:20;;:::i;:::-;10116:30;;10155:33;10183:4;10175:6;10155:33;:::i;:::-;10065:129;;;:::o;10200:311::-;10277:4;10367:18;10359:6;10356:30;10353:56;;;10389:18;;:::i;:::-;10353:56;10439:4;10431:6;10427:17;10419:25;;10499:4;10493;10489:15;10481:23;;10200:311;;;:::o;10534:710::-;10630:5;10655:81;10671:64;10728:6;10671:64;:::i;:::-;10655:81;:::i;:::-;10646:90;;10756:5;10785:6;10778:5;10771:21;10819:4;10812:5;10808:16;10801:23;;10872:4;10864:6;10860:17;10852:6;10848:30;10901:3;10893:6;10890:15;10887:122;;;10920:79;;:::i;:::-;10887:122;11035:6;11018:220;11052:6;11047:3;11044:15;11018:220;;;11127:3;11156:37;11189:3;11177:10;11156:37;:::i;:::-;11151:3;11144:50;11223:4;11218:3;11214:14;11207:21;;11094:144;11078:4;11073:3;11069:14;11062:21;;11018:220;;;11022:21;10636:608;;10534:710;;;;;:::o;11267:370::-;11338:5;11387:3;11380:4;11372:6;11368:17;11364:27;11354:122;;11395:79;;:::i;:::-;11354:122;11512:6;11499:20;11537:94;11627:3;11619:6;11612:4;11604:6;11600:17;11537:94;:::i;:::-;11528:103;;11344:293;11267:370;;;;:::o;11643:539::-;11727:6;11776:2;11764:9;11755:7;11751:23;11747:32;11744:119;;;11782:79;;:::i;:::-;11744:119;11930:1;11919:9;11915:17;11902:31;11960:18;11952:6;11949:30;11946:117;;;11982:79;;:::i;:::-;11946:117;12087:78;12157:7;12148:6;12137:9;12133:22;12087:78;:::i;:::-;12077:88;;11873:302;11643:539;;;;:::o;12188:474::-;12256:6;12264;12313:2;12301:9;12292:7;12288:23;12284:32;12281:119;;;12319:79;;:::i;:::-;12281:119;12439:1;12464:53;12509:7;12500:6;12489:9;12485:22;12464:53;:::i;:::-;12454:63;;12410:117;12566:2;12592:53;12637:7;12628:6;12617:9;12613:22;12592:53;:::i;:::-;12582:63;;12537:118;12188:474;;;;;:::o;12668:182::-;12808:34;12804:1;12796:6;12792:14;12785:58;12668:182;:::o;12856:366::-;12998:3;13019:67;13083:2;13078:3;13019:67;:::i;:::-;13012:74;;13095:93;13184:3;13095:93;:::i;:::-;13213:2;13208:3;13204:12;13197:19;;12856:366;;;:::o;13228:419::-;13394:4;13432:2;13421:9;13417:18;13409:26;;13481:9;13475:4;13471:20;13467:1;13456:9;13452:17;13445:47;13509:131;13635:4;13509:131;:::i;:::-;13501:139;;13228:419;;;:::o;13653:180::-;13701:77;13698:1;13691:88;13798:4;13795:1;13788:15;13822:4;13819:1;13812:15;13839:180;13887:77;13884:1;13877:88;13984:4;13981:1;13974:15;14008:4;14005:1;13998:15;14025:233;14064:3;14087:24;14105:5;14087:24;:::i;:::-;14078:33;;14133:66;14126:5;14123:77;14120:103;;14203:18;;:::i;:::-;14120:103;14250:1;14243:5;14239:13;14232:20;;14025:233;;;:::o;14264:225::-;14404:34;14400:1;14392:6;14388:14;14381:58;14473:8;14468:2;14460:6;14456:15;14449:33;14264:225;:::o;14495:366::-;14637:3;14658:67;14722:2;14717:3;14658:67;:::i;:::-;14651:74;;14734:93;14823:3;14734:93;:::i;:::-;14852:2;14847:3;14843:12;14836:19;;14495:366;;;:::o;14867:419::-;15033:4;15071:2;15060:9;15056:18;15048:26;;15120:9;15114:4;15110:20;15106:1;15095:9;15091:17;15084:47;15148:131;15274:4;15148:131;:::i;:::-;15140:139;;14867:419;;;:::o;15292:223::-;15432:34;15428:1;15420:6;15416:14;15409:58;15501:6;15496:2;15488:6;15484:15;15477:31;15292:223;:::o;15521:366::-;15663:3;15684:67;15748:2;15743:3;15684:67;:::i;:::-;15677:74;;15760:93;15849:3;15760:93;:::i;:::-;15878:2;15873:3;15869:12;15862:19;;15521:366;;;:::o;15893:419::-;16059:4;16097:2;16086:9;16082:18;16074:26;;16146:9;16140:4;16136:20;16132:1;16121:9;16117:17;16110:47;16174:131;16300:4;16174:131;:::i;:::-;16166:139;;15893:419;;;:::o;16318:221::-;16458:34;16454:1;16446:6;16442:14;16435:58;16527:4;16522:2;16514:6;16510:15;16503:29;16318:221;:::o;16545:366::-;16687:3;16708:67;16772:2;16767:3;16708:67;:::i;:::-;16701:74;;16784:93;16873:3;16784:93;:::i;:::-;16902:2;16897:3;16893:12;16886:19;;16545:366;;;:::o;16917:419::-;17083:4;17121:2;17110:9;17106:18;17098:26;;17170:9;17164:4;17160:20;17156:1;17145:9;17141:17;17134:47;17198:131;17324:4;17198:131;:::i;:::-;17190:139;;16917:419;;;:::o;17342:224::-;17482:34;17478:1;17470:6;17466:14;17459:58;17551:7;17546:2;17538:6;17534:15;17527:32;17342:224;:::o;17572:366::-;17714:3;17735:67;17799:2;17794:3;17735:67;:::i;:::-;17728:74;;17811:93;17900:3;17811:93;:::i;:::-;17929:2;17924:3;17920:12;17913:19;;17572:366;;;:::o;17944:419::-;18110:4;18148:2;18137:9;18133:18;18125:26;;18197:9;18191:4;18187:20;18183:1;18172:9;18168:17;18161:47;18225:131;18351:4;18225:131;:::i;:::-;18217:139;;17944:419;;;:::o;18369:222::-;18509:34;18505:1;18497:6;18493:14;18486:58;18578:5;18573:2;18565:6;18561:15;18554:30;18369:222;:::o;18597:366::-;18739:3;18760:67;18824:2;18819:3;18760:67;:::i;:::-;18753:74;;18836:93;18925:3;18836:93;:::i;:::-;18954:2;18949:3;18945:12;18938:19;;18597:366;;;:::o;18969:419::-;19135:4;19173:2;19162:9;19158:18;19150:26;;19222:9;19216:4;19212:20;19208:1;19197:9;19193:17;19186:47;19250:131;19376:4;19250:131;:::i;:::-;19242:139;;18969:419;;;:::o;19394:228::-;19534:34;19530:1;19522:6;19518:14;19511:58;19603:11;19598:2;19590:6;19586:15;19579:36;19394:228;:::o;19628:366::-;19770:3;19791:67;19855:2;19850:3;19791:67;:::i;:::-;19784:74;;19867:93;19956:3;19867:93;:::i;:::-;19985:2;19980:3;19976:12;19969:19;;19628:366;;;:::o;20000:419::-;20166:4;20204:2;20193:9;20189:18;20181:26;;20253:9;20247:4;20243:20;20239:1;20228:9;20224:17;20217:47;20281:131;20407:4;20281:131;:::i;:::-;20273:139;;20000:419;;;:::o;20425:250::-;20565:34;20561:1;20553:6;20549:14;20542:58;20634:33;20629:2;20621:6;20617:15;20610:58;20425:250;:::o;20681:366::-;20823:3;20844:67;20908:2;20903:3;20844:67;:::i;:::-;20837:74;;20920:93;21009:3;20920:93;:::i;:::-;21038:2;21033:3;21029:12;21022:19;;20681:366;;;:::o;21053:419::-;21219:4;21257:2;21246:9;21242:18;21234:26;;21306:9;21300:4;21296:20;21292:1;21281:9;21277:17;21270:47;21334:131;21460:4;21334:131;:::i;:::-;21326:139;;21053:419;;;:::o;21478:178::-;21618:30;21614:1;21606:6;21602:14;21595:54;21478:178;:::o;21662:366::-;21804:3;21825:67;21889:2;21884:3;21825:67;:::i;:::-;21818:74;;21901:93;21990:3;21901:93;:::i;:::-;22019:2;22014:3;22010:12;22003:19;;21662:366;;;:::o;22034:419::-;22200:4;22238:2;22227:9;22223:18;22215:26;;22287:9;22281:4;22277:20;22273:1;22262:9;22258:17;22251:47;22315:131;22441:4;22315:131;:::i;:::-;22307:139;;22034:419;;;:::o;22459:222::-;22599:34;22595:1;22587:6;22583:14;22576:58;22668:5;22663:2;22655:6;22651:15;22644:30;22459:222;:::o;22687:366::-;22829:3;22850:67;22914:2;22909:3;22850:67;:::i;:::-;22843:74;;22926:93;23015:3;22926:93;:::i;:::-;23044:2;23039:3;23035:12;23028:19;;22687:366;;;:::o;23059:419::-;23225:4;23263:2;23252:9;23248:18;23240:26;;23312:9;23306:4;23302:20;23298:1;23287:9;23283:17;23276:47;23340:131;23466:4;23340:131;:::i;:::-;23332:139;;23059:419;;;:::o;23484:305::-;23524:3;23543:20;23561:1;23543:20;:::i;:::-;23538:25;;23577:20;23595:1;23577:20;:::i;:::-;23572:25;;23731:1;23663:66;23659:74;23656:1;23653:81;23650:107;;;23737:18;;:::i;:::-;23650:107;23781:1;23778;23774:9;23767:16;;23484:305;;;;:::o;23795:222::-;23935:34;23931:1;23923:6;23919:14;23912:58;24004:5;23999:2;23991:6;23987:15;23980:30;23795:222;:::o;24023:366::-;24165:3;24186:67;24250:2;24245:3;24186:67;:::i;:::-;24179:74;;24262:93;24351:3;24262:93;:::i;:::-;24380:2;24375:3;24371:12;24364:19;;24023:366;;;:::o;24395:419::-;24561:4;24599:2;24588:9;24584:18;24576:26;;24648:9;24642:4;24638:20;24634:1;24623:9;24619:17;24612:47;24676:131;24802:4;24676:131;:::i;:::-;24668:139;;24395:419;;;:::o;24820:191::-;24860:4;24880:20;24898:1;24880:20;:::i;:::-;24875:25;;24914:20;24932:1;24914:20;:::i;:::-;24909:25;;24953:1;24950;24947:8;24944:34;;;24958:18;;:::i;:::-;24944:34;25003:1;25000;24996:9;24988:17;;24820:191;;;;:::o;25017:229::-;25157:34;25153:1;25145:6;25141:14;25134:58;25226:12;25221:2;25213:6;25209:15;25202:37;25017:229;:::o;25252:366::-;25394:3;25415:67;25479:2;25474:3;25415:67;:::i;:::-;25408:74;;25491:93;25580:3;25491:93;:::i;:::-;25609:2;25604:3;25600:12;25593:19;;25252:366;;;:::o;25624:419::-;25790:4;25828:2;25817:9;25813:18;25805:26;;25877:9;25871:4;25867:20;25863:1;25852:9;25848:17;25841:47;25905:131;26031:4;25905:131;:::i;:::-;25897:139;;25624:419;;;:::o;26049:143::-;26106:5;26137:6;26131:13;26122:22;;26153:33;26180:5;26153:33;:::i;:::-;26049:143;;;;:::o;26198:351::-;26268:6;26317:2;26305:9;26296:7;26292:23;26288:32;26285:119;;;26323:79;;:::i;:::-;26285:119;26443:1;26468:64;26524:7;26515:6;26504:9;26500:22;26468:64;:::i;:::-;26458:74;;26414:128;26198:351;;;;:::o;26555:85::-;26600:7;26629:5;26618:16;;26555:85;;;:::o;26646:158::-;26704:9;26737:61;26755:42;26764:32;26790:5;26764:32;:::i;:::-;26755:42;:::i;:::-;26737:61;:::i;:::-;26724:74;;26646:158;;;:::o;26810:147::-;26905:45;26944:5;26905:45;:::i;:::-;26900:3;26893:58;26810:147;;:::o;26963:114::-;27030:6;27064:5;27058:12;27048:22;;26963:114;;;:::o;27083:184::-;27182:11;27216:6;27211:3;27204:19;27256:4;27251:3;27247:14;27232:29;;27083:184;;;;:::o;27273:132::-;27340:4;27363:3;27355:11;;27393:4;27388:3;27384:14;27376:22;;27273:132;;;:::o;27411:108::-;27488:24;27506:5;27488:24;:::i;:::-;27483:3;27476:37;27411:108;;:::o;27525:179::-;27594:10;27615:46;27657:3;27649:6;27615:46;:::i;:::-;27693:4;27688:3;27684:14;27670:28;;27525:179;;;;:::o;27710:113::-;27780:4;27812;27807:3;27803:14;27795:22;;27710:113;;;:::o;27859:732::-;27978:3;28007:54;28055:5;28007:54;:::i;:::-;28077:86;28156:6;28151:3;28077:86;:::i;:::-;28070:93;;28187:56;28237:5;28187:56;:::i;:::-;28266:7;28297:1;28282:284;28307:6;28304:1;28301:13;28282:284;;;28383:6;28377:13;28410:63;28469:3;28454:13;28410:63;:::i;:::-;28403:70;;28496:60;28549:6;28496:60;:::i;:::-;28486:70;;28342:224;28329:1;28326;28322:9;28317:14;;28282:284;;;28286:14;28582:3;28575:10;;27983:608;;;27859:732;;;;:::o;28597:831::-;28860:4;28898:3;28887:9;28883:19;28875:27;;28912:71;28980:1;28969:9;28965:17;28956:6;28912:71;:::i;:::-;28993:80;29069:2;29058:9;29054:18;29045:6;28993:80;:::i;:::-;29120:9;29114:4;29110:20;29105:2;29094:9;29090:18;29083:48;29148:108;29251:4;29242:6;29148:108;:::i;:::-;29140:116;;29266:72;29334:2;29323:9;29319:18;29310:6;29266:72;:::i;:::-;29348:73;29416:3;29405:9;29401:19;29392:6;29348:73;:::i;:::-;28597:831;;;;;;;;:::o;29434:180::-;29482:77;29479:1;29472:88;29579:4;29576:1;29569:15;29603:4;29600:1;29593:15;29620:185;29660:1;29677:20;29695:1;29677:20;:::i;:::-;29672:25;;29711:20;29729:1;29711:20;:::i;:::-;29706:25;;29750:1;29740:35;;29755:18;;:::i;:::-;29740:35;29797:1;29794;29790:9;29785:14;;29620:185;;;;:::o;29811:177::-;29951:29;29947:1;29939:6;29935:14;29928:53;29811:177;:::o;29994:366::-;30136:3;30157:67;30221:2;30216:3;30157:67;:::i;:::-;30150:74;;30233:93;30322:3;30233:93;:::i;:::-;30351:2;30346:3;30342:12;30335:19;;29994:366;;;:::o;30366:419::-;30532:4;30570:2;30559:9;30555:18;30547:26;;30619:9;30613:4;30609:20;30605:1;30594:9;30590:17;30583:47;30647:131;30773:4;30647:131;:::i;:::-;30639:139;;30366:419;;;:::o;30791:348::-;30831:7;30854:20;30872:1;30854:20;:::i;:::-;30849:25;;30888:20;30906:1;30888:20;:::i;:::-;30883:25;;31076:1;31008:66;31004:74;31001:1;30998:81;30993:1;30986:9;30979:17;30975:105;30972:131;;;31083:18;;:::i;:::-;30972:131;31131:1;31128;31124:9;31113:20;;30791:348;;;;:::o;31145:220::-;31285:34;31281:1;31273:6;31269:14;31262:58;31354:3;31349:2;31341:6;31337:15;31330:28;31145:220;:::o;31371:366::-;31513:3;31534:67;31598:2;31593:3;31534:67;:::i;:::-;31527:74;;31610:93;31699:3;31610:93;:::i;:::-;31728:2;31723:3;31719:12;31712:19;;31371:366;;;:::o;31743:419::-;31909:4;31947:2;31936:9;31932:18;31924:26;;31996:9;31990:4;31986:20;31982:1;31971:9;31967:17;31960:47;32024:131;32150:4;32024:131;:::i;:::-;32016:139;;31743:419;;;:::o

Swarm Source

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