ETH Price: $3,149.73 (-8.35%)
Gas: 9 Gwei

Token

NovaCashAI (NCAI)
 

Overview

Max Total Supply

100,000,000 NCAI

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
22,727.234042271 NCAI

Value
$0.00
0xb938f4d6c91c1baceb07f3dece6e921978e2f20e
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:
NovaCashAI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

// Welcome to NovaCashAI,
// We're the first to bring you AI-powered cloud mining, making it super easy for regular folks to join in.

// Website: https://novacash.ai/
// Twitter: https://twitter.com/novacash_ai
// Telegram: https://t.me/novacash_ai
// Docs: https://docs.novacash.ai/
// For propose: [email protected]


pragma solidity ^0.8.18;

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

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

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


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

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _balances;

    uint8 private constant _decimals = 9;
    string private constant _name = "NovaCashAI"; 
    string private constant _symbol = "NCAI"; 

    uint256 private constant MAX = ~uint256(0);

    uint256 private constant _tTotal = 100_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 private _previoustaxFee = _taxFee;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _taxFeeOnSell = 5;

    address payable private _marketingAddress =
        payable(0x2f4892488dB6a60f0faaD001269F9228DB0E2aFa); 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxnAmount = 1_000_000 * 10**9;
    uint256 public _maxWltSize = 2_000_000 * 10**9;
    uint256 public _minSwap = 1000 * 10**9;

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

    constructor() {
        _balances[_msgSender()] = _rTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_marketingAddress] = true;

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

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

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

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

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

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

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

    function disableFee() private {
        if (_taxFee == 0) return;

        _previoustaxFee = _taxFee;

        _taxFee = 0;
    }

    function enableFee() private {
        _taxFee = _previoustaxFee;
    }

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "Can't approve from zero address");
        require(spender != address(0), "Can't approve to zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Cant transfer from address zero");
        require(to != address(0), "Cant transfer to address zero");
        require(amount > 0, "Amount should be above zero");

        if (from != owner() && to != owner()) {
            //Trade start check
            if (!tradingOpen) {
                require(
                    from == owner(),
                    "Only owner can trade before trading activation"
                );
            }

            require(amount <= _maxTxnAmount, "Exceeded max transaction limit");

            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount < _maxWltSize,
                    "Exceeds max wallet balance"
                );
            }

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

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

            if (
                canSwap &&
                !inSwap &&
                from != uniswapV2Pair &&
                allowSwap &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    transferEthToDev(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)) {
                _taxFee = _taxFeeOnBuy;
            }

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

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

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

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

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

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) disableFee();
        _transferApplyingFees(sender, recipient, amount);
        if (!takeFee) enableFee();
    }

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

    function _transferApplyingFees(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 tTransferAmount,
            uint256 tTeam
        ) = _getFeeValues(tAmount);
        _balances[sender] = _balances[sender].sub(rAmount);
        _balances[recipient] = _balances[recipient].add(rTransferAmount);
        _transferFeeDev(tTeam);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    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 _transferFeeDev(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _balances[address(this)] = _balances[address(this)].add(rTeam);
    }

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

    receive() external payable {}

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

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

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

    function _getCurrentSupply() private view returns (uint256, uint256) {
        return (_rTotal, _tTotal);
    }

    function setAllowSwap(bool _allowSwap) public onlyOwner {
        allowSwap = _allowSwap;
    }

    function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell)
        public
        onlyOwner
    {
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 45);
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 45);

        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxnAmount = maxTxAmount;
    }

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

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWltSize = maxWalletSize;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWltSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_allowSwap","type":"bool"}],"name":"setAllowSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinTknsToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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":[],"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"}]

