ETH Price: $3,347.88 (-0.95%)

Token

ARTEMIS (ARTMS)
 

Overview

Max Total Supply

100,000,000,000 ARTMS

Holders

1,564 ( 0.256%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
150,000 ARTMS

Value
$0.00
0x893bb41007af285f7f1a3117957af764859c040c
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Artemis is transforming global trade with cryptocurrency. Our groundbreaking platform creates a dynamic, decentralized marketplace for vendors and service providers. Discover a new era of digital commerce with Artemis.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Artemis

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-11-28
*/

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

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 Artemis 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;

    address payable public _artmsTaxCollectionWallet = payable(0xBE417De26597967617d8Be407e529790CAe79Ac4);

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals; 
    string private constant _name = unicode"ARTEMIS";  
    string private constant _symbol = unicode"ARTMS"; 
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;

    uint256 public _artmsBuyTax = 0; 
    uint256 public _artmsSellTax = 7;

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

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

    event TaxWalletPaymentRevert(address indexed taxWallet, uint256 amount);


    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
      //  IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // test router address
        
        // 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[_artmsTaxCollectionWallet] = 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]) {

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

            if(_artmsSellTax > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_artmsSellTax).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(_artmsTaxCollectionWallet).call{value: amount}("");

        if (!callSuccess) {
        // Log the failure but do not revert the transaction
        emit TaxWalletPaymentRevert(_artmsTaxCollectionWallet, amount);
    }

    }


    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_artmsTaxCollectionWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function updateFees(uint256 buyFee, uint256 sellFee) public onlyOwner {
        require(buyFee <= 25, "Fee too much");
        require(sellFee <= 25, "Fee too much");
        _artmsBuyTax = buyFee;
        _artmsSellTax = sellFee;
    }

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

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

    function changeArtemisTaxCollector(address payable newWallet) external onlyOwner {
        _artmsTaxCollectionWallet = newWallet;
    }

    function changeArtmsTaxSwapLimit(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":"taxWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxWalletPaymentRevert","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_artmsBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_artmsSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_artmsTaxCollectionWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"changeArtemisTaxCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxLimit","type":"uint256"}],"name":"changeArtmsTaxSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"whiteListFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273be417de26597967617d8be407e529790cae79ac460045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6100669190610754565b620f4240610074919061079e565b6005555f600655600780555f600960146101000a81548160ff0219169083151502179055506001600960156101000a81548160ff0219169083151502179055503480156100bf575f80fd5b506100dc6100d16104f460201b60201c565b6104fb60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610161919061083d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ea919061083d565b6040518363ffffffff1660e01b8152600401610207929190610877565b6020604051808303815f875af1158015610223573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610247919061083d565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6102d49190610754565b64174876e8006102e4919061079e565b60015f6102f56104f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6103456105bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061046d6104f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6104c99190610754565b64174876e8006104d9919061079e565b6040516104e691906108ad565b60405180910390a3506108c6565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561066557808604811115610641576106406105e3565b5b60018516156106505780820291505b808102905061065e85610610565b9450610625565b94509492505050565b5f8261067d5760019050610738565b8161068a575f9050610738565b81600181146106a057600281146106aa576106d9565b6001915050610738565b60ff8411156106bc576106bb6105e3565b5b8360020a9150848211156106d3576106d26105e3565b5b50610738565b5060208310610133831016604e8410600b841016171561070e5782820a905083811115610709576107086105e3565b5b610738565b61071b848484600161061c565b92509050818404811115610732576107316105e3565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61075e8261073f565b915061076983610748565b92506107967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461066e565b905092915050565b5f6107a88261073f565b91506107b38361073f565b92508282026107c18161073f565b915082820484148315176107d8576107d76105e3565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61080c826107e3565b9050919050565b61081c81610802565b8114610826575f80fd5b50565b5f8151905061083781610813565b92915050565b5f60208284031215610852576108516107df565b5b5f61085f84828501610829565b91505092915050565b61087181610802565b82525050565b5f60408201905061088a5f830185610868565b6108976020830184610868565b9392505050565b6108a78161073f565b82525050565b5f6020820190506108c05f83018461089e565b92915050565b61288a806108d35f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b5578063bf474bed1161006e578063bf474bed14610444578063dd62ed3e1461046e578063ea2f0b37146104aa578063ea835999146104d2578063f2fde38b146104fc578063f3dd4fde146105245761014a565b8063715018a614610338578063768dc7101461034e5780638da5cb5b1461038a57806395b7fa04146103b457806395d89b41146103de578063a9059cbb146104085761014a565b8063313ce56711610107578063313ce56714610244578063508f6dfb1461026e57806351bc3c851461029657806365d1ff13146102ac5780636db79437146102d457806370a08231146102fc5761014a565b806306fdde031461014e578063095ea7b31461017857806311f6aba6146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261054c565b60405161016f9190611ae7565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190611b98565b610589565b6040516101ab9190611bf0565b60405180910390f35b3480156101bf575f80fd5b506101c86105a6565b6040516101d59190611c18565b60405180910390f35b3480156101e9575f80fd5b506101f26105ac565b6040516101ff9190611c18565b60405180910390f35b348015610213575f80fd5b5061022e60048036038101906102299190611c31565b6105d0565b60405161023b9190611bf0565b60405180910390f35b34801561024f575f80fd5b506102586106a4565b6040516102659190611c9c565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f9190611cb5565b6106ac565b005b3480156102a1575f80fd5b506102aa61070c565b005b3480156102b7575f80fd5b506102d260048036038101906102cd9190611ce0565b6107a3565b005b3480156102df575f80fd5b506102fa60048036038101906102f59190611d0b565b6107b5565b005b348015610307575f80fd5b50610322600480360381019061031d9190611cb5565b610857565b60405161032f9190611c18565b60405180910390f35b348015610343575f80fd5b5061034c61089d565b005b348015610359575f80fd5b50610374600480360381019061036f9190611cb5565b6108b0565b6040516103819190611bf0565b60405180910390f35b348015610395575f80fd5b5061039e6108cd565b6040516103ab9190611d58565b60405180910390f35b3480156103bf575f80fd5b506103c86108f4565b6040516103d59190611c18565b60405180910390f35b3480156103e9575f80fd5b506103f26108fa565b6040516103ff9190611ae7565b60405180910390f35b348015610413575f80fd5b5061042e60048036038101906104299190611b98565b610937565b60405161043b9190611bf0565b60405180910390f35b34801561044f575f80fd5b50610458610954565b6040516104659190611c18565b60405180910390f35b348015610479575f80fd5b50610494600480360381019061048f9190611d71565b61095a565b6040516104a19190611c18565b60405180910390f35b3480156104b5575f80fd5b506104d060048036038101906104cb9190611cb5565b6109dc565b005b3480156104dd575f80fd5b506104e6610a3b565b6040516104f39190611dcf565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d9190611cb5565b610a60565b005b34801561052f575f80fd5b5061054a60048036038101906105459190611e12565b610ae2565b005b60606040518060400160405280600781526020017f415254454d495300000000000000000000000000000000000000000000000000815250905090565b5f61059c610595610b2d565b8484610b34565b6001905092915050565b60075481565b5f6012600a6105bb9190611f99565b64174876e8006105cb9190611fe3565b905090565b5f6105dc848484610cf7565b610699846105e8610b2d565b6106948560405180606001604052806028815260200161282d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61064b610b2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113999092919063ffffffff16565b610b34565b600190509392505050565b5f6012905090565b6106b46113fb565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661074c610b2d565b73ffffffffffffffffffffffffffffffffffffffff161461076b575f80fd5b5f61077530610857565b90505f8111156107895761078881611479565b5b5f4790505f81111561079f5761079e816116ed565b5b5050565b6107ab6113fb565b8060058190555050565b6107bd6113fb565b6019821115610801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f89061206e565b60405180910390fd5b6019811115610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083c9061206e565b60405180910390fd5b81600681905550806007819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108a56113fb565b6108ae5f6117ef565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600581526020017f4152544d53000000000000000000000000000000000000000000000000000000815250905090565b5f61094a610943610b2d565b8484610cf7565b6001905092915050565b60055481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109e46113fb565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a686113fb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd906120fc565b60405180910390fd5b610adf816117ef565b50565b610aea6113fb565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b999061218a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612218565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cea9190611c18565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c906122a6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca90612334565b60405180910390fd5b5f8111610e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0c906123c2565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610eb4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110e9575f6006541115610f9d5760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f6c575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f9c57610f996064610f8b600654856118b090919063ffffffff16565b61192790919063ffffffff16565b90505b5b5f60075411156110275760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611026576110236064611015600754856118b090919063ffffffff16565b61192790919063ffffffff16565b90505b5b5f61103130610857565b9050600960149054906101000a900460ff1615801561109c575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156110b45750600960159054906101000a900460ff165b80156110c1575060055481115b156110e7576110cf81611479565b5f4790505f8111156110e5576110e4476116ed565b5b505b505b5f8111156111e8576111418160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461197090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111df9190611c18565b60405180910390a35b6112388260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119cd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112db61128f82846119cd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461197090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61137e84866119cd90919063ffffffff16565b60405161138b9190611c18565b60405180910390a350505050565b5f8383111582906113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d79190611ae7565b60405180910390fd5b505f83856113ee91906123e0565b9050809150509392505050565b611403610b2d565b73ffffffffffffffffffffffffffffffffffffffff166114216108cd565b73ffffffffffffffffffffffffffffffffffffffff1614611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e9061245d565b60405180910390fd5b565b6001600960146101000a81548160ff0219169083151502179055505f8103156116d0575f600267ffffffffffffffff8111156114b8576114b761247b565b5b6040519080825280602002602001820160405280156114e65781602001602082028036833780820191505090505b50905030815f815181106114fd576114fc6124a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c591906124e9565b816001815181106115d9576115d86124a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061163f3060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b34565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016116a195949392919061260d565b5f604051808303815f87803b1580156116b8575f80fd5b505af11580156116ca573d5f803e3d5ffd5b50505050505b5f600960146101000a81548160ff02191690831515021790555050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161173390612692565b5f6040518083038185875af1925050503d805f811461176d576040519150601f19603f3d011682016040523d82523d5f602084013e611772565b606091505b50509050806117eb5760045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516117e29190611c18565b60405180910390a25b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036118c0575f9050611921565b5f82846118cd9190611fe3565b90508284826118dc91906126d3565b1461191c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191390612773565b60405180910390fd5b809150505b92915050565b5f61196883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a16565b905092915050565b5f80828461197e9190612791565b9050838110156119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba9061280e565b60405180910390fd5b8091505092915050565b5f611a0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611399565b905092915050565b5f8083118290611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a539190611ae7565b60405180910390fd5b505f8385611a6a91906126d3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ab982611a77565b611ac38185611a81565b9350611ad3818560208601611a91565b611adc81611a9f565b840191505092915050565b5f6020820190508181035f830152611aff8184611aaf565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b3482611b0b565b9050919050565b611b4481611b2a565b8114611b4e575f80fd5b50565b5f81359050611b5f81611b3b565b92915050565b5f819050919050565b611b7781611b65565b8114611b81575f80fd5b50565b5f81359050611b9281611b6e565b92915050565b5f8060408385031215611bae57611bad611b07565b5b5f611bbb85828601611b51565b9250506020611bcc85828601611b84565b9150509250929050565b5f8115159050919050565b611bea81611bd6565b82525050565b5f602082019050611c035f830184611be1565b92915050565b611c1281611b65565b82525050565b5f602082019050611c2b5f830184611c09565b92915050565b5f805f60608486031215611c4857611c47611b07565b5b5f611c5586828701611b51565b9350506020611c6686828701611b51565b9250506040611c7786828701611b84565b9150509250925092565b5f60ff82169050919050565b611c9681611c81565b82525050565b5f602082019050611caf5f830184611c8d565b92915050565b5f60208284031215611cca57611cc9611b07565b5b5f611cd784828501611b51565b91505092915050565b5f60208284031215611cf557611cf4611b07565b5b5f611d0284828501611b84565b91505092915050565b5f8060408385031215611d2157611d20611b07565b5b5f611d2e85828601611b84565b9250506020611d3f85828601611b84565b9150509250929050565b611d5281611b2a565b82525050565b5f602082019050611d6b5f830184611d49565b92915050565b5f8060408385031215611d8757611d86611b07565b5b5f611d9485828601611b51565b9250506020611da585828601611b51565b9150509250929050565b5f611db982611b0b565b9050919050565b611dc981611daf565b82525050565b5f602082019050611de25f830184611dc0565b92915050565b611df181611daf565b8114611dfb575f80fd5b50565b5f81359050611e0c81611de8565b92915050565b5f60208284031215611e2757611e26611b07565b5b5f611e3484828501611dfe565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611ebf57808604811115611e9b57611e9a611e3d565b5b6001851615611eaa5780820291505b8081029050611eb885611e6a565b9450611e7f565b94509492505050565b5f82611ed75760019050611f92565b81611ee4575f9050611f92565b8160018114611efa5760028114611f0457611f33565b6001915050611f92565b60ff841115611f1657611f15611e3d565b5b8360020a915084821115611f2d57611f2c611e3d565b5b50611f92565b5060208310610133831016604e8410600b8410161715611f685782820a905083811115611f6357611f62611e3d565b5b611f92565b611f758484846001611e76565b92509050818404811115611f8c57611f8b611e3d565b5b81810290505b9392505050565b5f611fa382611b65565b9150611fae83611c81565b9250611fdb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611ec8565b905092915050565b5f611fed82611b65565b9150611ff883611b65565b925082820261200681611b65565b9150828204841483151761201d5761201c611e3d565b5b5092915050565b7f46656520746f6f206d75636800000000000000000000000000000000000000005f82015250565b5f612058600c83611a81565b915061206382612024565b602082019050919050565b5f6020820190508181035f8301526120858161204c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6120e6602683611a81565b91506120f18261208c565b604082019050919050565b5f6020820190508181035f830152612113816120da565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612174602483611a81565b915061217f8261211a565b604082019050919050565b5f6020820190508181035f8301526121a181612168565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612202602283611a81565b915061220d826121a8565b604082019050919050565b5f6020820190508181035f83015261222f816121f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612290602583611a81565b915061229b82612236565b604082019050919050565b5f6020820190508181035f8301526122bd81612284565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61231e602383611a81565b9150612329826122c4565b604082019050919050565b5f6020820190508181035f83015261234b81612312565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6123ac602983611a81565b91506123b782612352565b604082019050919050565b5f6020820190508181035f8301526123d9816123a0565b9050919050565b5f6123ea82611b65565b91506123f583611b65565b925082820390508181111561240d5761240c611e3d565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612447602083611a81565b915061245282612413565b602082019050919050565b5f6020820190508181035f8301526124748161243b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506124e381611b3b565b92915050565b5f602082840312156124fe576124fd611b07565b5b5f61250b848285016124d5565b91505092915050565b5f819050919050565b5f819050919050565b5f61254061253b61253684612514565b61251d565b611b65565b9050919050565b61255081612526565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61258881611b2a565b82525050565b5f612599838361257f565b60208301905092915050565b5f602082019050919050565b5f6125bb82612556565b6125c58185612560565b93506125d083612570565b805f5b838110156126005781516125e7888261258e565b97506125f2836125a5565b9250506001810190506125d3565b5085935050505092915050565b5f60a0820190506126205f830188611c09565b61262d6020830187612547565b818103604083015261263f81866125b1565b905061264e6060830185611d49565b61265b6080830184611c09565b9695505050505050565b5f81905092915050565b50565b5f61267d5f83612665565b91506126888261266f565b5f82019050919050565b5f61269c82612672565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6126dd82611b65565b91506126e883611b65565b9250826126f8576126f76126a6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61275d602183611a81565b915061276882612703565b604082019050919050565b5f6020820190508181035f83015261278a81612751565b9050919050565b5f61279b82611b65565b91506127a683611b65565b92508282019050808211156127be576127bd611e3d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6127f8601b83611a81565b9150612803826127c4565b602082019050919050565b5f6020820190508181035f830152612825816127ec565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200ebaf09b7f50982ad6bb7d2e12029048986bbea7c46628282c6de57ef4879c8764736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063715018a6116100b5578063bf474bed1161006e578063bf474bed14610444578063dd62ed3e1461046e578063ea2f0b37146104aa578063ea835999146104d2578063f2fde38b146104fc578063f3dd4fde146105245761014a565b8063715018a614610338578063768dc7101461034e5780638da5cb5b1461038a57806395b7fa04146103b457806395d89b41146103de578063a9059cbb146104085761014a565b8063313ce56711610107578063313ce56714610244578063508f6dfb1461026e57806351bc3c851461029657806365d1ff13146102ac5780636db79437146102d457806370a08231146102fc5761014a565b806306fdde031461014e578063095ea7b31461017857806311f6aba6146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261054c565b60405161016f9190611ae7565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190611b98565b610589565b6040516101ab9190611bf0565b60405180910390f35b3480156101bf575f80fd5b506101c86105a6565b6040516101d59190611c18565b60405180910390f35b3480156101e9575f80fd5b506101f26105ac565b6040516101ff9190611c18565b60405180910390f35b348015610213575f80fd5b5061022e60048036038101906102299190611c31565b6105d0565b60405161023b9190611bf0565b60405180910390f35b34801561024f575f80fd5b506102586106a4565b6040516102659190611c9c565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f9190611cb5565b6106ac565b005b3480156102a1575f80fd5b506102aa61070c565b005b3480156102b7575f80fd5b506102d260048036038101906102cd9190611ce0565b6107a3565b005b3480156102df575f80fd5b506102fa60048036038101906102f59190611d0b565b6107b5565b005b348015610307575f80fd5b50610322600480360381019061031d9190611cb5565b610857565b60405161032f9190611c18565b60405180910390f35b348015610343575f80fd5b5061034c61089d565b005b348015610359575f80fd5b50610374600480360381019061036f9190611cb5565b6108b0565b6040516103819190611bf0565b60405180910390f35b348015610395575f80fd5b5061039e6108cd565b6040516103ab9190611d58565b60405180910390f35b3480156103bf575f80fd5b506103c86108f4565b6040516103d59190611c18565b60405180910390f35b3480156103e9575f80fd5b506103f26108fa565b6040516103ff9190611ae7565b60405180910390f35b348015610413575f80fd5b5061042e60048036038101906104299190611b98565b610937565b60405161043b9190611bf0565b60405180910390f35b34801561044f575f80fd5b50610458610954565b6040516104659190611c18565b60405180910390f35b348015610479575f80fd5b50610494600480360381019061048f9190611d71565b61095a565b6040516104a19190611c18565b60405180910390f35b3480156104b5575f80fd5b506104d060048036038101906104cb9190611cb5565b6109dc565b005b3480156104dd575f80fd5b506104e6610a3b565b6040516104f39190611dcf565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d9190611cb5565b610a60565b005b34801561052f575f80fd5b5061054a60048036038101906105459190611e12565b610ae2565b005b60606040518060400160405280600781526020017f415254454d495300000000000000000000000000000000000000000000000000815250905090565b5f61059c610595610b2d565b8484610b34565b6001905092915050565b60075481565b5f6012600a6105bb9190611f99565b64174876e8006105cb9190611fe3565b905090565b5f6105dc848484610cf7565b610699846105e8610b2d565b6106948560405180606001604052806028815260200161282d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61064b610b2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113999092919063ffffffff16565b610b34565b600190509392505050565b5f6012905090565b6106b46113fb565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661074c610b2d565b73ffffffffffffffffffffffffffffffffffffffff161461076b575f80fd5b5f61077530610857565b90505f8111156107895761078881611479565b5b5f4790505f81111561079f5761079e816116ed565b5b5050565b6107ab6113fb565b8060058190555050565b6107bd6113fb565b6019821115610801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f89061206e565b60405180910390fd5b6019811115610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083c9061206e565b60405180910390fd5b81600681905550806007819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108a56113fb565b6108ae5f6117ef565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600581526020017f4152544d53000000000000000000000000000000000000000000000000000000815250905090565b5f61094a610943610b2d565b8484610cf7565b6001905092915050565b60055481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109e46113fb565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a686113fb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd906120fc565b60405180910390fd5b610adf816117ef565b50565b610aea6113fb565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b999061218a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612218565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cea9190611c18565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c906122a6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca90612334565b60405180910390fd5b5f8111610e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0c906123c2565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610eb4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156110e9575f6006541115610f9d5760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f6c575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f9c57610f996064610f8b600654856118b090919063ffffffff16565b61192790919063ffffffff16565b90505b5b5f60075411156110275760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611026576110236064611015600754856118b090919063ffffffff16565b61192790919063ffffffff16565b90505b5b5f61103130610857565b9050600960149054906101000a900460ff1615801561109c575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156110b45750600960159054906101000a900460ff165b80156110c1575060055481115b156110e7576110cf81611479565b5f4790505f8111156110e5576110e4476116ed565b5b505b505b5f8111156111e8576111418160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461197090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111df9190611c18565b60405180910390a35b6112388260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119cd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112db61128f82846119cd90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461197090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61137e84866119cd90919063ffffffff16565b60405161138b9190611c18565b60405180910390a350505050565b5f8383111582906113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d79190611ae7565b60405180910390fd5b505f83856113ee91906123e0565b9050809150509392505050565b611403610b2d565b73ffffffffffffffffffffffffffffffffffffffff166114216108cd565b73ffffffffffffffffffffffffffffffffffffffff1614611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e9061245d565b60405180910390fd5b565b6001600960146101000a81548160ff0219169083151502179055505f8103156116d0575f600267ffffffffffffffff8111156114b8576114b761247b565b5b6040519080825280602002602001820160405280156114e65781602001602082028036833780820191505090505b50905030815f815181106114fd576114fc6124a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115c591906124e9565b816001815181106115d9576115d86124a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061163f3060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b34565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016116a195949392919061260d565b5f604051808303815f87803b1580156116b8575f80fd5b505af11580156116ca573d5f803e3d5ffd5b50505050505b5f600960146101000a81548160ff02191690831515021790555050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161173390612692565b5f6040518083038185875af1925050503d805f811461176d576040519150601f19603f3d011682016040523d82523d5f602084013e611772565b606091505b50509050806117eb5760045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516117e29190611c18565b60405180910390a25b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036118c0575f9050611921565b5f82846118cd9190611fe3565b90508284826118dc91906126d3565b1461191c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191390612773565b60405180910390fd5b809150505b92915050565b5f61196883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a16565b905092915050565b5f80828461197e9190612791565b9050838110156119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba9061280e565b60405180910390fd5b8091505092915050565b5f611a0e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611399565b905092915050565b5f8083118290611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a539190611ae7565b60405180910390fd5b505f8385611a6a91906126d3565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ab982611a77565b611ac38185611a81565b9350611ad3818560208601611a91565b611adc81611a9f565b840191505092915050565b5f6020820190508181035f830152611aff8184611aaf565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b3482611b0b565b9050919050565b611b4481611b2a565b8114611b4e575f80fd5b50565b5f81359050611b5f81611b3b565b92915050565b5f819050919050565b611b7781611b65565b8114611b81575f80fd5b50565b5f81359050611b9281611b6e565b92915050565b5f8060408385031215611bae57611bad611b07565b5b5f611bbb85828601611b51565b9250506020611bcc85828601611b84565b9150509250929050565b5f8115159050919050565b611bea81611bd6565b82525050565b5f602082019050611c035f830184611be1565b92915050565b611c1281611b65565b82525050565b5f602082019050611c2b5f830184611c09565b92915050565b5f805f60608486031215611c4857611c47611b07565b5b5f611c5586828701611b51565b9350506020611c6686828701611b51565b9250506040611c7786828701611b84565b9150509250925092565b5f60ff82169050919050565b611c9681611c81565b82525050565b5f602082019050611caf5f830184611c8d565b92915050565b5f60208284031215611cca57611cc9611b07565b5b5f611cd784828501611b51565b91505092915050565b5f60208284031215611cf557611cf4611b07565b5b5f611d0284828501611b84565b91505092915050565b5f8060408385031215611d2157611d20611b07565b5b5f611d2e85828601611b84565b9250506020611d3f85828601611b84565b9150509250929050565b611d5281611b2a565b82525050565b5f602082019050611d6b5f830184611d49565b92915050565b5f8060408385031215611d8757611d86611b07565b5b5f611d9485828601611b51565b9250506020611da585828601611b51565b9150509250929050565b5f611db982611b0b565b9050919050565b611dc981611daf565b82525050565b5f602082019050611de25f830184611dc0565b92915050565b611df181611daf565b8114611dfb575f80fd5b50565b5f81359050611e0c81611de8565b92915050565b5f60208284031215611e2757611e26611b07565b5b5f611e3484828501611dfe565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611ebf57808604811115611e9b57611e9a611e3d565b5b6001851615611eaa5780820291505b8081029050611eb885611e6a565b9450611e7f565b94509492505050565b5f82611ed75760019050611f92565b81611ee4575f9050611f92565b8160018114611efa5760028114611f0457611f33565b6001915050611f92565b60ff841115611f1657611f15611e3d565b5b8360020a915084821115611f2d57611f2c611e3d565b5b50611f92565b5060208310610133831016604e8410600b8410161715611f685782820a905083811115611f6357611f62611e3d565b5b611f92565b611f758484846001611e76565b92509050818404811115611f8c57611f8b611e3d565b5b81810290505b9392505050565b5f611fa382611b65565b9150611fae83611c81565b9250611fdb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611ec8565b905092915050565b5f611fed82611b65565b9150611ff883611b65565b925082820261200681611b65565b9150828204841483151761201d5761201c611e3d565b5b5092915050565b7f46656520746f6f206d75636800000000000000000000000000000000000000005f82015250565b5f612058600c83611a81565b915061206382612024565b602082019050919050565b5f6020820190508181035f8301526120858161204c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6120e6602683611a81565b91506120f18261208c565b604082019050919050565b5f6020820190508181035f830152612113816120da565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612174602483611a81565b915061217f8261211a565b604082019050919050565b5f6020820190508181035f8301526121a181612168565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612202602283611a81565b915061220d826121a8565b604082019050919050565b5f6020820190508181035f83015261222f816121f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612290602583611a81565b915061229b82612236565b604082019050919050565b5f6020820190508181035f8301526122bd81612284565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61231e602383611a81565b9150612329826122c4565b604082019050919050565b5f6020820190508181035f83015261234b81612312565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6123ac602983611a81565b91506123b782612352565b604082019050919050565b5f6020820190508181035f8301526123d9816123a0565b9050919050565b5f6123ea82611b65565b91506123f583611b65565b925082820390508181111561240d5761240c611e3d565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612447602083611a81565b915061245282612413565b602082019050919050565b5f6020820190508181035f8301526124748161243b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506124e381611b3b565b92915050565b5f602082840312156124fe576124fd611b07565b5b5f61250b848285016124d5565b91505092915050565b5f819050919050565b5f819050919050565b5f61254061253b61253684612514565b61251d565b611b65565b9050919050565b61255081612526565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61258881611b2a565b82525050565b5f612599838361257f565b60208301905092915050565b5f602082019050919050565b5f6125bb82612556565b6125c58185612560565b93506125d083612570565b805f5b838110156126005781516125e7888261258e565b97506125f2836125a5565b9250506001810190506125d3565b5085935050505092915050565b5f60a0820190506126205f830188611c09565b61262d6020830187612547565b818103604083015261263f81866125b1565b905061264e6060830185611d49565b61265b6080830184611c09565b9695505050505050565b5f81905092915050565b50565b5f61267d5f83612665565b91506126888261266f565b5f82019050919050565b5f61269c82612672565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6126dd82611b65565b91506126e883611b65565b9250826126f8576126f76126a6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61275d602183611a81565b915061276882612703565b604082019050919050565b5f6020820190508181035f83015261278a81612751565b9050919050565b5f61279b82611b65565b91506127a683611b65565b92508282019050808211156127be576127bd611e3d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6127f8601b83611a81565b9150612803826127c4565b602082019050919050565b5f6020820190508181035f830152612825816127ec565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200ebaf09b7f50982ad6bb7d2e12029048986bbea7c46628282c6de57ef4879c8764736f6c634300081a0033

