ETH Price: $3,324.01 (-4.14%)

Token

Esquid (QUID)
 

Overview

Max Total Supply

15,000,000 QUID

Holders

222

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 QUID

Value
$0.00
0x8ec894c6d4966fbfd985c588edcf5a8d1613b94f
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Esquid

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-10
*/

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

/*
Twitter: https://x.com/Esquidity
Telegram: https://t.me/ESQUIDERC
Website: https://esquidescrow.com
*/

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 Esquid 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 = 15000000 * 10**_decimals;
    string private constant _name = unicode"Esquid";
    string private constant _symbol = unicode"QUID";
    uint256 public _taxSwapThreshold= 5000 * 10**_decimals;
    address payable public _quidTaxWallet = payable(0xDfbE21E3E274ea73Ee4402EDeC1c3C39503e3E56);

    uint256 public _quidBuyTax = 5;
    uint256 public _quidSellTax = 5;
    uint256 public _quidWhaleLimit = 300000 * 10 ** decimals();

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

    bool public tradeEnabled = 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[_quidTaxWallet] = 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(tradeEnabled, "Trading not enabled");

            if(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= _quidWhaleLimit, "Cant be higher than Quid AntiWhale Limit.");
            }

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

            if(_quidSellTax > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_quidSellTax).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(_quidTaxWallet).call{value: amount}("");
        require(callSuccess, "Call failed");
    }

    receive() external payable {}

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

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

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

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

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

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

    function updateQuidFees(uint256 _bFee, uint256 _sFee) public onlyOwner {
        _quidBuyTax = _bFee;
        _quidSellTax = _sFee;
    }

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

    
    }

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":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_quidBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_quidSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_quidTaxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_quidWhaleLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeCloggedEther","outputs":[],"stateMutability":"nonpayable","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":"tradeEnabled","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"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"updateQuidAntiWhaleLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bFee","type":"uint256"},{"internalType":"uint256","name":"_sFee","type":"uint256"}],"name":"updateQuidFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxLimit","type":"uint256"}],"name":"updateTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"whiteListFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a610012919061079e565b61138861001f91906107e8565b60045573dfbe21e3e274ea73ee4402edec1c3c39503e3e5660055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005600655600560075561008e61053660201b60201c565b600a61009a919061079e565b620493e06100a891906107e8565b6008555f600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff0219169083151502179055505f600a60166101000a81548160ff021916908315150217905550348015610105575f80fd5b5061012261011761053e60201b60201c565b61054560201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a79190610887565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102309190610887565b6040518363ffffffff1660e01b815260040161024d9291906108c1565b6020604051808303815f875af1158015610269573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028d9190610887565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a61031a919061079e565b62e4e1c061032891906107e8565b60015f61033961053e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61038961060660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104b161053e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61050d919061079e565b62e4e1c061051b91906107e8565b60405161052891906108f7565b60405180910390a350610910565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106af5780860481111561068b5761068a61062d565b5b600185161561069a5780820291505b80810290506106a88561065a565b945061066f565b94509492505050565b5f826106c75760019050610782565b816106d4575f9050610782565b81600181146106ea57600281146106f457610723565b6001915050610782565b60ff8411156107065761070561062d565b5b8360020a91508482111561071d5761071c61062d565b5b50610782565b5060208310610133831016604e8410600b84101617156107585782820a9050838111156107535761075261062d565b5b610782565b6107658484846001610666565b9250905081840481111561077c5761077b61062d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107a882610789565b91506107b383610792565b92506107e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106b8565b905092915050565b5f6107f282610789565b91506107fd83610789565b925082820261080b81610789565b915082820484148315176108225761082161062d565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108568261082d565b9050919050565b6108668161084c565b8114610870575f80fd5b50565b5f815190506108818161085d565b92915050565b5f6020828403121561089c5761089b610829565b5b5f6108a984828501610873565b91505092915050565b6108bb8161084c565b82525050565b5f6040820190506108d45f8301856108b2565b6108e160208301846108b2565b9392505050565b6108f181610789565b82525050565b5f60208201905061090a5f8301846108e8565b92915050565b612c658061091d5f395ff3fe608060405260043610610184575f3560e01c8063768dc710116100d0578063bf474bed11610089578063dd62ed3e11610063578063dd62ed3e14610541578063ea2f0b371461057d578063f2fde38b146105a5578063f3597209146105cd5761018b565b8063bf474bed146104c3578063c123c677146104ed578063d621e813146105175761018b565b8063768dc710146103b95780638a8c523c146103f55780638da5cb5b1461040b57806395d89b4114610435578063a9059cbb1461045f578063b62ef5991461049b5761018b565b8063398526b51161013d5780636ba1b359116101175780636ba1b3591461032757806370a082311461033d578063715018a6146103795780637176286d1461038f5761018b565b8063398526b5146102ad57806348f1846d146102d7578063508f6dfb146102ff5761018b565b8063034832bd1461018f57806306fdde03146101b7578063095ea7b3146101e157806318160ddd1461021d57806323b872dd14610247578063313ce567146102835761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101b560048036038101906101b09190611cb0565b6105f7565b005b3480156101c2575f80fd5b506101cb610609565b6040516101d89190611d4b565b60405180910390f35b3480156101ec575f80fd5b5061020760048036038101906102029190611dc5565b610646565b6040516102149190611e1d565b60405180910390f35b348015610228575f80fd5b50610231610663565b60405161023e9190611e45565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190611e5e565b610685565b60405161027a9190611e1d565b60405180910390f35b34801561028e575f80fd5b50610297610759565b6040516102a49190611ec9565b60405180910390f35b3480156102b8575f80fd5b506102c1610761565b6040516102ce9190611e45565b60405180910390f35b3480156102e2575f80fd5b506102fd60048036038101906102f89190611ee2565b610767565b005b34801561030a575f80fd5b5061032560048036038101906103209190611f20565b610781565b005b348015610332575f80fd5b5061033b6107e1565b005b348015610348575f80fd5b50610363600480360381019061035e9190611f20565b6108db565b6040516103709190611e45565b60405180910390f35b348015610384575f80fd5b5061038d610921565b005b34801561039a575f80fd5b506103a3610934565b6040516103b09190611e45565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da9190611f20565b61093a565b6040516103ec9190611e1d565b60405180910390f35b348015610400575f80fd5b50610409610957565b005b348015610416575f80fd5b5061041f6109d2565b60405161042c9190611f5a565b60405180910390f35b348015610440575f80fd5b506104496109f9565b6040516104569190611d4b565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190611dc5565b610a36565b6040516104929190611e1d565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc9190611cb0565b610a53565b005b3480156104ce575f80fd5b506104d7610ac1565b6040516104e49190611e45565b60405180910390f35b3480156104f8575f80fd5b50610501610ac7565b60405161050e9190611f93565b60405180910390f35b348015610522575f80fd5b5061052b610aec565b6040516105389190611e1d565b60405180910390f35b34801561054c575f80fd5b5061056760048036038101906105629190611fac565b610aff565b6040516105749190611e45565b60405180910390f35b348015610588575f80fd5b506105a3600480360381019061059e9190611f20565b610b81565b005b3480156105b0575f80fd5b506105cb60048036038101906105c69190611f20565b610be0565b005b3480156105d8575f80fd5b506105e1610c62565b6040516105ee9190611e45565b60405180910390f35b6105ff610c68565b8060048190555050565b60606040518060400160405280600681526020017f4573717569640000000000000000000000000000000000000000000000000000815250905090565b5f610659610652610ce6565b8484610ced565b6001905092915050565b5f6012600a6106729190612146565b62e4e1c06106809190612190565b905090565b5f610691848484610eb0565b61074e8461069d610ce6565b61074985604051806060016040528060288152602001612c086028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610700610ce6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461164e9092919063ffffffff16565b610ced565b600190509392505050565b5f6012905090565b60065481565b61076f610c68565b81600681905550806007819055505050565b610789610c68565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6107e9610c68565b5f471161082b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108229061221b565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff168260405161085490612266565b5f6040518083038185875af1925050503d805f811461088e576040519150601f19603f3d011682016040523d82523d5f602084013e610893565b606091505b50509050806108d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ce906122c4565b60405180910390fd5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610929610c68565b6109325f6116b0565b565b60075481565b6003602052805f5260405f205f915054906101000a900460ff1681565b61095f610c68565b60011515600a60169054906101000a900460ff161515036109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac9061232c565b60405180910390fd5b6001600a60166101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5155494400000000000000000000000000000000000000000000000000000000815250905090565b5f610a49610a42610ce6565b8484610eb0565b6001905092915050565b610a5b610c68565b610a7660c8610a68610663565b61177190919063ffffffff16565b8111610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae90612394565b60405180910390fd5b8060088190555050565b60045481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60169054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b89610c68565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610be8610c68565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90612422565b60405180910390fd5b610c5f816116b0565b50565b60085481565b610c70610ce6565b73ffffffffffffffffffffffffffffffffffffffff16610c8e6109d2565b73ffffffffffffffffffffffffffffffffffffffff1614610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb9061248a565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290612518565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc0906125a6565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ea39190611e45565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1590612634565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f83906126c2565b60405180910390fd5b5f8111610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc590612750565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561106d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561139e57600a60169054906101000a900460ff166110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b8906127b8565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461116e5760085482611122856108db565b61112c91906127d6565b111561116d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116490612879565b60405180910390fd5b5b5f600654111561125257600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611221575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112515761124e6064611240600654856117ba90919063ffffffff16565b61177190919063ffffffff16565b90505b5b5f60075411156112dc57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112db576112d860646112ca600754856117ba90919063ffffffff16565b61177190919063ffffffff16565b90505b5b5f6112e6306108db565b9050600a60149054906101000a900460ff161580156113515750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113695750600a60159054906101000a900460ff165b8015611376575060045481115b1561139c5761138481611831565b5f4790505f81111561139a5761139947611aa5565b5b505b505b5f81111561149d576113f68160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114949190611e45565b60405180910390a35b6114ed8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bcf90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115906115448284611bcf90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116338486611bcf90919063ffffffff16565b6040516116409190611e45565b60405180910390a350505050565b5f838311158290611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c9190611d4b565b60405180910390fd5b505f83856116a39190612897565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6117b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c18565b905092915050565b5f8083036117ca575f905061182b565b5f82846117d79190612190565b90508284826117e691906128f7565b14611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d90612997565b60405180910390fd5b809150505b92915050565b6001600a60146101000a81548160ff0219169083151502179055505f810315611a88575f600267ffffffffffffffff8111156118705761186f6129b5565b5b60405190808252806020026020018201604052801561189e5781602001602082028036833780820191505090505b50905030815f815181106118b5576118b46129e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611959573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197d9190612a23565b81600181518110611991576119906129e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119f73060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ced565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a59959493929190612b47565b5f604051808303815f87803b158015611a70575f80fd5b505af1158015611a82573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611aeb90612266565b5f6040518083038185875af1925050503d805f8114611b25576040519150601f19603f3d011682016040523d82523d5f602084013e611b2a565b606091505b5050905080611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b65906122c4565b60405180910390fd5b5050565b5f808284611b8091906127d6565b905083811015611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc90612be9565b60405180910390fd5b8091505092915050565b5f611c1083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061164e565b905092915050565b5f8083118290611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c559190611d4b565b60405180910390fd5b505f8385611c6c91906128f7565b9050809150509392505050565b5f80fd5b5f819050919050565b611c8f81611c7d565b8114611c99575f80fd5b50565b5f81359050611caa81611c86565b92915050565b5f60208284031215611cc557611cc4611c79565b5b5f611cd284828501611c9c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d1d82611cdb565b611d278185611ce5565b9350611d37818560208601611cf5565b611d4081611d03565b840191505092915050565b5f6020820190508181035f830152611d638184611d13565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d9482611d6b565b9050919050565b611da481611d8a565b8114611dae575f80fd5b50565b5f81359050611dbf81611d9b565b92915050565b5f8060408385031215611ddb57611dda611c79565b5b5f611de885828601611db1565b9250506020611df985828601611c9c565b9150509250929050565b5f8115159050919050565b611e1781611e03565b82525050565b5f602082019050611e305f830184611e0e565b92915050565b611e3f81611c7d565b82525050565b5f602082019050611e585f830184611e36565b92915050565b5f805f60608486031215611e7557611e74611c79565b5b5f611e8286828701611db1565b9350506020611e9386828701611db1565b9250506040611ea486828701611c9c565b9150509250925092565b5f60ff82169050919050565b611ec381611eae565b82525050565b5f602082019050611edc5f830184611eba565b92915050565b5f8060408385031215611ef857611ef7611c79565b5b5f611f0585828601611c9c565b9250506020611f1685828601611c9c565b9150509250929050565b5f60208284031215611f3557611f34611c79565b5b5f611f4284828501611db1565b91505092915050565b611f5481611d8a565b82525050565b5f602082019050611f6d5f830184611f4b565b92915050565b5f611f7d82611d6b565b9050919050565b611f8d81611f73565b82525050565b5f602082019050611fa65f830184611f84565b92915050565b5f8060408385031215611fc257611fc1611c79565b5b5f611fcf85828601611db1565b9250506020611fe085828601611db1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561206c5780860481111561204857612047611fea565b5b60018516156120575780820291505b808102905061206585612017565b945061202c565b94509492505050565b5f82612084576001905061213f565b81612091575f905061213f565b81600181146120a757600281146120b1576120e0565b600191505061213f565b60ff8411156120c3576120c2611fea565b5b8360020a9150848211156120da576120d9611fea565b5b5061213f565b5060208310610133831016604e8410600b84101617156121155782820a9050838111156121105761210f611fea565b5b61213f565b6121228484846001612023565b9250905081840481111561213957612138611fea565b5b81810290505b9392505050565b5f61215082611c7d565b915061215b83611eae565b92506121887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612075565b905092915050565b5f61219a82611c7d565b91506121a583611c7d565b92508282026121b381611c7d565b915082820484148315176121ca576121c9611fea565b5b5092915050565b7f4e6f20737475636b2045746865720000000000000000000000000000000000005f82015250565b5f612205600e83611ce5565b9150612210826121d1565b602082019050919050565b5f6020820190508181035f830152612232816121f9565b9050919050565b5f81905092915050565b50565b5f6122515f83612239565b915061225c82612243565b5f82019050919050565b5f61227082612246565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f6122ae600b83611ce5565b91506122b98261227a565b602082019050919050565b5f6020820190508181035f8301526122db816122a2565b9050919050565b7f547261646520616c726561647920656e61626c656400000000000000000000005f82015250565b5f612316601583611ce5565b9150612321826122e2565b602082019050919050565b5f6020820190508181035f8301526123438161230a565b9050919050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f61237e600e83611ce5565b91506123898261234a565b602082019050919050565b5f6020820190508181035f8301526123ab81612372565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61240c602683611ce5565b9150612417826123b2565b604082019050919050565b5f6020820190508181035f83015261243981612400565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612474602083611ce5565b915061247f82612440565b602082019050919050565b5f6020820190508181035f8301526124a181612468565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612502602483611ce5565b915061250d826124a8565b604082019050919050565b5f6020820190508181035f83015261252f816124f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612590602283611ce5565b915061259b82612536565b604082019050919050565b5f6020820190508181035f8301526125bd81612584565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61261e602583611ce5565b9150612629826125c4565b604082019050919050565b5f6020820190508181035f83015261264b81612612565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ac602383611ce5565b91506126b782612652565b604082019050919050565b5f6020820190508181035f8301526126d9816126a0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61273a602983611ce5565b9150612745826126e0565b604082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f6127a2601383611ce5565b91506127ad8261276e565b602082019050919050565b5f6020820190508181035f8301526127cf81612796565b9050919050565b5f6127e082611c7d565b91506127eb83611c7d565b925082820190508082111561280357612802611fea565b5b92915050565b7f43616e7420626520686967686572207468616e205175696420416e74695768615f8201527f6c65204c696d69742e0000000000000000000000000000000000000000000000602082015250565b5f612863602983611ce5565b915061286e82612809565b604082019050919050565b5f6020820190508181035f83015261289081612857565b9050919050565b5f6128a182611c7d565b91506128ac83611c7d565b92508282039050818111156128c4576128c3611fea565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61290182611c7d565b915061290c83611c7d565b92508261291c5761291b6128ca565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612981602183611ce5565b915061298c82612927565b604082019050919050565b5f6020820190508181035f8301526129ae81612975565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a1d81611d9b565b92915050565b5f60208284031215612a3857612a37611c79565b5b5f612a4584828501612a0f565b91505092915050565b5f819050919050565b5f819050919050565b5f612a7a612a75612a7084612a4e565b612a57565b611c7d565b9050919050565b612a8a81612a60565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ac281611d8a565b82525050565b5f612ad38383612ab9565b60208301905092915050565b5f602082019050919050565b5f612af582612a90565b612aff8185612a9a565b9350612b0a83612aaa565b805f5b83811015612b3a578151612b218882612ac8565b9750612b2c83612adf565b925050600181019050612b0d565b5085935050505092915050565b5f60a082019050612b5a5f830188611e36565b612b676020830187612a81565b8181036040830152612b798186612aeb565b9050612b886060830185611f4b565b612b956080830184611e36565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612bd3601b83611ce5565b9150612bde82612b9f565b602082019050919050565b5f6020820190508181035f830152612c0081612bc7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209f7f569532244133cf0177ef19e675a5561143e3aad5de2025178674576b82a864736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610184575f3560e01c8063768dc710116100d0578063bf474bed11610089578063dd62ed3e11610063578063dd62ed3e14610541578063ea2f0b371461057d578063f2fde38b146105a5578063f3597209146105cd5761018b565b8063bf474bed146104c3578063c123c677146104ed578063d621e813146105175761018b565b8063768dc710146103b95780638a8c523c146103f55780638da5cb5b1461040b57806395d89b4114610435578063a9059cbb1461045f578063b62ef5991461049b5761018b565b8063398526b51161013d5780636ba1b359116101175780636ba1b3591461032757806370a082311461033d578063715018a6146103795780637176286d1461038f5761018b565b8063398526b5146102ad57806348f1846d146102d7578063508f6dfb146102ff5761018b565b8063034832bd1461018f57806306fdde03146101b7578063095ea7b3146101e157806318160ddd1461021d57806323b872dd14610247578063313ce567146102835761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101b560048036038101906101b09190611cb0565b6105f7565b005b3480156101c2575f80fd5b506101cb610609565b6040516101d89190611d4b565b60405180910390f35b3480156101ec575f80fd5b5061020760048036038101906102029190611dc5565b610646565b6040516102149190611e1d565b60405180910390f35b348015610228575f80fd5b50610231610663565b60405161023e9190611e45565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190611e5e565b610685565b60405161027a9190611e1d565b60405180910390f35b34801561028e575f80fd5b50610297610759565b6040516102a49190611ec9565b60405180910390f35b3480156102b8575f80fd5b506102c1610761565b6040516102ce9190611e45565b60405180910390f35b3480156102e2575f80fd5b506102fd60048036038101906102f89190611ee2565b610767565b005b34801561030a575f80fd5b5061032560048036038101906103209190611f20565b610781565b005b348015610332575f80fd5b5061033b6107e1565b005b348015610348575f80fd5b50610363600480360381019061035e9190611f20565b6108db565b6040516103709190611e45565b60405180910390f35b348015610384575f80fd5b5061038d610921565b005b34801561039a575f80fd5b506103a3610934565b6040516103b09190611e45565b60405180910390f35b3480156103c4575f80fd5b506103df60048036038101906103da9190611f20565b61093a565b6040516103ec9190611e1d565b60405180910390f35b348015610400575f80fd5b50610409610957565b005b348015610416575f80fd5b5061041f6109d2565b60405161042c9190611f5a565b60405180910390f35b348015610440575f80fd5b506104496109f9565b6040516104569190611d4b565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190611dc5565b610a36565b6040516104929190611e1d565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc9190611cb0565b610a53565b005b3480156104ce575f80fd5b506104d7610ac1565b6040516104e49190611e45565b60405180910390f35b3480156104f8575f80fd5b50610501610ac7565b60405161050e9190611f93565b60405180910390f35b348015610522575f80fd5b5061052b610aec565b6040516105389190611e1d565b60405180910390f35b34801561054c575f80fd5b5061056760048036038101906105629190611fac565b610aff565b6040516105749190611e45565b60405180910390f35b348015610588575f80fd5b506105a3600480360381019061059e9190611f20565b610b81565b005b3480156105b0575f80fd5b506105cb60048036038101906105c69190611f20565b610be0565b005b3480156105d8575f80fd5b506105e1610c62565b6040516105ee9190611e45565b60405180910390f35b6105ff610c68565b8060048190555050565b60606040518060400160405280600681526020017f4573717569640000000000000000000000000000000000000000000000000000815250905090565b5f610659610652610ce6565b8484610ced565b6001905092915050565b5f6012600a6106729190612146565b62e4e1c06106809190612190565b905090565b5f610691848484610eb0565b61074e8461069d610ce6565b61074985604051806060016040528060288152602001612c086028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610700610ce6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461164e9092919063ffffffff16565b610ced565b600190509392505050565b5f6012905090565b60065481565b61076f610c68565b81600681905550806007819055505050565b610789610c68565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6107e9610c68565b5f471161082b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108229061221b565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff168260405161085490612266565b5f6040518083038185875af1925050503d805f811461088e576040519150601f19603f3d011682016040523d82523d5f602084013e610893565b606091505b50509050806108d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ce906122c4565b60405180910390fd5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610929610c68565b6109325f6116b0565b565b60075481565b6003602052805f5260405f205f915054906101000a900460ff1681565b61095f610c68565b60011515600a60169054906101000a900460ff161515036109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac9061232c565b60405180910390fd5b6001600a60166101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5155494400000000000000000000000000000000000000000000000000000000815250905090565b5f610a49610a42610ce6565b8484610eb0565b6001905092915050565b610a5b610c68565b610a7660c8610a68610663565b61177190919063ffffffff16565b8111610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae90612394565b60405180910390fd5b8060088190555050565b60045481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a60169054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b89610c68565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610be8610c68565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90612422565b60405180910390fd5b610c5f816116b0565b50565b60085481565b610c70610ce6565b73ffffffffffffffffffffffffffffffffffffffff16610c8e6109d2565b73ffffffffffffffffffffffffffffffffffffffff1614610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb9061248a565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290612518565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc0906125a6565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ea39190611e45565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1590612634565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f83906126c2565b60405180910390fd5b5f8111610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc590612750565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561106d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561139e57600a60169054906101000a900460ff166110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b8906127b8565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461116e5760085482611122856108db565b61112c91906127d6565b111561116d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116490612879565b60405180910390fd5b5b5f600654111561125257600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611221575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112515761124e6064611240600654856117ba90919063ffffffff16565b61177190919063ffffffff16565b90505b5b5f60075411156112dc57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112db576112d860646112ca600754856117ba90919063ffffffff16565b61177190919063ffffffff16565b90505b5b5f6112e6306108db565b9050600a60149054906101000a900460ff161580156113515750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113695750600a60159054906101000a900460ff165b8015611376575060045481115b1561139c5761138481611831565b5f4790505f81111561139a5761139947611aa5565b5b505b505b5f81111561149d576113f68160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114949190611e45565b60405180910390a35b6114ed8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bcf90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506115906115448284611bcf90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116338486611bcf90919063ffffffff16565b6040516116409190611e45565b60405180910390a350505050565b5f838311158290611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c9190611d4b565b60405180910390fd5b505f83856116a39190612897565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6117b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c18565b905092915050565b5f8083036117ca575f905061182b565b5f82846117d79190612190565b90508284826117e691906128f7565b14611826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181d90612997565b60405180910390fd5b809150505b92915050565b6001600a60146101000a81548160ff0219169083151502179055505f810315611a88575f600267ffffffffffffffff8111156118705761186f6129b5565b5b60405190808252806020026020018201604052801561189e5781602001602082028036833780820191505090505b50905030815f815181106118b5576118b46129e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611959573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197d9190612a23565b81600181518110611991576119906129e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119f73060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ced565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a59959493929190612b47565b5f604051808303815f87803b158015611a70575f80fd5b505af1158015611a82573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611aeb90612266565b5f6040518083038185875af1925050503d805f8114611b25576040519150601f19603f3d011682016040523d82523d5f602084013e611b2a565b606091505b5050905080611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b65906122c4565b60405180910390fd5b5050565b5f808284611b8091906127d6565b905083811015611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc90612be9565b60405180910390fd5b8091505092915050565b5f611c1083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061164e565b905092915050565b5f8083118290611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c559190611d4b565b60405180910390fd5b505f8385611c6c91906128f7565b9050809150509392505050565b5f80fd5b5f819050919050565b611c8f81611c7d565b8114611c99575f80fd5b50565b5f81359050611caa81611c86565b92915050565b5f60208284031215611cc557611cc4611c79565b5b5f611cd284828501611c9c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611d1d82611cdb565b611d278185611ce5565b9350611d37818560208601611cf5565b611d4081611d03565b840191505092915050565b5f6020820190508181035f830152611d638184611d13565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d9482611d6b565b9050919050565b611da481611d8a565b8114611dae575f80fd5b50565b5f81359050611dbf81611d9b565b92915050565b5f8060408385031215611ddb57611dda611c79565b5b5f611de885828601611db1565b9250506020611df985828601611c9c565b9150509250929050565b5f8115159050919050565b611e1781611e03565b82525050565b5f602082019050611e305f830184611e0e565b92915050565b611e3f81611c7d565b82525050565b5f602082019050611e585f830184611e36565b92915050565b5f805f60608486031215611e7557611e74611c79565b5b5f611e8286828701611db1565b9350506020611e9386828701611db1565b9250506040611ea486828701611c9c565b9150509250925092565b5f60ff82169050919050565b611ec381611eae565b82525050565b5f602082019050611edc5f830184611eba565b92915050565b5f8060408385031215611ef857611ef7611c79565b5b5f611f0585828601611c9c565b9250506020611f1685828601611c9c565b9150509250929050565b5f60208284031215611f3557611f34611c79565b5b5f611f4284828501611db1565b91505092915050565b611f5481611d8a565b82525050565b5f602082019050611f6d5f830184611f4b565b92915050565b5f611f7d82611d6b565b9050919050565b611f8d81611f73565b82525050565b5f602082019050611fa65f830184611f84565b92915050565b5f8060408385031215611fc257611fc1611c79565b5b5f611fcf85828601611db1565b9250506020611fe085828601611db1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561206c5780860481111561204857612047611fea565b5b60018516156120575780820291505b808102905061206585612017565b945061202c565b94509492505050565b5f82612084576001905061213f565b81612091575f905061213f565b81600181146120a757600281146120b1576120e0565b600191505061213f565b60ff8411156120c3576120c2611fea565b5b8360020a9150848211156120da576120d9611fea565b5b5061213f565b5060208310610133831016604e8410600b84101617156121155782820a9050838111156121105761210f611fea565b5b61213f565b6121228484846001612023565b9250905081840481111561213957612138611fea565b5b81810290505b9392505050565b5f61215082611c7d565b915061215b83611eae565b92506121887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612075565b905092915050565b5f61219a82611c7d565b91506121a583611c7d565b92508282026121b381611c7d565b915082820484148315176121ca576121c9611fea565b5b5092915050565b7f4e6f20737475636b2045746865720000000000000000000000000000000000005f82015250565b5f612205600e83611ce5565b9150612210826121d1565b602082019050919050565b5f6020820190508181035f830152612232816121f9565b9050919050565b5f81905092915050565b50565b5f6122515f83612239565b915061225c82612243565b5f82019050919050565b5f61227082612246565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f6122ae600b83611ce5565b91506122b98261227a565b602082019050919050565b5f6020820190508181035f8301526122db816122a2565b9050919050565b7f547261646520616c726561647920656e61626c656400000000000000000000005f82015250565b5f612316601583611ce5565b9150612321826122e2565b602082019050919050565b5f6020820190508181035f8301526123438161230a565b9050919050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f61237e600e83611ce5565b91506123898261234a565b602082019050919050565b5f6020820190508181035f8301526123ab81612372565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61240c602683611ce5565b9150612417826123b2565b604082019050919050565b5f6020820190508181035f83015261243981612400565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612474602083611ce5565b915061247f82612440565b602082019050919050565b5f6020820190508181035f8301526124a181612468565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612502602483611ce5565b915061250d826124a8565b604082019050919050565b5f6020820190508181035f83015261252f816124f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612590602283611ce5565b915061259b82612536565b604082019050919050565b5f6020820190508181035f8301526125bd81612584565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61261e602583611ce5565b9150612629826125c4565b604082019050919050565b5f6020820190508181035f83015261264b81612612565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ac602383611ce5565b91506126b782612652565b604082019050919050565b5f6020820190508181035f8301526126d9816126a0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61273a602983611ce5565b9150612745826126e0565b604082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f6127a2601383611ce5565b91506127ad8261276e565b602082019050919050565b5f6020820190508181035f8301526127cf81612796565b9050919050565b5f6127e082611c7d565b91506127eb83611c7d565b925082820190508082111561280357612802611fea565b5b92915050565b7f43616e7420626520686967686572207468616e205175696420416e74695768615f8201527f6c65204c696d69742e0000000000000000000000000000000000000000000000602082015250565b5f612863602983611ce5565b915061286e82612809565b604082019050919050565b5f6020820190508181035f83015261289081612857565b9050919050565b5f6128a182611c7d565b91506128ac83611c7d565b92508282039050818111156128c4576128c3611fea565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61290182611c7d565b915061290c83611c7d565b92508261291c5761291b6128ca565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612981602183611ce5565b915061298c82612927565b604082019050919050565b5f6020820190508181035f8301526129ae81612975565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a1d81611d9b565b92915050565b5f60208284031215612a3857612a37611c79565b5b5f612a4584828501612a0f565b91505092915050565b5f819050919050565b5f819050919050565b5f612a7a612a75612a7084612a4e565b612a57565b611c7d565b9050919050565b612a8a81612a60565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ac281611d8a565b82525050565b5f612ad38383612ab9565b60208301905092915050565b5f602082019050919050565b5f612af582612a90565b612aff8185612a9a565b9350612b0a83612aaa565b805f5b83811015612b3a578151612b218882612ac8565b9750612b2c83612adf565b925050600181019050612b0d565b5085935050505092915050565b5f60a082019050612b5a5f830188611e36565b612b676020830187612a81565b8181036040830152612b798186612aeb565b9050612b886060830185611f4b565b612b956080830184611e36565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612bd3601b83611ce5565b9150612bde82612b9f565b602082019050919050565b5f6020820190508181035f830152612c0081612bc7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209f7f569532244133cf0177ef19e675a5561143e3aad5de2025178674576b82a864736f6c634300081a0033