608060405267016345785d8a00006000196200001c919062000629565b6000196200002b919062000690565b60055560075460065560095460075560056008556005600955732f4892488db6a60f0faad001269f9228db0e2afa600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff02191690831515021790555066038d7ea4c68000600d5566071afd498d0000600e5564e8d4a51000600f55348015620000fb57600080fd5b5060006200010e620005bf60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460046000620001c3620005bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cd919062000735565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035b919062000735565b6040518363ffffffff1660e01b81526004016200037a92919062000778565b6020604051808303816000875af11580156200039a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c0919062000735565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360006200046e620005c760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000549620005bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620005b09190620007b6565b60405180910390a350620007d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200063682620005f0565b91506200064383620005f0565b925082620006565762000655620005fa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200069d82620005f0565b9150620006aa83620005f0565b9250828203905081811115620006c557620006c462000661565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006fd82620006d0565b9050919050565b6200070f81620006f0565b81146200071b57600080fd5b50565b6000815190506200072f8162000704565b92915050565b6000602082840312156200074e576200074d620006cb565b5b60006200075e848285016200071e565b91505092915050565b6200077281620006f0565b82525050565b60006040820190506200078f600083018562000767565b6200079e602083018462000767565b9392505050565b620007b081620005f0565b82525050565b6000602082019050620007cd6000830184620007a5565b92915050565b61344580620007e36000396000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063daad0c5f11610064578063daad0c5f14610545578063dd62ed3e1461056e578063ea1644d5146105ab578063f2fde38b146105d45761018c565b8063a9059cbb146104c8578063c3c8cd8014610505578063c492f0461461051c5761018c565b806370a08231146103cc578063715018a61461040957806374010ece146104205780638da5cb5b146104495780638f70ccf71461047457806395d89b411461049d5761018c565b806323b872dd1161013e57806346089a371161011857806346089a371461033657806349bd5a5e1461036157806352f7c9881461038c5780636fc3eaec146103b55761018c565b806323b872dd146102a5578063313ce567146102e25780633ac992d61461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd146102245780631b1d8af21461024f5780631de125161461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105fd565b6040516101b391906125dc565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061269c565b61063a565b6040516101f091906126f7565b60405180910390f35b34801561020557600080fd5b5061020e610658565b60405161021b9190612771565b60405180910390f35b34801561023057600080fd5b5061023961067e565b604051610246919061279b565b60405180910390f35b34801561025b57600080fd5b5061026461068e565b604051610271919061279b565b60405180910390f35b34801561028657600080fd5b5061028f610694565b60405161029c919061279b565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906127b6565b61069a565b6040516102d991906126f7565b60405180910390f35b3480156102ee57600080fd5b506102f7610773565b6040516103049190612825565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612840565b61077c565b005b34801561034257600080fd5b5061034b61081b565b604051610358919061279b565b60405180910390f35b34801561036d57600080fd5b50610376610821565b604051610383919061287c565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612897565b610847565b005b3480156103c157600080fd5b506103ca610924565b005b3480156103d857600080fd5b506103f360048036038101906103ee91906128d7565b610996565b604051610400919061279b565b60405180910390f35b34801561041557600080fd5b5061041e6109e7565b005b34801561042c57600080fd5b5061044760048036038101906104429190612840565b610b3a565b005b34801561045557600080fd5b5061045e610bd9565b60405161046b919061287c565b60405180910390f35b34801561048057600080fd5b5061049b60048036038101906104969190612930565b610c02565b005b3480156104a957600080fd5b506104b2610cb4565b6040516104bf91906125dc565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea919061269c565b610cf1565b6040516104fc91906126f7565b60405180910390f35b34801561051157600080fd5b5061051a610d0f565b005b34801561052857600080fd5b50610543600480360381019061053e91906129c2565b610d89565b005b34801561055157600080fd5b5061056c60048036038101906105679190612930565b610ec3565b005b34801561057a57600080fd5b5061059560048036038101906105909190612a22565b610f75565b6040516105a2919061279b565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190612840565b610ffc565b005b3480156105e057600080fd5b506105fb60048036038101906105f691906128d7565b61109b565b005b60606040518060400160405280600a81526020017f4e6f766143617368414900000000000000000000000000000000000000000000815250905090565b600061064e61064761125c565b8484611264565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600f5481565b600d5481565b60006106a784848461142d565b610768846106b361125c565b610763856040518060600160405280602581526020016133eb60259139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061071961125c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbd9092919063ffffffff16565b611264565b600190509392505050565b60006009905090565b61078461125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890612aae565b60405180910390fd5b80600f8190555050565b600e5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61084f61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d390612aae565b60405180910390fd5b600082101580156108ee5750602d8211155b6108f757600080fd5b600081101580156109095750602d8111155b61091257600080fd5b81600881905550806009819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096561125c565b73ffffffffffffffffffffffffffffffffffffffff161461098557600080fd5b600047905061099381611c21565b50565b60006109e0600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8d565b9050919050565b6109ef61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7390612aae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b4261125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690612aae565b60405180910390fd5b80600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c0a61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90612aae565b60405180910390fd5b80600c60146101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4e43414900000000000000000000000000000000000000000000000000000000815250905090565b6000610d05610cfe61125c565b848461142d565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d5061125c565b73ffffffffffffffffffffffffffffffffffffffff1614610d7057600080fd5b6000610d7b30610996565b9050610d8681611cfb565b50565b610d9161125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590612aae565b60405180910390fd5b60005b83839050811015610ebd578160036000868685818110610e4457610e43612ace565b5b9050602002016020810190610e5991906128d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610eb590612b2c565b915050610e21565b50505050565b610ecb61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612aae565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100461125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108890612aae565b60405180910390fd5b80600e8190555050565b6110a361125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790612aae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612be6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612c52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990612cbe565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611420919061279b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390612d2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612d96565b60405180910390fd5b6000811161154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590612e02565b60405180910390fd5b611556610bd9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115c45750611594610bd9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118ce57600c60149054906101000a900460ff16611653576115e5610bd9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164990612e94565b60405180910390fd5b5b600d54811115611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f90612f00565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174557600e54816116fa84610996565b6117049190612f20565b10611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b90612fa0565b60405180910390fd5b5b600061175030610996565b90506000600f548210159050600d54821061176b57600d5491505b8080156117855750600c60169054906101000a900460ff16155b80156117df5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117f75750600c60159054906101000a900460ff165b801561184d5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a35750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118cb576118b182611cfb565b600047905060008111156118c9576118c847611c21565b5b505b50505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119755750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a285750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a275750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a365760009050611bab565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ae15750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611af0576008546007819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611baa576009546007819055505b5b611bb784848484611f74565b50505050565b6000838311158290611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc91906125dc565b60405180910390fd5b5060008385611c149190612fc0565b9050809150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b5050565b6000600554821115611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90613066565b60405180910390fd5b6000611cde611fa1565b9050611cf38184611fcc90919063ffffffff16565b915050919050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3357611d32613086565b5b604051908082528060200260200182016040528015611d615781602001602082028036833780820191505090505b5090503081600081518110611d7957611d78612ace565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4491906130ca565b81600181518110611e5857611e57612ace565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebf30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611264565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f239594939291906131f0565b600060405180830381600087803b158015611f3d57600080fd5b505af1158015611f51573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b80611f8257611f81612016565b5b611f8d848484612035565b80611f9b57611f9a6121ed565b5b50505050565b6000806000611fae6121f8565b91509150611fc58183611fcc90919063ffffffff16565b9250505090565b600061200e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061220f565b905092915050565b600060075403156120335760075460068190555060006007819055505b565b60008060008061204485612272565b935093509350935061209e84600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213383600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230b90919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217f81612369565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121dc919061279b565b60405180910390a350505050505050565b600654600781905550565b60008060055467016345785d8a0000915091509091565b60008083118290612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d91906125dc565b60405180910390fd5b50600083856122659190613279565b9050809150509392505050565b60008060008060008061228787600754612426565b915091506000612295611fa1565b90506000806122a58a8585612479565b9150915081818686985098509850985050505050509193509193565b600061230383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbd565b905092915050565b600080828461231a9190612f20565b90508381101561235f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612356906132f6565b60405180910390fd5b8091505092915050565b6000612373611fa1565b9050600061238a82846124d290919063ffffffff16565b90506123de81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230b90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000806000612451606461244386886124d290919063ffffffff16565b611fcc90919063ffffffff16565b9050600061246882876122c190919063ffffffff16565b905080829350935050509250929050565b600080600061249184876124d290919063ffffffff16565b905060006124a885876124d290919063ffffffff16565b905060006124bf82846122c190919063ffffffff16565b9050828194509450505050935093915050565b60008083036124e45760009050612546565b600082846124f29190613316565b90508284826125019190613279565b14612541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612538906133ca565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561258657808201518184015260208101905061256b565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ae8261254c565b6125b88185612557565b93506125c8818560208601612568565b6125d181612592565b840191505092915050565b600060208201905081810360008301526125f681846125a3565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263382612608565b9050919050565b61264381612628565b811461264e57600080fd5b50565b6000813590506126608161263a565b92915050565b6000819050919050565b61267981612666565b811461268457600080fd5b50565b60008135905061269681612670565b92915050565b600080604083850312156126b3576126b26125fe565b5b60006126c185828601612651565b92505060206126d285828601612687565b9150509250929050565b60008115159050919050565b6126f1816126dc565b82525050565b600060208201905061270c60008301846126e8565b92915050565b6000819050919050565b600061273761273261272d84612608565b612712565b612608565b9050919050565b60006127498261271c565b9050919050565b600061275b8261273e565b9050919050565b61276b81612750565b82525050565b60006020820190506127866000830184612762565b92915050565b61279581612666565b82525050565b60006020820190506127b0600083018461278c565b92915050565b6000806000606084860312156127cf576127ce6125fe565b5b60006127dd86828701612651565b93505060206127ee86828701612651565b92505060406127ff86828701612687565b9150509250925092565b600060ff82169050919050565b61281f81612809565b82525050565b600060208201905061283a6000830184612816565b92915050565b600060208284031215612856576128556125fe565b5b600061286484828501612687565b91505092915050565b61287681612628565b82525050565b6000602082019050612891600083018461286d565b92915050565b600080604083850312156128ae576128ad6125fe565b5b60006128bc85828601612687565b92505060206128cd85828601612687565b9150509250929050565b6000602082840312156128ed576128ec6125fe565b5b60006128fb84828501612651565b91505092915050565b61290d816126dc565b811461291857600080fd5b50565b60008135905061292a81612904565b92915050565b600060208284031215612946576129456125fe565b5b60006129548482850161291b565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129825761298161295d565b5b8235905067ffffffffffffffff81111561299f5761299e612962565b5b6020830191508360208202830111156129bb576129ba612967565b5b9250929050565b6000806000604084860312156129db576129da6125fe565b5b600084013567ffffffffffffffff8111156129f9576129f8612603565b5b612a058682870161296c565b93509350506020612a188682870161291b565b9150509250925092565b60008060408385031215612a3957612a386125fe565b5b6000612a4785828601612651565b9250506020612a5885828601612651565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a98602083612557565b9150612aa382612a62565b602082019050919050565b60006020820190508181036000830152612ac781612a8b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3782612666565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6957612b68612afd565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bd0602683612557565b9150612bdb82612b74565b604082019050919050565b60006020820190508181036000830152612bff81612bc3565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000612c3c601f83612557565b9150612c4782612c06565b602082019050919050565b60006020820190508181036000830152612c6b81612c2f565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612ca8601d83612557565b9150612cb382612c72565b602082019050919050565b60006020820190508181036000830152612cd781612c9b565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000612d14601f83612557565b9150612d1f82612cde565b602082019050919050565b60006020820190508181036000830152612d4381612d07565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612d80601d83612557565b9150612d8b82612d4a565b602082019050919050565b60006020820190508181036000830152612daf81612d73565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612dec601b83612557565b9150612df782612db6565b602082019050919050565b60006020820190508181036000830152612e1b81612ddf565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000612e7e602e83612557565b9150612e8982612e22565b604082019050919050565b60006020820190508181036000830152612ead81612e71565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b6000612eea601e83612557565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b6000612f2b82612666565b9150612f3683612666565b9250828201905080821115612f4e57612f4d612afd565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b6000612f8a601a83612557565b9150612f9582612f54565b602082019050919050565b60006020820190508181036000830152612fb981612f7d565b9050919050565b6000612fcb82612666565b9150612fd683612666565b9250828203905081811115612fee57612fed612afd565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000613050602c83612557565b915061305b82612ff4565b604082019050919050565b6000602082019050818103600083015261307f81613043565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506130c48161263a565b92915050565b6000602082840312156130e0576130df6125fe565b5b60006130ee848285016130b5565b91505092915050565b6000819050919050565b600061311c613117613112846130f7565b612712565b612666565b9050919050565b61312c81613101565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61316781612628565b82525050565b6000613179838361315e565b60208301905092915050565b6000602082019050919050565b600061319d82613132565b6131a7818561313d565b93506131b28361314e565b8060005b838110156131e35781516131ca888261316d565b97506131d583613185565b9250506001810190506131b6565b5085935050505092915050565b600060a082019050613205600083018861278c565b6132126020830187613123565b81810360408301526132248186613192565b9050613233606083018561286d565b613240608083018461278c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328482612666565b915061328f83612666565b92508261329f5761329e61324a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132e0601b83612557565b91506132eb826132aa565b602082019050919050565b6000602082019050818103600083015261330f816132d3565b9050919050565b600061332182612666565b915061332c83612666565b925082820261333a81612666565b9150828204841483151761335157613350612afd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133b4602183612557565b91506133bf82613358565b604082019050919050565b600060208201905081810360008301526133e3816133a7565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207c7e1738ef891a046c170839db4829358aec56d77cf0a8f4f82f54775f6f48ea64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806370a08231116100d1578063a9059cbb1161008a578063daad0c5f11610064578063daad0c5f14610545578063dd62ed3e1461056e578063ea1644d5146105ab578063f2fde38b146105d45761018c565b8063a9059cbb146104c8578063c3c8cd8014610505578063c492f0461461051c5761018c565b806370a08231146103cc578063715018a61461040957806374010ece146104205780638da5cb5b146104495780638f70ccf71461047457806395d89b411461049d5761018c565b806323b872dd1161013e57806346089a371161011857806346089a371461033657806349bd5a5e1461036157806352f7c9881461038c5780636fc3eaec146103b55761018c565b806323b872dd146102a5578063313ce567146102e25780633ac992d61461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd146102245780631b1d8af21461024f5780631de125161461027a5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105fd565b6040516101b391906125dc565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061269c565b61063a565b6040516101f091906126f7565b60405180910390f35b34801561020557600080fd5b5061020e610658565b60405161021b9190612771565b60405180910390f35b34801561023057600080fd5b5061023961067e565b604051610246919061279b565b60405180910390f35b34801561025b57600080fd5b5061026461068e565b604051610271919061279b565b60405180910390f35b34801561028657600080fd5b5061028f610694565b60405161029c919061279b565b60405180910390f35b3480156102b157600080fd5b506102cc60048036038101906102c791906127b6565b61069a565b6040516102d991906126f7565b60405180910390f35b3480156102ee57600080fd5b506102f7610773565b6040516103049190612825565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612840565b61077c565b005b34801561034257600080fd5b5061034b61081b565b604051610358919061279b565b60405180910390f35b34801561036d57600080fd5b50610376610821565b604051610383919061287c565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612897565b610847565b005b3480156103c157600080fd5b506103ca610924565b005b3480156103d857600080fd5b506103f360048036038101906103ee91906128d7565b610996565b604051610400919061279b565b60405180910390f35b34801561041557600080fd5b5061041e6109e7565b005b34801561042c57600080fd5b5061044760048036038101906104429190612840565b610b3a565b005b34801561045557600080fd5b5061045e610bd9565b60405161046b919061287c565b60405180910390f35b34801561048057600080fd5b5061049b60048036038101906104969190612930565b610c02565b005b3480156104a957600080fd5b506104b2610cb4565b6040516104bf91906125dc565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea919061269c565b610cf1565b6040516104fc91906126f7565b60405180910390f35b34801561051157600080fd5b5061051a610d0f565b005b34801561052857600080fd5b50610543600480360381019061053e91906129c2565b610d89565b005b34801561055157600080fd5b5061056c60048036038101906105679190612930565b610ec3565b005b34801561057a57600080fd5b5061059560048036038101906105909190612a22565b610f75565b6040516105a2919061279b565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190612840565b610ffc565b005b3480156105e057600080fd5b506105fb60048036038101906105f691906128d7565b61109b565b005b60606040518060400160405280600a81526020017f4e6f766143617368414900000000000000000000000000000000000000000000815250905090565b600061064e61064761125c565b8484611264565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b600f5481565b600d5481565b60006106a784848461142d565b610768846106b361125c565b610763856040518060600160405280602581526020016133eb60259139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061071961125c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbd9092919063ffffffff16565b611264565b600190509392505050565b60006009905090565b61078461125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890612aae565b60405180910390fd5b80600f8190555050565b600e5481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61084f61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d390612aae565b60405180910390fd5b600082101580156108ee5750602d8211155b6108f757600080fd5b600081101580156109095750602d8111155b61091257600080fd5b81600881905550806009819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096561125c565b73ffffffffffffffffffffffffffffffffffffffff161461098557600080fd5b600047905061099381611c21565b50565b60006109e0600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8d565b9050919050565b6109ef61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7390612aae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b4261125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690612aae565b60405180910390fd5b80600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c0a61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90612aae565b60405180910390fd5b80600c60146101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4e43414900000000000000000000000000000000000000000000000000000000815250905090565b6000610d05610cfe61125c565b848461142d565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d5061125c565b73ffffffffffffffffffffffffffffffffffffffff1614610d7057600080fd5b6000610d7b30610996565b9050610d8681611cfb565b50565b610d9161125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590612aae565b60405180910390fd5b60005b83839050811015610ebd578160036000868685818110610e4457610e43612ace565b5b9050602002016020810190610e5991906128d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610eb590612b2c565b915050610e21565b50505050565b610ecb61125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90612aae565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100461125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108890612aae565b60405180910390fd5b80600e8190555050565b6110a361125c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790612aae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690612be6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90612c52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133990612cbe565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611420919061279b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390612d2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612d96565b60405180910390fd5b6000811161154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590612e02565b60405180910390fd5b611556610bd9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115c45750611594610bd9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118ce57600c60149054906101000a900460ff16611653576115e5610bd9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164990612e94565b60405180910390fd5b5b600d54811115611698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168f90612f00565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174557600e54816116fa84610996565b6117049190612f20565b10611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b90612fa0565b60405180910390fd5b5b600061175030610996565b90506000600f548210159050600d54821061176b57600d5491505b8080156117855750600c60169054906101000a900460ff16155b80156117df5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117f75750600c60159054906101000a900460ff165b801561184d5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118a35750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118cb576118b182611cfb565b600047905060008111156118c9576118c847611c21565b5b505b50505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119755750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a285750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611a275750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611a365760009050611bab565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ae15750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611af0576008546007819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9b5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611baa576009546007819055505b5b611bb784848484611f74565b50505050565b6000838311158290611c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfc91906125dc565b60405180910390fd5b5060008385611c149190612fc0565b9050809150509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b5050565b6000600554821115611cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccb90613066565b60405180910390fd5b6000611cde611fa1565b9050611cf38184611fcc90919063ffffffff16565b915050919050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3357611d32613086565b5b604051908082528060200260200182016040528015611d615781602001602082028036833780820191505090505b5090503081600081518110611d7957611d78612ace565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4491906130ca565b81600181518110611e5857611e57612ace565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ebf30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611264565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f239594939291906131f0565b600060405180830381600087803b158015611f3d57600080fd5b505af1158015611f51573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b80611f8257611f81612016565b5b611f8d848484612035565b80611f9b57611f9a6121ed565b5b50505050565b6000806000611fae6121f8565b91509150611fc58183611fcc90919063ffffffff16565b9250505090565b600061200e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061220f565b905092915050565b600060075403156120335760075460068190555060006007819055505b565b60008060008061204485612272565b935093509350935061209e84600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213383600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230b90919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217f81612369565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121dc919061279b565b60405180910390a350505050505050565b600654600781905550565b60008060055467016345785d8a0000915091509091565b60008083118290612256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224d91906125dc565b60405180910390fd5b50600083856122659190613279565b9050809150509392505050565b60008060008060008061228787600754612426565b915091506000612295611fa1565b90506000806122a58a8585612479565b9150915081818686985098509850985050505050509193509193565b600061230383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bbd565b905092915050565b600080828461231a9190612f20565b90508381101561235f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612356906132f6565b60405180910390fd5b8091505092915050565b6000612373611fa1565b9050600061238a82846124d290919063ffffffff16565b90506123de81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230b90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000806000612451606461244386886124d290919063ffffffff16565b611fcc90919063ffffffff16565b9050600061246882876122c190919063ffffffff16565b905080829350935050509250929050565b600080600061249184876124d290919063ffffffff16565b905060006124a885876124d290919063ffffffff16565b905060006124bf82846122c190919063ffffffff16565b9050828194509450505050935093915050565b60008083036124e45760009050612546565b600082846124f29190613316565b90508284826125019190613279565b14612541576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612538906133ca565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561258657808201518184015260208101905061256b565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ae8261254c565b6125b88185612557565b93506125c8818560208601612568565b6125d181612592565b840191505092915050565b600060208201905081810360008301526125f681846125a3565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061263382612608565b9050919050565b61264381612628565b811461264e57600080fd5b50565b6000813590506126608161263a565b92915050565b6000819050919050565b61267981612666565b811461268457600080fd5b50565b60008135905061269681612670565b92915050565b600080604083850312156126b3576126b26125fe565b5b60006126c185828601612651565b92505060206126d285828601612687565b9150509250929050565b60008115159050919050565b6126f1816126dc565b82525050565b600060208201905061270c60008301846126e8565b92915050565b6000819050919050565b600061273761273261272d84612608565b612712565b612608565b9050919050565b60006127498261271c565b9050919050565b600061275b8261273e565b9050919050565b61276b81612750565b82525050565b60006020820190506127866000830184612762565b92915050565b61279581612666565b82525050565b60006020820190506127b0600083018461278c565b92915050565b6000806000606084860312156127cf576127ce6125fe565b5b60006127dd86828701612651565b93505060206127ee86828701612651565b92505060406127ff86828701612687565b9150509250925092565b600060ff82169050919050565b61281f81612809565b82525050565b600060208201905061283a6000830184612816565b92915050565b600060208284031215612856576128556125fe565b5b600061286484828501612687565b91505092915050565b61287681612628565b82525050565b6000602082019050612891600083018461286d565b92915050565b600080604083850312156128ae576128ad6125fe565b5b60006128bc85828601612687565b92505060206128cd85828601612687565b9150509250929050565b6000602082840312156128ed576128ec6125fe565b5b60006128fb84828501612651565b91505092915050565b61290d816126dc565b811461291857600080fd5b50565b60008135905061292a81612904565b92915050565b600060208284031215612946576129456125fe565b5b60006129548482850161291b565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129825761298161295d565b5b8235905067ffffffffffffffff81111561299f5761299e612962565b5b6020830191508360208202830111156129bb576129ba612967565b5b9250929050565b6000806000604084860312156129db576129da6125fe565b5b600084013567ffffffffffffffff8111156129f9576129f8612603565b5b612a058682870161296c565b93509350506020612a188682870161291b565b9150509250925092565b60008060408385031215612a3957612a386125fe565b5b6000612a4785828601612651565b9250506020612a5885828601612651565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a98602083612557565b9150612aa382612a62565b602082019050919050565b60006020820190508181036000830152612ac781612a8b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3782612666565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6957612b68612afd565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bd0602683612557565b9150612bdb82612b74565b604082019050919050565b60006020820190508181036000830152612bff81612bc3565b9050919050565b7f43616e277420617070726f76652066726f6d207a65726f206164647265737300600082015250565b6000612c3c601f83612557565b9150612c4782612c06565b602082019050919050565b60006020820190508181036000830152612c6b81612c2f565b9050919050565b7f43616e277420617070726f766520746f207a65726f2061646472657373000000600082015250565b6000612ca8601d83612557565b9150612cb382612c72565b602082019050919050565b60006020820190508181036000830152612cd781612c9b565b9050919050565b7f43616e74207472616e736665722066726f6d2061646472657373207a65726f00600082015250565b6000612d14601f83612557565b9150612d1f82612cde565b602082019050919050565b60006020820190508181036000830152612d4381612d07565b9050919050565b7f43616e74207472616e7366657220746f2061646472657373207a65726f000000600082015250565b6000612d80601d83612557565b9150612d8b82612d4a565b602082019050919050565b60006020820190508181036000830152612daf81612d73565b9050919050565b7f416d6f756e742073686f756c642062652061626f7665207a65726f0000000000600082015250565b6000612dec601b83612557565b9150612df782612db6565b602082019050919050565b60006020820190508181036000830152612e1b81612ddf565b9050919050565b7f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460008201527f696e672061637469766174696f6e000000000000000000000000000000000000602082015250565b6000612e7e602e83612557565b9150612e8982612e22565b604082019050919050565b60006020820190508181036000830152612ead81612e71565b9050919050565b7f4578636565646564206d6178207472616e73616374696f6e206c696d69740000600082015250565b6000612eea601e83612557565b9150612ef582612eb4565b602082019050919050565b60006020820190508181036000830152612f1981612edd565b9050919050565b6000612f2b82612666565b9150612f3683612666565b9250828201905080821115612f4e57612f4d612afd565b5b92915050565b7f45786365656473206d61782077616c6c65742062616c616e6365000000000000600082015250565b6000612f8a601a83612557565b9150612f9582612f54565b602082019050919050565b60006020820190508181036000830152612fb981612f7d565b9050919050565b6000612fcb82612666565b9150612fd683612666565b9250828203905081811115612fee57612fed612afd565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000613050602c83612557565b915061305b82612ff4565b604082019050919050565b6000602082019050818103600083015261307f81613043565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506130c48161263a565b92915050565b6000602082840312156130e0576130df6125fe565b5b60006130ee848285016130b5565b91505092915050565b6000819050919050565b600061311c613117613112846130f7565b612712565b612666565b9050919050565b61312c81613101565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61316781612628565b82525050565b6000613179838361315e565b60208301905092915050565b6000602082019050919050565b600061319d82613132565b6131a7818561313d565b93506131b28361314e565b8060005b838110156131e35781516131ca888261316d565b97506131d583613185565b9250506001810190506131b6565b5085935050505092915050565b600060a082019050613205600083018861278c565b6132126020830187613123565b81810360408301526132248186613192565b9050613233606083018561286d565b613240608083018461278c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328482612666565b915061328f83612666565b92508261329f5761329e61324a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132e0601b83612557565b91506132eb826132aa565b602082019050919050565b6000602082019050818103600083015261330f816132d3565b9050919050565b600061332182612666565b915061332c83612666565b925082820261333a81612666565b9150828204841483151761335157613350612afd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133b4602183612557565b91506133bf82613358565b604082019050919050565b600060208201905081810360008301526133e3816133a7565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207c7e1738ef891a046c170839db4829358aec56d77cf0a8f4f82f54775f6f48ea64736f6c63430008120033

