ETH Price: $2,752.32 (-0.69%)

Token

Onyx (∑, ∆) (ONYX)
 

Overview

Max Total Supply

100,000,000 ONYX

Holders

214 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$11,684.00

Circulating Supply Market Cap

$11,683.80

Other Info

Token Contract (WITH 18 Decimals)

Balance
11,204.643786081655936922 ONYX

Value
$1.31 ( ~0.000475962493466298 Eth) [0.0112%]
0x6e6718d93e547bE3EaD32fC4Df64983B2982264d
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Onyx is where Software and AI finally come together, changing the way you build and grow in the crypto world. Software ⇌ AI → Revolution

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ONYX

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-28
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;

/*

  ______   .__   __. ____    ____ ___   ___ 
 /  __  \  |  \ |  | \   \  /   / \  \ /  / 
|  |  |  | |   \|  |  \   \/   /   \  V  /  
|  |  |  | |  . `  |   \_    _/     >   <   
|  `--'  | |  |\   |     |  |      /  .  \  
 \______/  |__| \__|     |__|     /__/ \__\ 


Website: http://onyxs.io/
Telegram: http://t.me/UseOnyx
X/Twitter: http://x.com/UseOnyx
*/

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

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

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

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

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

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

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

}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

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

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Onyx (∑, ∆)";
    string private constant _symbol = unicode"ONYX";
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _buyFeeDexOnyx = 0;
    uint256 public _sellFeeDexOnyx = 0;
    uint256 public _transactionalFeeOnyx = 0;
    uint256 public maxOnyxTokensPerWallet = 2000000 * 10 ** decimals();

    address payable public onyxCollector = payable(0xbf7409d494a611685cC55d8f453Caa9eD1a49aea); // tax wallet

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = true;

    bool public tradeHasBegun = false;

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

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
      //  IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); //testnet router
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[onyxCollector] = true;

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

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

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

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

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

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

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

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

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

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

    function _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");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {

            require(tradeHasBegun, "Trading not yet Launched");

            if(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= maxOnyxTokensPerWallet, "Greather than the limit Of Tokens Per Wallet.");
            }

            if(_transactionalFeeOnyx > 0) {
            if(to != uniswapV2Pair && from != uniswapV2Pair) {
                taxAmount = amount.mul(_transactionalFeeOnyx).div(100);
            }
            }

            if(_buyFeeDexOnyx > 0) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                taxAmount = amount.mul(_buyFeeDexOnyx).div(100);
            }
            }

            if(_sellFeeDexOnyx > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_sellFeeDexOnyx).div(100);
            }
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        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 {
       (bool callSuccess, ) = payable(onyxCollector).call{value: amount}("");
        require(callSuccess, "Call failed");
    }

    receive() external payable {}


    function OnyxProtocolSaveStuckETH() public onlyOwner {
        require(address(this).balance > 0, "No stuck Eth");
        uint256 ethBalance = address(this).balance;

        (bool callSuccess, ) = payable(msg.sender).call{value: ethBalance}(
            ""
        );
        require(callSuccess, "Call failed");
    }

    function OnyxProtocolLaunchTrade() public onlyOwner {
        require(tradeHasBegun != true, "Trade already enabled");
        tradeHasBegun = true;
    }

    function onyxWhitelist(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = true;
    }

    function onyxUnWhitelist(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = false;
    }

    function changeOnyxAntiWhaleProtocol(uint256 _maxLimit) public onlyOwner{
        require(_maxLimit > totalSupply().div(200),"Limit too less");
        maxOnyxTokensPerWallet = _maxLimit;
    }

    function changeOnyxTransactionalTax(uint256 _transferTax) public onlyOwner {
        _transactionalFeeOnyx = _transferTax;
    }

    function changeOnyxTaxSwapLimit(uint256 _taxLimit) public onlyOwner{
        _taxSwapThreshold = _taxLimit;
    }

    function changeOnyxExchangeTaxes(uint256 _taxOnBuy, uint256 _taxOnSell) public onlyOwner {
        _buyFeeDexOnyx = _taxOnBuy;
        _sellFeeDexOnyx = _taxOnSell;
    }

    
    }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"OnyxProtocolLaunchTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"OnyxProtocolSaveStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFeeDexOnyx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFeeDexOnyx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transactionalFeeOnyx","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":"uint256","name":"_maxLimit","type":"uint256"}],"name":"changeOnyxAntiWhaleProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxOnBuy","type":"uint256"},{"internalType":"uint256","name":"_taxOnSell","type":"uint256"}],"name":"changeOnyxExchangeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxLimit","type":"uint256"}],"name":"changeOnyxTaxSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"changeOnyxTransactionalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxOnyxTokensPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"onyxCollector","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"onyxUnWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"onyxWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"tradeHasBegun","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a61001291906107a3565b620186a061002091906107ed565b6004555f6005555f6006555f60075561003d61053b60201b60201c565b600a61004991906107a3565b621e848061005791906107ed565b60085573bf7409d494a611685cc55d8f453caa9ed1a49aea60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600b60146101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff0219169083151502179055505f600b60166101000a81548160ff021916908315150217905550348015610108575f80fd5b5061012561011a61054360201b60201c565b61054a60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610186573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101aa919061088c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610233919061088c565b6040518363ffffffff1660e01b81526004016102509291906108c6565b6020604051808303815f875af115801561026c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610290919061088c565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a61031d91906107a3565b6305f5e10061032c91906107ed565b60015f61033d61054360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61038d61060b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104b561054360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61051191906107a3565b6305f5e10061052091906107ed565b60405161052d91906108fc565b60405180910390a350610915565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106b4578086048111156106905761068f610632565b5b600185161561069f5780820291505b80810290506106ad8561065f565b9450610674565b94509492505050565b5f826106cc5760019050610787565b816106d9575f9050610787565b81600181146106ef57600281146106f957610728565b6001915050610787565b60ff84111561070b5761070a610632565b5b8360020a91508482111561072257610721610632565b5b50610787565b5060208310610133831016604e8410600b841016171561075d5782820a90508381111561075857610757610632565b5b610787565b61076a848484600161066b565b9250905081840481111561078157610780610632565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107ad8261078e565b91506107b883610797565b92506107e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106bd565b905092915050565b5f6107f78261078e565b91506108028361078e565b92508282026108108161078e565b9150828204841483151761082757610826610632565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61085b82610832565b9050919050565b61086b81610851565b8114610875575f80fd5b50565b5f8151905061088681610862565b92915050565b5f602082840312156108a1576108a061082e565b5b5f6108ae84828501610878565b91505092915050565b6108c081610851565b82525050565b5f6040820190506108d95f8301856108b7565b6108e660208301846108b7565b9392505050565b6108f68161078e565b82525050565b5f60208201905061090f5f8301846108ed565b92915050565b612deb806109225f395ff3fe6080604052600436106101ba575f3560e01c8063715018a6116100eb578063bf474bed11610089578063dd62ed3e11610063578063dd62ed3e146105c9578063ebe56f6914610605578063ecbce4e31461062d578063f2fde38b14610657576101c1565b8063bf474bed14610561578063bfbd28831461058b578063c86b16fd146105a1576101c1565b80637f44d6d1116100c55780637f44d6d1146104a75780638da5cb5b146104d157806395d89b41146104fb578063a9059cbb14610525576101c1565b8063715018a61461042d578063768dc71014610443578063784e95c51461047f576101c1565b806335381d571161015857806355f75a701161013257806355f75a701461038b578063682544c2146103b3578063684d0fe2146103db57806370a08231146103f1576101c1565b806335381d571461030d57806338995154146103375780634a695d8f14610361576101c1565b806323b872dd1161019457806323b872dd146102555780632578eaa514610291578063313ce567146102bb57806334e32c44146102e5576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d961067f565b6040516101e69190611e6f565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190611f20565b6106bc565b6040516102229190611f78565b60405180910390f35b348015610236575f80fd5b5061023f6106d9565b60405161024c9190611fa0565b60405180910390f35b348015610260575f80fd5b5061027b60048036038101906102769190611fb9565b6106fc565b6040516102889190611f78565b60405180910390f35b34801561029c575f80fd5b506102a56107d0565b6040516102b29190611fa0565b60405180910390f35b3480156102c6575f80fd5b506102cf6107d6565b6040516102dc9190612024565b60405180910390f35b3480156102f0575f80fd5b5061030b6004803603810190610306919061203d565b6107de565b005b348015610318575f80fd5b5061032161083e565b60405161032e9190611fa0565b60405180910390f35b348015610342575f80fd5b5061034b610844565b6040516103589190611f78565b60405180910390f35b34801561036c575f80fd5b50610375610857565b6040516103829190612088565b60405180910390f35b348015610396575f80fd5b506103b160048036038101906103ac91906120a1565b61087c565b005b3480156103be575f80fd5b506103d960048036038101906103d491906120a1565b6108ea565b005b3480156103e6575f80fd5b506103ef6108fc565b005b3480156103fc575f80fd5b506104176004803603810190610412919061203d565b6109f6565b6040516104249190611fa0565b60405180910390f35b348015610438575f80fd5b50610441610a3c565b005b34801561044e575f80fd5b506104696004803603810190610464919061203d565b610a4f565b6040516104769190611f78565b60405180910390f35b34801561048a575f80fd5b506104a560048036038101906104a091906120a1565b610a6c565b005b3480156104b2575f80fd5b506104bb610a7e565b6040516104c89190611fa0565b60405180910390f35b3480156104dc575f80fd5b506104e5610a84565b6040516104f291906120db565b60405180910390f35b348015610506575f80fd5b5061050f610aab565b60405161051c9190611e6f565b60405180910390f35b348015610530575f80fd5b5061054b60048036038101906105469190611f20565b610ae8565b6040516105589190611f78565b60405180910390f35b34801561056c575f80fd5b50610575610b05565b6040516105829190611fa0565b60405180910390f35b348015610596575f80fd5b5061059f610b0b565b005b3480156105ac575f80fd5b506105c760048036038101906105c291906120f4565b610b86565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190612132565b610ba0565b6040516105fc9190611fa0565b60405180910390f35b348015610610575f80fd5b5061062b6004803603810190610626919061203d565b610c22565b005b348015610638575f80fd5b50610641610c81565b60405161064e9190611fa0565b60405180910390f35b348015610662575f80fd5b5061067d6004803603810190610678919061203d565b610c87565b005b60606040518060400160405280600f81526020017f4f6e79782028e288912c20e28886290000000000000000000000000000000000815250905090565b5f6106cf6106c8610d09565b8484610d10565b6001905092915050565b5f6012600a6106e891906122cc565b6305f5e1006106f79190612316565b905090565b5f610708848484610ed3565b6107c584610714610d09565b6107c085604051806060016040528060288152602001612d8e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610777610d09565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117569092919063ffffffff16565b610d10565b600190509392505050565b60055481565b5f6012905090565b6107e66117b8565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60075481565b600b60169054906101000a900460ff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108846117b8565b61089f60c86108916106d9565b61183690919063ffffffff16565b81116108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d7906123a1565b60405180910390fd5b8060088190555050565b6108f26117b8565b8060078190555050565b6109046117b8565b5f4711610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d90612409565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff168260405161096f90612454565b5f6040518083038185875af1925050503d805f81146109a9576040519150601f19603f3d011682016040523d82523d5f602084013e6109ae565b606091505b50509050806109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e9906124b2565b60405180910390fd5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a446117b8565b610a4d5f61187f565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b610a746117b8565b8060048190555050565b60065481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f4e595800000000000000000000000000000000000000000000000000000000815250905090565b5f610afb610af4610d09565b8484610ed3565b6001905092915050565b60045481565b610b136117b8565b60011515600b60169054906101000a900460ff16151503610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b609061251a565b60405180910390fd5b6001600b60166101000a81548160ff021916908315150217905550565b610b8e6117b8565b81600581905550806006819055505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c2a6117b8565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60085481565b610c8f6117b8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf4906125a8565b60405180910390fd5b610d068161187f565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590612636565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de3906126c4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ec69190611fa0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890612752565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa6906127e0565b60405180910390fd5b5f8111610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe89061286e565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611090575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114a657600b60169054906101000a900460ff166110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906128d6565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111915760085482611145856109f6565b61114f91906128f4565b1115611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790612997565b60405180910390fd5b5b5f600754111561127657600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112455750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156112755761127260646112646007548561194090919063ffffffff16565b61183690919063ffffffff16565b90505b5b5f600554111561135a57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113295750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113595761135660646113486005548561194090919063ffffffff16565b61183690919063ffffffff16565b90505b5b5f60065411156113e457600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e3576113e060646113d26006548561194090919063ffffffff16565b61183690919063ffffffff16565b90505b5b5f6113ee306109f6565b9050600b60149054906101000a900460ff161580156114595750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114715750600b60159054906101000a900460ff165b801561147e575060045481115b156114a45761148c816119b7565b5f4790505f8111156114a2576114a147611c2b565b5b505b505b5f8111156115a5576114fe8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cf890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159c9190611fa0565b60405180910390a35b6115f58260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061169861164c8284611d5590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cf890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61173b8486611d5590919063ffffffff16565b6040516117489190611fa0565b60405180910390a350505050565b5f83831115829061179d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117949190611e6f565b60405180910390fd5b505f83856117ab91906129b5565b9050809150509392505050565b6117c0610d09565b73ffffffffffffffffffffffffffffffffffffffff166117de610a84565b73ffffffffffffffffffffffffffffffffffffffff1614611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90612a32565b60405180910390fd5b565b5f61187783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d9e565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611950575f90506119b1565b5f828461195d9190612316565b905082848261196c9190612a7d565b146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a390612b1d565b60405180910390fd5b809150505b92915050565b6001600b60146101000a81548160ff0219169083151502179055505f810315611c0e575f600267ffffffffffffffff8111156119f6576119f5612b3b565b5b604051908082528060200260200182016040528015611a245781602001602082028036833780820191505090505b50905030815f81518110611a3b57611a3a612b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611adf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b039190612ba9565b81600181518110611b1757611b16612b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b7d30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d10565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bdf959493929190612ccd565b5f604051808303815f87803b158015611bf6575f80fd5b505af1158015611c08573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611c7190612454565b5f6040518083038185875af1925050503d805f8114611cab576040519150601f19603f3d011682016040523d82523d5f602084013e611cb0565b606091505b5050905080611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb906124b2565b60405180910390fd5b5050565b5f808284611d0691906128f4565b905083811015611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4290612d6f565b60405180910390fd5b8091505092915050565b5f611d9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611756565b905092915050565b5f8083118290611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb9190611e6f565b60405180910390fd5b505f8385611df29190612a7d565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e4182611dff565b611e4b8185611e09565b9350611e5b818560208601611e19565b611e6481611e27565b840191505092915050565b5f6020820190508181035f830152611e878184611e37565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ebc82611e93565b9050919050565b611ecc81611eb2565b8114611ed6575f80fd5b50565b5f81359050611ee781611ec3565b92915050565b5f819050919050565b611eff81611eed565b8114611f09575f80fd5b50565b5f81359050611f1a81611ef6565b92915050565b5f8060408385031215611f3657611f35611e8f565b5b5f611f4385828601611ed9565b9250506020611f5485828601611f0c565b9150509250929050565b5f8115159050919050565b611f7281611f5e565b82525050565b5f602082019050611f8b5f830184611f69565b92915050565b611f9a81611eed565b82525050565b5f602082019050611fb35f830184611f91565b92915050565b5f805f60608486031215611fd057611fcf611e8f565b5b5f611fdd86828701611ed9565b9350506020611fee86828701611ed9565b9250506040611fff86828701611f0c565b9150509250925092565b5f60ff82169050919050565b61201e81612009565b82525050565b5f6020820190506120375f830184612015565b92915050565b5f6020828403121561205257612051611e8f565b5b5f61205f84828501611ed9565b91505092915050565b5f61207282611e93565b9050919050565b61208281612068565b82525050565b5f60208201905061209b5f830184612079565b92915050565b5f602082840312156120b6576120b5611e8f565b5b5f6120c384828501611f0c565b91505092915050565b6120d581611eb2565b82525050565b5f6020820190506120ee5f8301846120cc565b92915050565b5f806040838503121561210a57612109611e8f565b5b5f61211785828601611f0c565b925050602061212885828601611f0c565b9150509250929050565b5f806040838503121561214857612147611e8f565b5b5f61215585828601611ed9565b925050602061216685828601611ed9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121f2578086048111156121ce576121cd612170565b5b60018516156121dd5780820291505b80810290506121eb8561219d565b94506121b2565b94509492505050565b5f8261220a57600190506122c5565b81612217575f90506122c5565b816001811461222d576002811461223757612266565b60019150506122c5565b60ff84111561224957612248612170565b5b8360020a9150848211156122605761225f612170565b5b506122c5565b5060208310610133831016604e8410600b841016171561229b5782820a90508381111561229657612295612170565b5b6122c5565b6122a884848460016121a9565b925090508184048111156122bf576122be612170565b5b81810290505b9392505050565b5f6122d682611eed565b91506122e183612009565b925061230e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121fb565b905092915050565b5f61232082611eed565b915061232b83611eed565b925082820261233981611eed565b915082820484148315176123505761234f612170565b5b5092915050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f61238b600e83611e09565b915061239682612357565b602082019050919050565b5f6020820190508181035f8301526123b88161237f565b9050919050565b7f4e6f20737475636b2045746800000000000000000000000000000000000000005f82015250565b5f6123f3600c83611e09565b91506123fe826123bf565b602082019050919050565b5f6020820190508181035f830152612420816123e7565b9050919050565b5f81905092915050565b50565b5f61243f5f83612427565b915061244a82612431565b5f82019050919050565b5f61245e82612434565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f61249c600b83611e09565b91506124a782612468565b602082019050919050565b5f6020820190508181035f8301526124c981612490565b9050919050565b7f547261646520616c726561647920656e61626c656400000000000000000000005f82015250565b5f612504601583611e09565b915061250f826124d0565b602082019050919050565b5f6020820190508181035f830152612531816124f8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612592602683611e09565b915061259d82612538565b604082019050919050565b5f6020820190508181035f8301526125bf81612586565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612620602483611e09565b915061262b826125c6565b604082019050919050565b5f6020820190508181035f83015261264d81612614565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ae602283611e09565b91506126b982612654565b604082019050919050565b5f6020820190508181035f8301526126db816126a2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61273c602583611e09565b9150612747826126e2565b604082019050919050565b5f6020820190508181035f83015261276981612730565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6127ca602383611e09565b91506127d582612770565b604082019050919050565b5f6020820190508181035f8301526127f7816127be565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612858602983611e09565b9150612863826127fe565b604082019050919050565b5f6020820190508181035f8301526128858161284c565b9050919050565b7f54726164696e67206e6f7420796574204c61756e6368656400000000000000005f82015250565b5f6128c0601883611e09565b91506128cb8261288c565b602082019050919050565b5f6020820190508181035f8301526128ed816128b4565b9050919050565b5f6128fe82611eed565b915061290983611eed565b925082820190508082111561292157612920612170565b5b92915050565b7f4772656174686572207468616e20746865206c696d6974204f6620546f6b656e5f8201527f73205065722057616c6c65742e00000000000000000000000000000000000000602082015250565b5f612981602d83611e09565b915061298c82612927565b604082019050919050565b5f6020820190508181035f8301526129ae81612975565b9050919050565b5f6129bf82611eed565b91506129ca83611eed565b92508282039050818111156129e2576129e1612170565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a1c602083611e09565b9150612a27826129e8565b602082019050919050565b5f6020820190508181035f830152612a4981612a10565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a8782611eed565b9150612a9283611eed565b925082612aa257612aa1612a50565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b07602183611e09565b9150612b1282612aad565b604082019050919050565b5f6020820190508181035f830152612b3481612afb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ba381611ec3565b92915050565b5f60208284031215612bbe57612bbd611e8f565b5b5f612bcb84828501612b95565b91505092915050565b5f819050919050565b5f819050919050565b5f612c00612bfb612bf684612bd4565b612bdd565b611eed565b9050919050565b612c1081612be6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c4881611eb2565b82525050565b5f612c598383612c3f565b60208301905092915050565b5f602082019050919050565b5f612c7b82612c16565b612c858185612c20565b9350612c9083612c30565b805f5b83811015612cc0578151612ca78882612c4e565b9750612cb283612c65565b925050600181019050612c93565b5085935050505092915050565b5f60a082019050612ce05f830188611f91565b612ced6020830187612c07565b8181036040830152612cff8186612c71565b9050612d0e60608301856120cc565b612d1b6080830184611f91565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d59601b83611e09565b9150612d6482612d25565b602082019050919050565b5f6020820190508181035f830152612d8681612d4d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c5e8dbc65b13d06b4986d2adb482797815149ba592423dcd7d6831e288f277e564736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101ba575f3560e01c8063715018a6116100eb578063bf474bed11610089578063dd62ed3e11610063578063dd62ed3e146105c9578063ebe56f6914610605578063ecbce4e31461062d578063f2fde38b14610657576101c1565b8063bf474bed14610561578063bfbd28831461058b578063c86b16fd146105a1576101c1565b80637f44d6d1116100c55780637f44d6d1146104a75780638da5cb5b146104d157806395d89b41146104fb578063a9059cbb14610525576101c1565b8063715018a61461042d578063768dc71014610443578063784e95c51461047f576101c1565b806335381d571161015857806355f75a701161013257806355f75a701461038b578063682544c2146103b3578063684d0fe2146103db57806370a08231146103f1576101c1565b806335381d571461030d57806338995154146103375780634a695d8f14610361576101c1565b806323b872dd1161019457806323b872dd146102555780632578eaa514610291578063313ce567146102bb57806334e32c44146102e5576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d961067f565b6040516101e69190611e6f565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190611f20565b6106bc565b6040516102229190611f78565b60405180910390f35b348015610236575f80fd5b5061023f6106d9565b60405161024c9190611fa0565b60405180910390f35b348015610260575f80fd5b5061027b60048036038101906102769190611fb9565b6106fc565b6040516102889190611f78565b60405180910390f35b34801561029c575f80fd5b506102a56107d0565b6040516102b29190611fa0565b60405180910390f35b3480156102c6575f80fd5b506102cf6107d6565b6040516102dc9190612024565b60405180910390f35b3480156102f0575f80fd5b5061030b6004803603810190610306919061203d565b6107de565b005b348015610318575f80fd5b5061032161083e565b60405161032e9190611fa0565b60405180910390f35b348015610342575f80fd5b5061034b610844565b6040516103589190611f78565b60405180910390f35b34801561036c575f80fd5b50610375610857565b6040516103829190612088565b60405180910390f35b348015610396575f80fd5b506103b160048036038101906103ac91906120a1565b61087c565b005b3480156103be575f80fd5b506103d960048036038101906103d491906120a1565b6108ea565b005b3480156103e6575f80fd5b506103ef6108fc565b005b3480156103fc575f80fd5b506104176004803603810190610412919061203d565b6109f6565b6040516104249190611fa0565b60405180910390f35b348015610438575f80fd5b50610441610a3c565b005b34801561044e575f80fd5b506104696004803603810190610464919061203d565b610a4f565b6040516104769190611f78565b60405180910390f35b34801561048a575f80fd5b506104a560048036038101906104a091906120a1565b610a6c565b005b3480156104b2575f80fd5b506104bb610a7e565b6040516104c89190611fa0565b60405180910390f35b3480156104dc575f80fd5b506104e5610a84565b6040516104f291906120db565b60405180910390f35b348015610506575f80fd5b5061050f610aab565b60405161051c9190611e6f565b60405180910390f35b348015610530575f80fd5b5061054b60048036038101906105469190611f20565b610ae8565b6040516105589190611f78565b60405180910390f35b34801561056c575f80fd5b50610575610b05565b6040516105829190611fa0565b60405180910390f35b348015610596575f80fd5b5061059f610b0b565b005b3480156105ac575f80fd5b506105c760048036038101906105c291906120f4565b610b86565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190612132565b610ba0565b6040516105fc9190611fa0565b60405180910390f35b348015610610575f80fd5b5061062b6004803603810190610626919061203d565b610c22565b005b348015610638575f80fd5b50610641610c81565b60405161064e9190611fa0565b60405180910390f35b348015610662575f80fd5b5061067d6004803603810190610678919061203d565b610c87565b005b60606040518060400160405280600f81526020017f4f6e79782028e288912c20e28886290000000000000000000000000000000000815250905090565b5f6106cf6106c8610d09565b8484610d10565b6001905092915050565b5f6012600a6106e891906122cc565b6305f5e1006106f79190612316565b905090565b5f610708848484610ed3565b6107c584610714610d09565b6107c085604051806060016040528060288152602001612d8e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610777610d09565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546117569092919063ffffffff16565b610d10565b600190509392505050565b60055481565b5f6012905090565b6107e66117b8565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60075481565b600b60169054906101000a900460ff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108846117b8565b61089f60c86108916106d9565b61183690919063ffffffff16565b81116108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d7906123a1565b60405180910390fd5b8060088190555050565b6108f26117b8565b8060078190555050565b6109046117b8565b5f4711610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d90612409565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff168260405161096f90612454565b5f6040518083038185875af1925050503d805f81146109a9576040519150601f19603f3d011682016040523d82523d5f602084013e6109ae565b606091505b50509050806109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e9906124b2565b60405180910390fd5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a446117b8565b610a4d5f61187f565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b610a746117b8565b8060048190555050565b60065481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f4e595800000000000000000000000000000000000000000000000000000000815250905090565b5f610afb610af4610d09565b8484610ed3565b6001905092915050565b60045481565b610b136117b8565b60011515600b60169054906101000a900460ff16151503610b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b609061251a565b60405180910390fd5b6001600b60166101000a81548160ff021916908315150217905550565b610b8e6117b8565b81600581905550806006819055505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c2a6117b8565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60085481565b610c8f6117b8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf4906125a8565b60405180910390fd5b610d068161187f565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590612636565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de3906126c4565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ec69190611fa0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890612752565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa6906127e0565b60405180910390fd5b5f8111610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe89061286e565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611090575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114a657600b60169054906101000a900460ff166110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db906128d6565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111915760085482611145856109f6565b61114f91906128f4565b1115611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790612997565b60405180910390fd5b5b5f600754111561127657600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112455750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156112755761127260646112646007548561194090919063ffffffff16565b61183690919063ffffffff16565b90505b5b5f600554111561135a57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113295750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113595761135660646113486005548561194090919063ffffffff16565b61183690919063ffffffff16565b90505b5b5f60065411156113e457600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e3576113e060646113d26006548561194090919063ffffffff16565b61183690919063ffffffff16565b90505b5b5f6113ee306109f6565b9050600b60149054906101000a900460ff161580156114595750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114715750600b60159054906101000a900460ff165b801561147e575060045481115b156114a45761148c816119b7565b5f4790505f8111156114a2576114a147611c2b565b5b505b505b5f8111156115a5576114fe8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cf890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159c9190611fa0565b60405180910390a35b6115f58260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061169861164c8284611d5590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cf890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61173b8486611d5590919063ffffffff16565b6040516117489190611fa0565b60405180910390a350505050565b5f83831115829061179d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117949190611e6f565b60405180910390fd5b505f83856117ab91906129b5565b9050809150509392505050565b6117c0610d09565b73ffffffffffffffffffffffffffffffffffffffff166117de610a84565b73ffffffffffffffffffffffffffffffffffffffff1614611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90612a32565b60405180910390fd5b565b5f61187783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d9e565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611950575f90506119b1565b5f828461195d9190612316565b905082848261196c9190612a7d565b146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a390612b1d565b60405180910390fd5b809150505b92915050565b6001600b60146101000a81548160ff0219169083151502179055505f810315611c0e575f600267ffffffffffffffff8111156119f6576119f5612b3b565b5b604051908082528060200260200182016040528015611a245781602001602082028036833780820191505090505b50905030815f81518110611a3b57611a3a612b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611adf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b039190612ba9565b81600181518110611b1757611b16612b68565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b7d30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d10565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bdf959493929190612ccd565b5f604051808303815f87803b158015611bf6575f80fd5b505af1158015611c08573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611c7190612454565b5f6040518083038185875af1925050503d805f8114611cab576040519150601f19603f3d011682016040523d82523d5f602084013e611cb0565b606091505b5050905080611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb906124b2565b60405180910390fd5b5050565b5f808284611d0691906128f4565b905083811015611d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4290612d6f565b60405180910390fd5b8091505092915050565b5f611d9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611756565b905092915050565b5f8083118290611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb9190611e6f565b60405180910390fd5b505f8385611df29190612a7d565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611e4182611dff565b611e4b8185611e09565b9350611e5b818560208601611e19565b611e6481611e27565b840191505092915050565b5f6020820190508181035f830152611e878184611e37565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ebc82611e93565b9050919050565b611ecc81611eb2565b8114611ed6575f80fd5b50565b5f81359050611ee781611ec3565b92915050565b5f819050919050565b611eff81611eed565b8114611f09575f80fd5b50565b5f81359050611f1a81611ef6565b92915050565b5f8060408385031215611f3657611f35611e8f565b5b5f611f4385828601611ed9565b9250506020611f5485828601611f0c565b9150509250929050565b5f8115159050919050565b611f7281611f5e565b82525050565b5f602082019050611f8b5f830184611f69565b92915050565b611f9a81611eed565b82525050565b5f602082019050611fb35f830184611f91565b92915050565b5f805f60608486031215611fd057611fcf611e8f565b5b5f611fdd86828701611ed9565b9350506020611fee86828701611ed9565b9250506040611fff86828701611f0c565b9150509250925092565b5f60ff82169050919050565b61201e81612009565b82525050565b5f6020820190506120375f830184612015565b92915050565b5f6020828403121561205257612051611e8f565b5b5f61205f84828501611ed9565b91505092915050565b5f61207282611e93565b9050919050565b61208281612068565b82525050565b5f60208201905061209b5f830184612079565b92915050565b5f602082840312156120b6576120b5611e8f565b5b5f6120c384828501611f0c565b91505092915050565b6120d581611eb2565b82525050565b5f6020820190506120ee5f8301846120cc565b92915050565b5f806040838503121561210a57612109611e8f565b5b5f61211785828601611f0c565b925050602061212885828601611f0c565b9150509250929050565b5f806040838503121561214857612147611e8f565b5b5f61215585828601611ed9565b925050602061216685828601611ed9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121f2578086048111156121ce576121cd612170565b5b60018516156121dd5780820291505b80810290506121eb8561219d565b94506121b2565b94509492505050565b5f8261220a57600190506122c5565b81612217575f90506122c5565b816001811461222d576002811461223757612266565b60019150506122c5565b60ff84111561224957612248612170565b5b8360020a9150848211156122605761225f612170565b5b506122c5565b5060208310610133831016604e8410600b841016171561229b5782820a90508381111561229657612295612170565b5b6122c5565b6122a884848460016121a9565b925090508184048111156122bf576122be612170565b5b81810290505b9392505050565b5f6122d682611eed565b91506122e183612009565b925061230e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121fb565b905092915050565b5f61232082611eed565b915061232b83611eed565b925082820261233981611eed565b915082820484148315176123505761234f612170565b5b5092915050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f61238b600e83611e09565b915061239682612357565b602082019050919050565b5f6020820190508181035f8301526123b88161237f565b9050919050565b7f4e6f20737475636b2045746800000000000000000000000000000000000000005f82015250565b5f6123f3600c83611e09565b91506123fe826123bf565b602082019050919050565b5f6020820190508181035f830152612420816123e7565b9050919050565b5f81905092915050565b50565b5f61243f5f83612427565b915061244a82612431565b5f82019050919050565b5f61245e82612434565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f61249c600b83611e09565b91506124a782612468565b602082019050919050565b5f6020820190508181035f8301526124c981612490565b9050919050565b7f547261646520616c726561647920656e61626c656400000000000000000000005f82015250565b5f612504601583611e09565b915061250f826124d0565b602082019050919050565b5f6020820190508181035f830152612531816124f8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612592602683611e09565b915061259d82612538565b604082019050919050565b5f6020820190508181035f8301526125bf81612586565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612620602483611e09565b915061262b826125c6565b604082019050919050565b5f6020820190508181035f83015261264d81612614565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ae602283611e09565b91506126b982612654565b604082019050919050565b5f6020820190508181035f8301526126db816126a2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61273c602583611e09565b9150612747826126e2565b604082019050919050565b5f6020820190508181035f83015261276981612730565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6127ca602383611e09565b91506127d582612770565b604082019050919050565b5f6020820190508181035f8301526127f7816127be565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612858602983611e09565b9150612863826127fe565b604082019050919050565b5f6020820190508181035f8301526128858161284c565b9050919050565b7f54726164696e67206e6f7420796574204c61756e6368656400000000000000005f82015250565b5f6128c0601883611e09565b91506128cb8261288c565b602082019050919050565b5f6020820190508181035f8301526128ed816128b4565b9050919050565b5f6128fe82611eed565b915061290983611eed565b925082820190508082111561292157612920612170565b5b92915050565b7f4772656174686572207468616e20746865206c696d6974204f6620546f6b656e5f8201527f73205065722057616c6c65742e00000000000000000000000000000000000000602082015250565b5f612981602d83611e09565b915061298c82612927565b604082019050919050565b5f6020820190508181035f8301526129ae81612975565b9050919050565b5f6129bf82611eed565b91506129ca83611eed565b92508282039050818111156129e2576129e1612170565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a1c602083611e09565b9150612a27826129e8565b602082019050919050565b5f6020820190508181035f830152612a4981612a10565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a8782611eed565b9150612a9283611eed565b925082612aa257612aa1612a50565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b07602183611e09565b9150612b1282612aad565b604082019050919050565b5f6020820190508181035f830152612b3481612afb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ba381611ec3565b92915050565b5f60208284031215612bbe57612bbd611e8f565b5b5f612bcb84828501612b95565b91505092915050565b5f819050919050565b5f819050919050565b5f612c00612bfb612bf684612bd4565b612bdd565b611eed565b9050919050565b612c1081612be6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c4881611eb2565b82525050565b5f612c598383612c3f565b60208301905092915050565b5f602082019050919050565b5f612c7b82612c16565b612c858185612c20565b9350612c9083612c30565b805f5b83811015612cc0578151612ca78882612c4e565b9750612cb283612c65565b925050600181019050612c93565b5085935050505092915050565b5f60a082019050612ce05f830188611f91565b612ced6020830187612c07565b8181036040830152612cff8186612c71565b9050612d0e60608301856120cc565b612d1b6080830184611f91565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d59601b83611e09565b9150612d6482612d25565b602082019050919050565b5f6020820190508181035f830152612d8681612d4d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c5e8dbc65b13d06b4986d2adb482797815149ba592423dcd7d6831e288f277e564736f6c634300081a0033