Deployed Bytecode Sourcemap

4810:7368:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6778:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7611:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5530:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7055:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7780:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6964:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11665:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11045:363;;;;;;;;;;;;;:::i;:::-;;12049:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11416:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7158:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:103;;;;;;;;;;;;;:::i;:::-;;5026:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2590:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5491:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6869:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7285:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5425:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7460:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11786:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5086:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3489:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11904:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6778:83;6815:13;6848:5;;;;;;;;;;;;;;;;;6841:12;;6778:83;:::o;7611:161::-;7686:4;7703:39;7712:12;:10;:12::i;:::-;7726:7;7735:6;7703:8;:39::i;:::-;7760:4;7753:11;;7611:161;;;;:::o;5530:32::-;;;;:::o;7055:95::-;7108:7;5232:2;5291;:13;;;;:::i;:::-;5276:12;:28;;;;:::i;:::-;7128:14;;7055:95;:::o;7780:313::-;7878:4;7895:36;7905:6;7913:9;7924:6;7895:9;:36::i;:::-;7942:121;7951:6;7959:12;:10;:12::i;:::-;7973:89;8011:6;7973:89;;;;;;;;;;;;;;;;;:11;:19;7985:6;7973:19;;;;;;;;;;;;;;;:33;7993:12;:10;:12::i;:::-;7973:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7942:8;:121::i;:::-;8081:4;8074:11;;7780:313;;;;;:::o;6964:83::-;7005:5;5232:2;7023:16;;6964:83;:::o;11665:113::-;2476:13;:11;:13::i;:::-;11766:4:::1;11736:18;:27;11755:7;11736:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11665:113:::0;:::o;11045:363::-;11109:25;;;;;;;;;;;11095:39;;:12;:10;:12::i;:::-;:39;;;11087:48;;;;;;11146:20;11167:24;11185:4;11167:9;:24::i;:::-;11146:45;;11218:1;11205:12;:14;11202:73;;;11233:30;11250:12;11233:16;:30::i;:::-;11202:73;11285:18;11304:21;11285:40;;11350:1;11339:10;:12;11336:65;;;11365:24;11378:10;11365:12;:24::i;:::-;11336:65;11076:332;;11045:363::o;12049:116::-;2476:13;:11;:13::i;:::-;12148:9:::1;12128:17;:29;;;;12049:116:::0;:::o;11416:241::-;2476:13;:11;:13::i;:::-;11515:2:::1;11505:6;:12;;11497:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;11564:2;11553:7;:13;;11545:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11609:6;11594:12;:21;;;;11642:7;11626:13;:23;;;;11416:241:::0;;:::o;7158:119::-;7224:7;7251:9;:18;7261:7;7251:18;;;;;;;;;;;;;;;;7244:25;;7158:119;;;:::o;3231:103::-;2476:13;:11;:13::i;:::-;3296:30:::1;3323:1;3296:18;:30::i;:::-;3231:103::o:0;5026:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2590:87::-;2636:7;2663:6;;;;;;;;;;;2656:13;;2590:87;:::o;5491:31::-;;;;:::o;6869:87::-;6908:13;6941:7;;;;;;;;;;;;;;;;;6934:14;;6869:87;:::o;7285:167::-;7363:4;7380:42;7390:12;:10;:12::i;:::-;7404:9;7415:6;7380:9;:42::i;:::-;7440:4;7433:11;;7285:167;;;;:::o;5425:57::-;;;;:::o;7460:143::-;7541:7;7568:11;:18;7580:5;7568:18;;;;;;;;;;;;;;;:27;7587:7;7568:27;;;;;;;;;;;;;;;;7561:34;;7460:143;;;;:::o;11786:110::-;2476:13;:11;:13::i;:::-;11883:5:::1;11853:18;:27;11872:7;11853:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11786:110:::0;:::o;5086:102::-;;;;;;;;;;;;;:::o;3489:201::-;2476:13;:11;:13::i;:::-;3598:1:::1;3578:22;;:8;:22;;::::0;3570:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3654:28;3673:8;3654:18;:28::i;:::-;3489:201:::0;:::o;11904:137::-;2476:13;:11;:13::i;:::-;12024:9:::1;11996:25;;:37;;;;;;;;;;;;;;;;;;11904:137:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8101:335::-;8211:1;8194:19;;:5;:19;;;8186:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8292:1;8273:21;;:7;:21;;;8265:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8374:6;8344:11;:18;8356:5;8344:18;;;;;;;;;;;;;;;:27;8363:7;8344:27;;;;;;;;;;;;;;;:36;;;;8412:7;8396:32;;8405:5;8396:32;;;8421:6;8396:32;;;;;;:::i;:::-;;;;;;;;8101:335;;;:::o;8444:1589::-;8548:1;8532:18;;:4;:18;;;8524:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8625:1;8611:16;;:2;:16;;;8603:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8695:1;8686:6;:10;8678:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8753:17;8788:18;:24;8807:4;8788:24;;;;;;;;;;;;;;;;;;;;;;;;;8787:25;:52;;;;;8817:18;:22;8836:2;8817:22;;;;;;;;;;;;;;;;;;;;;;;;;8816:23;8787:52;8783:894;;;8876:1;8861:12;;:16;8858:192;;;8906:13;;;;;;;;;;;8898:21;;:4;:21;;;:55;;;;;8937:15;;;;;;;;;;;8923:30;;:2;:30;;;;8898:55;8894:141;;;8986:33;9015:3;8986:24;8997:12;;8986:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8974:45;;8894:141;8858:192;9085:1;9069:13;;:17;9066:156;;;9112:13;;;;;;;;;;;9106:19;;:2;:19;;;9103:104;;9157:34;9187:3;9157:25;9168:13;;9157:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;9145:46;;9103:104;9066:156;9238:28;9269:24;9287:4;9269:9;:24::i;:::-;9238:55;;9313:6;;;;;;;;;;;9312:7;:30;;;;;9329:13;;;;;;;;;;;9323:19;;:2;:19;;;9312:30;:45;;;;;9346:11;;;;;;;;;;;9312:45;:87;;;;;9382:17;;9361:20;:38;9312:87;9308:358;;;9420:38;9437:20;9420:16;:38::i;:::-;9477:26;9506:21;9477:50;;9570:1;9549:18;:22;9546:105;;;9596:35;9609:21;9596:12;:35::i;:::-;9546:105;9401:265;9308:358;8841:836;8783:894;9702:1;9692:9;:11;9689:161;;;9742:39;9771:9;9742;:24;9760:4;9742:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9717:9;:24;9735:4;9717:24;;;;;;;;;;;;;;;:64;;;;9822:4;9799:39;;9808:4;9799:39;;;9828:9;9799:39;;;;;;:::i;:::-;;;;;;;;9689:161;9876:27;9896:6;9876:9;:15;9886:4;9876:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9860:9;:15;9870:4;9860:15;;;;;;;;;;;;;;;:43;;;;9928:40;9946:21;9957:9;9946:6;:10;;:21;;;;:::i;:::-;9928:9;:13;9938:2;9928:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9914:9;:13;9924:2;9914:13;;;;;;;;;;;;;;;:54;;;;9999:2;9984:41;;9993:4;9984:41;;;10003:21;10014:9;10003:6;:10;;:21;;;;:::i;:::-;9984:41;;;;;;:::i;:::-;;;;;;;;8513:1520;8444:1589;;;:::o;1230:190::-;1316:7;1349:1;1344;:6;;1352:12;1336:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1376:9;1392:1;1388;:5;;;;:::i;:::-;1376:17;;1411:1;1404:8;;;1230:190;;;;;:::o;2755:132::-;2830:12;:10;:12::i;:::-;2819:23;;:7;:5;:7::i;:::-;:23;;;2811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2755:132::o;10149:520::-;5771:4;5762:6;;:13;;;;;;;;;;;;;;;;;;10243:1:::1;10230:11;:14:::0;10227:27;10246:7:::1;10227:27;10264:21;10302:1;10288:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10264:40;;10333:4;10315;10320:1;10315:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10359:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10349:4;10354:1;10349:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10392:62;10409:4;10424:15;;;;;;;;;;;10442:11;10392:8;:62::i;:::-;10465:15;;;;;;;;;;;:66;;;10546:11;10572:1;10588:4;10615;10635:15;10465:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10216:453;5786:1;5807:5:::0;5798:6;;:14;;;;;;;;;;;;;;;;;;10149:520;:::o;10677:321::-;10735:16;10765:25;;;;;;;;;;;10757:39;;10804:6;10757:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10734:81;;;10833:11;10828:161;;10947:25;;;;;;;;;;;10924:57;;;10974:6;10924:57;;;;;;:::i;:::-;;;;;;;;10828:161;10723:275;10677:321;:::o;3850:191::-;3924:16;3943:6;;;;;;;;;;;3924:25;;3969:8;3960:6;;:17;;;;;;;;;;;;;;;;;;4024:8;3993:40;;4014:8;3993:40;;;;;;;;;;;;3913:128;3850:191;:::o;1428:246::-;1486:7;1515:1;1510;:6;1506:47;;1540:1;1533:8;;;;1506:47;1563:9;1579:1;1575;:5;;;;:::i;:::-;1563:17;;1608:1;1603;1599;:5;;;;:::i;:::-;:10;1591:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1665:1;1658:8;;;1428:246;;;;;:::o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1760:46;;1682:132;;;;:::o;899:179::-;957:7;977:9;993:1;989;:5;;;;:::i;:::-;977:17;;1018:1;1013;:6;;1005:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1069:1;1062:8;;;899:179;;;;:::o;1086:136::-;1144:7;1171:43;1175:1;1178;1171:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1164:50;;1086:136;;;;:::o;1822:189::-;1908:7;1940:1;1936;:5;1943:12;1928:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1967:9;1983:1;1979;:5;;;;:::i;:::-;1967:17;;2002:1;1995:8;;;1822:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:474::-;5484:6;5492;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5794:2;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5765:118;5416:474;;;;;:::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:474::-;6316:6;6324;6373:2;6361:9;6352:7;6348:23;6344:32;6341:119;;;6379:79;;:::i;:::-;6341:119;6499:1;6524:53;6569:7;6560:6;6549:9;6545:22;6524:53;:::i;:::-;6514:63;;6470:117;6626:2;6652:53;6697:7;6688:6;6677:9;6673:22;6652:53;:::i;:::-;6642:63;;6597:118;6248:474;;;;;:::o;6728:104::-;6773:7;6802:24;6820:5;6802:24;:::i;:::-;6791:35;;6728:104;;;:::o;6838:142::-;6941:32;6967:5;6941:32;:::i;:::-;6936:3;6929:45;6838:142;;:::o;6986:254::-;7095:4;7133:2;7122:9;7118:18;7110:26;;7146:87;7230:1;7219:9;7215:17;7206:6;7146:87;:::i;:::-;6986:254;;;;:::o;7246:138::-;7327:32;7353:5;7327:32;:::i;:::-;7320:5;7317:43;7307:71;;7374:1;7371;7364:12;7307:71;7246:138;:::o;7390:155::-;7444:5;7482:6;7469:20;7460:29;;7498:41;7533:5;7498:41;:::i;:::-;7390:155;;;;:::o;7551:345::-;7618:6;7667:2;7655:9;7646:7;7642:23;7638:32;7635:119;;;7673:79;;:::i;:::-;7635:119;7793:1;7818:61;7871:7;7862:6;7851:9;7847:22;7818:61;:::i;:::-;7808:71;;7764:125;7551:345;;;;:::o;7902:180::-;7950:77;7947:1;7940:88;8047:4;8044:1;8037:15;8071:4;8068:1;8061:15;8088:102;8130:8;8177:5;8174:1;8170:13;8149:34;;8088:102;;;:::o;8196:848::-;8257:5;8264:4;8288:6;8279:15;;8312:5;8303:14;;8326:712;8347:1;8337:8;8334:15;8326:712;;;8442:4;8437:3;8433:14;8427:4;8424:24;8421:50;;;8451:18;;:::i;:::-;8421:50;8501:1;8491:8;8487:16;8484:451;;;8916:4;8909:5;8905:16;8896:25;;8484:451;8966:4;8960;8956:15;8948:23;;8996:32;9019:8;8996:32;:::i;:::-;8984:44;;8326:712;;;8196:848;;;;;;;:::o;9050:1073::-;9104:5;9295:8;9285:40;;9316:1;9307:10;;9318:5;;9285:40;9344:4;9334:36;;9361:1;9352:10;;9363:5;;9334:36;9430:4;9478:1;9473:27;;;;9514:1;9509:191;;;;9423:277;;9473:27;9491:1;9482:10;;9493:5;;;9509:191;9554:3;9544:8;9541:17;9538:43;;;9561:18;;:::i;:::-;9538:43;9610:8;9607:1;9603:16;9594:25;;9645:3;9638:5;9635:14;9632:40;;;9652:18;;:::i;:::-;9632:40;9685:5;;;9423:277;;9809:2;9799:8;9796:16;9790:3;9784:4;9781:13;9777:36;9759:2;9749:8;9746:16;9741:2;9735:4;9732:12;9728:35;9712:111;9709:246;;;9865:8;9859:4;9855:19;9846:28;;9900:3;9893:5;9890:14;9887:40;;;9907:18;;:::i;:::-;9887:40;9940:5;;9709:246;9980:42;10018:3;10008:8;10002:4;9999:1;9980:42;:::i;:::-;9965:57;;;;10054:4;10049:3;10045:14;10038:5;10035:25;10032:51;;;10063:18;;:::i;:::-;10032:51;10112:4;10105:5;10101:16;10092:25;;9050:1073;;;;;;:::o;10129:281::-;10187:5;10211:23;10229:4;10211:23;:::i;:::-;10203:31;;10255:25;10271:8;10255:25;:::i;:::-;10243:37;;10299:104;10336:66;10326:8;10320:4;10299:104;:::i;:::-;10290:113;;10129:281;;;;:::o;10416:410::-;10456:7;10479:20;10497:1;10479:20;:::i;:::-;10474:25;;10513:20;10531:1;10513:20;:::i;:::-;10508:25;;10568:1;10565;10561:9;10590:30;10608:11;10590:30;:::i;:::-;10579:41;;10769:1;10760:7;10756:15;10753:1;10750:22;10730:1;10723:9;10703:83;10680:139;;10799:18;;:::i;:::-;10680:139;10464:362;10416:410;;;;:::o;10832:162::-;10972:14;10968:1;10960:6;10956:14;10949:38;10832:162;:::o;11000:366::-;11142:3;11163:67;11227:2;11222:3;11163:67;:::i;:::-;11156:74;;11239:93;11328:3;11239:93;:::i;:::-;11357:2;11352:3;11348:12;11341:19;;11000:366;;;:::o;11372:419::-;11538:4;11576:2;11565:9;11561:18;11553:26;;11625:9;11619:4;11615:20;11611:1;11600:9;11596:17;11589:47;11653:131;11779:4;11653:131;:::i;:::-;11645:139;;11372:419;;;:::o;11797:225::-;11937:34;11933:1;11925:6;11921:14;11914:58;12006:8;12001:2;11993:6;11989:15;11982:33;11797:225;:::o;12028:366::-;12170:3;12191:67;12255:2;12250:3;12191:67;:::i;:::-;12184:74;;12267:93;12356:3;12267:93;:::i;:::-;12385:2;12380:3;12376:12;12369:19;;12028:366;;;:::o;12400:419::-;12566:4;12604:2;12593:9;12589:18;12581:26;;12653:9;12647:4;12643:20;12639:1;12628:9;12624:17;12617:47;12681:131;12807:4;12681:131;:::i;:::-;12673:139;;12400:419;;;:::o;12825:223::-;12965:34;12961:1;12953:6;12949:14;12942:58;13034:6;13029:2;13021:6;13017:15;13010:31;12825:223;:::o;13054:366::-;13196:3;13217:67;13281:2;13276:3;13217:67;:::i;:::-;13210:74;;13293:93;13382:3;13293:93;:::i;:::-;13411:2;13406:3;13402:12;13395:19;;13054:366;;;:::o;13426:419::-;13592:4;13630:2;13619:9;13615:18;13607:26;;13679:9;13673:4;13669:20;13665:1;13654:9;13650:17;13643:47;13707:131;13833:4;13707:131;:::i;:::-;13699:139;;13426:419;;;:::o;13851:221::-;13991:34;13987:1;13979:6;13975:14;13968:58;14060:4;14055:2;14047:6;14043:15;14036:29;13851:221;:::o;14078:366::-;14220:3;14241:67;14305:2;14300:3;14241:67;:::i;:::-;14234:74;;14317:93;14406:3;14317:93;:::i;:::-;14435:2;14430:3;14426:12;14419:19;;14078:366;;;:::o;14450:419::-;14616:4;14654:2;14643:9;14639:18;14631:26;;14703:9;14697:4;14693:20;14689:1;14678:9;14674:17;14667:47;14731:131;14857:4;14731:131;:::i;:::-;14723:139;;14450:419;;;:::o;14875:224::-;15015:34;15011:1;15003:6;14999:14;14992:58;15084:7;15079:2;15071:6;15067:15;15060:32;14875:224;:::o;15105:366::-;15247:3;15268:67;15332:2;15327:3;15268:67;:::i;:::-;15261:74;;15344:93;15433:3;15344:93;:::i;:::-;15462:2;15457:3;15453:12;15446:19;;15105:366;;;:::o;15477:419::-;15643:4;15681:2;15670:9;15666:18;15658:26;;15730:9;15724:4;15720:20;15716:1;15705:9;15701:17;15694:47;15758:131;15884:4;15758:131;:::i;:::-;15750:139;;15477:419;;;:::o;15902:222::-;16042:34;16038:1;16030:6;16026:14;16019:58;16111:5;16106:2;16098:6;16094:15;16087:30;15902:222;:::o;16130:366::-;16272:3;16293:67;16357:2;16352:3;16293:67;:::i;:::-;16286:74;;16369:93;16458:3;16369:93;:::i;:::-;16487:2;16482:3;16478:12;16471:19;;16130:366;;;:::o;16502:419::-;16668:4;16706:2;16695:9;16691:18;16683:26;;16755:9;16749:4;16745:20;16741:1;16730:9;16726:17;16719:47;16783:131;16909:4;16783:131;:::i;:::-;16775:139;;16502:419;;;:::o;16927:228::-;17067:34;17063:1;17055:6;17051:14;17044:58;17136:11;17131:2;17123:6;17119:15;17112:36;16927:228;:::o;17161:366::-;17303:3;17324:67;17388:2;17383:3;17324:67;:::i;:::-;17317:74;;17400:93;17489:3;17400:93;:::i;:::-;17518:2;17513:3;17509:12;17502:19;;17161:366;;;:::o;17533:419::-;17699:4;17737:2;17726:9;17722:18;17714:26;;17786:9;17780:4;17776:20;17772:1;17761:9;17757:17;17750:47;17814:131;17940:4;17814:131;:::i;:::-;17806:139;;17533:419;;;:::o;17958:194::-;17998:4;18018:20;18036:1;18018:20;:::i;:::-;18013:25;;18052:20;18070:1;18052:20;:::i;:::-;18047:25;;18096:1;18093;18089:9;18081:17;;18120:1;18114:4;18111:11;18108:37;;;18125:18;;:::i;:::-;18108:37;17958:194;;;;:::o;18158:182::-;18298:34;18294:1;18286:6;18282:14;18275:58;18158:182;:::o;18346:366::-;18488:3;18509:67;18573:2;18568:3;18509:67;:::i;:::-;18502:74;;18585:93;18674:3;18585:93;:::i;:::-;18703:2;18698:3;18694:12;18687:19;;18346:366;;;:::o;18718:419::-;18884:4;18922:2;18911:9;18907:18;18899:26;;18971:9;18965:4;18961:20;18957:1;18946:9;18942:17;18935:47;18999:131;19125:4;18999:131;:::i;:::-;18991:139;;18718:419;;;:::o;19143:180::-;19191:77;19188:1;19181:88;19288:4;19285:1;19278:15;19312:4;19309:1;19302:15;19329:180;19377:77;19374:1;19367:88;19474:4;19471:1;19464:15;19498:4;19495:1;19488:15;19515:143;19572:5;19603:6;19597:13;19588:22;;19619:33;19646:5;19619:33;:::i;:::-;19515:143;;;;:::o;19664:351::-;19734:6;19783:2;19771:9;19762:7;19758:23;19754:32;19751:119;;;19789:79;;:::i;:::-;19751:119;19909:1;19934:64;19990:7;19981:6;19970:9;19966:22;19934:64;:::i;:::-;19924:74;;19880:128;19664:351;;;;:::o;20021:85::-;20066:7;20095:5;20084:16;;20021:85;;;:::o;20112:60::-;20140:3;20161:5;20154:12;;20112:60;;;:::o;20178:158::-;20236:9;20269:61;20287:42;20296:32;20322:5;20296:32;:::i;:::-;20287:42;:::i;:::-;20269:61;:::i;:::-;20256:74;;20178:158;;;:::o;20342:147::-;20437:45;20476:5;20437:45;:::i;:::-;20432:3;20425:58;20342:147;;:::o;20495:114::-;20562:6;20596:5;20590:12;20580:22;;20495:114;;;:::o;20615:184::-;20714:11;20748:6;20743:3;20736:19;20788:4;20783:3;20779:14;20764:29;;20615:184;;;;:::o;20805:132::-;20872:4;20895:3;20887:11;;20925:4;20920:3;20916:14;20908:22;;20805:132;;;:::o;20943:108::-;21020:24;21038:5;21020:24;:::i;:::-;21015:3;21008:37;20943:108;;:::o;21057:179::-;21126:10;21147:46;21189:3;21181:6;21147:46;:::i;:::-;21225:4;21220:3;21216:14;21202:28;;21057:179;;;;:::o;21242:113::-;21312:4;21344;21339:3;21335:14;21327:22;;21242:113;;;:::o;21391:732::-;21510:3;21539:54;21587:5;21539:54;:::i;:::-;21609:86;21688:6;21683:3;21609:86;:::i;:::-;21602:93;;21719:56;21769:5;21719:56;:::i;:::-;21798:7;21829:1;21814:284;21839:6;21836:1;21833:13;21814:284;;;21915:6;21909:13;21942:63;22001:3;21986:13;21942:63;:::i;:::-;21935:70;;22028:60;22081:6;22028:60;:::i;:::-;22018:70;;21874:224;21861:1;21858;21854:9;21849:14;;21814:284;;;21818:14;22114:3;22107:10;;21515:608;;;21391:732;;;;:::o;22129:831::-;22392:4;22430:3;22419:9;22415:19;22407:27;;22444:71;22512:1;22501:9;22497:17;22488:6;22444:71;:::i;:::-;22525:80;22601:2;22590:9;22586:18;22577:6;22525:80;:::i;:::-;22652:9;22646:4;22642:20;22637:2;22626:9;22622:18;22615:48;22680:108;22783:4;22774:6;22680:108;:::i;:::-;22672:116;;22798:72;22866:2;22855:9;22851:18;22842:6;22798:72;:::i;:::-;22880:73;22948:3;22937:9;22933:19;22924:6;22880:73;:::i;:::-;22129:831;;;;;;;;:::o;22966:147::-;23067:11;23104:3;23089:18;;22966:147;;;;:::o;23119:114::-;;:::o;23239:398::-;23398:3;23419:83;23500:1;23495:3;23419:83;:::i;:::-;23412:90;;23511:93;23600:3;23511:93;:::i;:::-;23629:1;23624:3;23620:11;23613:18;;23239:398;;;:::o;23643:379::-;23827:3;23849:147;23992:3;23849:147;:::i;:::-;23842:154;;24013:3;24006:10;;23643:379;;;:::o;24028:180::-;24076:77;24073:1;24066:88;24173:4;24170:1;24163:15;24197:4;24194:1;24187:15;24214:185;24254:1;24271:20;24289:1;24271:20;:::i;:::-;24266:25;;24305:20;24323:1;24305:20;:::i;:::-;24300:25;;24344:1;24334:35;;24349:18;;:::i;:::-;24334:35;24391:1;24388;24384:9;24379:14;;24214:185;;;;:::o;24405:220::-;24545:34;24541:1;24533:6;24529:14;24522:58;24614:3;24609:2;24601:6;24597:15;24590:28;24405:220;:::o;24631:366::-;24773:3;24794:67;24858:2;24853:3;24794:67;:::i;:::-;24787:74;;24870:93;24959:3;24870:93;:::i;:::-;24988:2;24983:3;24979:12;24972:19;;24631:366;;;:::o;25003:419::-;25169:4;25207:2;25196:9;25192:18;25184:26;;25256:9;25250:4;25246:20;25242:1;25231:9;25227:17;25220:47;25284:131;25410:4;25284:131;:::i;:::-;25276:139;;25003:419;;;:::o;25428:191::-;25468:3;25487:20;25505:1;25487:20;:::i;:::-;25482:25;;25521:20;25539:1;25521:20;:::i;:::-;25516:25;;25564:1;25561;25557:9;25550:16;;25585:3;25582:1;25579:10;25576:36;;;25592:18;;:::i;:::-;25576:36;25428:191;;;;:::o;25625:177::-;25765:29;25761:1;25753:6;25749:14;25742:53;25625:177;:::o;25808:366::-;25950:3;25971:67;26035:2;26030:3;25971:67;:::i;:::-;25964:74;;26047:93;26136:3;26047:93;:::i;:::-;26165:2;26160:3;26156:12;26149:19;;25808:366;;;:::o;26180:419::-;26346:4;26384:2;26373:9;26369:18;26361:26;;26433:9;26427:4;26423:20;26419:1;26408:9;26404:17;26397:47;26461:131;26587:4;26461:131;:::i;:::-;26453:139;;26180:419;;;:::o

Swarm Source

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