Deployed Bytecode Sourcemap

4923:7476:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12269:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6858:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7691:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7135:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7860:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7044:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5577:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12121:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11733:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11401:324;;;;;;;;;;;;;:::i;:::-;;7238:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3344:103;;;;;;;;;;;;;:::i;:::-;;5614:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5138:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11968:145;;;;;;;;;;;;;:::i;:::-;;2703:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6949;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7365:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11207:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5416:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5477:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5878:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7540:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11852:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3602:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5652:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12269:115;2589:13;:11;:13::i;:::-;12367:9:::1;12347:17;:29;;;;12269:115:::0;:::o;6858:83::-;6895:13;6928:5;;;;;;;;;;;;;;;;;6921:12;;6858:83;:::o;7691:161::-;7766:4;7783:39;7792:12;:10;:12::i;:::-;7806:7;7815:6;7783:8;:39::i;:::-;7840:4;7833:11;;7691:161;;;;:::o;7135:95::-;7188:7;5233:2;5288;:13;;;;:::i;:::-;5277:8;:24;;;;:::i;:::-;7208:14;;7135:95;:::o;7860:313::-;7958:4;7975:36;7985:6;7993:9;8004:6;7975:9;:36::i;:::-;8022:121;8031:6;8039:12;:10;:12::i;:::-;8053:89;8091:6;8053:89;;;;;;;;;;;;;;;;;:11;:19;8065:6;8053:19;;;;;;;;;;;;;;;:33;8073:12;:10;:12::i;:::-;8053:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8022:8;:121::i;:::-;8161:4;8154:11;;7860:313;;;;;:::o;7044:83::-;7085:5;5233:2;7103:16;;7044:83;:::o;5577:30::-;;;;:::o;12121:140::-;2589:13;:11;:13::i;:::-;12217:5:::1;12203:11;:19;;;;12248:5;12233:12;:20;;;;12121:140:::0;;:::o;11733:111::-;2589:13;:11;:13::i;:::-;11832:4:::1;11803:18;:26;11822:6;11803:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11733:111:::0;:::o;11401:324::-;2589:13;:11;:13::i;:::-;11491:1:::1;11467:21;:25;11459:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11522:18;11543:21;11522:42;;11578:16;11608:10;11600:24;;11632:10;11600:71;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11577:94;;;11690:11;11682:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;11448:277;;11401:324::o:0;7238:119::-;7304:7;7331:9;:18;7341:7;7331:18;;;;;;;;;;;;;;;;7324:25;;7238:119;;;:::o;3344:103::-;2589:13;:11;:13::i;:::-;3409:30:::1;3436:1;3409:18;:30::i;:::-;3344:103::o:0;5614:31::-;;;;:::o;5138:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;11968:145::-;2589:13;:11;:13::i;:::-;12045:4:::1;12029:20;;:12;;;;;;;;;;;:20;;::::0;12021:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12101:4;12086:12;;:19;;;;;;;;;;;;;;;;;;11968:145::o:0;2703:87::-;2749:7;2776:6;;;;;;;;;;;2769:13;;2703:87;:::o;6949:::-;6988:13;7021:7;;;;;;;;;;;;;;;;;7014:14;;6949:87;:::o;7365:167::-;7443:4;7460:42;7470:12;:10;:12::i;:::-;7484:9;7495:6;7460:9;:42::i;:::-;7520:4;7513:11;;7365:167;;;;:::o;11207:186::-;2589:13;:11;:13::i;:::-;11307:22:::1;11325:3;11307:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;11295:9;:34;11287:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11376:9;11358:15;:27;;;;11207:186:::0;:::o;5416:54::-;;;;:::o;5477:91::-;;;;;;;;;;;;;:::o;5878:32::-;;;;;;;;;;;;;:::o;7540:143::-;7621:7;7648:11;:18;7660:5;7648:18;;;;;;;;;;;;;;;:27;7667:7;7648:27;;;;;;;;;;;;;;;;7641:34;;7540:143;;;;:::o;11852:108::-;2589:13;:11;:13::i;:::-;11947:5:::1;11918:18;:26;11937:6;11918:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11852:108:::0;:::o;3602:201::-;2589:13;:11;:13::i;:::-;3711:1:::1;3691:22;;:8;:22;;::::0;3683:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3767:28;3786:8;3767:18;:28::i;:::-;3602:201:::0;:::o;5652:58::-;;;;:::o;2868:132::-;2943:12;:10;:12::i;:::-;2932:23;;:7;:5;:7::i;:::-;:23;;;2924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2868:132::o;206:98::-;259:7;286:10;279:17;;206:98;:::o;8181:335::-;8291:1;8274:19;;:5;:19;;;8266:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8372:1;8353:21;;:7;:21;;;8345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8454:6;8424:11;:18;8436:5;8424:18;;;;;;;;;;;;;;;:27;8443:7;8424:27;;;;;;;;;;;;;;;:36;;;;8492:7;8476:32;;8485:5;8476:32;;;8501:6;8476:32;;;;;;:::i;:::-;;;;;;;;8181:335;;;:::o;8524:1814::-;8628:1;8612:18;;:4;:18;;;8604:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8705:1;8691:16;;:2;:16;;;8683:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8775:1;8766:6;:10;8758:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8833:17;8868:18;:24;8887:4;8868:24;;;;;;;;;;;;;;;;;;;;;;;;;8867:25;:52;;;;;8897:18;:22;8916:2;8897:22;;;;;;;;;;;;;;;;;;;;;;;;;8896:23;8867:52;8863:1119;;;8946:12;;;;;;;;;;;8938:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9008:13;;;;;;;;;;;9002:19;;:2;:19;;;8999:152;;9074:15;;9064:6;9048:13;9058:2;9048:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;9040:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;8999:152;9184:1;9170:11;;:15;9167:190;;;9214:13;;;;;;;;;;;9206:21;;:4;:21;;;:55;;;;;9245:15;;;;;;;;;;;9231:30;;:2;:30;;;;9206:55;9202:140;;;9294:32;9322:3;9294:23;9305:11;;9294:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;9282:44;;9202:140;9167:190;9391:1;9376:12;;:16;9373:154;;;9418:13;;;;;;;;;;;9412:19;;:2;:19;;;9409:103;;9463:33;9492:3;9463:24;9474:12;;9463:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9451:45;;9409:103;9373:154;9543:28;9574:24;9592:4;9574:9;:24::i;:::-;9543:55;;9618:6;;;;;;;;;;;9617:7;:30;;;;;9634:13;;;;;;;;;;;9628:19;;:2;:19;;;9617:30;:45;;;;;9651:11;;;;;;;;;;;9617:45;:87;;;;;9687:17;;9666:20;:38;9617:87;9613:358;;;9725:38;9742:20;9725:16;:38::i;:::-;9782:26;9811:21;9782:50;;9875:1;9854:18;:22;9851:105;;;9901:35;9914:21;9901:12;:35::i;:::-;9851:105;9706:265;9613:358;8921:1061;8863:1119;10007:1;9997:9;:11;9994:161;;;10047:39;10076:9;10047;:24;10065:4;10047:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10022:9;:24;10040:4;10022:24;;;;;;;;;;;;;;;:64;;;;10127:4;10104:39;;10113:4;10104:39;;;10133:9;10104:39;;;;;;:::i;:::-;;;;;;;;9994:161;10181:27;10201:6;10181:9;:15;10191:4;10181:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10165:9;:15;10175:4;10165:15;;;;;;;;;;;;;;;:43;;;;10233:40;10251:21;10262:9;10251:6;:10;;:21;;;;:::i;:::-;10233:9;:13;10243:2;10233:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10219:9;:13;10229:2;10219:13;;;;;;;;;;;;;;;:54;;;;10304:2;10289:41;;10298:4;10289:41;;;10308:21;10319:9;10308:6;:10;;:21;;;;:::i;:::-;10289:41;;;;;;:::i;:::-;;;;;;;;8593:1745;8524:1814;;;:::o;1343:190::-;1429:7;1462:1;1457;:6;;1465:12;1449:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1489:9;1505:1;1501;:5;;;;:::i;:::-;1489:17;;1524:1;1517:8;;;1343:190;;;;;:::o;3963:191::-;4037:16;4056:6;;;;;;;;;;;4037:25;;4082:8;4073:6;;:17;;;;;;;;;;;;;;;;;;4137:8;4106:40;;4127:8;4106:40;;;;;;;;;;;;4026:128;3963:191;:::o;1795:132::-;1853:7;1880:39;1884:1;1887;1880:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1873:46;;1795:132;;;;:::o;1541:246::-;1599:7;1628:1;1623;:6;1619:47;;1653:1;1646:8;;;;1619:47;1676:9;1692:1;1688;:5;;;;:::i;:::-;1676:17;;1721:1;1716;1712;:5;;;;:::i;:::-;:10;1704:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1778:1;1771:8;;;1541:246;;;;;:::o;10454:520::-;5960:4;5951:6;;:13;;;;;;;;;;;;;;;;;;10548:1:::1;10535:11;:14:::0;10532:27;10551:7:::1;10532:27;10569:21;10607:1;10593:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10569:40;;10638:4;10620;10625:1;10620:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10664:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10654:4;10659:1;10654:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10697:62;10714:4;10729:15;;;;;;;;;;;10747:11;10697:8;:62::i;:::-;10770:15;;;;;;;;;;;:66;;;10851:11;10877:1;10893:4;10920;10940:15;10770:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10521:453;5975:1;5996:5:::0;5987:6;;:14;;;;;;;;;;;;;;;;;;10454:520;:::o;10982:180::-;11039:16;11069:14;;;;;;;;;;;11061:28;;11097:6;11061:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11038:70;;;11127:11;11119:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;11028:134;10982:180;:::o;1012:179::-;1070:7;1090:9;1106:1;1102;:5;;;;:::i;:::-;1090:17;;1131:1;1126;:6;;1118:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1182:1;1175:8;;;1012:179;;;;:::o;1199:136::-;1257:7;1284:43;1288:1;1291;1284:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1277:50;;1199:136;;;;:::o;1935:189::-;2021:7;2053:1;2049;:5;2056:12;2041:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2080:9;2096:1;2092;:5;;;;:::i;:::-;2080:17;;2115:1;2108:8;;;1935:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:139::-;1394:6;1389:3;1384;1378:23;1435:1;1426:6;1421:3;1417:16;1410:27;1305:139;;;:::o;1450:102::-;1491:6;1542:2;1538:7;1533:2;1526:5;1522:14;1518:28;1508:38;;1450:102;;;:::o;1558:377::-;1646:3;1674:39;1707:5;1674:39;:::i;:::-;1729:71;1793:6;1788:3;1729:71;:::i;:::-;1722:78;;1809:65;1867:6;1862:3;1855:4;1848:5;1844:16;1809:65;:::i;:::-;1899:29;1921:6;1899:29;:::i;:::-;1894:3;1890:39;1883:46;;1650:285;1558:377;;;;:::o;1941:313::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2141:9;2135:4;2131:20;2127:1;2116:9;2112:17;2105:47;2169:78;2242:4;2233:6;2169:78;:::i;:::-;2161:86;;1941:313;;;;:::o;2260:126::-;2297:7;2337:42;2330:5;2326:54;2315:65;;2260:126;;;:::o;2392:96::-;2429:7;2458:24;2476:5;2458:24;:::i;:::-;2447:35;;2392:96;;;:::o;2494:122::-;2567:24;2585:5;2567:24;:::i;:::-;2560:5;2557:35;2547:63;;2606:1;2603;2596:12;2547:63;2494:122;:::o;2622:139::-;2668:5;2706:6;2693:20;2684:29;;2722:33;2749:5;2722:33;:::i;:::-;2622:139;;;;:::o;2767:474::-;2835:6;2843;2892:2;2880:9;2871:7;2867:23;2863:32;2860:119;;;2898:79;;:::i;:::-;2860:119;3018:1;3043:53;3088:7;3079:6;3068:9;3064:22;3043:53;:::i;:::-;3033:63;;2989:117;3145:2;3171:53;3216:7;3207:6;3196:9;3192:22;3171:53;:::i;:::-;3161:63;;3116:118;2767:474;;;;;:::o;3247:90::-;3281:7;3324:5;3317:13;3310:21;3299:32;;3247:90;;;:::o;3343:109::-;3424:21;3439:5;3424:21;:::i;:::-;3419:3;3412:34;3343:109;;:::o;3458:210::-;3545:4;3583:2;3572:9;3568:18;3560:26;;3596:65;3658:1;3647:9;3643:17;3634:6;3596:65;:::i;:::-;3458:210;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:474::-;5149:6;5157;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5459:2;5485:53;5530:7;5521:6;5510:9;5506:22;5485:53;:::i;:::-;5475:63;;5430:118;5081:474;;;;;:::o;5561:329::-;5620:6;5669:2;5657:9;5648:7;5644:23;5640:32;5637:119;;;5675:79;;:::i;:::-;5637:119;5795:1;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5766:117;5561:329;;;;:::o;5896:118::-;5983:24;6001:5;5983:24;:::i;:::-;5978:3;5971:37;5896:118;;:::o;6020:222::-;6113:4;6151:2;6140:9;6136:18;6128:26;;6164:71;6232:1;6221:9;6217:17;6208:6;6164:71;:::i;:::-;6020:222;;;;:::o;6248:104::-;6293:7;6322:24;6340:5;6322:24;:::i;:::-;6311:35;;6248:104;;;:::o;6358:142::-;6461:32;6487:5;6461:32;:::i;:::-;6456:3;6449:45;6358:142;;:::o;6506:254::-;6615:4;6653:2;6642:9;6638:18;6630:26;;6666:87;6750:1;6739:9;6735:17;6726:6;6666:87;:::i;:::-;6506:254;;;;:::o;6766:474::-;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:147::-;11244:11;11281:3;11266:18;;11143:147;;;;:::o;11296:114::-;;:::o;11416:398::-;11575:3;11596:83;11677:1;11672:3;11596:83;:::i;:::-;11589:90;;11688:93;11777:3;11688:93;:::i;:::-;11806:1;11801:3;11797:11;11790:18;;11416:398;;;:::o;11820:379::-;12004:3;12026:147;12169:3;12026:147;:::i;:::-;12019:154;;12190:3;12183:10;;11820:379;;;:::o;12205:161::-;12345:13;12341:1;12333:6;12329:14;12322:37;12205:161;:::o;12372:366::-;12514:3;12535:67;12599:2;12594:3;12535:67;:::i;:::-;12528:74;;12611:93;12700:3;12611:93;:::i;:::-;12729:2;12724:3;12720:12;12713:19;;12372:366;;;:::o;12744:419::-;12910:4;12948:2;12937:9;12933:18;12925:26;;12997:9;12991:4;12987:20;12983:1;12972:9;12968:17;12961:47;13025:131;13151:4;13025:131;:::i;:::-;13017:139;;12744:419;;;:::o;13169:171::-;13309:23;13305:1;13297:6;13293:14;13286:47;13169:171;:::o;13346:366::-;13488:3;13509:67;13573:2;13568:3;13509:67;:::i;:::-;13502:74;;13585:93;13674:3;13585:93;:::i;:::-;13703:2;13698:3;13694:12;13687:19;;13346:366;;;:::o;13718:419::-;13884:4;13922:2;13911:9;13907:18;13899:26;;13971:9;13965:4;13961:20;13957:1;13946:9;13942:17;13935:47;13999:131;14125:4;13999:131;:::i;:::-;13991:139;;13718:419;;;:::o;14143:164::-;14283:16;14279:1;14271:6;14267:14;14260:40;14143:164;:::o;14313:366::-;14455:3;14476:67;14540:2;14535:3;14476:67;:::i;:::-;14469:74;;14552:93;14641:3;14552:93;:::i;:::-;14670:2;14665:3;14661:12;14654:19;;14313:366;;;:::o;14685:419::-;14851:4;14889:2;14878:9;14874:18;14866:26;;14938:9;14932:4;14928:20;14924:1;14913:9;14909:17;14902:47;14966:131;15092:4;14966:131;:::i;:::-;14958:139;;14685:419;;;:::o;15110:225::-;15250:34;15246:1;15238:6;15234:14;15227:58;15319:8;15314:2;15306:6;15302:15;15295:33;15110:225;:::o;15341:366::-;15483:3;15504:67;15568:2;15563:3;15504:67;:::i;:::-;15497:74;;15580:93;15669:3;15580:93;:::i;:::-;15698:2;15693:3;15689:12;15682:19;;15341:366;;;:::o;15713:419::-;15879:4;15917:2;15906:9;15902:18;15894:26;;15966:9;15960:4;15956:20;15952:1;15941:9;15937:17;15930:47;15994:131;16120:4;15994:131;:::i;:::-;15986:139;;15713:419;;;:::o;16138:182::-;16278:34;16274:1;16266:6;16262:14;16255:58;16138:182;:::o;16326:366::-;16468:3;16489:67;16553:2;16548:3;16489:67;:::i;:::-;16482:74;;16565:93;16654:3;16565:93;:::i;:::-;16683:2;16678:3;16674:12;16667:19;;16326:366;;;:::o;16698:419::-;16864:4;16902:2;16891:9;16887:18;16879:26;;16951:9;16945:4;16941:20;16937:1;16926:9;16922:17;16915:47;16979:131;17105:4;16979:131;:::i;:::-;16971:139;;16698:419;;;:::o;17123:223::-;17263:34;17259:1;17251:6;17247:14;17240:58;17332:6;17327:2;17319:6;17315:15;17308:31;17123:223;:::o;17352:366::-;17494:3;17515:67;17579:2;17574:3;17515:67;:::i;:::-;17508:74;;17591:93;17680:3;17591:93;:::i;:::-;17709:2;17704:3;17700:12;17693:19;;17352:366;;;:::o;17724:419::-;17890:4;17928:2;17917:9;17913:18;17905:26;;17977:9;17971:4;17967:20;17963:1;17952:9;17948:17;17941:47;18005:131;18131:4;18005:131;:::i;:::-;17997:139;;17724:419;;;:::o;18149:221::-;18289:34;18285:1;18277:6;18273:14;18266:58;18358:4;18353:2;18345:6;18341:15;18334:29;18149:221;:::o;18376:366::-;18518:3;18539:67;18603:2;18598:3;18539:67;:::i;:::-;18532:74;;18615:93;18704:3;18615:93;:::i;:::-;18733:2;18728:3;18724:12;18717:19;;18376:366;;;:::o;18748:419::-;18914:4;18952:2;18941:9;18937:18;18929:26;;19001:9;18995:4;18991:20;18987:1;18976:9;18972:17;18965:47;19029:131;19155:4;19029:131;:::i;:::-;19021:139;;18748:419;;;:::o;19173:224::-;19313:34;19309:1;19301:6;19297:14;19290:58;19382:7;19377:2;19369:6;19365:15;19358:32;19173:224;:::o;19403:366::-;19545:3;19566:67;19630:2;19625:3;19566:67;:::i;:::-;19559:74;;19642:93;19731:3;19642:93;:::i;:::-;19760:2;19755:3;19751:12;19744:19;;19403:366;;;:::o;19775:419::-;19941:4;19979:2;19968:9;19964:18;19956:26;;20028:9;20022:4;20018:20;20014:1;20003:9;19999:17;19992:47;20056:131;20182:4;20056:131;:::i;:::-;20048:139;;19775:419;;;:::o;20200:222::-;20340:34;20336:1;20328:6;20324:14;20317:58;20409:5;20404:2;20396:6;20392:15;20385:30;20200:222;:::o;20428:366::-;20570:3;20591:67;20655:2;20650:3;20591:67;:::i;:::-;20584:74;;20667:93;20756:3;20667:93;:::i;:::-;20785:2;20780:3;20776:12;20769:19;;20428:366;;;:::o;20800:419::-;20966:4;21004:2;20993:9;20989:18;20981:26;;21053:9;21047:4;21043:20;21039:1;21028:9;21024:17;21017:47;21081:131;21207:4;21081:131;:::i;:::-;21073:139;;20800:419;;;:::o;21225:228::-;21365:34;21361:1;21353:6;21349:14;21342:58;21434:11;21429:2;21421:6;21417:15;21410:36;21225:228;:::o;21459:366::-;21601:3;21622:67;21686:2;21681:3;21622:67;:::i;:::-;21615:74;;21698:93;21787:3;21698:93;:::i;:::-;21816:2;21811:3;21807:12;21800:19;;21459:366;;;:::o;21831:419::-;21997:4;22035:2;22024:9;22020:18;22012:26;;22084:9;22078:4;22074:20;22070:1;22059:9;22055:17;22048:47;22112:131;22238:4;22112:131;:::i;:::-;22104:139;;21831:419;;;:::o;22256:169::-;22396:21;22392:1;22384:6;22380:14;22373:45;22256:169;:::o;22431:366::-;22573:3;22594:67;22658:2;22653:3;22594:67;:::i;:::-;22587:74;;22670:93;22759:3;22670:93;:::i;:::-;22788:2;22783:3;22779:12;22772:19;;22431:366;;;:::o;22803:419::-;22969:4;23007:2;22996:9;22992:18;22984:26;;23056:9;23050:4;23046:20;23042:1;23031:9;23027:17;23020:47;23084:131;23210:4;23084:131;:::i;:::-;23076:139;;22803:419;;;:::o;23228:191::-;23268:3;23287:20;23305:1;23287:20;:::i;:::-;23282:25;;23321:20;23339:1;23321:20;:::i;:::-;23316:25;;23364:1;23361;23357:9;23350:16;;23385:3;23382:1;23379:10;23376:36;;;23392:18;;:::i;:::-;23376:36;23228:191;;;;:::o;23425:228::-;23565:34;23561:1;23553:6;23549:14;23542:58;23634:11;23629:2;23621:6;23617:15;23610:36;23425:228;:::o;23659:366::-;23801:3;23822:67;23886:2;23881:3;23822:67;:::i;:::-;23815:74;;23898:93;23987:3;23898:93;:::i;:::-;24016:2;24011:3;24007:12;24000:19;;23659:366;;;:::o;24031:419::-;24197:4;24235:2;24224:9;24220:18;24212:26;;24284:9;24278:4;24274:20;24270:1;24259:9;24255:17;24248:47;24312:131;24438:4;24312:131;:::i;:::-;24304:139;;24031:419;;;:::o;24456:194::-;24496:4;24516:20;24534:1;24516:20;:::i;:::-;24511:25;;24550:20;24568:1;24550:20;:::i;:::-;24545:25;;24594:1;24591;24587:9;24579:17;;24618:1;24612:4;24609:11;24606:37;;;24623:18;;:::i;:::-;24606:37;24456:194;;;;:::o;24656:180::-;24704:77;24701:1;24694:88;24801:4;24798:1;24791:15;24825:4;24822:1;24815:15;24842:185;24882:1;24899:20;24917:1;24899:20;:::i;:::-;24894:25;;24933:20;24951:1;24933:20;:::i;:::-;24928:25;;24972:1;24962:35;;24977:18;;:::i;:::-;24962:35;25019:1;25016;25012:9;25007:14;;24842:185;;;;:::o;25033:220::-;25173:34;25169:1;25161:6;25157:14;25150:58;25242:3;25237:2;25229:6;25225:15;25218:28;25033:220;:::o;25259:366::-;25401:3;25422:67;25486:2;25481:3;25422:67;:::i;:::-;25415:74;;25498:93;25587:3;25498:93;:::i;:::-;25616:2;25611:3;25607:12;25600:19;;25259:366;;;:::o;25631:419::-;25797:4;25835:2;25824:9;25820:18;25812:26;;25884:9;25878:4;25874:20;25870:1;25859:9;25855:17;25848:47;25912:131;26038:4;25912:131;:::i;:::-;25904:139;;25631:419;;;:::o;26056:180::-;26104:77;26101:1;26094:88;26201:4;26198:1;26191:15;26225:4;26222:1;26215:15;26242:180;26290:77;26287:1;26280:88;26387:4;26384:1;26377:15;26411:4;26408:1;26401:15;26428:143;26485:5;26516:6;26510:13;26501:22;;26532:33;26559:5;26532:33;:::i;:::-;26428:143;;;;:::o;26577:351::-;26647:6;26696:2;26684:9;26675:7;26671:23;26667:32;26664:119;;;26702:79;;:::i;:::-;26664:119;26822:1;26847:64;26903:7;26894:6;26883:9;26879:22;26847:64;:::i;:::-;26837:74;;26793:128;26577:351;;;;:::o;26934:85::-;26979:7;27008:5;26997:16;;26934:85;;;:::o;27025:60::-;27053:3;27074:5;27067:12;;27025:60;;;:::o;27091:158::-;27149:9;27182:61;27200:42;27209:32;27235:5;27209:32;:::i;:::-;27200:42;:::i;:::-;27182:61;:::i;:::-;27169:74;;27091:158;;;:::o;27255:147::-;27350:45;27389:5;27350:45;:::i;:::-;27345:3;27338:58;27255:147;;:::o;27408:114::-;27475:6;27509:5;27503:12;27493:22;;27408:114;;;:::o;27528:184::-;27627:11;27661:6;27656:3;27649:19;27701:4;27696:3;27692:14;27677:29;;27528:184;;;;:::o;27718:132::-;27785:4;27808:3;27800:11;;27838:4;27833:3;27829:14;27821:22;;27718:132;;;:::o;27856:108::-;27933:24;27951:5;27933:24;:::i;:::-;27928:3;27921:37;27856:108;;:::o;27970:179::-;28039:10;28060:46;28102:3;28094:6;28060:46;:::i;:::-;28138:4;28133:3;28129:14;28115:28;;27970:179;;;;:::o;28155:113::-;28225:4;28257;28252:3;28248:14;28240:22;;28155:113;;;:::o;28304:732::-;28423:3;28452:54;28500:5;28452:54;:::i;:::-;28522:86;28601:6;28596:3;28522:86;:::i;:::-;28515:93;;28632:56;28682:5;28632:56;:::i;:::-;28711:7;28742:1;28727:284;28752:6;28749:1;28746:13;28727:284;;;28828:6;28822:13;28855:63;28914:3;28899:13;28855:63;:::i;:::-;28848:70;;28941:60;28994:6;28941:60;:::i;:::-;28931:70;;28787:224;28774:1;28771;28767:9;28762:14;;28727:284;;;28731:14;29027:3;29020:10;;28428:608;;;28304:732;;;;:::o;29042:831::-;29305:4;29343:3;29332:9;29328:19;29320:27;;29357:71;29425:1;29414:9;29410:17;29401:6;29357:71;:::i;:::-;29438:80;29514:2;29503:9;29499:18;29490:6;29438:80;:::i;:::-;29565:9;29559:4;29555:20;29550:2;29539:9;29535:18;29528:48;29593:108;29696:4;29687:6;29593:108;:::i;:::-;29585:116;;29711:72;29779:2;29768:9;29764:18;29755:6;29711:72;:::i;:::-;29793:73;29861:3;29850:9;29846:19;29837:6;29793:73;:::i;:::-;29042:831;;;;;;;;:::o;29879:177::-;30019:29;30015:1;30007:6;30003:14;29996:53;29879:177;:::o;30062:366::-;30204:3;30225:67;30289:2;30284:3;30225:67;:::i;:::-;30218:74;;30301:93;30390:3;30301:93;:::i;:::-;30419:2;30414:3;30410:12;30403:19;;30062:366;;;:::o;30434:419::-;30600:4;30638:2;30627:9;30623:18;30615:26;;30687:9;30681:4;30677:20;30673:1;30662:9;30658:17;30651:47;30715:131;30841:4;30715:131;:::i;:::-;30707:139;;30434:419;;;:::o

Swarm Source

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