Deployed Bytecode Sourcemap

5193:8001:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7212:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8045:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7489:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8214:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5757:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7398:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12306:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5838:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6232:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5960:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12541:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12745:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11805:328;;;;;;;;;;;;;:::i;:::-;;7592:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3614:103;;;;;;;;;;;;;:::i;:::-;;5406:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12883:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5797:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2973:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7303;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7719:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5694:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12141:157;;;;;;;;;;;;;:::i;:::-;;13006:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7894:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12422:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5885:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3872:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7212:83;7249:13;7282:5;;;;;;;;;;;;;;;;;7275:12;;7212:83;:::o;8045:161::-;8120:4;8137:39;8146:12;:10;:12::i;:::-;8160:7;8169:6;8137:8;:39::i;:::-;8194:4;8187:11;;8045:161;;;;:::o;7489:95::-;7542:7;5501:2;5557;:13;;;;:::i;:::-;5545:9;:25;;;;:::i;:::-;7562:14;;7489:95;:::o;8214:313::-;8312:4;8329:36;8339:6;8347:9;8358:6;8329:9;:36::i;:::-;8376:121;8385:6;8393:12;:10;:12::i;:::-;8407:89;8445:6;8407:89;;;;;;;;;;;;;;;;;:11;:19;8419:6;8407:19;;;;;;;;;;;;;;;:33;8427:12;:10;:12::i;:::-;8407:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8376:8;:121::i;:::-;8515:4;8508:11;;8214:313;;;;;:::o;5757:33::-;;;;:::o;7398:83::-;7439:5;5501:2;7457:16;;7398:83;:::o;12306:108::-;2859:13;:11;:13::i;:::-;12402:4:::1;12373:18;:26;12392:6;12373:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12306:108:::0;:::o;5838:40::-;;;;:::o;6232:33::-;;;;;;;;;;;;;:::o;5960:90::-;;;;;;;;;;;;;:::o;12541:196::-;2859:13;:11;:13::i;:::-;12644:22:::1;12662:3;12644:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;12632:9;:34;12624:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12720:9;12695:22;:34;;;;12541:196:::0;:::o;12745:130::-;2859:13;:11;:13::i;:::-;12855:12:::1;12831:21;:36;;;;12745:130:::0;:::o;11805:328::-;2859:13;:11;:13::i;:::-;11901:1:::1;11877:21;:25;11869:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11930:18;11951:21;11930:42;;11986:16;12016:10;12008:24;;12040:10;12008:71;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11985:94;;;12098:11;12090:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;11858:275;;11805:328::o:0;7592:119::-;7658:7;7685:9;:18;7695:7;7685:18;;;;;;;;;;;;;;;;7678:25;;7592:119;;;:::o;3614:103::-;2859:13;:11;:13::i;:::-;3679:30:::1;3706:1;3679:18;:30::i;:::-;3614:103::o:0;5406:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;12883:115::-;2859:13;:11;:13::i;:::-;12981:9:::1;12961:17;:29;;;;12883:115:::0;:::o;5797:34::-;;;;:::o;2973:87::-;3019:7;3046:6;;;;;;;;;;;3039:13;;2973:87;:::o;7303:::-;7342:13;7375:7;;;;;;;;;;;;;;;;;7368:14;;7303:87;:::o;7719:167::-;7797:4;7814:42;7824:12;:10;:12::i;:::-;7838:9;7849:6;7814:9;:42::i;:::-;7874:4;7867:11;;7719:167;;;;:::o;5694:56::-;;;;:::o;12141:157::-;2859:13;:11;:13::i;:::-;12229:4:::1;12212:21;;:13;;;;;;;;;;;:21;;::::0;12204:55:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12286:4;12270:13;;:20;;;;;;;;;;;;;;;;;;12141:157::o:0;13006:173::-;2859:13;:11;:13::i;:::-;13123:9:::1;13106:14;:26;;;;13161:10;13143:15;:28;;;;13006:173:::0;;:::o;7894:143::-;7975:7;8002:11;:18;8014:5;8002:18;;;;;;;;;;;;;;;:27;8021:7;8002:27;;;;;;;;;;;;;;;;7995:34;;7894:143;;;;:::o;12422:111::-;2859:13;:11;:13::i;:::-;12520:5:::1;12491:18;:26;12510:6;12491:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12422:111:::0;:::o;5885:66::-;;;;:::o;3872:201::-;2859:13;:11;:13::i;:::-;3981:1:::1;3961:22;;:8;:22;;::::0;3953:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4037:28;4056:8;4037:18;:28::i;:::-;3872:201:::0;:::o;476:98::-;529:7;556:10;549:17;;476:98;:::o;8535:335::-;8645:1;8628:19;;:5;:19;;;8620:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8726:1;8707:21;;:7;:21;;;8699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8808:6;8778:11;:18;8790:5;8778:18;;;;;;;;;;;;;;;:27;8797:7;8778:27;;;;;;;;;;;;;;;:36;;;;8846:7;8830:32;;8839:5;8830:32;;;8855:6;8830:32;;;;;;:::i;:::-;;;;;;;;8535:335;;;:::o;8878:2057::-;8982:1;8966:18;;:4;:18;;;8958:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9059:1;9045:16;;:2;:16;;;9037:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9129:1;9120:6;:10;9112:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9187:17;9222:18;:24;9241:4;9222:24;;;;;;;;;;;;;;;;;;;;;;;;;9221:25;:52;;;;;9251:18;:22;9270:2;9251:22;;;;;;;;;;;;;;;;;;;;;;;;;9250:23;9221:52;9217:1362;;;9300:13;;;;;;;;;;;9292:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9368:13;;;;;;;;;;;9362:19;;:2;:19;;;9359:163;;9434:22;;9424:6;9408:13;9418:2;9408:9;:13::i;:::-;:22;;;;:::i;:::-;:48;;9400:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;9359:163;9565:1;9541:21;;:25;9538:198;;;9592:13;;;;;;;;;;;9586:19;;:2;:19;;;;:44;;;;;9617:13;;;;;;;;;;;9609:21;;:4;:21;;;;9586:44;9583:138;;;9663:42;9701:3;9663:33;9674:21;;9663:6;:10;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;9651:54;;9583:138;9538:198;9772:1;9755:14;;:18;9752:196;;;9802:13;;;;;;;;;;;9794:21;;:4;:21;;;:55;;;;;9833:15;;;;;;;;;;;9819:30;;:2;:30;;;;9794:55;9790:143;;;9882:35;9913:3;9882:26;9893:14;;9882:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;9870:47;;9790:143;9752:196;9985:1;9967:15;;:19;9964:160;;;10012:13;;;;;;;;;;;10006:19;;:2;:19;;;10003:106;;10057:36;10089:3;10057:27;10068:15;;10057:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;10045:48;;10003:106;9964:160;10140:28;10171:24;10189:4;10171:9;:24::i;:::-;10140:55;;10215:6;;;;;;;;;;;10214:7;:30;;;;;10231:13;;;;;;;;;;;10225:19;;:2;:19;;;10214:30;:45;;;;;10248:11;;;;;;;;;;;10214:45;:87;;;;;10284:17;;10263:20;:38;10214:87;10210:358;;;10322:38;10339:20;10322:16;:38::i;:::-;10379:26;10408:21;10379:50;;10472:1;10451:18;:22;10448:105;;;10498:35;10511:21;10498:12;:35::i;:::-;10448:105;10303:265;10210:358;9275:1304;9217:1362;10604:1;10594:9;:11;10591:161;;;10644:39;10673:9;10644;:24;10662:4;10644:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10619:9;:24;10637:4;10619:24;;;;;;;;;;;;;;;:64;;;;10724:4;10701:39;;10710:4;10701:39;;;10730:9;10701:39;;;;;;:::i;:::-;;;;;;;;10591:161;10778:27;10798:6;10778:9;:15;10788:4;10778:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10762:9;:15;10772:4;10762:15;;;;;;;;;;;;;;;:43;;;;10830:40;10848:21;10859:9;10848:6;:10;;:21;;;;:::i;:::-;10830:9;:13;10840:2;10830:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10816:9;:13;10826:2;10816:13;;;;;;;;;;;;;;;:54;;;;10901:2;10886:41;;10895:4;10886:41;;;10905:21;10916:9;10905:6;:10;;:21;;;;:::i;:::-;10886:41;;;;;;:::i;:::-;;;;;;;;8947:1988;8878:2057;;;:::o;1613:190::-;1699:7;1732:1;1727;:6;;1735:12;1719:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1759:9;1775:1;1771;:5;;;;:::i;:::-;1759:17;;1794:1;1787:8;;;1613:190;;;;;:::o;3138:132::-;3213:12;:10;:12::i;:::-;3202:23;;:7;:5;:7::i;:::-;:23;;;3194:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3138:132::o;2065:::-;2123:7;2150:39;2154:1;2157;2150:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2143:46;;2065:132;;;;:::o;4233:191::-;4307:16;4326:6;;;;;;;;;;;4307:25;;4352:8;4343:6;;:17;;;;;;;;;;;;;;;;;;4407:8;4376:40;;4397:8;4376:40;;;;;;;;;;;;4296:128;4233:191;:::o;1811:246::-;1869:7;1898:1;1893;:6;1889:47;;1923:1;1916:8;;;;1889:47;1946:9;1962:1;1958;:5;;;;:::i;:::-;1946:17;;1991:1;1986;1982;:5;;;;:::i;:::-;:10;1974:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2048:1;2041:8;;;1811:246;;;;;:::o;11051:520::-;6315:4;6306:6;;:13;;;;;;;;;;;;;;;;;;11145:1:::1;11132:11;:14:::0;11129:27;11148:7:::1;11129:27;11166:21;11204:1;11190:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11166:40;;11235:4;11217;11222:1;11217:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11261:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11251:4;11256:1;11251:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11294:62;11311:4;11326:15;;;;;;;;;;;11344:11;11294:8;:62::i;:::-;11367:15;;;;;;;;;;;:66;;;11448:11;11474:1;11490:4;11517;11537:15;11367:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11118:453;6330:1;6351:5:::0;6342:6;;:14;;;;;;;;;;;;;;;;;;11051:520;:::o;11579:179::-;11636:16;11666:13;;;;;;;;;;;11658:27;;11693:6;11658:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11635:69;;;11723:11;11715:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;11625:133;11579:179;:::o;1282:::-;1340:7;1360:9;1376:1;1372;:5;;;;:::i;:::-;1360:17;;1401:1;1396;:6;;1388:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1452:1;1445:8;;;1282:179;;;;:::o;1469:136::-;1527:7;1554:43;1558:1;1561;1554:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1547:50;;1469:136;;;;:::o;2205:189::-;2291:7;2323:1;2319;:5;2326:12;2311:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2350:9;2366:1;2362;:5;;;;:::i;:::-;2350:17;;2385:1;2378:8;;;2205:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:104::-;5126:7;5155:24;5173:5;5155:24;:::i;:::-;5144:35;;5081:104;;;:::o;5191:142::-;5294:32;5320:5;5294:32;:::i;:::-;5289:3;5282:45;5191:142;;:::o;5339:254::-;5448:4;5486:2;5475:9;5471:18;5463:26;;5499:87;5583:1;5572:9;5568:17;5559:6;5499:87;:::i;:::-;5339:254;;;;:::o;5599:329::-;5658:6;5707:2;5695:9;5686:7;5682:23;5678:32;5675:119;;;5713:79;;:::i;:::-;5675:119;5833:1;5858:53;5903:7;5894:6;5883:9;5879:22;5858:53;:::i;:::-;5848:63;;5804:117;5599:329;;;;:::o;5934:118::-;6021:24;6039:5;6021:24;:::i;:::-;6016:3;6009:37;5934:118;;:::o;6058:222::-;6151:4;6189:2;6178:9;6174:18;6166:26;;6202:71;6270:1;6259:9;6255:17;6246:6;6202:71;:::i;:::-;6058:222;;;;:::o;6286:474::-;6354:6;6362;6411:2;6399:9;6390:7;6386:23;6382:32;6379:119;;;6417:79;;:::i;:::-;6379:119;6537:1;6562:53;6607:7;6598:6;6587:9;6583:22;6562:53;:::i;:::-;6552:63;;6508:117;6664:2;6690:53;6735:7;6726:6;6715:9;6711:22;6690:53;:::i;:::-;6680:63;;6635:118;6286:474;;;;;:::o;6766:::-;6834:6;6842;6891:2;6879:9;6870:7;6866:23;6862:32;6859:119;;;6897:79;;:::i;:::-;6859:119;7017:1;7042:53;7087:7;7078:6;7067:9;7063:22;7042:53;:::i;:::-;7032:63;;6988:117;7144:2;7170:53;7215:7;7206:6;7195:9;7191:22;7170:53;:::i;:::-;7160:63;;7115:118;6766:474;;;;;:::o;7246:180::-;7294:77;7291:1;7284:88;7391:4;7388:1;7381:15;7415:4;7412:1;7405:15;7432:102;7474:8;7521:5;7518:1;7514:13;7493:34;;7432:102;;;:::o;7540:848::-;7601:5;7608:4;7632:6;7623:15;;7656:5;7647:14;;7670:712;7691:1;7681:8;7678:15;7670:712;;;7786:4;7781:3;7777:14;7771:4;7768:24;7765:50;;;7795:18;;:::i;:::-;7765:50;7845:1;7835:8;7831:16;7828:451;;;8260:4;8253:5;8249:16;8240:25;;7828:451;8310:4;8304;8300:15;8292:23;;8340:32;8363:8;8340:32;:::i;:::-;8328:44;;7670:712;;;7540:848;;;;;;;:::o;8394:1073::-;8448:5;8639:8;8629:40;;8660:1;8651:10;;8662:5;;8629:40;8688:4;8678:36;;8705:1;8696:10;;8707:5;;8678:36;8774:4;8822:1;8817:27;;;;8858:1;8853:191;;;;8767:277;;8817:27;8835:1;8826:10;;8837:5;;;8853:191;8898:3;8888:8;8885:17;8882:43;;;8905:18;;:::i;:::-;8882:43;8954:8;8951:1;8947:16;8938:25;;8989:3;8982:5;8979:14;8976:40;;;8996:18;;:::i;:::-;8976:40;9029:5;;;8767:277;;9153:2;9143:8;9140:16;9134:3;9128:4;9125:13;9121:36;9103:2;9093:8;9090:16;9085:2;9079:4;9076:12;9072:35;9056:111;9053:246;;;9209:8;9203:4;9199:19;9190:28;;9244:3;9237:5;9234:14;9231:40;;;9251:18;;:::i;:::-;9231:40;9284:5;;9053:246;9324:42;9362:3;9352:8;9346:4;9343:1;9324:42;:::i;:::-;9309:57;;;;9398:4;9393:3;9389:14;9382:5;9379:25;9376:51;;;9407:18;;:::i;:::-;9376:51;9456:4;9449:5;9445:16;9436:25;;8394:1073;;;;;;:::o;9473:281::-;9531:5;9555:23;9573:4;9555:23;:::i;:::-;9547:31;;9599:25;9615:8;9599:25;:::i;:::-;9587:37;;9643:104;9680:66;9670:8;9664:4;9643:104;:::i;:::-;9634:113;;9473:281;;;;:::o;9760:410::-;9800:7;9823:20;9841:1;9823:20;:::i;:::-;9818:25;;9857:20;9875:1;9857:20;:::i;:::-;9852:25;;9912:1;9909;9905:9;9934:30;9952:11;9934:30;:::i;:::-;9923:41;;10113:1;10104:7;10100:15;10097:1;10094:22;10074:1;10067:9;10047:83;10024:139;;10143:18;;:::i;:::-;10024:139;9808:362;9760:410;;;;:::o;10176:164::-;10316:16;10312:1;10304:6;10300:14;10293:40;10176:164;:::o;10346:366::-;10488:3;10509:67;10573:2;10568:3;10509:67;:::i;:::-;10502:74;;10585:93;10674:3;10585:93;:::i;:::-;10703:2;10698:3;10694:12;10687:19;;10346:366;;;:::o;10718:419::-;10884:4;10922:2;10911:9;10907:18;10899:26;;10971:9;10965:4;10961:20;10957:1;10946:9;10942:17;10935:47;10999:131;11125:4;10999:131;:::i;:::-;10991:139;;10718:419;;;:::o;11143:162::-;11283:14;11279:1;11271:6;11267:14;11260:38;11143:162;:::o;11311:366::-;11453:3;11474:67;11538:2;11533:3;11474:67;:::i;:::-;11467:74;;11550:93;11639:3;11550:93;:::i;:::-;11668:2;11663:3;11659:12;11652:19;;11311:366;;;:::o;11683:419::-;11849:4;11887:2;11876:9;11872:18;11864:26;;11936:9;11930:4;11926:20;11922:1;11911:9;11907:17;11900:47;11964:131;12090:4;11964:131;:::i;:::-;11956:139;;11683:419;;;:::o;12108:147::-;12209:11;12246:3;12231:18;;12108:147;;;;:::o;12261:114::-;;:::o;12381:398::-;12540:3;12561:83;12642:1;12637:3;12561:83;:::i;:::-;12554:90;;12653:93;12742:3;12653:93;:::i;:::-;12771:1;12766:3;12762:11;12755:18;;12381:398;;;:::o;12785:379::-;12969:3;12991:147;13134:3;12991:147;:::i;:::-;12984:154;;13155:3;13148:10;;12785:379;;;:::o;13170:161::-;13310:13;13306:1;13298:6;13294:14;13287:37;13170:161;:::o;13337:366::-;13479:3;13500:67;13564:2;13559:3;13500:67;:::i;:::-;13493:74;;13576:93;13665:3;13576:93;:::i;:::-;13694:2;13689:3;13685:12;13678:19;;13337:366;;;:::o;13709:419::-;13875:4;13913:2;13902:9;13898:18;13890:26;;13962:9;13956:4;13952:20;13948:1;13937:9;13933:17;13926:47;13990:131;14116:4;13990:131;:::i;:::-;13982:139;;13709:419;;;:::o;14134:171::-;14274:23;14270:1;14262:6;14258:14;14251:47;14134:171;:::o;14311:366::-;14453:3;14474:67;14538:2;14533:3;14474:67;:::i;:::-;14467:74;;14550:93;14639:3;14550:93;:::i;:::-;14668:2;14663:3;14659:12;14652:19;;14311:366;;;:::o;14683:419::-;14849:4;14887:2;14876:9;14872:18;14864:26;;14936:9;14930:4;14926:20;14922:1;14911:9;14907:17;14900:47;14964:131;15090:4;14964:131;:::i;:::-;14956:139;;14683:419;;;:::o;15108:225::-;15248:34;15244:1;15236:6;15232:14;15225:58;15317:8;15312:2;15304:6;15300:15;15293:33;15108:225;:::o;15339:366::-;15481:3;15502:67;15566:2;15561:3;15502:67;:::i;:::-;15495:74;;15578:93;15667:3;15578:93;:::i;:::-;15696:2;15691:3;15687:12;15680:19;;15339:366;;;:::o;15711:419::-;15877:4;15915:2;15904:9;15900:18;15892:26;;15964:9;15958:4;15954:20;15950:1;15939:9;15935:17;15928:47;15992:131;16118:4;15992:131;:::i;:::-;15984:139;;15711:419;;;:::o;16136:223::-;16276:34;16272:1;16264:6;16260:14;16253:58;16345:6;16340:2;16332:6;16328:15;16321:31;16136:223;:::o;16365:366::-;16507:3;16528:67;16592:2;16587:3;16528:67;:::i;:::-;16521:74;;16604:93;16693:3;16604:93;:::i;:::-;16722:2;16717:3;16713:12;16706:19;;16365:366;;;:::o;16737:419::-;16903:4;16941:2;16930:9;16926:18;16918:26;;16990:9;16984:4;16980:20;16976:1;16965:9;16961:17;16954:47;17018:131;17144:4;17018:131;:::i;:::-;17010:139;;16737:419;;;:::o;17162:221::-;17302:34;17298:1;17290:6;17286:14;17279:58;17371:4;17366:2;17358:6;17354:15;17347:29;17162:221;:::o;17389:366::-;17531:3;17552:67;17616:2;17611:3;17552:67;:::i;:::-;17545:74;;17628:93;17717:3;17628:93;:::i;:::-;17746:2;17741:3;17737:12;17730:19;;17389:366;;;:::o;17761:419::-;17927:4;17965:2;17954:9;17950:18;17942:26;;18014:9;18008:4;18004:20;18000:1;17989:9;17985:17;17978:47;18042:131;18168:4;18042:131;:::i;:::-;18034:139;;17761:419;;;:::o;18186:224::-;18326:34;18322:1;18314:6;18310:14;18303:58;18395:7;18390:2;18382:6;18378:15;18371:32;18186:224;:::o;18416:366::-;18558:3;18579:67;18643:2;18638:3;18579:67;:::i;:::-;18572:74;;18655:93;18744:3;18655:93;:::i;:::-;18773:2;18768:3;18764:12;18757:19;;18416:366;;;:::o;18788:419::-;18954:4;18992:2;18981:9;18977:18;18969:26;;19041:9;19035:4;19031:20;19027:1;19016:9;19012:17;19005:47;19069:131;19195:4;19069:131;:::i;:::-;19061:139;;18788:419;;;:::o;19213:222::-;19353:34;19349:1;19341:6;19337:14;19330:58;19422:5;19417:2;19409:6;19405:15;19398:30;19213:222;:::o;19441:366::-;19583:3;19604:67;19668:2;19663:3;19604:67;:::i;:::-;19597:74;;19680:93;19769:3;19680:93;:::i;:::-;19798:2;19793:3;19789:12;19782:19;;19441:366;;;:::o;19813:419::-;19979:4;20017:2;20006:9;20002:18;19994:26;;20066:9;20060:4;20056:20;20052:1;20041:9;20037:17;20030:47;20094:131;20220:4;20094:131;:::i;:::-;20086:139;;19813:419;;;:::o;20238:228::-;20378:34;20374:1;20366:6;20362:14;20355:58;20447:11;20442:2;20434:6;20430:15;20423:36;20238:228;:::o;20472:366::-;20614:3;20635:67;20699:2;20694:3;20635:67;:::i;:::-;20628:74;;20711:93;20800:3;20711:93;:::i;:::-;20829:2;20824:3;20820:12;20813:19;;20472:366;;;:::o;20844:419::-;21010:4;21048:2;21037:9;21033:18;21025:26;;21097:9;21091:4;21087:20;21083:1;21072:9;21068:17;21061:47;21125:131;21251:4;21125:131;:::i;:::-;21117:139;;20844:419;;;:::o;21269:174::-;21409:26;21405:1;21397:6;21393:14;21386:50;21269:174;:::o;21449:366::-;21591:3;21612:67;21676:2;21671:3;21612:67;:::i;:::-;21605:74;;21688:93;21777:3;21688:93;:::i;:::-;21806:2;21801:3;21797:12;21790:19;;21449:366;;;:::o;21821:419::-;21987:4;22025:2;22014:9;22010:18;22002:26;;22074:9;22068:4;22064:20;22060:1;22049:9;22045:17;22038:47;22102:131;22228:4;22102:131;:::i;:::-;22094:139;;21821:419;;;:::o;22246:191::-;22286:3;22305:20;22323:1;22305:20;:::i;:::-;22300:25;;22339:20;22357:1;22339:20;:::i;:::-;22334:25;;22382:1;22379;22375:9;22368:16;;22403:3;22400:1;22397:10;22394:36;;;22410:18;;:::i;:::-;22394:36;22246:191;;;;:::o;22443:232::-;22583:34;22579:1;22571:6;22567:14;22560:58;22652:15;22647:2;22639:6;22635:15;22628:40;22443:232;:::o;22681:366::-;22823:3;22844:67;22908:2;22903:3;22844:67;:::i;:::-;22837:74;;22920:93;23009:3;22920:93;:::i;:::-;23038:2;23033:3;23029:12;23022:19;;22681:366;;;:::o;23053:419::-;23219:4;23257:2;23246:9;23242:18;23234:26;;23306:9;23300:4;23296:20;23292:1;23281:9;23277:17;23270:47;23334:131;23460:4;23334:131;:::i;:::-;23326:139;;23053:419;;;:::o;23478:194::-;23518:4;23538:20;23556:1;23538:20;:::i;:::-;23533:25;;23572:20;23590:1;23572:20;:::i;:::-;23567:25;;23616:1;23613;23609:9;23601:17;;23640:1;23634:4;23631:11;23628:37;;;23645:18;;:::i;:::-;23628:37;23478:194;;;;:::o;23678:182::-;23818:34;23814:1;23806:6;23802:14;23795:58;23678:182;:::o;23866:366::-;24008:3;24029:67;24093:2;24088:3;24029:67;:::i;:::-;24022:74;;24105:93;24194:3;24105:93;:::i;:::-;24223:2;24218:3;24214:12;24207:19;;23866:366;;;:::o;24238:419::-;24404:4;24442:2;24431:9;24427:18;24419:26;;24491:9;24485:4;24481:20;24477:1;24466:9;24462:17;24455:47;24519:131;24645:4;24519:131;:::i;:::-;24511:139;;24238:419;;;:::o;24663:180::-;24711:77;24708:1;24701:88;24808:4;24805:1;24798:15;24832:4;24829:1;24822:15;24849:185;24889:1;24906:20;24924:1;24906:20;:::i;:::-;24901:25;;24940:20;24958:1;24940:20;:::i;:::-;24935:25;;24979:1;24969:35;;24984:18;;:::i;:::-;24969:35;25026:1;25023;25019:9;25014:14;;24849:185;;;;:::o;25040:220::-;25180:34;25176:1;25168:6;25164:14;25157:58;25249:3;25244:2;25236:6;25232:15;25225:28;25040:220;:::o;25266:366::-;25408:3;25429:67;25493:2;25488:3;25429:67;:::i;:::-;25422:74;;25505:93;25594:3;25505:93;:::i;:::-;25623:2;25618:3;25614:12;25607:19;;25266:366;;;:::o;25638:419::-;25804:4;25842:2;25831:9;25827:18;25819:26;;25891:9;25885:4;25881:20;25877:1;25866:9;25862:17;25855:47;25919:131;26045:4;25919:131;:::i;:::-;25911:139;;25638:419;;;:::o;26063:180::-;26111:77;26108:1;26101:88;26208:4;26205:1;26198:15;26232:4;26229:1;26222:15;26249:180;26297:77;26294:1;26287:88;26394:4;26391:1;26384:15;26418:4;26415:1;26408:15;26435:143;26492:5;26523:6;26517:13;26508:22;;26539:33;26566:5;26539:33;:::i;:::-;26435:143;;;;:::o;26584:351::-;26654:6;26703:2;26691:9;26682:7;26678:23;26674:32;26671:119;;;26709:79;;:::i;:::-;26671:119;26829:1;26854:64;26910:7;26901:6;26890:9;26886:22;26854:64;:::i;:::-;26844:74;;26800:128;26584:351;;;;:::o;26941:85::-;26986:7;27015:5;27004:16;;26941:85;;;:::o;27032:60::-;27060:3;27081:5;27074:12;;27032:60;;;:::o;27098:158::-;27156:9;27189:61;27207:42;27216:32;27242:5;27216:32;:::i;:::-;27207:42;:::i;:::-;27189:61;:::i;:::-;27176:74;;27098:158;;;:::o;27262:147::-;27357:45;27396:5;27357:45;:::i;:::-;27352:3;27345:58;27262:147;;:::o;27415:114::-;27482:6;27516:5;27510:12;27500:22;;27415:114;;;:::o;27535:184::-;27634:11;27668:6;27663:3;27656:19;27708:4;27703:3;27699:14;27684:29;;27535:184;;;;:::o;27725:132::-;27792:4;27815:3;27807:11;;27845:4;27840:3;27836:14;27828:22;;27725:132;;;:::o;27863:108::-;27940:24;27958:5;27940:24;:::i;:::-;27935:3;27928:37;27863:108;;:::o;27977:179::-;28046:10;28067:46;28109:3;28101:6;28067:46;:::i;:::-;28145:4;28140:3;28136:14;28122:28;;27977:179;;;;:::o;28162:113::-;28232:4;28264;28259:3;28255:14;28247:22;;28162:113;;;:::o;28311:732::-;28430:3;28459:54;28507:5;28459:54;:::i;:::-;28529:86;28608:6;28603:3;28529:86;:::i;:::-;28522:93;;28639:56;28689:5;28639:56;:::i;:::-;28718:7;28749:1;28734:284;28759:6;28756:1;28753:13;28734:284;;;28835:6;28829:13;28862:63;28921:3;28906:13;28862:63;:::i;:::-;28855:70;;28948:60;29001:6;28948:60;:::i;:::-;28938:70;;28794:224;28781:1;28778;28774:9;28769:14;;28734:284;;;28738:14;29034:3;29027:10;;28435:608;;;28311:732;;;;:::o;29049:831::-;29312:4;29350:3;29339:9;29335:19;29327:27;;29364:71;29432:1;29421:9;29417:17;29408:6;29364:71;:::i;:::-;29445:80;29521:2;29510:9;29506:18;29497:6;29445:80;:::i;:::-;29572:9;29566:4;29562:20;29557:2;29546:9;29542:18;29535:48;29600:108;29703:4;29694:6;29600:108;:::i;:::-;29592:116;;29718:72;29786:2;29775:9;29771:18;29762:6;29718:72;:::i;:::-;29800:73;29868:3;29857:9;29853:19;29844:6;29800:73;:::i;:::-;29049:831;;;;;;;;:::o;29886:177::-;30026:29;30022:1;30014:6;30010:14;30003:53;29886:177;:::o;30069:366::-;30211:3;30232:67;30296:2;30291:3;30232:67;:::i;:::-;30225:74;;30308:93;30397:3;30308:93;:::i;:::-;30426:2;30421:3;30417:12;30410:19;;30069:366;;;:::o;30441:419::-;30607:4;30645:2;30634:9;30630:18;30622:26;;30694:9;30688:4;30684:20;30680:1;30669:9;30665:17;30658:47;30722:131;30848:4;30722:131;:::i;:::-;30714:139;;30441:419;;;:::o

Swarm Source

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