Deployed Bytecode Sourcemap

4484:11676:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6745:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7131:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5365:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6836:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5661:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5553:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8465:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6506:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15918:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5608:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5413:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15123:301;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11497:200;;;;;;;;;;;;;:::i;:::-;;6597:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1881:148;;;;;;;;;;;;;:::i;:::-;;15757:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1667:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11388:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6411:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7332:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11993:197;;;;;;;;;;;;;:::i;:::-;;14457:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15018:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6939:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16045:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2037:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6745:83;6782:13;6815:5;;;;;;;;;;;;;;;;;6808:12;;6745:83;:::o;7131:193::-;7233:4;7255:39;7264:12;:10;:12::i;:::-;7278:7;7287:6;7255:8;:39::i;:::-;7312:4;7305:11;;7131:193;;;;:::o;5365:41::-;;;;;;;;;;;;;:::o;6836:95::-;6889:7;4992:19;6909:14;;6836:95;:::o;5661:38::-;;;;:::o;5553:48::-;;;;:::o;8465:443::-;8597:4;8614:36;8624:6;8632:9;8643:6;8614:9;:36::i;:::-;8661:217;8684:6;8705:12;:10;:12::i;:::-;8732:135;8788:6;8732:135;;;;;;;;;;;;;;;;;:11;:19;8744:6;8732:19;;;;;;;;;;;;;;;:33;8752:12;:10;:12::i;:::-;8732:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;8661:8;:217::i;:::-;8896:4;8889:11;;8465:443;;;;;:::o;6506:83::-;6547:5;4796:1;6565:16;;6506:83;:::o;15918:119::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16011:18:::1;16000:8;:29;;;;15918:119:::0;:::o;5608:46::-;;;;:::o;5413:28::-;;;;;;;;;;;;;:::o;15123:301::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15256:1:::1;15241:11;:16;;:37;;;;;15276:2;15261:11;:17;;15241:37;15233:46;;;::::0;::::1;;15314:1;15298:12;:17;;:39;;;;;15335:2;15319:12;:18;;15298:39;15290:48;;;::::0;::::1;;15366:11;15351:12;:26;;;;15404:12;15388:13;:28;;;;15123:301:::0;;:::o;11497:200::-;11563:17;;;;;;;;;;;11547:33;;:12;:10;:12::i;:::-;:33;;;11539:42;;;;;;11592:26;11621:21;11592:50;;11653:36;11670:18;11653:16;:36::i;:::-;11528:169;11497:200::o;6597:140::-;6663:7;6690:39;6710:9;:18;6720:7;6710:18;;;;;;;;;;;;;;;;6690:19;:39::i;:::-;6683:46;;6597:140;;;:::o;1881:148::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1988:1:::1;1951:40;;1972:6;::::0;::::1;;;;;;;;1951:40;;;;;;;;;;;;2019:1;2002:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1881:148::o:0;15757:109::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15847:11:::1;15831:13;:27;;;;15757:109:::0;:::o;1667:79::-;1705:7;1732:6;;;;;;;;;;;1725:13;;1667:79;:::o;11388:101::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11469:12:::1;11455:11;;:26;;;;;;;;;;;;;;;;;;11388:101:::0;:::o;6411:87::-;6450:13;6483:7;;;;;;;;;;;;;;;;;6476:14;;6411:87;:::o;7332:199::-;7437:4;7459:42;7469:12;:10;:12::i;:::-;7483:9;7494:6;7459:9;:42::i;:::-;7519:4;7512:11;;7332:199;;;;:::o;11993:197::-;12059:17;;;;;;;;;;;12043:33;;:12;:10;:12::i;:::-;:33;;;12035:42;;;;;;12088:23;12114:24;12132:4;12114:9;:24::i;:::-;12088:50;;12149:33;12166:15;12149:16;:33::i;:::-;12024:166;11993:197::o;14457:260::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14600:9:::1;14595:115;14619:8;;:15;;14615:1;:19;14595:115;;;14690:8;14656:18;:31;14675:8;;14684:1;14675:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14656:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;14636:3;;;;;:::i;:::-;;;;14595:115;;;;14457:260:::0;;;:::o;15018:97::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15097:10:::1;15085:9;;:22;;;;;;;;;;;;;;;;;;15018:97:::0;:::o;6939:184::-;7056:7;7088:11;:18;7100:5;7088:18;;;;;;;;;;;;;;;:27;7107:7;7088:27;;;;;;;;;;;;;;;;7081:34;;6939:184;;;;:::o;16045:112::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16136:13:::1;16122:11;:27;;;;16045:112:::0;:::o;2037:281::-;1804:12;:10;:12::i;:::-;1794:22;;:6;;;;;;;;;;:22;;;1786:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2160:1:::1;2140:22;;:8;:22;;::::0;2118:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2273:8;2244:38;;2265:6;::::0;::::1;;;;;;;;2244:38;;;;;;;;;;;;2302:8;2293:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2037:281:::0;:::o;434:98::-;487:7;514:10;507:17;;434:98;:::o;8096:361::-;8240:1;8223:19;;:5;:19;;;8215:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8316:1;8297:21;;:7;:21;;;8289:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8395:6;8365:11;:18;8377:5;8365:18;;;;;;;;;;;;;;;:27;8384:7;8365:27;;;;;;;;;;;;;;;:36;;;;8433:7;8417:32;;8426:5;8417:32;;;8442:6;8417:32;;;;;;:::i;:::-;;;;;;;;8096:361;;;:::o;8916:2353::-;9054:1;9038:18;;:4;:18;;;9030:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9125:1;9111:16;;:2;:16;;;9103:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9189:1;9180:6;:10;9172:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9247:7;:5;:7::i;:::-;9239:15;;:4;:15;;;;:32;;;;;9264:7;:5;:7::i;:::-;9258:13;;:2;:13;;;;9239:32;9235:1365;;;9326:11;;;;;;;;;;;9321:188;;9396:7;:5;:7::i;:::-;9388:15;;:4;:15;;;9358:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;9321:188;9543:13;;9533:6;:23;;9525:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9618:13;;;;;;;;;;;9612:19;;:2;:19;;;9608:196;;9707:11;;9698:6;9682:13;9692:2;9682:9;:13::i;:::-;:22;;;;:::i;:::-;:36;9652:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;9608:196;9820:28;9851:24;9869:4;9851:9;:24::i;:::-;9820:55;;9890:12;9929:8;;9905:20;:32;;9890:47;;9982:13;;9958:20;:37;9954:114;;10039:13;;10016:36;;9954:114;10106:7;:35;;;;;10135:6;;;;;;;;;;;10134:7;10106:35;:77;;;;;10170:13;;;;;;;;;;;10162:21;;:4;:21;;;;10106:77;:107;;;;;10204:9;;;;;;;;;;;10106:107;:153;;;;;10235:18;:24;10254:4;10235:24;;;;;;;;;;;;;;;;;;;;;;;;;10234:25;10106:153;:197;;;;;10281:18;:22;10300:2;10281:22;;;;;;;;;;;;;;;;;;;;;;;;;10280:23;10106:197;10084:505;;;10338:38;10355:20;10338:16;:38::i;:::-;10395:26;10424:21;10395:50;;10489:1;10468:18;:22;10464:110;;;10515:39;10532:21;10515:16;:39::i;:::-;10464:110;10319:270;10084:505;9273:1327;;9235:1365;10612:12;10627:4;10612:19;;10690:18;:24;10709:4;10690:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10718:18;:22;10737:2;10718:22;;;;;;;;;;;;;;;;;;;;;;;;;10690:50;10689:115;;;;10767:13;;;;;;;;;;;10759:21;;:4;:21;;;;:44;;;;;10790:13;;;;;;;;;;;10784:19;;:2;:19;;;;10759:44;10689:115;10671:537;;;10841:5;10831:15;;10671:537;;;10923:13;;;;;;;;;;;10915:21;;:4;:21;;;:55;;;;;10954:15;;;;;;;;;;;10940:30;;:2;:30;;;;10915:55;10911:118;;;11001:12;;10991:7;:22;;;;10911:118;11088:13;;;;;;;;;;;11082:19;;:2;:19;;;:55;;;;;11121:15;;;;;;;;;;;11105:32;;:4;:32;;;;11082:55;11078:119;;;11168:13;;11158:7;:23;;;;11078:119;10671:537;11220:41;11235:4;11241:2;11245:6;11253:7;11220:14;:41::i;:::-;9019:2250;8916:2353;;;:::o;2680:224::-;2800:7;2833:1;2828;:6;;2836:12;2820:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2860:9;2876:1;2872;:5;;;;:::i;:::-;2860:17;;2895:1;2888:8;;;2680:224;;;;;:::o;11277:103::-;11338:17;;;;;;;;;;;:26;;:34;11365:6;11338:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11277:103;:::o;7763:325::-;7858:7;7916;;7905;:18;;7883:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;8006:19;8028:10;:8;:10::i;:::-;8006:32;;8056:24;8068:11;8056:7;:11;;:24;;;;:::i;:::-;8049:31;;;7763:325;;;:::o;12749:483::-;5751:4;5742:6;;:13;;;;;;;;;;;;;;;;;;12827:21:::1;12865:1;12851:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12827:40;;12896:4;12878;12883:1;12878:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12922:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12912:4;12917:1;12912:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12955:62;12972:4;12987:15;;;;;;;;;;;13005:11;12955:8;:62::i;:::-;13028:15;;;;;;;;;;;:66;;;13109:11;13135:1;13151:4;13178;13198:15;13028:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12816:416;5787:5:::0;5778:6;;:14;;;;;;;;;;;;;;;;;;12749:483;:::o;11705:280::-;11861:7;11856:26;;11870:12;:10;:12::i;:::-;11856:26;11893:48;11915:6;11923:9;11934:6;11893:21;:48::i;:::-;11957:7;11952:25;;11966:11;:9;:11::i;:::-;11952:25;11705:280;;;;:::o;14725:164::-;14767:7;14788:15;14805;14824:19;:17;:19::i;:::-;14787:56;;;;14861:20;14873:7;14861;:11;;:20;;;;:::i;:::-;14854:27;;;;14725:164;:::o;3166:132::-;3224:7;3251:39;3255:1;3258;3251:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3244:46;;3166:132;;;;:::o;7539:135::-;7595:1;7584:7;;:12;7580:25;7598:7;7580:25;7635:7;;7617:15;:25;;;;7665:1;7655:7;:11;;;;7539:135;:::o;12198:543::-;12349:15;12379:23;12417;12455:13;12482:22;12496:7;12482:13;:22::i;:::-;12334:170;;;;;;;;12535:30;12557:7;12535:9;:17;12545:6;12535:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;12515:9;:17;12525:6;12515:17;;;;;;;;;;;;;;;:50;;;;12599:41;12624:15;12599:9;:20;12609:9;12599:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;12576:9;:20;12586:9;12576:20;;;;;;;;;;;;;;;:64;;;;12651:22;12667:5;12651:15;:22::i;:::-;12706:9;12689:44;;12698:6;12689:44;;;12717:15;12689:44;;;;;;:::i;:::-;;;;;;;;12323:418;;;;12198:543;;;:::o;7682:73::-;7732:15;;7722:7;:25;;;;7682:73::o;14897:113::-;14948:7;14957;14985;;4992:19;14977:25;;;;14897:113;;:::o;3306:223::-;3426:7;3458:1;3454;:5;3461:12;3446:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3485:9;3501:1;3497;:5;;;;:::i;:::-;3485:17;;3520:1;3513:8;;;3306:223;;;;;:::o;13469:578::-;13572:7;13594;13616;13638;13674:23;13699:13;13716:66;13742:7;13764;;13716:11;:66::i;:::-;13673:109;;;;13793:19;13815:10;:8;:10::i;:::-;13793:32;;13837:15;13854:23;13881:90;13907:7;13929:5;13949:11;13881;:90::i;:::-;13836:135;;;;13990:7;13999:15;14016;14033:5;13982:57;;;;;;;;;;;;;13469:578;;;;;:::o;2536:136::-;2594:7;2621:43;2625:1;2628;2621:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2614:50;;2536:136;;;;:::o;2349:179::-;2407:7;2427:9;2443:1;2439;:5;;;;:::i;:::-;2427:17;;2468:1;2463;:6;;2455:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2519:1;2512:8;;;2349:179;;;;:::o;13240:221::-;13299:19;13321:10;:8;:10::i;:::-;13299:32;;13342:13;13358:22;13368:11;13358:5;:9;;:22;;;;:::i;:::-;13342:38;;13418:35;13447:5;13418:9;:24;13436:4;13418:24;;;;;;;;;;;;;;;;:28;;:35;;;;:::i;:::-;13391:9;:24;13409:4;13391:24;;;;;;;;;;;;;;;:62;;;;13288:173;;13240:221;:::o;15432:286::-;15535:7;15544;15569:13;15585:28;15609:3;15585:19;15597:6;15585:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15569:44;;15624:23;15650:18;15662:5;15650:7;:11;;:18;;;;:::i;:::-;15624:44;;15687:15;15704:5;15679:31;;;;;;15432:286;;;;;:::o;14092:357::-;14222:7;14231;14251:15;14269:24;14281:11;14269:7;:11;;:24;;;;:::i;:::-;14251:42;;14304:13;14320:22;14330:11;14320:5;:9;;:22;;;;:::i;:::-;14304:38;;14353:23;14379:18;14391:5;14379:7;:11;;:18;;;;:::i;:::-;14353:44;;14416:7;14425:15;14408:33;;;;;;;14092:357;;;;;;:::o;2912:246::-;2970:7;2999:1;2994;:6;2990:47;;3024:1;3017:8;;;;2990:47;3047:9;3063:1;3059;:5;;;;:::i;:::-;3047:17;;3092:1;3087;3083;:5;;;;:::i;:::-;:10;3075:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3149:1;3142:8;;;2912:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:151::-;3867:9;3900:37;3931:5;3900:37;:::i;:::-;3887:50;;3792:151;;;:::o;3949:181::-;4061:62;4117:5;4061:62;:::i;:::-;4056:3;4049:75;3949:181;;:::o;4136:272::-;4254:4;4292:2;4281:9;4277:18;4269:26;;4305:96;4398:1;4387:9;4383:17;4374:6;4305:96;:::i;:::-;4136:272;;;;:::o;4414:118::-;4501:24;4519:5;4501:24;:::i;:::-;4496:3;4489:37;4414:118;;:::o;4538:222::-;4631:4;4669:2;4658:9;4654:18;4646:26;;4682:71;4750:1;4739:9;4735:17;4726:6;4682:71;:::i;:::-;4538:222;;;;:::o;4766:619::-;4843:6;4851;4859;4908:2;4896:9;4887:7;4883:23;4879:32;4876:119;;;4914:79;;:::i;:::-;4876:119;5034:1;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5005:117;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;5289:2;5315:53;5360:7;5351:6;5340:9;5336:22;5315:53;:::i;:::-;5305:63;;5260:118;4766:619;;;;;:::o;5391:86::-;5426:7;5466:4;5459:5;5455:16;5444:27;;5391:86;;;:::o;5483:112::-;5566:22;5582:5;5566:22;:::i;:::-;5561:3;5554:35;5483:112;;:::o;5601:214::-;5690:4;5728:2;5717:9;5713:18;5705:26;;5741:67;5805:1;5794:9;5790:17;5781:6;5741:67;:::i;:::-;5601:214;;;;:::o;5821:329::-;5880:6;5929:2;5917:9;5908:7;5904:23;5900:32;5897:119;;;5935:79;;:::i;:::-;5897:119;6055:1;6080:53;6125:7;6116:6;6105:9;6101:22;6080:53;:::i;:::-;6070:63;;6026:117;5821:329;;;;:::o;6156:118::-;6243:24;6261:5;6243:24;:::i;:::-;6238:3;6231:37;6156:118;;:::o;6280:222::-;6373:4;6411:2;6400:9;6396:18;6388:26;;6424:71;6492:1;6481:9;6477:17;6468:6;6424:71;:::i;:::-;6280:222;;;;:::o;6508:474::-;6576:6;6584;6633:2;6621:9;6612:7;6608:23;6604:32;6601:119;;;6639:79;;:::i;:::-;6601:119;6759:1;6784:53;6829:7;6820:6;6809:9;6805:22;6784:53;:::i;:::-;6774:63;;6730:117;6886:2;6912:53;6957:7;6948:6;6937:9;6933:22;6912:53;:::i;:::-;6902:63;;6857:118;6508:474;;;;;:::o;6988:329::-;7047:6;7096:2;7084:9;7075:7;7071:23;7067:32;7064:119;;;7102:79;;:::i;:::-;7064:119;7222:1;7247:53;7292:7;7283:6;7272:9;7268:22;7247:53;:::i;:::-;7237:63;;7193:117;6988:329;;;;:::o;7323:116::-;7393:21;7408:5;7393:21;:::i;:::-;7386:5;7383:32;7373:60;;7429:1;7426;7419:12;7373:60;7323:116;:::o;7445:133::-;7488:5;7526:6;7513:20;7504:29;;7542:30;7566:5;7542:30;:::i;:::-;7445:133;;;;:::o;7584:323::-;7640:6;7689:2;7677:9;7668:7;7664:23;7660:32;7657:119;;;7695:79;;:::i;:::-;7657:119;7815:1;7840:50;7882:7;7873:6;7862:9;7858:22;7840:50;:::i;:::-;7830:60;;7786:114;7584:323;;;;:::o;7913:117::-;8022:1;8019;8012:12;8036:117;8145:1;8142;8135:12;8159:117;8268:1;8265;8258:12;8299:568;8372:8;8382:6;8432:3;8425:4;8417:6;8413:17;8409:27;8399:122;;8440:79;;:::i;:::-;8399:122;8553:6;8540:20;8530:30;;8583:18;8575:6;8572:30;8569:117;;;8605:79;;:::i;:::-;8569:117;8719:4;8711:6;8707:17;8695:29;;8773:3;8765:4;8757:6;8753:17;8743:8;8739:32;8736:41;8733:128;;;8780:79;;:::i;:::-;8733:128;8299:568;;;;;:::o;8873:698::-;8965:6;8973;8981;9030:2;9018:9;9009:7;9005:23;9001:32;8998:119;;;9036:79;;:::i;:::-;8998:119;9184:1;9173:9;9169:17;9156:31;9214:18;9206:6;9203:30;9200:117;;;9236:79;;:::i;:::-;9200:117;9349:80;9421:7;9412:6;9401:9;9397:22;9349:80;:::i;:::-;9331:98;;;;9127:312;9478:2;9504:50;9546:7;9537:6;9526:9;9522:22;9504:50;:::i;:::-;9494:60;;9449:115;8873:698;;;;;:::o;9577:474::-;9645:6;9653;9702:2;9690:9;9681:7;9677:23;9673:32;9670:119;;;9708:79;;:::i;:::-;9670:119;9828:1;9853:53;9898:7;9889:6;9878:9;9874:22;9853:53;:::i;:::-;9843:63;;9799:117;9955:2;9981:53;10026:7;10017:6;10006:9;10002:22;9981:53;:::i;:::-;9971:63;;9926:118;9577:474;;;;;:::o;10057:182::-;10197:34;10193:1;10185:6;10181:14;10174:58;10057:182;:::o;10245:366::-;10387:3;10408:67;10472:2;10467:3;10408:67;:::i;:::-;10401:74;;10484:93;10573:3;10484:93;:::i;:::-;10602:2;10597:3;10593:12;10586:19;;10245:366;;;:::o;10617:419::-;10783:4;10821:2;10810:9;10806:18;10798:26;;10870:9;10864:4;10860:20;10856:1;10845:9;10841:17;10834:47;10898:131;11024:4;10898:131;:::i;:::-;10890:139;;10617:419;;;:::o;11042:180::-;11090:77;11087:1;11080:88;11187:4;11184:1;11177:15;11211:4;11208:1;11201:15;11228:180;11276:77;11273:1;11266:88;11373:4;11370:1;11363:15;11397:4;11394:1;11387:15;11414:233;11453:3;11476:24;11494:5;11476:24;:::i;:::-;11467:33;;11522:66;11515:5;11512:77;11509:103;;11592:18;;:::i;:::-;11509:103;11639:1;11632:5;11628:13;11621:20;;11414:233;;;:::o;11653:225::-;11793:34;11789:1;11781:6;11777:14;11770:58;11862:8;11857:2;11849:6;11845:15;11838:33;11653:225;:::o;11884:366::-;12026:3;12047:67;12111:2;12106:3;12047:67;:::i;:::-;12040:74;;12123:93;12212:3;12123:93;:::i;:::-;12241:2;12236:3;12232:12;12225:19;;11884:366;;;:::o;12256:419::-;12422:4;12460:2;12449:9;12445:18;12437:26;;12509:9;12503:4;12499:20;12495:1;12484:9;12480:17;12473:47;12537:131;12663:4;12537:131;:::i;:::-;12529:139;;12256:419;;;:::o;12681:181::-;12821:33;12817:1;12809:6;12805:14;12798:57;12681:181;:::o;12868:366::-;13010:3;13031:67;13095:2;13090:3;13031:67;:::i;:::-;13024:74;;13107:93;13196:3;13107:93;:::i;:::-;13225:2;13220:3;13216:12;13209:19;;12868:366;;;:::o;13240:419::-;13406:4;13444:2;13433:9;13429:18;13421:26;;13493:9;13487:4;13483:20;13479:1;13468:9;13464:17;13457:47;13521:131;13647:4;13521:131;:::i;:::-;13513:139;;13240:419;;;:::o;13665:179::-;13805:31;13801:1;13793:6;13789:14;13782:55;13665:179;:::o;13850:366::-;13992:3;14013:67;14077:2;14072:3;14013:67;:::i;:::-;14006:74;;14089:93;14178:3;14089:93;:::i;:::-;14207:2;14202:3;14198:12;14191:19;;13850:366;;;:::o;14222:419::-;14388:4;14426:2;14415:9;14411:18;14403:26;;14475:9;14469:4;14465:20;14461:1;14450:9;14446:17;14439:47;14503:131;14629:4;14503:131;:::i;:::-;14495:139;;14222:419;;;:::o;14647:181::-;14787:33;14783:1;14775:6;14771:14;14764:57;14647:181;:::o;14834:366::-;14976:3;14997:67;15061:2;15056:3;14997:67;:::i;:::-;14990:74;;15073:93;15162:3;15073:93;:::i;:::-;15191:2;15186:3;15182:12;15175:19;;14834:366;;;:::o;15206:419::-;15372:4;15410:2;15399:9;15395:18;15387:26;;15459:9;15453:4;15449:20;15445:1;15434:9;15430:17;15423:47;15487:131;15613:4;15487:131;:::i;:::-;15479:139;;15206:419;;;:::o;15631:179::-;15771:31;15767:1;15759:6;15755:14;15748:55;15631:179;:::o;15816:366::-;15958:3;15979:67;16043:2;16038:3;15979:67;:::i;:::-;15972:74;;16055:93;16144:3;16055:93;:::i;:::-;16173:2;16168:3;16164:12;16157:19;;15816:366;;;:::o;16188:419::-;16354:4;16392:2;16381:9;16377:18;16369:26;;16441:9;16435:4;16431:20;16427:1;16416:9;16412:17;16405:47;16469:131;16595:4;16469:131;:::i;:::-;16461:139;;16188:419;;;:::o;16613:177::-;16753:29;16749:1;16741:6;16737:14;16730:53;16613:177;:::o;16796:366::-;16938:3;16959:67;17023:2;17018:3;16959:67;:::i;:::-;16952:74;;17035:93;17124:3;17035:93;:::i;:::-;17153:2;17148:3;17144:12;17137:19;;16796:366;;;:::o;17168:419::-;17334:4;17372:2;17361:9;17357:18;17349:26;;17421:9;17415:4;17411:20;17407:1;17396:9;17392:17;17385:47;17449:131;17575:4;17449:131;:::i;:::-;17441:139;;17168:419;;;:::o;17593:233::-;17733:34;17729:1;17721:6;17717:14;17710:58;17802:16;17797:2;17789:6;17785:15;17778:41;17593:233;:::o;17832:366::-;17974:3;17995:67;18059:2;18054:3;17995:67;:::i;:::-;17988:74;;18071:93;18160:3;18071:93;:::i;:::-;18189:2;18184:3;18180:12;18173:19;;17832:366;;;:::o;18204:419::-;18370:4;18408:2;18397:9;18393:18;18385:26;;18457:9;18451:4;18447:20;18443:1;18432:9;18428:17;18421:47;18485:131;18611:4;18485:131;:::i;:::-;18477:139;;18204:419;;;:::o;18629:180::-;18769:32;18765:1;18757:6;18753:14;18746:56;18629:180;:::o;18815:366::-;18957:3;18978:67;19042:2;19037:3;18978:67;:::i;:::-;18971:74;;19054:93;19143:3;19054:93;:::i;:::-;19172:2;19167:3;19163:12;19156:19;;18815:366;;;:::o;19187:419::-;19353:4;19391:2;19380:9;19376:18;19368:26;;19440:9;19434:4;19430:20;19426:1;19415:9;19411:17;19404:47;19468:131;19594:4;19468:131;:::i;:::-;19460:139;;19187:419;;;:::o;19612:191::-;19652:3;19671:20;19689:1;19671:20;:::i;:::-;19666:25;;19705:20;19723:1;19705:20;:::i;:::-;19700:25;;19748:1;19745;19741:9;19734:16;;19769:3;19766:1;19763:10;19760:36;;;19776:18;;:::i;:::-;19760:36;19612:191;;;;:::o;19809:176::-;19949:28;19945:1;19937:6;19933:14;19926:52;19809:176;:::o;19991:366::-;20133:3;20154:67;20218:2;20213:3;20154:67;:::i;:::-;20147:74;;20230:93;20319:3;20230:93;:::i;:::-;20348:2;20343:3;20339:12;20332:19;;19991:366;;;:::o;20363:419::-;20529:4;20567:2;20556:9;20552:18;20544:26;;20616:9;20610:4;20606:20;20602:1;20591:9;20587:17;20580:47;20644:131;20770:4;20644:131;:::i;:::-;20636:139;;20363:419;;;:::o;20788:194::-;20828:4;20848:20;20866:1;20848:20;:::i;:::-;20843:25;;20882:20;20900:1;20882:20;:::i;:::-;20877:25;;20926:1;20923;20919:9;20911:17;;20950:1;20944:4;20941:11;20938:37;;;20955:18;;:::i;:::-;20938:37;20788:194;;;;:::o;20988:231::-;21128:34;21124:1;21116:6;21112:14;21105:58;21197:14;21192:2;21184:6;21180:15;21173:39;20988:231;:::o;21225:366::-;21367:3;21388:67;21452:2;21447:3;21388:67;:::i;:::-;21381:74;;21464:93;21553:3;21464:93;:::i;:::-;21582:2;21577:3;21573:12;21566:19;;21225:366;;;:::o;21597:419::-;21763:4;21801:2;21790:9;21786:18;21778:26;;21850:9;21844:4;21840:20;21836:1;21825:9;21821:17;21814:47;21878:131;22004:4;21878:131;:::i;:::-;21870:139;;21597:419;;;:::o;22022:180::-;22070:77;22067:1;22060:88;22167:4;22164:1;22157:15;22191:4;22188:1;22181:15;22208:143;22265:5;22296:6;22290:13;22281:22;;22312:33;22339:5;22312:33;:::i;:::-;22208:143;;;;:::o;22357:351::-;22427:6;22476:2;22464:9;22455:7;22451:23;22447:32;22444:119;;;22482:79;;:::i;:::-;22444:119;22602:1;22627:64;22683:7;22674:6;22663:9;22659:22;22627:64;:::i;:::-;22617:74;;22573:128;22357:351;;;;:::o;22714:85::-;22759:7;22788:5;22777:16;;22714:85;;;:::o;22805:158::-;22863:9;22896:61;22914:42;22923:32;22949:5;22923:32;:::i;:::-;22914:42;:::i;:::-;22896:61;:::i;:::-;22883:74;;22805:158;;;:::o;22969:147::-;23064:45;23103:5;23064:45;:::i;:::-;23059:3;23052:58;22969:147;;:::o;23122:114::-;23189:6;23223:5;23217:12;23207:22;;23122:114;;;:::o;23242:184::-;23341:11;23375:6;23370:3;23363:19;23415:4;23410:3;23406:14;23391:29;;23242:184;;;;:::o;23432:132::-;23499:4;23522:3;23514:11;;23552:4;23547:3;23543:14;23535:22;;23432:132;;;:::o;23570:108::-;23647:24;23665:5;23647:24;:::i;:::-;23642:3;23635:37;23570:108;;:::o;23684:179::-;23753:10;23774:46;23816:3;23808:6;23774:46;:::i;:::-;23852:4;23847:3;23843:14;23829:28;;23684:179;;;;:::o;23869:113::-;23939:4;23971;23966:3;23962:14;23954:22;;23869:113;;;:::o;24018:732::-;24137:3;24166:54;24214:5;24166:54;:::i;:::-;24236:86;24315:6;24310:3;24236:86;:::i;:::-;24229:93;;24346:56;24396:5;24346:56;:::i;:::-;24425:7;24456:1;24441:284;24466:6;24463:1;24460:13;24441:284;;;24542:6;24536:13;24569:63;24628:3;24613:13;24569:63;:::i;:::-;24562:70;;24655:60;24708:6;24655:60;:::i;:::-;24645:70;;24501:224;24488:1;24485;24481:9;24476:14;;24441:284;;;24445:14;24741:3;24734:10;;24142:608;;;24018:732;;;;:::o;24756:831::-;25019:4;25057:3;25046:9;25042:19;25034:27;;25071:71;25139:1;25128:9;25124:17;25115:6;25071:71;:::i;:::-;25152:80;25228:2;25217:9;25213:18;25204:6;25152:80;:::i;:::-;25279:9;25273:4;25269:20;25264:2;25253:9;25249:18;25242:48;25307:108;25410:4;25401:6;25307:108;:::i;:::-;25299:116;;25425:72;25493:2;25482:9;25478:18;25469:6;25425:72;:::i;:::-;25507:73;25575:3;25564:9;25560:19;25551:6;25507:73;:::i;:::-;24756:831;;;;;;;;:::o;25593:180::-;25641:77;25638:1;25631:88;25738:4;25735:1;25728:15;25762:4;25759:1;25752:15;25779:185;25819:1;25836:20;25854:1;25836:20;:::i;:::-;25831:25;;25870:20;25888:1;25870:20;:::i;:::-;25865:25;;25909:1;25899:35;;25914:18;;:::i;:::-;25899:35;25956:1;25953;25949:9;25944:14;;25779:185;;;;:::o;25970:177::-;26110:29;26106:1;26098:6;26094:14;26087:53;25970:177;:::o;26153:366::-;26295:3;26316:67;26380:2;26375:3;26316:67;:::i;:::-;26309:74;;26392:93;26481:3;26392:93;:::i;:::-;26510:2;26505:3;26501:12;26494:19;;26153:366;;;:::o;26525:419::-;26691:4;26729:2;26718:9;26714:18;26706:26;;26778:9;26772:4;26768:20;26764:1;26753:9;26749:17;26742:47;26806:131;26932:4;26806:131;:::i;:::-;26798:139;;26525:419;;;:::o;26950:410::-;26990:7;27013:20;27031:1;27013:20;:::i;:::-;27008:25;;27047:20;27065:1;27047:20;:::i;:::-;27042:25;;27102:1;27099;27095:9;27124:30;27142:11;27124:30;:::i;:::-;27113:41;;27303:1;27294:7;27290:15;27287:1;27284:22;27264:1;27257:9;27237:83;27214:139;;27333:18;;:::i;:::-;27214:139;26998:362;26950:410;;;;:::o;27366:220::-;27506:34;27502:1;27494:6;27490:14;27483:58;27575:3;27570:2;27562:6;27558:15;27551:28;27366:220;:::o;27592:366::-;27734:3;27755:67;27819:2;27814:3;27755:67;:::i;:::-;27748:74;;27831:93;27920:3;27831:93;:::i;:::-;27949:2;27944:3;27940:12;27933:19;;27592:366;;;:::o;27964:419::-;28130:4;28168:2;28157:9;28153:18;28145:26;;28217:9;28211:4;28207:20;28203:1;28192:9;28188:17;28181:47;28245:131;28371:4;28245:131;:::i;:::-;28237:139;;27964:419;;;:::o

Swarm Source

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