ETH Price: $3,447.98 (+1.45%)

Token

Make America Wealthy Again (MAWA)
 

Overview

Max Total Supply

420,690,000,000 MAWA

Holders

417

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
bjv511.eth
Balance
27,572,845.687146805 MAWA

Value
$0.00
0xd4e1a607d3ba4ac49f8517f8cfe011b5fb57b6f9
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:
MAWA

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-15
*/

// SPDX-License-Identifier: UNLICENSE

// https://t.me/MAWA_ETH

pragma solidity 0.8.26;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

contract MAWA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=28;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Make America Wealthy Again";
    string private constant _symbol = unicode"MAWA";
    uint256 public _maxTxAmount = 8413800000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000 *10**_decimals;
    uint256 public _taxSwapThreshold= 4206900000 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x8b6Ac0dbfb760A4340832d41F8D160C9372E6f60);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 removeAllLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        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(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeAllLimits","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"}]

6080604052600f600655601c6007555f6008555f6009556014600a556019600b556014600c555f600d556009600a61003791906105be565b6401f58066406100479190610608565b600e556009600a61005891906105be565b6401f58066406100689190610608565b600f556009600a61007991906105be565b63fac033206100889190610608565b6010556009600a61009991906105be565b63fac033206100a89190610608565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100f2575f80fd5b505f61010261041f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350738b6ac0dbfb760a4340832d41f8d160c9372e6f6060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61020091906105be565b6461f313f8806102109190610608565b60015f61022161041f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61027161042660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061039961041f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103f591906105be565b6461f313f8806104059190610608565b6040516104129190610658565b60405180910390a3610671565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104cf578086048111156104ab576104aa61044d565b5b60018516156104ba5780820291505b80810290506104c88561047a565b945061048f565b94509492505050565b5f826104e757600190506105a2565b816104f4575f90506105a2565b816001811461050a576002811461051457610543565b60019150506105a2565b60ff8411156105265761052561044d565b5b8360020a91508482111561053d5761053c61044d565b5b506105a2565b5060208310610133831016604e8410600b84101617156105785782820a9050838111156105735761057261044d565b5b6105a2565b6105858484846001610486565b9250905081840481111561059c5761059b61044d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105c8826105a9565b91506105d3836105b2565b92506106007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104d8565b905092915050565b5f610612826105a9565b915061061d836105a9565b925082820261062b816105a9565b915082820484148315176106425761064161044d565b5b5092915050565b610652816105a9565b82525050565b5f60208201905061066b5f830184610649565b92915050565b612fa78061067e5f395ff3fe608060405260043610610122575f3560e01c80637d1db4a51161009f578063bf474bed11610063578063bf474bed146103d5578063c9567bf9146103ff578063db05e5cb14610415578063dd62ed3e1461042b578063ec1f3f631461046757610129565b80637d1db4a5146102f15780638da5cb5b1461031b5780638f9a55c01461034557806395d89b411461036f578063a9059cbb1461039957610129565b8063313ce567116100e6578063313ce567146102235780633bbac5791461024d57806351bc3c851461028957806370a082311461029f578063715018a6146102db57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161048f565b60405161014e91906120ba565b60405180910390f35b348015610162575f80fd5b5061017d6004803603810190610178919061216b565b6104cc565b60405161018a91906121c3565b60405180910390f35b34801561019e575f80fd5b506101a76104e9565b6040516101b491906121eb565b60405180910390f35b3480156101c8575f80fd5b506101d16104ef565b6040516101de91906121eb565b60405180910390f35b3480156101f2575f80fd5b5061020d60048036038101906102089190612204565b610513565b60405161021a91906121c3565b60405180910390f35b34801561022e575f80fd5b506102376105e7565b604051610244919061226f565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e9190612288565b6105ef565b60405161028091906121c3565b60405180910390f35b348015610294575f80fd5b5061029d610641565b005b3480156102aa575f80fd5b506102c560048036038101906102c09190612288565b6106d8565b6040516102d291906121eb565b60405180910390f35b3480156102e6575f80fd5b506102ef61071e565b005b3480156102fc575f80fd5b5061030561086c565b60405161031291906121eb565b60405180910390f35b348015610326575f80fd5b5061032f610872565b60405161033c91906122c2565b60405180910390f35b348015610350575f80fd5b50610359610899565b60405161036691906121eb565b60405180910390f35b34801561037a575f80fd5b5061038361089f565b60405161039091906120ba565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba919061216b565b6108dc565b6040516103cc91906121c3565b60405180910390f35b3480156103e0575f80fd5b506103e96108f9565b6040516103f691906121eb565b60405180910390f35b34801561040a575f80fd5b506104136108ff565b005b348015610420575f80fd5b50610429610e22565b005b348015610436575f80fd5b50610451600480360381019061044c91906122db565b610f54565b60405161045e91906121eb565b60405180910390f35b348015610472575f80fd5b5061048d60048036038101906104889190612319565b610fd6565b005b60606040518060400160405280601a81526020017f4d616b6520416d6572696361205765616c74687920416761696e000000000000815250905090565b5f6104df6104d8611062565b8484611069565b6001905092915050565b60115481565b5f6009600a6104fe91906124a0565b6461f313f88061050e91906124ea565b905090565b5f61051f84848461122c565b6105dc8461052b611062565b6105d785604051806060016040528060288152602001612f4a6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61058e611062565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b369092919063ffffffff16565b611069565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610681611062565b73ffffffffffffffffffffffffffffffffffffffff16146106a0575f80fd5b5f6106aa306106d8565b90505f8111156106be576106bd81611b98565b5b5f4790505f8111156106d4576106d381611e03565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610726611062565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a990612575565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f4d41574100000000000000000000000000000000000000000000000000000000815250905090565b5f6108ef6108e8611062565b848461122c565b6001905092915050565b60105481565b610907611062565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612575565b60405180910390fd5b601360149054906101000a900460ff16156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da906125dd565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a803060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a6b91906124a0565b6461f313f880610a7b91906124ea565b611069565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0e919061260f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb8919061260f565b6040518363ffffffff1660e01b8152600401610bd592919061263a565b6020604051808303815f875af1158015610bf1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c15919061260f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c9c306106d8565b5f80610ca6610872565b426040518863ffffffff1660e01b8152600401610cc8969594939291906126a3565b60606040518083038185885af1158015610ce4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d099190612716565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610da9929190612766565b6020604051808303815f875af1158015610dc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de991906127b7565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b610e2a611062565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead90612575565b60405180910390fd5b6009600a610ec491906124a0565b6461f313f880610ed491906124ea565b600e819055506009600a610ee891906124a0565b6461f313f880610ef891906124ea565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610f2d91906124a0565b6461f313f880610f3d91906124ea565b604051610f4a91906121eb565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611016611062565b73ffffffffffffffffffffffffffffffffffffffff1614611035575f80fd5b600854811115801561104957506009548111155b611051575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce90612852565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906128e0565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161121f91906121eb565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112919061296e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff906129fc565b60405180910390fd5b5f811161134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612a8a565b60405180910390fd5b5f611353610872565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113c15750611391610872565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118865760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611464575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61146c575f80fd5b6114a8606461149a600a54600d54116114875760065461148b565b6008545b85611e6b90919063ffffffff16565b611ee290919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611553575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561166057600e548211156115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790612af2565b60405180910390fd5b600f54826115fd856106d8565b6116079190612b10565b1115611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90612b8d565b60405180910390fd5b600d5f81548092919061165a90612bab565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116e857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561172c57611729606461171b600b54600d54116117085760075461170c565b6009545b85611e6b90919063ffffffff16565b611ee290919063ffffffff16565b90505b5f611736306106d8565b9050601360159054906101000a900460ff161580156117a1575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117b95750601360169054906101000a900460ff165b80156117c6575060105481115b80156117d55750600c54600d54115b15611884576015544311156117ec575f6014819055505b600360145410611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890612c3c565b60405180910390fd5b61184e6118498461184484601154611f2b565b611f2b565b611b98565b5f4790505f8111156118645761186347611e03565b5b60145f81548092919061187690612bab565b919050555043601581905550505b505b5f811115611985576118de8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161197c91906121eb565b60405180910390a35b6119d58260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fa090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a78611a2c8284611fa090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b1b8486611fa090919063ffffffff16565b604051611b2891906121eb565b60405180910390a350505050565b5f838311158290611b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7491906120ba565b60405180910390fd5b505f8385611b8b9190612c5a565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611bcf57611bce612c8d565b5b604051908082528060200260200182016040528015611bfd5781602001602082028036833780820191505090505b50905030815f81518110611c1457611c13612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cdc919061260f565b81600181518110611cf057611cef612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d563060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611069565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611db8959493929190612d9e565b5f604051808303815f87803b158015611dcf575f80fd5b505af1158015611de1573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e67573d5f803e3d5ffd5b5050565b5f808303611e7b575f9050611edc565b5f8284611e8891906124ea565b9050828482611e979190612e23565b14611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ec3565b60405180910390fd5b809150505b92915050565b5f611f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe9565b905092915050565b5f818311611f395782611f3b565b815b905092915050565b5f808284611f519190612b10565b905083811015611f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8d90612f2b565b60405180910390fd5b8091505092915050565b5f611fe183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b36565b905092915050565b5f808311829061202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202691906120ba565b60405180910390fd5b505f838561203d9190612e23565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61208c8261204a565b6120968185612054565b93506120a6818560208601612064565b6120af81612072565b840191505092915050565b5f6020820190508181035f8301526120d28184612082565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612107826120de565b9050919050565b612117816120fd565b8114612121575f80fd5b50565b5f813590506121328161210e565b92915050565b5f819050919050565b61214a81612138565b8114612154575f80fd5b50565b5f8135905061216581612141565b92915050565b5f8060408385031215612181576121806120da565b5b5f61218e85828601612124565b925050602061219f85828601612157565b9150509250929050565b5f8115159050919050565b6121bd816121a9565b82525050565b5f6020820190506121d65f8301846121b4565b92915050565b6121e581612138565b82525050565b5f6020820190506121fe5f8301846121dc565b92915050565b5f805f6060848603121561221b5761221a6120da565b5b5f61222886828701612124565b935050602061223986828701612124565b925050604061224a86828701612157565b9150509250925092565b5f60ff82169050919050565b61226981612254565b82525050565b5f6020820190506122825f830184612260565b92915050565b5f6020828403121561229d5761229c6120da565b5b5f6122aa84828501612124565b91505092915050565b6122bc816120fd565b82525050565b5f6020820190506122d55f8301846122b3565b92915050565b5f80604083850312156122f1576122f06120da565b5b5f6122fe85828601612124565b925050602061230f85828601612124565b9150509250929050565b5f6020828403121561232e5761232d6120da565b5b5f61233b84828501612157565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123c6578086048111156123a2576123a1612344565b5b60018516156123b15780820291505b80810290506123bf85612371565b9450612386565b94509492505050565b5f826123de5760019050612499565b816123eb575f9050612499565b8160018114612401576002811461240b5761243a565b6001915050612499565b60ff84111561241d5761241c612344565b5b8360020a91508482111561243457612433612344565b5b50612499565b5060208310610133831016604e8410600b841016171561246f5782820a90508381111561246a57612469612344565b5b612499565b61247c848484600161237d565b9250905081840481111561249357612492612344565b5b81810290505b9392505050565b5f6124aa82612138565b91506124b583612254565b92506124e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123cf565b905092915050565b5f6124f482612138565b91506124ff83612138565b925082820261250d81612138565b9150828204841483151761252457612523612344565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61255f602083612054565b915061256a8261252b565b602082019050919050565b5f6020820190508181035f83015261258c81612553565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125c7601783612054565b91506125d282612593565b602082019050919050565b5f6020820190508181035f8301526125f4816125bb565b9050919050565b5f815190506126098161210e565b92915050565b5f60208284031215612624576126236120da565b5b5f612631848285016125fb565b91505092915050565b5f60408201905061264d5f8301856122b3565b61265a60208301846122b3565b9392505050565b5f819050919050565b5f819050919050565b5f61268d61268861268384612661565b61266a565b612138565b9050919050565b61269d81612673565b82525050565b5f60c0820190506126b65f8301896122b3565b6126c360208301886121dc565b6126d06040830187612694565b6126dd6060830186612694565b6126ea60808301856122b3565b6126f760a08301846121dc565b979650505050505050565b5f8151905061271081612141565b92915050565b5f805f6060848603121561272d5761272c6120da565b5b5f61273a86828701612702565b935050602061274b86828701612702565b925050604061275c86828701612702565b9150509250925092565b5f6040820190506127795f8301856122b3565b61278660208301846121dc565b9392505050565b612796816121a9565b81146127a0575f80fd5b50565b5f815190506127b18161278d565b92915050565b5f602082840312156127cc576127cb6120da565b5b5f6127d9848285016127a3565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61283c602483612054565b9150612847826127e2565b604082019050919050565b5f6020820190508181035f83015261286981612830565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128ca602283612054565b91506128d582612870565b604082019050919050565b5f6020820190508181035f8301526128f7816128be565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612958602583612054565b9150612963826128fe565b604082019050919050565b5f6020820190508181035f8301526129858161294c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6129e6602383612054565b91506129f18261298c565b604082019050919050565b5f6020820190508181035f830152612a13816129da565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612a74602983612054565b9150612a7f82612a1a565b604082019050919050565b5f6020820190508181035f830152612aa181612a68565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612adc601983612054565b9150612ae782612aa8565b602082019050919050565b5f6020820190508181035f830152612b0981612ad0565b9050919050565b5f612b1a82612138565b9150612b2583612138565b9250828201905080821115612b3d57612b3c612344565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612b77601a83612054565b9150612b8282612b43565b602082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b5f612bb582612138565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612be757612be6612344565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612c26601783612054565b9150612c3182612bf2565b602082019050919050565b5f6020820190508181035f830152612c5381612c1a565b9050919050565b5f612c6482612138565b9150612c6f83612138565b9250828203905081811115612c8757612c86612344565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d19816120fd565b82525050565b5f612d2a8383612d10565b60208301905092915050565b5f602082019050919050565b5f612d4c82612ce7565b612d568185612cf1565b9350612d6183612d01565b805f5b83811015612d91578151612d788882612d1f565b9750612d8383612d36565b925050600181019050612d64565b5085935050505092915050565b5f60a082019050612db15f8301886121dc565b612dbe6020830187612694565b8181036040830152612dd08186612d42565b9050612ddf60608301856122b3565b612dec60808301846121dc565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e2d82612138565b9150612e3883612138565b925082612e4857612e47612df6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ead602183612054565b9150612eb882612e53565b604082019050919050565b5f6020820190508181035f830152612eda81612ea1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f15601b83612054565b9150612f2082612ee1565b602082019050919050565b5f6020820190508181035f830152612f4281612f09565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aee2db83a6ce73f777a57508636fe4b1c55cc0daadf25ea5bf04123d21f95d4564736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610122575f3560e01c80637d1db4a51161009f578063bf474bed11610063578063bf474bed146103d5578063c9567bf9146103ff578063db05e5cb14610415578063dd62ed3e1461042b578063ec1f3f631461046757610129565b80637d1db4a5146102f15780638da5cb5b1461031b5780638f9a55c01461034557806395d89b411461036f578063a9059cbb1461039957610129565b8063313ce567116100e6578063313ce567146102235780633bbac5791461024d57806351bc3c851461028957806370a082311461029f578063715018a6146102db57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161048f565b60405161014e91906120ba565b60405180910390f35b348015610162575f80fd5b5061017d6004803603810190610178919061216b565b6104cc565b60405161018a91906121c3565b60405180910390f35b34801561019e575f80fd5b506101a76104e9565b6040516101b491906121eb565b60405180910390f35b3480156101c8575f80fd5b506101d16104ef565b6040516101de91906121eb565b60405180910390f35b3480156101f2575f80fd5b5061020d60048036038101906102089190612204565b610513565b60405161021a91906121c3565b60405180910390f35b34801561022e575f80fd5b506102376105e7565b604051610244919061226f565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e9190612288565b6105ef565b60405161028091906121c3565b60405180910390f35b348015610294575f80fd5b5061029d610641565b005b3480156102aa575f80fd5b506102c560048036038101906102c09190612288565b6106d8565b6040516102d291906121eb565b60405180910390f35b3480156102e6575f80fd5b506102ef61071e565b005b3480156102fc575f80fd5b5061030561086c565b60405161031291906121eb565b60405180910390f35b348015610326575f80fd5b5061032f610872565b60405161033c91906122c2565b60405180910390f35b348015610350575f80fd5b50610359610899565b60405161036691906121eb565b60405180910390f35b34801561037a575f80fd5b5061038361089f565b60405161039091906120ba565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba919061216b565b6108dc565b6040516103cc91906121c3565b60405180910390f35b3480156103e0575f80fd5b506103e96108f9565b6040516103f691906121eb565b60405180910390f35b34801561040a575f80fd5b506104136108ff565b005b348015610420575f80fd5b50610429610e22565b005b348015610436575f80fd5b50610451600480360381019061044c91906122db565b610f54565b60405161045e91906121eb565b60405180910390f35b348015610472575f80fd5b5061048d60048036038101906104889190612319565b610fd6565b005b60606040518060400160405280601a81526020017f4d616b6520416d6572696361205765616c74687920416761696e000000000000815250905090565b5f6104df6104d8611062565b8484611069565b6001905092915050565b60115481565b5f6009600a6104fe91906124a0565b6461f313f88061050e91906124ea565b905090565b5f61051f84848461122c565b6105dc8461052b611062565b6105d785604051806060016040528060288152602001612f4a6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61058e611062565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b369092919063ffffffff16565b611069565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610681611062565b73ffffffffffffffffffffffffffffffffffffffff16146106a0575f80fd5b5f6106aa306106d8565b90505f8111156106be576106bd81611b98565b5b5f4790505f8111156106d4576106d381611e03565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610726611062565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a990612575565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f4d41574100000000000000000000000000000000000000000000000000000000815250905090565b5f6108ef6108e8611062565b848461122c565b6001905092915050565b60105481565b610907611062565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90612575565b60405180910390fd5b601360149054906101000a900460ff16156109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da906125dd565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a803060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610a6b91906124a0565b6461f313f880610a7b91906124ea565b611069565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0e919061260f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb8919061260f565b6040518363ffffffff1660e01b8152600401610bd592919061263a565b6020604051808303815f875af1158015610bf1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c15919061260f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c9c306106d8565b5f80610ca6610872565b426040518863ffffffff1660e01b8152600401610cc8969594939291906126a3565b60606040518083038185885af1158015610ce4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d099190612716565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610da9929190612766565b6020604051808303815f875af1158015610dc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de991906127b7565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b610e2a611062565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead90612575565b60405180910390fd5b6009600a610ec491906124a0565b6461f313f880610ed491906124ea565b600e819055506009600a610ee891906124a0565b6461f313f880610ef891906124ea565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610f2d91906124a0565b6461f313f880610f3d91906124ea565b604051610f4a91906121eb565b60405180910390a1565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611016611062565b73ffffffffffffffffffffffffffffffffffffffff1614611035575f80fd5b600854811115801561104957506009548111155b611051575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ce90612852565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906128e0565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161121f91906121eb565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112919061296e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff906129fc565b60405180910390fd5b5f811161134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612a8a565b60405180910390fd5b5f611353610872565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113c15750611391610872565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118865760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611464575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61146c575f80fd5b6114a8606461149a600a54600d54116114875760065461148b565b6008545b85611e6b90919063ffffffff16565b611ee290919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611553575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561166057600e548211156115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e790612af2565b60405180910390fd5b600f54826115fd856106d8565b6116079190612b10565b1115611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90612b8d565b60405180910390fd5b600d5f81548092919061165a90612bab565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116e857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561172c57611729606461171b600b54600d54116117085760075461170c565b6009545b85611e6b90919063ffffffff16565b611ee290919063ffffffff16565b90505b5f611736306106d8565b9050601360159054906101000a900460ff161580156117a1575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117b95750601360169054906101000a900460ff165b80156117c6575060105481115b80156117d55750600c54600d54115b15611884576015544311156117ec575f6014819055505b600360145410611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890612c3c565b60405180910390fd5b61184e6118498461184484601154611f2b565b611f2b565b611b98565b5f4790505f8111156118645761186347611e03565b5b60145f81548092919061187690612bab565b919050555043601581905550505b505b5f811115611985576118de8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161197c91906121eb565b60405180910390a35b6119d58260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fa090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a78611a2c8284611fa090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b1b8486611fa090919063ffffffff16565b604051611b2891906121eb565b60405180910390a350505050565b5f838311158290611b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7491906120ba565b60405180910390fd5b505f8385611b8b9190612c5a565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611bcf57611bce612c8d565b5b604051908082528060200260200182016040528015611bfd5781602001602082028036833780820191505090505b50905030815f81518110611c1457611c13612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cdc919061260f565b81600181518110611cf057611cef612cba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d563060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611069565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611db8959493929190612d9e565b5f604051808303815f87803b158015611dcf575f80fd5b505af1158015611de1573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e67573d5f803e3d5ffd5b5050565b5f808303611e7b575f9050611edc565b5f8284611e8891906124ea565b9050828482611e979190612e23565b14611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ec3565b60405180910390fd5b809150505b92915050565b5f611f2383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe9565b905092915050565b5f818311611f395782611f3b565b815b905092915050565b5f808284611f519190612b10565b905083811015611f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8d90612f2b565b60405180910390fd5b8091505092915050565b5f611fe183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b36565b905092915050565b5f808311829061202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202691906120ba565b60405180910390fd5b505f838561203d9190612e23565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61208c8261204a565b6120968185612054565b93506120a6818560208601612064565b6120af81612072565b840191505092915050565b5f6020820190508181035f8301526120d28184612082565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612107826120de565b9050919050565b612117816120fd565b8114612121575f80fd5b50565b5f813590506121328161210e565b92915050565b5f819050919050565b61214a81612138565b8114612154575f80fd5b50565b5f8135905061216581612141565b92915050565b5f8060408385031215612181576121806120da565b5b5f61218e85828601612124565b925050602061219f85828601612157565b9150509250929050565b5f8115159050919050565b6121bd816121a9565b82525050565b5f6020820190506121d65f8301846121b4565b92915050565b6121e581612138565b82525050565b5f6020820190506121fe5f8301846121dc565b92915050565b5f805f6060848603121561221b5761221a6120da565b5b5f61222886828701612124565b935050602061223986828701612124565b925050604061224a86828701612157565b9150509250925092565b5f60ff82169050919050565b61226981612254565b82525050565b5f6020820190506122825f830184612260565b92915050565b5f6020828403121561229d5761229c6120da565b5b5f6122aa84828501612124565b91505092915050565b6122bc816120fd565b82525050565b5f6020820190506122d55f8301846122b3565b92915050565b5f80604083850312156122f1576122f06120da565b5b5f6122fe85828601612124565b925050602061230f85828601612124565b9150509250929050565b5f6020828403121561232e5761232d6120da565b5b5f61233b84828501612157565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123c6578086048111156123a2576123a1612344565b5b60018516156123b15780820291505b80810290506123bf85612371565b9450612386565b94509492505050565b5f826123de5760019050612499565b816123eb575f9050612499565b8160018114612401576002811461240b5761243a565b6001915050612499565b60ff84111561241d5761241c612344565b5b8360020a91508482111561243457612433612344565b5b50612499565b5060208310610133831016604e8410600b841016171561246f5782820a90508381111561246a57612469612344565b5b612499565b61247c848484600161237d565b9250905081840481111561249357612492612344565b5b81810290505b9392505050565b5f6124aa82612138565b91506124b583612254565b92506124e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123cf565b905092915050565b5f6124f482612138565b91506124ff83612138565b925082820261250d81612138565b9150828204841483151761252457612523612344565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61255f602083612054565b915061256a8261252b565b602082019050919050565b5f6020820190508181035f83015261258c81612553565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6125c7601783612054565b91506125d282612593565b602082019050919050565b5f6020820190508181035f8301526125f4816125bb565b9050919050565b5f815190506126098161210e565b92915050565b5f60208284031215612624576126236120da565b5b5f612631848285016125fb565b91505092915050565b5f60408201905061264d5f8301856122b3565b61265a60208301846122b3565b9392505050565b5f819050919050565b5f819050919050565b5f61268d61268861268384612661565b61266a565b612138565b9050919050565b61269d81612673565b82525050565b5f60c0820190506126b65f8301896122b3565b6126c360208301886121dc565b6126d06040830187612694565b6126dd6060830186612694565b6126ea60808301856122b3565b6126f760a08301846121dc565b979650505050505050565b5f8151905061271081612141565b92915050565b5f805f6060848603121561272d5761272c6120da565b5b5f61273a86828701612702565b935050602061274b86828701612702565b925050604061275c86828701612702565b9150509250925092565b5f6040820190506127795f8301856122b3565b61278660208301846121dc565b9392505050565b612796816121a9565b81146127a0575f80fd5b50565b5f815190506127b18161278d565b92915050565b5f602082840312156127cc576127cb6120da565b5b5f6127d9848285016127a3565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61283c602483612054565b9150612847826127e2565b604082019050919050565b5f6020820190508181035f83015261286981612830565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128ca602283612054565b91506128d582612870565b604082019050919050565b5f6020820190508181035f8301526128f7816128be565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612958602583612054565b9150612963826128fe565b604082019050919050565b5f6020820190508181035f8301526129858161294c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6129e6602383612054565b91506129f18261298c565b604082019050919050565b5f6020820190508181035f830152612a13816129da565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612a74602983612054565b9150612a7f82612a1a565b604082019050919050565b5f6020820190508181035f830152612aa181612a68565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612adc601983612054565b9150612ae782612aa8565b602082019050919050565b5f6020820190508181035f830152612b0981612ad0565b9050919050565b5f612b1a82612138565b9150612b2583612138565b9250828201905080821115612b3d57612b3c612344565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612b77601a83612054565b9150612b8282612b43565b602082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b5f612bb582612138565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612be757612be6612344565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612c26601783612054565b9150612c3182612bf2565b602082019050919050565b5f6020820190508181035f830152612c5381612c1a565b9050919050565b5f612c6482612138565b9150612c6f83612138565b9250828203905081811115612c8757612c86612344565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d19816120fd565b82525050565b5f612d2a8383612d10565b60208301905092915050565b5f602082019050919050565b5f612d4c82612ce7565b612d568185612cf1565b9350612d6183612d01565b805f5b83811015612d91578151612d788882612d1f565b9750612d8383612d36565b925050600181019050612d64565b5085935050505092915050565b5f60a082019050612db15f8301886121dc565b612dbe6020830187612694565b8181036040830152612dd08186612d42565b9050612ddf60608301856122b3565b612dec60808301846121dc565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e2d82612138565b9150612e3883612138565b925082612e4857612e47612df6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ead602183612054565b9150612eb882612e53565b604082019050919050565b5f6020820190508181035f830152612eda81612ea1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f15601b83612054565b9150612f2082612ee1565b602082019050919050565b5f6020820190508181035f830152612f4281612f09565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aee2db83a6ce73f777a57508636fe4b1c55cc0daadf25ea5bf04123d21f95d4564736f6c634300081a0033

Deployed Bytecode Sourcemap

3507:8060:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5454:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6287:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4619:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5731:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6456:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5640:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11216:348;;;;;;;;;;;;;:::i;:::-;;5834:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2588:148;;;;;;;;;;;;;:::i;:::-;;4425:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2374:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4488:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5545:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5961:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4552:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10268:671;;;;;;;;;;;;;:::i;:::-;;9907:162;;;;;;;;;;;;;:::i;:::-;;6136:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10953:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5454:83;5491:13;5524:5;;;;;;;;;;;;;;;;;5517:12;;5454:83;:::o;6287:161::-;6362:4;6379:39;6388:12;:10;:12::i;:::-;6402:7;6411:6;6379:8;:39::i;:::-;6436:4;6429:11;;6287:161;;;;:::o;4619:54::-;;;;:::o;5731:95::-;5784:7;4219:1;4277:2;:13;;;;:::i;:::-;4262:12;:28;;;;:::i;:::-;5804:14;;5731:95;:::o;6456:313::-;6554:4;6571:36;6581:6;6589:9;6600:6;6571:9;:36::i;:::-;6618:121;6627:6;6635:12;:10;:12::i;:::-;6649:89;6687:6;6649:89;;;;;;;;;;;;;;;;;:11;:19;6661:6;6649:19;;;;;;;;;;;;;;;:33;6669:12;:10;:12::i;:::-;6649:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6618:8;:121::i;:::-;6757:4;6750:11;;6456:313;;;;;:::o;5640:83::-;5681:5;4219:1;5699:16;;5640:83;:::o;10177:::-;10224:4;10245;:7;10250:1;10245:7;;;;;;;;;;;;;;;;;;;;;;;;;10238:14;;10177:83;;;:::o;11216:348::-;11280:10;;;;;;;;;;;11266:24;;:12;:10;:12::i;:::-;:24;;;11258:33;;;;;;11302:20;11323:24;11341:4;11323:9;:24::i;:::-;11302:45;;11374:1;11361:12;:14;11358:73;;;11389:30;11406:12;11389:16;:30::i;:::-;11358:73;11441:18;11460:21;11441:40;;11506:1;11495:10;:12;11492:65;;;11521:24;11534:10;11521:12;:24::i;:::-;11492:65;11247:317;;11216:348::o;5834:119::-;5900:7;5927:9;:18;5937:7;5927:18;;;;;;;;;;;;;;;;5920:25;;5834:119;;;:::o;2588:148::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2695:1:::1;2658:40;;2679:6;::::0;::::1;;;;;;;;2658:40;;;;;;;;;;;;2726:1;2709:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2588:148::o:0;4425:56::-;;;;:::o;2374:79::-;2412:7;2439:6;;;;;;;;;;;2432:13;;2374:79;:::o;4488:57::-;;;;:::o;5545:87::-;5584:13;5617:7;;;;;;;;;;;;;;;;;5610:14;;5545:87;:::o;5961:167::-;6039:4;6056:42;6066:12;:10;:12::i;:::-;6080:9;6091:6;6056:9;:42::i;:::-;6116:4;6109:11;;5961:167;;;;:::o;4552:60::-;;;;:::o;10268:671::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10332:11:::1;;;;;;;;;;;10331:12;10323:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10418:42;10381:15;;:80;;;;;;;;;;;;;;;;;;10472:58;10489:4;10504:15;;;;;;;;;;;4219:1;4277:2;:13;;;;:::i;:::-;4262:12;:28;;;;:::i;:::-;10472:8;:58::i;:::-;10575:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10557:55;;;10621:4;10628:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10557:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10541:13;;:110;;;;;;;;;;;;;;;;;;10662:15;;;;;;;;;;;:31;;;10701:21;10732:4;10738:24;10756:4;10738:9;:24::i;:::-;10763:1;10765::::0;10767:7:::1;:5;:7::i;:::-;10775:15;10662:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10809:13;;;;;;;;;;;10802:29;;;10840:15;;;;;;;;;;;10858:14;10802:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10898:4;10884:11;;:18;;;;;;;;;;;;;;;;;;10927:4;10913:11;;:18;;;;;;;;;;;;;;;;;;10268:671::o:0;9907:162::-;2511:12;:10;:12::i;:::-;2501:22;;:6;;;;;;;;;;:22;;;2493:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4219:1:::1;4277:2;:13;;;;:::i;:::-;4262:12;:28;;;;:::i;:::-;9963:12;:22;;;;4219:1;4277:2;:13;;;;:::i;:::-;4262:12;:28;;;;:::i;:::-;9996:14;:22;;;;10034:27;4219:1;4277:2;:13;;;;:::i;:::-;4262:12;:28;;;;:::i;:::-;10034:27;;;;;;:::i;:::-;;;;;;;;9907:162::o:0;6136:143::-;6217:7;6244:11;:18;6256:5;6244:18;;;;;;;;;;;;;;;:27;6263:7;6244:27;;;;;;;;;;;;;;;;6237:34;;6136:143;;;;:::o;10953:218::-;11028:10;;;;;;;;;;;11014:24;;:12;:10;:12::i;:::-;:24;;;11006:33;;;;;;11065:12;;11056:7;:21;;:47;;;;;11090:13;;11081:7;:22;;11056:47;11048:56;;;;;;11126:7;11113:12;:20;;;;11156:7;11142:13;:21;;;;10953:218;:::o;129:98::-;182:7;209:10;202:17;;129:98;:::o;6777:335::-;6887:1;6870:19;;:5;:19;;;6862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6968:1;6949:21;;:7;:21;;;6941:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7050:6;7020:11;:18;7032:5;7020:18;;;;;;;;;;;;;;;:27;7039:7;7020:27;;;;;;;;;;;;;;;:36;;;;7088:7;7072:32;;7081:5;7072:32;;;7097:6;7072:32;;;;;;:::i;:::-;;;;;;;;6777:335;;;:::o;7120:2180::-;7224:1;7208:18;;:4;:18;;;7200:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7301:1;7287:16;;:2;:16;;;7279:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7371:1;7362:6;:10;7354:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7429:17;7471:7;:5;:7::i;:::-;7463:15;;:4;:15;;;;:32;;;;;7488:7;:5;:7::i;:::-;7482:13;;:2;:13;;;;7463:32;7459:1485;;;7521:4;:10;7526:4;7521:10;;;;;;;;;;;;;;;;;;;;;;;;;7520:11;:24;;;;;7536:4;:8;7541:2;7536:8;;;;;;;;;;;;;;;;;;;;;;;;;7535:9;7520:24;7512:33;;;;;;7572:76;7644:3;7572:67;7594:15;;7584:9;;:25;7583:55;;7624:14;;7583:55;;;7611:12;;7583:55;7572:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7560:88;;7677:13;;;;;;;;;;;7669:21;;:4;:21;;;:55;;;;;7708:15;;;;;;;;;;;7694:30;;:2;:30;;;;7669:55;:83;;;;;7730:18;:22;7749:2;7730:22;;;;;;;;;;;;;;;;;;;;;;;;;7728:24;7669:83;7665:313;;;7792:12;;7782:6;:22;;7774:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7887:14;;7877:6;7861:13;7871:2;7861:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7853:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7951:9;;:11;;;;;;;;;:::i;:::-;;;;;;7665:313;8003:13;;;;;;;;;;;7997:19;;:2;:19;;;:43;;;;;8035:4;8020:20;;:4;:20;;;;7997:43;7994:174;;;8073:79;8148:3;8073:70;8095:16;;8085:9;;:26;8084:58;;8127:15;;8084:58;;;8113:13;;8084:58;8073:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8061:91;;7994:174;8184:28;8215:24;8233:4;8215:9;:24::i;:::-;8184:55;;8259:6;;;;;;;;;;;8258:7;:30;;;;;8275:13;;;;;;;;;;;8269:19;;:2;:19;;;8258:30;:45;;;;;8292:11;;;;;;;;;;;8258:45;:89;;;;;8330:17;;8307:20;:40;8258:89;:123;;;;;8363:18;;8351:9;;:30;8258:123;8254:679;;;8421:13;;8406:12;:28;8402:90;;;8471:1;8459:9;:13;;;;8402:90;8530:1;8518:9;;:13;8510:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8578:69;8595:51;8599:6;8607:38;8611:20;8633:11;;8607:3;:38::i;:::-;8595:3;:51::i;:::-;8578:16;:69::i;:::-;8666:26;8695:21;8666:50;;8760:1;8739:18;:22;8735:106;;;8786:35;8799:21;8786:12;:35::i;:::-;8735:106;8859:9;;:11;;;;;;;;;:::i;:::-;;;;;;8905:12;8889:13;:28;;;;8383:550;8254:679;7497:1447;7459:1485;8969:1;8959:9;:11;8956:161;;;9009:39;9038:9;9009;:24;9027:4;9009:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8984:9;:24;9002:4;8984:24;;;;;;;;;;;;;;;:64;;;;9089:4;9066:39;;9075:4;9066:39;;;9095:9;9066:39;;;;;;:::i;:::-;;;;;;;;8956:161;9143:27;9163:6;9143:9;:15;9153:4;9143:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9127:9;:15;9137:4;9127:15;;;;;;;;;;;;;;;:43;;;;9195:40;9213:21;9224:9;9213:6;:10;;:21;;;;:::i;:::-;9195:9;:13;9205:2;9195:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9181:9;:13;9191:2;9181:13;;;;;;;;;;;;;;;:54;;;;9266:2;9251:41;;9260:4;9251:41;;;9270:21;9281:9;9270:6;:10;;:21;;;;:::i;:::-;9251:41;;;;;;:::i;:::-;;;;;;;;7189:2111;7120:2180;;;:::o;1266:190::-;1352:7;1385:1;1380;:6;;1388:12;1372:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1412:9;1428:1;1424;:5;;;;:::i;:::-;1412:17;;1447:1;1440:8;;;1266:190;;;;;:::o;9416:483::-;5042:4;5033:6;;:13;;;;;;;;;;;;;;;;;;9494:21:::1;9532:1;9518:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9494:40;;9563:4;9545;9550:1;9545:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9589:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9579:4;9584:1;9579:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9622:62;9639:4;9654:15;;;;;;;;;;;9672:11;9622:8;:62::i;:::-;9695:15;;;;;;;;;;;:66;;;9776:11;9802:1;9818:4;9845;9865:15;9695:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9483:416;5078:5:::0;5069:6;;:14;;;;;;;;;;;;;;;;;;9416:483;:::o;10077:92::-;10134:10;;;;;;;;;;;:19;;:27;10154:6;10134:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10077:92;:::o;1464:246::-;1522:7;1551:1;1546;:6;1542:47;;1576:1;1569:8;;;;1542:47;1599:9;1615:1;1611;:5;;;;:::i;:::-;1599:17;;1644:1;1639;1635;:5;;;;:::i;:::-;:10;1627:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1701:1;1694:8;;;1464:246;;;;;:::o;1718:132::-;1776:7;1803:39;1807:1;1810;1803:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1796:46;;1718:132;;;;:::o;9310:98::-;9367:7;9394:1;9392;:3;9391:9;;9399:1;9391:9;;;9397:1;9391:9;9384:16;;9310:98;;;;:::o;935:179::-;993:7;1013:9;1029:1;1025;:5;;;;:::i;:::-;1013:17;;1054:1;1049;:6;;1041:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1105:1;1098:8;;;935:179;;;;:::o;1122:136::-;1180:7;1207:43;1211:1;1214;1207:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1200:50;;1122:136;;;;:::o;1858:189::-;1944:7;1976:1;1972;:5;1979:12;1964:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2003:9;2019:1;2015;:5;;;;:::i;:::-;2003:17;;2038:1;2031:8;;;1858:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:329::-;5972:6;6021:2;6009:9;6000:7;5996:23;5992:32;5989:119;;;6027:79;;:::i;:::-;5989:119;6147:1;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6118:117;5913:329;;;;:::o;6248:180::-;6296:77;6293:1;6286:88;6393:4;6390:1;6383:15;6417:4;6414:1;6407:15;6434:102;6476:8;6523:5;6520:1;6516:13;6495:34;;6434:102;;;:::o;6542:848::-;6603:5;6610:4;6634:6;6625:15;;6658:5;6649:14;;6672:712;6693:1;6683:8;6680:15;6672:712;;;6788:4;6783:3;6779:14;6773:4;6770:24;6767:50;;;6797:18;;:::i;:::-;6767:50;6847:1;6837:8;6833:16;6830:451;;;7262:4;7255:5;7251:16;7242:25;;6830:451;7312:4;7306;7302:15;7294:23;;7342:32;7365:8;7342:32;:::i;:::-;7330:44;;6672:712;;;6542:848;;;;;;;:::o;7396:1073::-;7450:5;7641:8;7631:40;;7662:1;7653:10;;7664:5;;7631:40;7690:4;7680:36;;7707:1;7698:10;;7709:5;;7680:36;7776:4;7824:1;7819:27;;;;7860:1;7855:191;;;;7769:277;;7819:27;7837:1;7828:10;;7839:5;;;7855:191;7900:3;7890:8;7887:17;7884:43;;;7907:18;;:::i;:::-;7884:43;7956:8;7953:1;7949:16;7940:25;;7991:3;7984:5;7981:14;7978:40;;;7998:18;;:::i;:::-;7978:40;8031:5;;;7769:277;;8155:2;8145:8;8142:16;8136:3;8130:4;8127:13;8123:36;8105:2;8095:8;8092:16;8087:2;8081:4;8078:12;8074:35;8058:111;8055:246;;;8211:8;8205:4;8201:19;8192:28;;8246:3;8239:5;8236:14;8233:40;;;8253:18;;:::i;:::-;8233:40;8286:5;;8055:246;8326:42;8364:3;8354:8;8348:4;8345:1;8326:42;:::i;:::-;8311:57;;;;8400:4;8395:3;8391:14;8384:5;8381:25;8378:51;;;8409:18;;:::i;:::-;8378:51;8458:4;8451:5;8447:16;8438:25;;7396:1073;;;;;;:::o;8475:281::-;8533:5;8557:23;8575:4;8557:23;:::i;:::-;8549:31;;8601:25;8617:8;8601:25;:::i;:::-;8589:37;;8645:104;8682:66;8672:8;8666:4;8645:104;:::i;:::-;8636:113;;8475:281;;;;:::o;8762:410::-;8802:7;8825:20;8843:1;8825:20;:::i;:::-;8820:25;;8859:20;8877:1;8859:20;:::i;:::-;8854:25;;8914:1;8911;8907:9;8936:30;8954:11;8936:30;:::i;:::-;8925:41;;9115:1;9106:7;9102:15;9099:1;9096:22;9076:1;9069:9;9049:83;9026:139;;9145:18;;:::i;:::-;9026:139;8810:362;8762:410;;;;:::o;9178:182::-;9318:34;9314:1;9306:6;9302:14;9295:58;9178:182;:::o;9366:366::-;9508:3;9529:67;9593:2;9588:3;9529:67;:::i;:::-;9522:74;;9605:93;9694:3;9605:93;:::i;:::-;9723:2;9718:3;9714:12;9707:19;;9366:366;;;:::o;9738:419::-;9904:4;9942:2;9931:9;9927:18;9919:26;;9991:9;9985:4;9981:20;9977:1;9966:9;9962:17;9955:47;10019:131;10145:4;10019:131;:::i;:::-;10011:139;;9738:419;;;:::o;10163:173::-;10303:25;10299:1;10291:6;10287:14;10280:49;10163:173;:::o;10342:366::-;10484:3;10505:67;10569:2;10564:3;10505:67;:::i;:::-;10498:74;;10581:93;10670:3;10581:93;:::i;:::-;10699:2;10694:3;10690:12;10683:19;;10342:366;;;:::o;10714:419::-;10880:4;10918:2;10907:9;10903:18;10895:26;;10967:9;10961:4;10957:20;10953:1;10942:9;10938:17;10931:47;10995:131;11121:4;10995:131;:::i;:::-;10987:139;;10714:419;;;:::o;11139:143::-;11196:5;11227:6;11221:13;11212:22;;11243:33;11270:5;11243:33;:::i;:::-;11139:143;;;;:::o;11288:351::-;11358:6;11407:2;11395:9;11386:7;11382:23;11378:32;11375:119;;;11413:79;;:::i;:::-;11375:119;11533:1;11558:64;11614:7;11605:6;11594:9;11590:22;11558:64;:::i;:::-;11548:74;;11504:128;11288:351;;;;:::o;11645:332::-;11766:4;11804:2;11793:9;11789:18;11781:26;;11817:71;11885:1;11874:9;11870:17;11861:6;11817:71;:::i;:::-;11898:72;11966:2;11955:9;11951:18;11942:6;11898:72;:::i;:::-;11645:332;;;;;:::o;11983:85::-;12028:7;12057:5;12046:16;;11983:85;;;:::o;12074:60::-;12102:3;12123:5;12116:12;;12074:60;;;:::o;12140:158::-;12198:9;12231:61;12249:42;12258:32;12284:5;12258:32;:::i;:::-;12249:42;:::i;:::-;12231:61;:::i;:::-;12218:74;;12140:158;;;:::o;12304:147::-;12399:45;12438:5;12399:45;:::i;:::-;12394:3;12387:58;12304:147;;:::o;12457:807::-;12706:4;12744:3;12733:9;12729:19;12721:27;;12758:71;12826:1;12815:9;12811:17;12802:6;12758:71;:::i;:::-;12839:72;12907:2;12896:9;12892:18;12883:6;12839:72;:::i;:::-;12921:80;12997:2;12986:9;12982:18;12973:6;12921:80;:::i;:::-;13011;13087:2;13076:9;13072:18;13063:6;13011:80;:::i;:::-;13101:73;13169:3;13158:9;13154:19;13145:6;13101:73;:::i;:::-;13184;13252:3;13241:9;13237:19;13228:6;13184:73;:::i;:::-;12457:807;;;;;;;;;:::o;13270:143::-;13327:5;13358:6;13352:13;13343:22;;13374:33;13401:5;13374:33;:::i;:::-;13270:143;;;;:::o;13419:663::-;13507:6;13515;13523;13572:2;13560:9;13551:7;13547:23;13543:32;13540:119;;;13578:79;;:::i;:::-;13540:119;13698:1;13723:64;13779:7;13770:6;13759:9;13755:22;13723:64;:::i;:::-;13713:74;;13669:128;13836:2;13862:64;13918:7;13909:6;13898:9;13894:22;13862:64;:::i;:::-;13852:74;;13807:129;13975:2;14001:64;14057:7;14048:6;14037:9;14033:22;14001:64;:::i;:::-;13991:74;;13946:129;13419:663;;;;;:::o;14088:332::-;14209:4;14247:2;14236:9;14232:18;14224:26;;14260:71;14328:1;14317:9;14313:17;14304:6;14260:71;:::i;:::-;14341:72;14409:2;14398:9;14394:18;14385:6;14341:72;:::i;:::-;14088:332;;;;;:::o;14426:116::-;14496:21;14511:5;14496:21;:::i;:::-;14489:5;14486:32;14476:60;;14532:1;14529;14522:12;14476:60;14426:116;:::o;14548:137::-;14602:5;14633:6;14627:13;14618:22;;14649:30;14673:5;14649:30;:::i;:::-;14548:137;;;;:::o;14691:345::-;14758:6;14807:2;14795:9;14786:7;14782:23;14778:32;14775:119;;;14813:79;;:::i;:::-;14775:119;14933:1;14958:61;15011:7;15002:6;14991:9;14987:22;14958:61;:::i;:::-;14948:71;;14904:125;14691:345;;;;:::o;15042:223::-;15182:34;15178:1;15170:6;15166:14;15159:58;15251:6;15246:2;15238:6;15234:15;15227:31;15042:223;:::o;15271:366::-;15413:3;15434:67;15498:2;15493:3;15434:67;:::i;:::-;15427:74;;15510:93;15599:3;15510:93;:::i;:::-;15628:2;15623:3;15619:12;15612:19;;15271:366;;;:::o;15643:419::-;15809:4;15847:2;15836:9;15832:18;15824:26;;15896:9;15890:4;15886:20;15882:1;15871:9;15867:17;15860:47;15924:131;16050:4;15924:131;:::i;:::-;15916:139;;15643:419;;;:::o;16068:221::-;16208:34;16204:1;16196:6;16192:14;16185:58;16277:4;16272:2;16264:6;16260:15;16253:29;16068:221;:::o;16295:366::-;16437:3;16458:67;16522:2;16517:3;16458:67;:::i;:::-;16451:74;;16534:93;16623:3;16534:93;:::i;:::-;16652:2;16647:3;16643:12;16636:19;;16295:366;;;:::o;16667:419::-;16833:4;16871:2;16860:9;16856:18;16848:26;;16920:9;16914:4;16910:20;16906:1;16895:9;16891:17;16884:47;16948:131;17074:4;16948:131;:::i;:::-;16940:139;;16667:419;;;:::o;17092:224::-;17232:34;17228:1;17220:6;17216:14;17209:58;17301:7;17296:2;17288:6;17284:15;17277:32;17092:224;:::o;17322:366::-;17464:3;17485:67;17549:2;17544:3;17485:67;:::i;:::-;17478:74;;17561:93;17650:3;17561:93;:::i;:::-;17679:2;17674:3;17670:12;17663:19;;17322:366;;;:::o;17694:419::-;17860:4;17898:2;17887:9;17883:18;17875:26;;17947:9;17941:4;17937:20;17933:1;17922:9;17918:17;17911:47;17975:131;18101:4;17975:131;:::i;:::-;17967:139;;17694:419;;;:::o;18119:222::-;18259:34;18255:1;18247:6;18243:14;18236:58;18328:5;18323:2;18315:6;18311:15;18304:30;18119:222;:::o;18347:366::-;18489:3;18510:67;18574:2;18569:3;18510:67;:::i;:::-;18503:74;;18586:93;18675:3;18586:93;:::i;:::-;18704:2;18699:3;18695:12;18688:19;;18347:366;;;:::o;18719:419::-;18885:4;18923:2;18912:9;18908:18;18900:26;;18972:9;18966:4;18962:20;18958:1;18947:9;18943:17;18936:47;19000:131;19126:4;19000:131;:::i;:::-;18992:139;;18719:419;;;:::o;19144:228::-;19284:34;19280:1;19272:6;19268:14;19261:58;19353:11;19348:2;19340:6;19336:15;19329:36;19144:228;:::o;19378:366::-;19520:3;19541:67;19605:2;19600:3;19541:67;:::i;:::-;19534:74;;19617:93;19706:3;19617:93;:::i;:::-;19735:2;19730:3;19726:12;19719:19;;19378:366;;;:::o;19750:419::-;19916:4;19954:2;19943:9;19939:18;19931:26;;20003:9;19997:4;19993:20;19989:1;19978:9;19974:17;19967:47;20031:131;20157:4;20031:131;:::i;:::-;20023:139;;19750:419;;;:::o;20175:175::-;20315:27;20311:1;20303:6;20299:14;20292:51;20175:175;:::o;20356:366::-;20498:3;20519:67;20583:2;20578:3;20519:67;:::i;:::-;20512:74;;20595:93;20684:3;20595:93;:::i;:::-;20713:2;20708:3;20704:12;20697:19;;20356:366;;;:::o;20728:419::-;20894:4;20932:2;20921:9;20917:18;20909:26;;20981:9;20975:4;20971:20;20967:1;20956:9;20952:17;20945:47;21009:131;21135:4;21009:131;:::i;:::-;21001:139;;20728:419;;;:::o;21153:191::-;21193:3;21212:20;21230:1;21212:20;:::i;:::-;21207:25;;21246:20;21264:1;21246:20;:::i;:::-;21241:25;;21289:1;21286;21282:9;21275:16;;21310:3;21307:1;21304:10;21301:36;;;21317:18;;:::i;:::-;21301:36;21153:191;;;;:::o;21350:176::-;21490:28;21486:1;21478:6;21474:14;21467:52;21350:176;:::o;21532:366::-;21674:3;21695:67;21759:2;21754:3;21695:67;:::i;:::-;21688:74;;21771:93;21860:3;21771:93;:::i;:::-;21889:2;21884:3;21880:12;21873:19;;21532:366;;;:::o;21904:419::-;22070:4;22108:2;22097:9;22093:18;22085:26;;22157:9;22151:4;22147:20;22143:1;22132:9;22128:17;22121:47;22185:131;22311:4;22185:131;:::i;:::-;22177:139;;21904:419;;;:::o;22329:233::-;22368:3;22391:24;22409:5;22391:24;:::i;:::-;22382:33;;22437:66;22430:5;22427:77;22424:103;;22507:18;;:::i;:::-;22424:103;22554:1;22547:5;22543:13;22536:20;;22329:233;;;:::o;22568:173::-;22708:25;22704:1;22696:6;22692:14;22685:49;22568:173;:::o;22747:366::-;22889:3;22910:67;22974:2;22969:3;22910:67;:::i;:::-;22903:74;;22986:93;23075:3;22986:93;:::i;:::-;23104:2;23099:3;23095:12;23088:19;;22747:366;;;:::o;23119:419::-;23285:4;23323:2;23312:9;23308:18;23300:26;;23372:9;23366:4;23362:20;23358:1;23347:9;23343:17;23336:47;23400:131;23526:4;23400:131;:::i;:::-;23392:139;;23119:419;;;:::o;23544:194::-;23584:4;23604:20;23622:1;23604:20;:::i;:::-;23599:25;;23638:20;23656:1;23638:20;:::i;:::-;23633:25;;23682:1;23679;23675:9;23667:17;;23706:1;23700:4;23697:11;23694:37;;;23711:18;;:::i;:::-;23694:37;23544:194;;;;:::o;23744:180::-;23792:77;23789:1;23782:88;23889:4;23886:1;23879:15;23913:4;23910:1;23903:15;23930:180;23978:77;23975:1;23968:88;24075:4;24072:1;24065:15;24099:4;24096:1;24089:15;24116:114;24183:6;24217:5;24211:12;24201:22;;24116:114;;;:::o;24236:184::-;24335:11;24369:6;24364:3;24357:19;24409:4;24404:3;24400:14;24385:29;;24236:184;;;;:::o;24426:132::-;24493:4;24516:3;24508:11;;24546:4;24541:3;24537:14;24529:22;;24426:132;;;:::o;24564:108::-;24641:24;24659:5;24641:24;:::i;:::-;24636:3;24629:37;24564:108;;:::o;24678:179::-;24747:10;24768:46;24810:3;24802:6;24768:46;:::i;:::-;24846:4;24841:3;24837:14;24823:28;;24678:179;;;;:::o;24863:113::-;24933:4;24965;24960:3;24956:14;24948:22;;24863:113;;;:::o;25012:732::-;25131:3;25160:54;25208:5;25160:54;:::i;:::-;25230:86;25309:6;25304:3;25230:86;:::i;:::-;25223:93;;25340:56;25390:5;25340:56;:::i;:::-;25419:7;25450:1;25435:284;25460:6;25457:1;25454:13;25435:284;;;25536:6;25530:13;25563:63;25622:3;25607:13;25563:63;:::i;:::-;25556:70;;25649:60;25702:6;25649:60;:::i;:::-;25639:70;;25495:224;25482:1;25479;25475:9;25470:14;;25435:284;;;25439:14;25735:3;25728:10;;25136:608;;;25012:732;;;;:::o;25750:831::-;26013:4;26051:3;26040:9;26036:19;26028:27;;26065:71;26133:1;26122:9;26118:17;26109:6;26065:71;:::i;:::-;26146:80;26222:2;26211:9;26207:18;26198:6;26146:80;:::i;:::-;26273:9;26267:4;26263:20;26258:2;26247:9;26243:18;26236:48;26301:108;26404:4;26395:6;26301:108;:::i;:::-;26293:116;;26419:72;26487:2;26476:9;26472:18;26463:6;26419:72;:::i;:::-;26501:73;26569:3;26558:9;26554:19;26545:6;26501:73;:::i;:::-;25750:831;;;;;;;;:::o;26587:180::-;26635:77;26632:1;26625:88;26732:4;26729:1;26722:15;26756:4;26753:1;26746:15;26773:185;26813:1;26830:20;26848:1;26830:20;:::i;:::-;26825:25;;26864:20;26882:1;26864:20;:::i;:::-;26859:25;;26903:1;26893:35;;26908:18;;:::i;:::-;26893:35;26950:1;26947;26943:9;26938:14;;26773:185;;;;:::o;26964:220::-;27104:34;27100:1;27092:6;27088:14;27081:58;27173:3;27168:2;27160:6;27156:15;27149:28;26964:220;:::o;27190:366::-;27332:3;27353:67;27417:2;27412:3;27353:67;:::i;:::-;27346:74;;27429:93;27518:3;27429:93;:::i;:::-;27547:2;27542:3;27538:12;27531:19;;27190:366;;;:::o;27562:419::-;27728:4;27766:2;27755:9;27751:18;27743:26;;27815:9;27809:4;27805:20;27801:1;27790:9;27786:17;27779:47;27843:131;27969:4;27843:131;:::i;:::-;27835:139;;27562:419;;;:::o;27987:177::-;28127:29;28123:1;28115:6;28111:14;28104:53;27987:177;:::o;28170:366::-;28312:3;28333:67;28397:2;28392:3;28333:67;:::i;:::-;28326:74;;28409:93;28498:3;28409:93;:::i;:::-;28527:2;28522:3;28518:12;28511:19;;28170:366;;;:::o;28542:419::-;28708:4;28746:2;28735:9;28731:18;28723:26;;28795:9;28789:4;28785:20;28781:1;28770:9;28766:17;28759:47;28823:131;28949:4;28823:131;:::i;:::-;28815:139;;28542:419;;;:::o

Swarm Source

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