ETH Price: $3,353.33 (-8.60%)

Token

Readme (READ)
 

Overview

Max Total Supply

500,000,000 READ

Holders

337

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
178,761.187498861 READ

Value
$0.00
0x49ad3a2d26c441e1b93a99f349dd5e4f34c696af
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:
README

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

    Readme – The first decentralzed encyclopedia of Web3

    Website: https://readme.media/
    Docs: https://readmemedia.gitbook.io/docs/
    Twitter (X): https://twitter.com/readme_media
    Telegram channel: https://t.me/readme_news
    Telegram chat: https://t.me/readme_chat

*/

pragma solidity 0.8.20;

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

    address payable private _marketingWallet; 
    address payable private _teamWallet;
    address payable private _ecosystemWallet;
    address payable private _incentivesWallet;

    uint256 private _initialBuyTax=5;
    uint256 private _initialSellTax=5;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=4;
    uint256 private _reduceSellTaxAt=4;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 500000000 * 10**_decimals;
    string private constant _name = unicode"Readme";
    string private constant _symbol = unicode"READ";
    uint256 public _maxTxAmount = 3000000 * 10**_decimals;
    uint256 public _maxWalletSize = 3000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _marketingWallet = payable(0x779aEE10bB7cDc5dC0CD9671A07ff85712DD2481);
        _teamWallet = payable(0x104F8aB6daFE5D1e2b0558e569F2ef19Ab0921f6);
        _ecosystemWallet = payable(0x102957E015225553C79d8Aae3055f6A320DA9009);
        _incentivesWallet = payable(0xF1087AFAD9e2b0189225962EEC6a5af5a8640bD4);
        _taxWallet = payable(_msgSender());
        _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()) {

            if (from==_marketingWallet || to==_marketingWallet 
            || from==_teamWallet || to==_marketingWallet ||
            from==_ecosystemWallet || to==_ecosystemWallet ||
            from==_incentivesWallet || to==_incentivesWallet) {
                taxAmount =0;
            } else {
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                require(amount <= _maxTxAmount, "Transfer amount exceeds the _maxTxAmount.");
            }

            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) {
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

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

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

    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 onlyOwner{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

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

    function getBalanceETH() public onlyOwner view returns(uint) {
        return address(this).balance;
    }

    function transferAllTokens() external onlyOwner {
        uint256 tokenBalance = balanceOf(address(this));
        require(tokenBalance > 0, "No tokens to transfer");

        _transfer(address(this), _marketingWallet, tokenBalance);
    }
}

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":[],"name":"getBalanceETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferAllTokens","outputs":[],"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"}]

60806040526005600a556005600b555f600c555f600d556004600e556004600f5560146010555f6011556009600a6200003991906200073e565b622dc6c06200004991906200078e565b6012556009600a6200005c91906200073e565b622dc6c06200006c91906200078e565b6013556009600a6200007f91906200073e565b620f42406200008f91906200078e565b6014556009600a620000a291906200073e565b62989680620000b291906200078e565b6015555f601760156101000a81548160ff0219169083151502179055505f601760166101000a81548160ff021916908315150217905550348015620000f5575f80fd5b505f620001076200057e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073779aee10bb7cdc5dc0cd9671a07ff85712dd248160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073104f8ab6dafe5d1e2b0558e569f2ef19ab0921f660075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073102957e015225553c79d8aae3055f6a320da900960085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f1087afad9e2b0189225962eec6a5af5a8640bd460095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003036200057e60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200035291906200073e565b631dcd65006200036391906200078e565b60015f620003766200057e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620003c86200058560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004f26200057e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200055091906200073e565b631dcd65006200056191906200078e565b604051620005709190620007e9565b60405180910390a362000804565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000636578086048111156200060e576200060d620005ac565b5b60018516156200061e5780820291505b80810290506200062e85620005d9565b9450620005ee565b94509492505050565b5f8262000650576001905062000722565b816200065f575f905062000722565b81600181146200067857600281146200068357620006b9565b600191505062000722565b60ff841115620006985762000697620005ac565b5b8360020a915084821115620006b257620006b1620005ac565b5b5062000722565b5060208310610133831016604e8410600b8410161715620006f35782820a905083811115620006ed57620006ec620005ac565b5b62000722565b620007028484846001620005e5565b925090508184048111156200071c576200071b620005ac565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200074a8262000729565b9150620007578362000732565b9250620007867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200063f565b905092915050565b5f6200079a8262000729565b9150620007a78362000729565b9250828202620007b78162000729565b91508282048414831517620007d157620007d0620005ac565b5b5092915050565b620007e38162000729565b82525050565b5f602082019050620007fe5f830184620007d8565b92915050565b61346580620008125f395ff3fe60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb14610394578063acd1f254146103d0578063bf474bed146103fa578063c9567bf914610424578063dd62ed3e1461043a578063ec1f3f631461047657610134565b8063751039fc146102d65780637d1db4a5146102ec5780638da5cb5b146103165780638f9a55c01461034057806395d89b411461036a57610134565b8063313ce567116100f1578063313ce5671461022e5780634c96f0cc1461025857806351bc3c851461026e57806370a0823114610284578063715018a6146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049e565b60405161015991906124ea565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061259b565b6104db565b60405161019591906125f3565b60405180910390f35b3480156101a9575f80fd5b506101b26104f8565b6040516101bf919061261b565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fe565b6040516101e9919061261b565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612634565b610521565b60405161022591906125f3565b60405180910390f35b348015610239575f80fd5b506102426105f5565b60405161024f919061269f565b60405180910390f35b348015610263575f80fd5b5061026c6105fd565b005b348015610279575f80fd5b5061028261070e565b005b34801561028f575f80fd5b506102aa60048036038101906102a591906126b8565b6107da565b6040516102b7919061261b565b60405180910390f35b3480156102cb575f80fd5b506102d4610820565b005b3480156102e1575f80fd5b506102ea61096e565b005b3480156102f7575f80fd5b50610300610a9d565b60405161030d919061261b565b60405180910390f35b348015610321575f80fd5b5061032a610aa3565b60405161033791906126f2565b60405180910390f35b34801561034b575f80fd5b50610354610aca565b604051610361919061261b565b60405180910390f35b348015610375575f80fd5b5061037e610ad0565b60405161038b91906124ea565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b5919061259b565b610b0d565b6040516103c791906125f3565b60405180910390f35b3480156103db575f80fd5b506103e4610b2a565b6040516103f1919061261b565b60405180910390f35b348015610405575f80fd5b5061040e610bc5565b60405161041b919061261b565b60405180910390f35b34801561042f575f80fd5b50610438610bcb565b005b348015610445575f80fd5b50610460600480360381019061045b919061270b565b6110ed565b60405161046d919061261b565b60405180910390f35b348015610481575f80fd5b5061049c60048036038101906104979190612749565b61116f565b005b60606040518060400160405280600681526020017f526561646d650000000000000000000000000000000000000000000000000000815250905090565b5f6104ee6104e761128f565b8484611296565b6001905092915050565b60155481565b5f6009600a61050d91906128d0565b631dcd650061051c919061291a565b905090565b5f61052d848484611459565b6105ea8461053961128f565b6105e5856040518060600160405280602881526020016134086028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61059c61128f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4c9092919063ffffffff16565b611296565b600190509392505050565b5f6009905090565b61060561128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610688906129a5565b60405180910390fd5b5f61069b306107da565b90505f81116106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d690612a0d565b60405180910390fd5b61070b3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611459565b50565b61071661128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610799906129a5565b60405180910390fd5b5f6107ac306107da565b90505f8111156107c0576107bf81611fae565b5b5f4790505f8111156107d6576107d581612219565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082861128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab906129a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61097661128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f9906129a5565b60405180910390fd5b6009600a610a1091906128d0565b631dcd6500610a1f919061291a565b6012819055506009600a610a3391906128d0565b631dcd6500610a42919061291a565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a7791906128d0565b631dcd6500610a86919061291a565b604051610a93919061261b565b60405180910390a1565b60125481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b60606040518060400160405280600481526020017f5245414400000000000000000000000000000000000000000000000000000000815250905090565b5f610b20610b1961128f565b8484611459565b6001905092915050565b5f610b3361128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb6906129a5565b60405180910390fd5b47905090565b60145481565b610bd361128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906129a5565b60405180910390fd5b601760149054906101000a900460ff1615610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612a75565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d4b3060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d3791906128d0565b631dcd6500610d46919061291a565b611296565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd99190612aa7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e839190612aa7565b6040518363ffffffff1660e01b8152600401610ea0929190612ad2565b6020604051808303815f875af1158015610ebc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee09190612aa7565b60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f67306107da565b5f80610f71610aa3565b426040518863ffffffff1660e01b8152600401610f9396959493929190612b3b565b60606040518083038185885af1158015610faf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fd49190612bae565b50505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611074929190612bfe565b6020604051808303815f875af1158015611090573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b49190612c4f565b506001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61117761128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa906129a5565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661124361128f565b73ffffffffffffffffffffffffffffffffffffffff1614611262575f80fd5b600c5481111580156112765750600d548111155b61127e575f80fd5b80600c8190555080600d8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90612cea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990612d78565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161144c919061261b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be90612e06565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152c90612e94565b60405180910390fd5b5f8111611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90612f22565b60405180910390fd5b5f611580610aa3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115ee57506115be610aa3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c9c5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061169a575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806116f1575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80611748575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061179f575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806117f6575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061184d575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806118a4575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156118b1575f9050611935565b6118ed60646118df600e54601154116118cc57600a546118d0565b600c545b8561228190919063ffffffff16565b6122f890919063ffffffff16565b9050601254821115611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b90612fb0565b60405180910390fd5b5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119de575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a31575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611aeb57601254821115611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7290613018565b60405180910390fd5b60135482611a88856107da565b611a929190613036565b1115611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca906130b3565b60405180910390fd5b60115f815480929190611ae5906130d1565b91905055505b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b7357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bb757611bb46064611ba6600f5460115411611b9357600b54611b97565b600d545b8561228190919063ffffffff16565b6122f890919063ffffffff16565b90505b5f611bc1306107da565b9050601760159054906101000a900460ff16158015611c2c575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c445750601760169054906101000a900460ff165b8015611c51575060145481115b8015611c605750601054601154115b15611c9a57611c82611c7d84611c7884601554612341565b612341565b611fae565b5f4790505f811115611c9857611c9747612219565b5b505b505b5f811115611d9b57611cf48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d92919061261b565b60405180910390a35b611deb8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123b690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e8e611e4282846123b690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f3184866123b690919063ffffffff16565b604051611f3e919061261b565b60405180910390a350505050565b5f838311158290611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a91906124ea565b60405180910390fd5b505f8385611fa19190613118565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611fe557611fe461314b565b5b6040519080825280602002602001820160405280156120135781602001602082028036833780820191505090505b50905030815f8151811061202a57612029613178565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f29190612aa7565b8160018151811061210657612105613178565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061216c3060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611296565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121ce95949392919061325c565b5f604051808303815f87803b1580156121e5575f80fd5b505af11580156121f7573d5f803e3d5ffd5b50505050505f601760156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561227d573d5f803e3d5ffd5b5050565b5f808303612291575f90506122f2565b5f828461229e919061291a565b90508284826122ad91906132e1565b146122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e490613381565b60405180910390fd5b809150505b92915050565b5f61233983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123ff565b905092915050565b5f81831161234f5782612351565b815b905092915050565b5f8082846123679190613036565b9050838110156123ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a3906133e9565b60405180910390fd5b8091505092915050565b5f6123f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f4c565b905092915050565b5f8083118290612445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243c91906124ea565b60405180910390fd5b505f838561245391906132e1565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561249757808201518184015260208101905061247c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124bc82612460565b6124c6818561246a565b93506124d681856020860161247a565b6124df816124a2565b840191505092915050565b5f6020820190508181035f83015261250281846124b2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125378261250e565b9050919050565b6125478161252d565b8114612551575f80fd5b50565b5f813590506125628161253e565b92915050565b5f819050919050565b61257a81612568565b8114612584575f80fd5b50565b5f8135905061259581612571565b92915050565b5f80604083850312156125b1576125b061250a565b5b5f6125be85828601612554565b92505060206125cf85828601612587565b9150509250929050565b5f8115159050919050565b6125ed816125d9565b82525050565b5f6020820190506126065f8301846125e4565b92915050565b61261581612568565b82525050565b5f60208201905061262e5f83018461260c565b92915050565b5f805f6060848603121561264b5761264a61250a565b5b5f61265886828701612554565b935050602061266986828701612554565b925050604061267a86828701612587565b9150509250925092565b5f60ff82169050919050565b61269981612684565b82525050565b5f6020820190506126b25f830184612690565b92915050565b5f602082840312156126cd576126cc61250a565b5b5f6126da84828501612554565b91505092915050565b6126ec8161252d565b82525050565b5f6020820190506127055f8301846126e3565b92915050565b5f80604083850312156127215761272061250a565b5b5f61272e85828601612554565b925050602061273f85828601612554565b9150509250929050565b5f6020828403121561275e5761275d61250a565b5b5f61276b84828501612587565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127f6578086048111156127d2576127d1612774565b5b60018516156127e15780820291505b80810290506127ef856127a1565b94506127b6565b94509492505050565b5f8261280e57600190506128c9565b8161281b575f90506128c9565b8160018114612831576002811461283b5761286a565b60019150506128c9565b60ff84111561284d5761284c612774565b5b8360020a91508482111561286457612863612774565b5b506128c9565b5060208310610133831016604e8410600b841016171561289f5782820a90508381111561289a57612899612774565b5b6128c9565b6128ac84848460016127ad565b925090508184048111156128c3576128c2612774565b5b81810290505b9392505050565b5f6128da82612568565b91506128e583612684565b92506129127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127ff565b905092915050565b5f61292482612568565b915061292f83612568565b925082820261293d81612568565b9150828204841483151761295457612953612774565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61298f60208361246a565b915061299a8261295b565b602082019050919050565b5f6020820190508181035f8301526129bc81612983565b9050919050565b7f4e6f20746f6b656e7320746f207472616e7366657200000000000000000000005f82015250565b5f6129f760158361246a565b9150612a02826129c3565b602082019050919050565b5f6020820190508181035f830152612a24816129eb565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a5f60178361246a565b9150612a6a82612a2b565b602082019050919050565b5f6020820190508181035f830152612a8c81612a53565b9050919050565b5f81519050612aa18161253e565b92915050565b5f60208284031215612abc57612abb61250a565b5b5f612ac984828501612a93565b91505092915050565b5f604082019050612ae55f8301856126e3565b612af260208301846126e3565b9392505050565b5f819050919050565b5f819050919050565b5f612b25612b20612b1b84612af9565b612b02565b612568565b9050919050565b612b3581612b0b565b82525050565b5f60c082019050612b4e5f8301896126e3565b612b5b602083018861260c565b612b686040830187612b2c565b612b756060830186612b2c565b612b8260808301856126e3565b612b8f60a083018461260c565b979650505050505050565b5f81519050612ba881612571565b92915050565b5f805f60608486031215612bc557612bc461250a565b5b5f612bd286828701612b9a565b9350506020612be386828701612b9a565b9250506040612bf486828701612b9a565b9150509250925092565b5f604082019050612c115f8301856126e3565b612c1e602083018461260c565b9392505050565b612c2e816125d9565b8114612c38575f80fd5b50565b5f81519050612c4981612c25565b92915050565b5f60208284031215612c6457612c6361250a565b5b5f612c7184828501612c3b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cd460248361246a565b9150612cdf82612c7a565b604082019050919050565b5f6020820190508181035f830152612d0181612cc8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d6260228361246a565b9150612d6d82612d08565b604082019050919050565b5f6020820190508181035f830152612d8f81612d56565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612df060258361246a565b9150612dfb82612d96565b604082019050919050565b5f6020820190508181035f830152612e1d81612de4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7e60238361246a565b9150612e8982612e24565b604082019050919050565b5f6020820190508181035f830152612eab81612e72565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f0c60298361246a565b9150612f1782612eb2565b604082019050919050565b5f6020820190508181035f830152612f3981612f00565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d61785f8201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b5f612f9a60298361246a565b9150612fa582612f40565b604082019050919050565b5f6020820190508181035f830152612fc781612f8e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61300260198361246a565b915061300d82612fce565b602082019050919050565b5f6020820190508181035f83015261302f81612ff6565b9050919050565b5f61304082612568565b915061304b83612568565b925082820190508082111561306357613062612774565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61309d601a8361246a565b91506130a882613069565b602082019050919050565b5f6020820190508181035f8301526130ca81613091565b9050919050565b5f6130db82612568565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361310d5761310c612774565b5b600182019050919050565b5f61312282612568565b915061312d83612568565b925082820390508181111561314557613144612774565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131d78161252d565b82525050565b5f6131e883836131ce565b60208301905092915050565b5f602082019050919050565b5f61320a826131a5565b61321481856131af565b935061321f836131bf565b805f5b8381101561324f57815161323688826131dd565b9750613241836131f4565b925050600181019050613222565b5085935050505092915050565b5f60a08201905061326f5f83018861260c565b61327c6020830187612b2c565b818103604083015261328e8186613200565b905061329d60608301856126e3565b6132aa608083018461260c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132eb82612568565b91506132f683612568565b925082613306576133056132b4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61336b60218361246a565b915061337682613311565b604082019050919050565b5f6020820190508181035f8301526133988161335f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133d3601b8361246a565b91506133de8261339f565b602082019050919050565b5f6020820190508181035f830152613400816133c7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122030a2cd861b556f339d204e2c6cc9663197f939366648385993e8507cc9c382a864736f6c63430008140033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb14610394578063acd1f254146103d0578063bf474bed146103fa578063c9567bf914610424578063dd62ed3e1461043a578063ec1f3f631461047657610134565b8063751039fc146102d65780637d1db4a5146102ec5780638da5cb5b146103165780638f9a55c01461034057806395d89b411461036a57610134565b8063313ce567116100f1578063313ce5671461022e5780634c96f0cc1461025857806351bc3c851461026e57806370a0823114610284578063715018a6146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049e565b60405161015991906124ea565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061259b565b6104db565b60405161019591906125f3565b60405180910390f35b3480156101a9575f80fd5b506101b26104f8565b6040516101bf919061261b565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fe565b6040516101e9919061261b565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190612634565b610521565b60405161022591906125f3565b60405180910390f35b348015610239575f80fd5b506102426105f5565b60405161024f919061269f565b60405180910390f35b348015610263575f80fd5b5061026c6105fd565b005b348015610279575f80fd5b5061028261070e565b005b34801561028f575f80fd5b506102aa60048036038101906102a591906126b8565b6107da565b6040516102b7919061261b565b60405180910390f35b3480156102cb575f80fd5b506102d4610820565b005b3480156102e1575f80fd5b506102ea61096e565b005b3480156102f7575f80fd5b50610300610a9d565b60405161030d919061261b565b60405180910390f35b348015610321575f80fd5b5061032a610aa3565b60405161033791906126f2565b60405180910390f35b34801561034b575f80fd5b50610354610aca565b604051610361919061261b565b60405180910390f35b348015610375575f80fd5b5061037e610ad0565b60405161038b91906124ea565b60405180910390f35b34801561039f575f80fd5b506103ba60048036038101906103b5919061259b565b610b0d565b6040516103c791906125f3565b60405180910390f35b3480156103db575f80fd5b506103e4610b2a565b6040516103f1919061261b565b60405180910390f35b348015610405575f80fd5b5061040e610bc5565b60405161041b919061261b565b60405180910390f35b34801561042f575f80fd5b50610438610bcb565b005b348015610445575f80fd5b50610460600480360381019061045b919061270b565b6110ed565b60405161046d919061261b565b60405180910390f35b348015610481575f80fd5b5061049c60048036038101906104979190612749565b61116f565b005b60606040518060400160405280600681526020017f526561646d650000000000000000000000000000000000000000000000000000815250905090565b5f6104ee6104e761128f565b8484611296565b6001905092915050565b60155481565b5f6009600a61050d91906128d0565b631dcd650061051c919061291a565b905090565b5f61052d848484611459565b6105ea8461053961128f565b6105e5856040518060600160405280602881526020016134086028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61059c61128f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4c9092919063ffffffff16565b611296565b600190509392505050565b5f6009905090565b61060561128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610688906129a5565b60405180910390fd5b5f61069b306107da565b90505f81116106df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d690612a0d565b60405180910390fd5b61070b3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611459565b50565b61071661128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610799906129a5565b60405180910390fd5b5f6107ac306107da565b90505f8111156107c0576107bf81611fae565b5b5f4790505f8111156107d6576107d581612219565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082861128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab906129a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61097661128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f9906129a5565b60405180910390fd5b6009600a610a1091906128d0565b631dcd6500610a1f919061291a565b6012819055506009600a610a3391906128d0565b631dcd6500610a42919061291a565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a7791906128d0565b631dcd6500610a86919061291a565b604051610a93919061261b565b60405180910390a1565b60125481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b60606040518060400160405280600481526020017f5245414400000000000000000000000000000000000000000000000000000000815250905090565b5f610b20610b1961128f565b8484611459565b6001905092915050565b5f610b3361128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb6906129a5565b60405180910390fd5b47905090565b60145481565b610bd361128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c56906129a5565b60405180910390fd5b601760149054906101000a900460ff1615610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690612a75565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d4b3060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d3791906128d0565b631dcd6500610d46919061291a565b611296565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd99190612aa7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e839190612aa7565b6040518363ffffffff1660e01b8152600401610ea0929190612ad2565b6020604051808303815f875af1158015610ebc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee09190612aa7565b60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f67306107da565b5f80610f71610aa3565b426040518863ffffffff1660e01b8152600401610f9396959493929190612b3b565b60606040518083038185885af1158015610faf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fd49190612bae565b50505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611074929190612bfe565b6020604051808303815f875af1158015611090573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b49190612c4f565b506001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61117761128f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa906129a5565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661124361128f565b73ffffffffffffffffffffffffffffffffffffffff1614611262575f80fd5b600c5481111580156112765750600d548111155b61127e575f80fd5b80600c8190555080600d8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90612cea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990612d78565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161144c919061261b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114be90612e06565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152c90612e94565b60405180910390fd5b5f8111611577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156e90612f22565b60405180910390fd5b5f611580610aa3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115ee57506115be610aa3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c9c5760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061169a575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806116f1575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80611748575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061179f575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806117f6575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061184d575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806118a4575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156118b1575f9050611935565b6118ed60646118df600e54601154116118cc57600a546118d0565b600c545b8561228190919063ffffffff16565b6122f890919063ffffffff16565b9050601254821115611934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192b90612fb0565b60405180910390fd5b5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119de575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a31575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611aeb57601254821115611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7290613018565b60405180910390fd5b60135482611a88856107da565b611a929190613036565b1115611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca906130b3565b60405180910390fd5b60115f815480929190611ae5906130d1565b91905055505b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b7357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bb757611bb46064611ba6600f5460115411611b9357600b54611b97565b600d545b8561228190919063ffffffff16565b6122f890919063ffffffff16565b90505b5f611bc1306107da565b9050601760159054906101000a900460ff16158015611c2c575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c445750601760169054906101000a900460ff165b8015611c51575060145481115b8015611c605750601054601154115b15611c9a57611c82611c7d84611c7884601554612341565b612341565b611fae565b5f4790505f811115611c9857611c9747612219565b5b505b505b5f811115611d9b57611cf48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d92919061261b565b60405180910390a35b611deb8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123b690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e8e611e4282846123b690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461235990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f3184866123b690919063ffffffff16565b604051611f3e919061261b565b60405180910390a350505050565b5f838311158290611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a91906124ea565b60405180910390fd5b505f8385611fa19190613118565b9050809150509392505050565b6001601760156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611fe557611fe461314b565b5b6040519080825280602002602001820160405280156120135781602001602082028036833780820191505090505b50905030815f8151811061202a57612029613178565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120f29190612aa7565b8160018151811061210657612105613178565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061216c3060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611296565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121ce95949392919061325c565b5f604051808303815f87803b1580156121e5575f80fd5b505af11580156121f7573d5f803e3d5ffd5b50505050505f601760156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561227d573d5f803e3d5ffd5b5050565b5f808303612291575f90506122f2565b5f828461229e919061291a565b90508284826122ad91906132e1565b146122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e490613381565b60405180910390fd5b809150505b92915050565b5f61233983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123ff565b905092915050565b5f81831161234f5782612351565b815b905092915050565b5f8082846123679190613036565b9050838110156123ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a3906133e9565b60405180910390fd5b8091505092915050565b5f6123f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f4c565b905092915050565b5f8083118290612445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243c91906124ea565b60405180910390fd5b505f838561245391906132e1565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561249757808201518184015260208101905061247c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124bc82612460565b6124c6818561246a565b93506124d681856020860161247a565b6124df816124a2565b840191505092915050565b5f6020820190508181035f83015261250281846124b2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125378261250e565b9050919050565b6125478161252d565b8114612551575f80fd5b50565b5f813590506125628161253e565b92915050565b5f819050919050565b61257a81612568565b8114612584575f80fd5b50565b5f8135905061259581612571565b92915050565b5f80604083850312156125b1576125b061250a565b5b5f6125be85828601612554565b92505060206125cf85828601612587565b9150509250929050565b5f8115159050919050565b6125ed816125d9565b82525050565b5f6020820190506126065f8301846125e4565b92915050565b61261581612568565b82525050565b5f60208201905061262e5f83018461260c565b92915050565b5f805f6060848603121561264b5761264a61250a565b5b5f61265886828701612554565b935050602061266986828701612554565b925050604061267a86828701612587565b9150509250925092565b5f60ff82169050919050565b61269981612684565b82525050565b5f6020820190506126b25f830184612690565b92915050565b5f602082840312156126cd576126cc61250a565b5b5f6126da84828501612554565b91505092915050565b6126ec8161252d565b82525050565b5f6020820190506127055f8301846126e3565b92915050565b5f80604083850312156127215761272061250a565b5b5f61272e85828601612554565b925050602061273f85828601612554565b9150509250929050565b5f6020828403121561275e5761275d61250a565b5b5f61276b84828501612587565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127f6578086048111156127d2576127d1612774565b5b60018516156127e15780820291505b80810290506127ef856127a1565b94506127b6565b94509492505050565b5f8261280e57600190506128c9565b8161281b575f90506128c9565b8160018114612831576002811461283b5761286a565b60019150506128c9565b60ff84111561284d5761284c612774565b5b8360020a91508482111561286457612863612774565b5b506128c9565b5060208310610133831016604e8410600b841016171561289f5782820a90508381111561289a57612899612774565b5b6128c9565b6128ac84848460016127ad565b925090508184048111156128c3576128c2612774565b5b81810290505b9392505050565b5f6128da82612568565b91506128e583612684565b92506129127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127ff565b905092915050565b5f61292482612568565b915061292f83612568565b925082820261293d81612568565b9150828204841483151761295457612953612774565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61298f60208361246a565b915061299a8261295b565b602082019050919050565b5f6020820190508181035f8301526129bc81612983565b9050919050565b7f4e6f20746f6b656e7320746f207472616e7366657200000000000000000000005f82015250565b5f6129f760158361246a565b9150612a02826129c3565b602082019050919050565b5f6020820190508181035f830152612a24816129eb565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a5f60178361246a565b9150612a6a82612a2b565b602082019050919050565b5f6020820190508181035f830152612a8c81612a53565b9050919050565b5f81519050612aa18161253e565b92915050565b5f60208284031215612abc57612abb61250a565b5b5f612ac984828501612a93565b91505092915050565b5f604082019050612ae55f8301856126e3565b612af260208301846126e3565b9392505050565b5f819050919050565b5f819050919050565b5f612b25612b20612b1b84612af9565b612b02565b612568565b9050919050565b612b3581612b0b565b82525050565b5f60c082019050612b4e5f8301896126e3565b612b5b602083018861260c565b612b686040830187612b2c565b612b756060830186612b2c565b612b8260808301856126e3565b612b8f60a083018461260c565b979650505050505050565b5f81519050612ba881612571565b92915050565b5f805f60608486031215612bc557612bc461250a565b5b5f612bd286828701612b9a565b9350506020612be386828701612b9a565b9250506040612bf486828701612b9a565b9150509250925092565b5f604082019050612c115f8301856126e3565b612c1e602083018461260c565b9392505050565b612c2e816125d9565b8114612c38575f80fd5b50565b5f81519050612c4981612c25565b92915050565b5f60208284031215612c6457612c6361250a565b5b5f612c7184828501612c3b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cd460248361246a565b9150612cdf82612c7a565b604082019050919050565b5f6020820190508181035f830152612d0181612cc8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d6260228361246a565b9150612d6d82612d08565b604082019050919050565b5f6020820190508181035f830152612d8f81612d56565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612df060258361246a565b9150612dfb82612d96565b604082019050919050565b5f6020820190508181035f830152612e1d81612de4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7e60238361246a565b9150612e8982612e24565b604082019050919050565b5f6020820190508181035f830152612eab81612e72565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f0c60298361246a565b9150612f1782612eb2565b604082019050919050565b5f6020820190508181035f830152612f3981612f00565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865205f6d61785f8201527f5478416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b5f612f9a60298361246a565b9150612fa582612f40565b604082019050919050565b5f6020820190508181035f830152612fc781612f8e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61300260198361246a565b915061300d82612fce565b602082019050919050565b5f6020820190508181035f83015261302f81612ff6565b9050919050565b5f61304082612568565b915061304b83612568565b925082820190508082111561306357613062612774565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61309d601a8361246a565b91506130a882613069565b602082019050919050565b5f6020820190508181035f8301526130ca81613091565b9050919050565b5f6130db82612568565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361310d5761310c612774565b5b600182019050919050565b5f61312282612568565b915061312d83612568565b925082820390508181111561314557613144612774565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131d78161252d565b82525050565b5f6131e883836131ce565b60208301905092915050565b5f602082019050919050565b5f61320a826131a5565b61321481856131af565b935061321f836131bf565b805f5b8381101561324f57815161323688826131dd565b9750613241836131f4565b925050600181019050613222565b5085935050505092915050565b5f60a08201905061326f5f83018861260c565b61327c6020830187612b2c565b818103604083015261328e8186613200565b905061329d60608301856126e3565b6132aa608083018461260c565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132eb82612568565b91506132f683612568565b925082613306576133056132b4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61336b60218361246a565b915061337682613311565b604082019050919050565b5f6020820190508181035f8301526133988161335f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133d3601b8361246a565b91506133de8261339f565b602082019050919050565b5f6020820190508181035f830152613400816133c7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122030a2cd861b556f339d204e2c6cc9663197f939366648385993e8507cc9c382a864736f6c63430008140033

Deployed Bytecode Sourcemap

3778:8796:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6095:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6928:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5046:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6372:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7097:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6281:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12327:244;;;;;;;;;;;;;:::i;:::-;;11889:314;;;;;;;;;;;;;:::i;:::-;;6475:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2859:148;;;;;;;;;;;;;:::i;:::-;;10670:159;;;;;;;;;;;;;:::i;:::-;;4860:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2645:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4920:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6186:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6602:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12211:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4982:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10937:671;;;;;;;;;;;;;:::i;:::-;;6777:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11616:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6095:83;6132:13;6165:5;;;;;;;;;;;;;;;;;6158:12;;6095:83;:::o;6928:161::-;7003:4;7020:39;7029:12;:10;:12::i;:::-;7043:7;7052:6;7020:8;:39::i;:::-;7077:4;7070:11;;6928:161;;;;:::o;5046:52::-;;;;:::o;6372:95::-;6425:7;4677:1;4732:2;:13;;;;:::i;:::-;4720:9;:25;;;;:::i;:::-;6445:14;;6372:95;:::o;7097:313::-;7195:4;7212:36;7222:6;7230:9;7241:6;7212:9;:36::i;:::-;7259:121;7268:6;7276:12;:10;:12::i;:::-;7290:89;7328:6;7290:89;;;;;;;;;;;;;;;;;:11;:19;7302:6;7290:19;;;;;;;;;;;;;;;:33;7310:12;:10;:12::i;:::-;7290:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7259:8;:121::i;:::-;7398:4;7391:11;;7097:313;;;;;:::o;6281:83::-;6322:5;4677:1;6340:16;;6281:83;:::o;12327:244::-;2782:12;:10;:12::i;:::-;2772:22;;:6;;;;;;;;;;:22;;;2764:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12386:20:::1;12409:24;12427:4;12409:9;:24::i;:::-;12386:47;;12467:1;12452:12;:16;12444:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12507:56;12525:4;12532:16;;;;;;;;;;;12550:12;12507:9;:56::i;:::-;12375:196;12327:244::o:0;11889:314::-;2782:12;:10;:12::i;:::-;2772:22;;:6;;;;;;;;;;:22;;;2764:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11941:20:::1;11962:24;11980:4;11962:9;:24::i;:::-;11941:45;;12013:1;12000:12;:14;11997:73;;;12028:30;12045:12;12028:16;:30::i;:::-;11997:73;12080:18;12099:21;12080:40;;12145:1;12134:10;:12;12131:65;;;12160:24;12173:10;12160:12;:24::i;:::-;12131:65;11930:273;;11889:314::o:0;6475:119::-;6541:7;6568:9;:18;6578:7;6568:18;;;;;;;;;;;;;;;;6561:25;;6475:119;;;:::o;2859:148::-;2782:12;:10;:12::i;:::-;2772:22;;:6;;;;;;;;;;:22;;;2764:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2966:1:::1;2929:40;;2950:6;::::0;::::1;;;;;;;;2929:40;;;;;;;;;;;;2997:1;2980:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2859:148::o:0;10670:159::-;2782:12;:10;:12::i;:::-;2772:22;;:6;;;;;;;;;;:22;;;2764:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4677:1:::1;4732:2;:13;;;;:::i;:::-;4720:9;:25;;;;:::i;:::-;10723:12;:22;;;;4677:1;4732:2;:13;;;;:::i;:::-;4720:9;:25;;;;:::i;:::-;10756:14;:22;;;;10794:27;4677:1;4732:2;:13;;;;:::i;:::-;4720:9;:25;;;;:::i;:::-;10794:27;;;;;;:::i;:::-;;;;;;;;10670:159::o:0;4860:53::-;;;;:::o;2645:79::-;2683:7;2710:6;;;;;;;;;;;2703:13;;2645:79;:::o;4920:55::-;;;;:::o;6186:87::-;6225:13;6258:7;;;;;;;;;;;;;;;;;6251:14;;6186:87;:::o;6602:167::-;6680:4;6697:42;6707:12;:10;:12::i;:::-;6721:9;6732:6;6697:9;:42::i;:::-;6757:4;6750:11;;6602:167;;;;:::o;12211:108::-;12266:4;2782:12;:10;:12::i;:::-;2772:22;;:6;;;;;;;;;;:22;;;2764:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12290:21:::1;12283:28;;12211:108:::0;:::o;4982:57::-;;;;:::o;10937:671::-;2782:12;:10;:12::i;:::-;2772:22;;:6;;;;;;;;;;:22;;;2764:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11001:11:::1;;;;;;;;;;;11000:12;10992:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11087:42;11050:15;;:80;;;;;;;;;;;;;;;;;;11141:58;11158:4;11173:15;;;;;;;;;;;4677:1;4732:2;:13;;;;:::i;:::-;4720:9;:25;;;;:::i;:::-;11141:8;:58::i;:::-;11244:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11226:55;;;11290:4;11297:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11226:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11210:13;;:110;;;;;;;;;;;;;;;;;;11331:15;;;;;;;;;;;:31;;;11370:21;11401:4;11407:24;11425:4;11407:9;:24::i;:::-;11432:1;11434::::0;11436:7:::1;:5;:7::i;:::-;11444:15;11331:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11478:13;;;;;;;;;;;11471:29;;;11509:15;;;;;;;;;;;11527:14;11471:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11567:4;11553:11;;:18;;;;;;;;;;;;;;;;;;11596:4;11582:11;;:18;;;;;;;;;;;;;;;;;;10937:671::o:0;6777:143::-;6858:7;6885:11;:18;6897:5;6885:18;;;;;;;;;;;;;;;:27;6904:7;6885:27;;;;;;;;;;;;;;;;6878:34;;6777:143;;;;:::o;11616:228::-;2782:12;:10;:12::i;:::-;2772:22;;:6;;;;;;;;;;:22;;;2764:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11701:10:::1;;;;;;;;;;;11687:24;;:12;:10;:12::i;:::-;:24;;;11679:33;;;::::0;::::1;;11738:12;;11729:7;:21;;:47;;;;;11763:13;;11754:7;:22;;11729:47;11721:56;;;::::0;::::1;;11799:7;11786:12;:20;;;;11829:7;11815:13;:21;;;;11616:228:::0;:::o;400:98::-;453:7;480:10;473:17;;400:98;:::o;7418:335::-;7528:1;7511:19;;:5;:19;;;7503:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7609:1;7590:21;;:7;:21;;;7582:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7691:6;7661:11;:18;7673:5;7661:18;;;;;;;;;;;;;;;:27;7680:7;7661:27;;;;;;;;;;;;;;;:36;;;;7729:7;7713:32;;7722:5;7713:32;;;7738:6;7713:32;;;;;;:::i;:::-;;;;;;;;7418:335;;;:::o;7761:2302::-;7865:1;7849:18;;:4;:18;;;7841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7942:1;7928:16;;:2;:16;;;7920:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8012:1;8003:6;:10;7995:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8070:17;8112:7;:5;:7::i;:::-;8104:15;;:4;:15;;;;:32;;;;;8129:7;:5;:7::i;:::-;8123:13;;:2;:13;;;;8104:32;8100:1607;;;8165:16;;;;;;;;;;;8159:22;;:4;:22;;;:46;;;;8189:16;;;;;;;;;;;8185:20;;:2;:20;;;8159:46;:81;;;;8229:11;;;;;;;;;;;8223:17;;:4;:17;;;8159:81;:105;;;;8248:16;;;;;;;;;;;8244:20;;:2;:20;;;8159:105;:144;;;;8287:16;;;;;;;;;;;8281:22;;:4;:22;;;8159:144;:168;;;;8311:16;;;;;;;;;;;8307:20;;:2;:20;;;8159:168;:208;;;;8350:17;;;;;;;;;;;8344:23;;:4;:23;;;8159:208;:233;;;;8375:17;;;;;;;;;;;8371:21;;:2;:21;;;8159:233;8155:510;;;8424:1;8413:12;;8155:510;;;8478:76;8550:3;8478:67;8500:15;;8490:9;;:25;8489:55;;8530:14;;8489:55;;;8517:12;;8489:55;8478:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8466:88;;8591:12;;8581:6;:22;;8573:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;8155:510;8693:13;;;;;;;;;;;8685:21;;:4;:21;;;:55;;;;;8724:15;;;;;;;;;;;8710:30;;:2;:30;;;;8685:55;:83;;;;;8746:18;:22;8765:2;8746:22;;;;;;;;;;;;;;;;;;;;;;;;;8744:24;8685:83;8681:313;;;8808:12;;8798:6;:22;;8790:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8903:14;;8893:6;8877:13;8887:2;8877:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8869:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8967:9;;:11;;;;;;;;;:::i;:::-;;;;;;8681:313;9019:13;;;;;;;;;;;9013:19;;:2;:19;;;:43;;;;;9051:4;9036:20;;:4;:20;;;;9013:43;9010:174;;;9089:79;9164:3;9089:70;9111:16;;9101:9;;:26;9100:58;;9143:15;;9100:58;;;9129:13;;9100:58;9089:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9077:91;;9010:174;9200:28;9231:24;9249:4;9231:9;:24::i;:::-;9200:55;;9275:6;;;;;;;;;;;9274:7;:30;;;;;9291:13;;;;;;;;;;;9285:19;;:2;:19;;;9274:30;:45;;;;;9308:11;;;;;;;;;;;9274:45;:89;;;;;9346:17;;9323:20;:40;9274:89;:123;;;;;9379:18;;9367:9;;:30;9274:123;9270:426;;;9418:69;9435:51;9439:6;9447:38;9451:20;9473:11;;9447:3;:38::i;:::-;9435:3;:51::i;:::-;9418:16;:69::i;:::-;9506:26;9535:21;9506:50;;9600:1;9579:18;:22;9575:106;;;9626:35;9639:21;9626:12;:35::i;:::-;9575:106;9399:297;9270:426;8138:1569;8100:1607;9732:1;9722:9;:11;9719:161;;;9772:39;9801:9;9772;:24;9790:4;9772:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9747:9;:24;9765:4;9747:24;;;;;;;;;;;;;;;:64;;;;9852:4;9829:39;;9838:4;9829:39;;;9858:9;9829:39;;;;;;:::i;:::-;;;;;;;;9719:161;9906:27;9926:6;9906:9;:15;9916:4;9906:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9890:9;:15;9900:4;9890:15;;;;;;;;;;;;;;;:43;;;;9958:40;9976:21;9987:9;9976:6;:10;;:21;;;;:::i;:::-;9958:9;:13;9968:2;9958:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9944:9;:13;9954:2;9944:13;;;;;;;;;;;;;;;:54;;;;10029:2;10014:41;;10023:4;10014:41;;;10033:21;10044:9;10033:6;:10;;:21;;;;:::i;:::-;10014:41;;;;;;:::i;:::-;;;;;;;;7830:2233;7761:2302;;;:::o;1537:190::-;1623:7;1656:1;1651;:6;;1659:12;1643:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1683:9;1699:1;1695;:5;;;;:::i;:::-;1683:17;;1718:1;1711:8;;;1537:190;;;;;:::o;10179:483::-;5393:4;5384:6;;:13;;;;;;;;;;;;;;;;;;10257:21:::1;10295:1;10281:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10257:40;;10326:4;10308;10313:1;10308:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10352:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10342:4;10347:1;10342:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10385:62;10402:4;10417:15;;;;;;;;;;;10435:11;10385:8;:62::i;:::-;10458:15;;;;;;;;;;;:66;;;10539:11;10565:1;10581:4;10608;10628:15;10458:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10246:416;5429:5:::0;5420:6;;:14;;;;;;;;;;;;;;;;;;10179:483;:::o;10837:92::-;10894:10;;;;;;;;;;;:19;;:27;10914:6;10894:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10837:92;:::o;1735:246::-;1793:7;1822:1;1817;:6;1813:47;;1847:1;1840:8;;;;1813:47;1870:9;1886:1;1882;:5;;;;:::i;:::-;1870:17;;1915:1;1910;1906;:5;;;;:::i;:::-;:10;1898:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1972:1;1965:8;;;1735:246;;;;;:::o;1989:132::-;2047:7;2074:39;2078:1;2081;2074:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2067:46;;1989:132;;;;:::o;10073:98::-;10130:7;10157:1;10155;:3;10154:9;;10162:1;10154:9;;;10160:1;10154:9;10147:16;;10073:98;;;;:::o;1206:179::-;1264:7;1284:9;1300:1;1296;:5;;;;:::i;:::-;1284:17;;1325:1;1320;:6;;1312:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1376:1;1369:8;;;1206:179;;;;:::o;1393:136::-;1451:7;1478:43;1482:1;1485;1478:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1471:50;;1393:136;;;;:::o;2129:189::-;2215:7;2247:1;2243;:5;2250:12;2235:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2274:9;2290:1;2286;:5;;;;:::i;:::-;2274:17;;2309:1;2302:8;;;2129: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:182::-;9425:34;9421:1;9413:6;9409:14;9402:58;9285:182;:::o;9473:366::-;9615:3;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9712:93;9801:3;9712:93;:::i;:::-;9830:2;9825:3;9821:12;9814:19;;9473:366;;;:::o;9845:419::-;10011:4;10049:2;10038:9;10034:18;10026:26;;10098:9;10092:4;10088:20;10084:1;10073:9;10069:17;10062:47;10126:131;10252:4;10126:131;:::i;:::-;10118:139;;9845:419;;;:::o;10270:171::-;10410:23;10406:1;10398:6;10394:14;10387:47;10270:171;:::o;10447:366::-;10589:3;10610:67;10674:2;10669:3;10610:67;:::i;:::-;10603:74;;10686:93;10775:3;10686:93;:::i;:::-;10804:2;10799:3;10795:12;10788:19;;10447:366;;;:::o;10819:419::-;10985:4;11023:2;11012:9;11008:18;11000:26;;11072:9;11066:4;11062:20;11058:1;11047:9;11043:17;11036:47;11100:131;11226:4;11100:131;:::i;:::-;11092:139;;10819:419;;;:::o;11244:173::-;11384:25;11380:1;11372:6;11368:14;11361:49;11244:173;:::o;11423:366::-;11565:3;11586:67;11650:2;11645:3;11586:67;:::i;:::-;11579:74;;11662:93;11751:3;11662:93;:::i;:::-;11780:2;11775:3;11771:12;11764:19;;11423:366;;;:::o;11795:419::-;11961:4;11999:2;11988:9;11984:18;11976:26;;12048:9;12042:4;12038:20;12034:1;12023:9;12019:17;12012:47;12076:131;12202:4;12076:131;:::i;:::-;12068:139;;11795:419;;;:::o;12220:143::-;12277:5;12308:6;12302:13;12293:22;;12324:33;12351:5;12324:33;:::i;:::-;12220:143;;;;:::o;12369:351::-;12439:6;12488:2;12476:9;12467:7;12463:23;12459:32;12456:119;;;12494:79;;:::i;:::-;12456:119;12614:1;12639:64;12695:7;12686:6;12675:9;12671:22;12639:64;:::i;:::-;12629:74;;12585:128;12369:351;;;;:::o;12726:332::-;12847:4;12885:2;12874:9;12870:18;12862:26;;12898:71;12966:1;12955:9;12951:17;12942:6;12898:71;:::i;:::-;12979:72;13047:2;13036:9;13032:18;13023:6;12979:72;:::i;:::-;12726:332;;;;;:::o;13064:85::-;13109:7;13138:5;13127:16;;13064:85;;;:::o;13155:60::-;13183:3;13204:5;13197:12;;13155:60;;;:::o;13221:158::-;13279:9;13312:61;13330:42;13339:32;13365:5;13339:32;:::i;:::-;13330:42;:::i;:::-;13312:61;:::i;:::-;13299:74;;13221:158;;;:::o;13385:147::-;13480:45;13519:5;13480:45;:::i;:::-;13475:3;13468:58;13385:147;;:::o;13538:807::-;13787:4;13825:3;13814:9;13810:19;13802:27;;13839:71;13907:1;13896:9;13892:17;13883:6;13839:71;:::i;:::-;13920:72;13988:2;13977:9;13973:18;13964:6;13920:72;:::i;:::-;14002:80;14078:2;14067:9;14063:18;14054:6;14002:80;:::i;:::-;14092;14168:2;14157:9;14153:18;14144:6;14092:80;:::i;:::-;14182:73;14250:3;14239:9;14235:19;14226:6;14182:73;:::i;:::-;14265;14333:3;14322:9;14318:19;14309:6;14265:73;:::i;:::-;13538:807;;;;;;;;;:::o;14351:143::-;14408:5;14439:6;14433:13;14424:22;;14455:33;14482:5;14455:33;:::i;:::-;14351:143;;;;:::o;14500:663::-;14588:6;14596;14604;14653:2;14641:9;14632:7;14628:23;14624:32;14621:119;;;14659:79;;:::i;:::-;14621:119;14779:1;14804:64;14860:7;14851:6;14840:9;14836:22;14804:64;:::i;:::-;14794:74;;14750:128;14917:2;14943:64;14999:7;14990:6;14979:9;14975:22;14943:64;:::i;:::-;14933:74;;14888:129;15056:2;15082:64;15138:7;15129:6;15118:9;15114:22;15082:64;:::i;:::-;15072:74;;15027:129;14500:663;;;;;:::o;15169:332::-;15290:4;15328:2;15317:9;15313:18;15305:26;;15341:71;15409:1;15398:9;15394:17;15385:6;15341:71;:::i;:::-;15422:72;15490:2;15479:9;15475:18;15466:6;15422:72;:::i;:::-;15169:332;;;;;:::o;15507:116::-;15577:21;15592:5;15577:21;:::i;:::-;15570:5;15567:32;15557:60;;15613:1;15610;15603:12;15557:60;15507:116;:::o;15629:137::-;15683:5;15714:6;15708:13;15699:22;;15730:30;15754:5;15730:30;:::i;:::-;15629:137;;;;:::o;15772:345::-;15839:6;15888:2;15876:9;15867:7;15863:23;15859:32;15856:119;;;15894:79;;:::i;:::-;15856:119;16014:1;16039:61;16092:7;16083:6;16072:9;16068:22;16039:61;:::i;:::-;16029:71;;15985:125;15772:345;;;;:::o;16123:223::-;16263:34;16259:1;16251:6;16247:14;16240:58;16332:6;16327:2;16319:6;16315:15;16308:31;16123:223;:::o;16352:366::-;16494:3;16515:67;16579:2;16574:3;16515:67;:::i;:::-;16508:74;;16591:93;16680:3;16591:93;:::i;:::-;16709:2;16704:3;16700:12;16693:19;;16352:366;;;:::o;16724:419::-;16890:4;16928:2;16917:9;16913:18;16905:26;;16977:9;16971:4;16967:20;16963:1;16952:9;16948:17;16941:47;17005:131;17131:4;17005:131;:::i;:::-;16997:139;;16724:419;;;:::o;17149:221::-;17289:34;17285:1;17277:6;17273:14;17266:58;17358:4;17353:2;17345:6;17341:15;17334:29;17149:221;:::o;17376:366::-;17518:3;17539:67;17603:2;17598:3;17539:67;:::i;:::-;17532:74;;17615:93;17704:3;17615:93;:::i;:::-;17733:2;17728:3;17724:12;17717:19;;17376:366;;;:::o;17748:419::-;17914:4;17952:2;17941:9;17937:18;17929:26;;18001:9;17995:4;17991:20;17987:1;17976:9;17972:17;17965:47;18029:131;18155:4;18029:131;:::i;:::-;18021:139;;17748:419;;;:::o;18173:224::-;18313:34;18309:1;18301:6;18297:14;18290:58;18382:7;18377:2;18369:6;18365:15;18358:32;18173:224;:::o;18403:366::-;18545:3;18566:67;18630:2;18625:3;18566:67;:::i;:::-;18559:74;;18642:93;18731:3;18642:93;:::i;:::-;18760:2;18755:3;18751:12;18744:19;;18403:366;;;:::o;18775:419::-;18941:4;18979:2;18968:9;18964:18;18956:26;;19028:9;19022:4;19018:20;19014:1;19003:9;18999:17;18992:47;19056:131;19182:4;19056:131;:::i;:::-;19048:139;;18775:419;;;:::o;19200:222::-;19340:34;19336:1;19328:6;19324:14;19317:58;19409:5;19404:2;19396:6;19392:15;19385:30;19200:222;:::o;19428:366::-;19570:3;19591:67;19655:2;19650:3;19591:67;:::i;:::-;19584:74;;19667:93;19756:3;19667:93;:::i;:::-;19785:2;19780:3;19776:12;19769:19;;19428:366;;;:::o;19800:419::-;19966:4;20004:2;19993:9;19989:18;19981:26;;20053:9;20047:4;20043:20;20039:1;20028:9;20024:17;20017:47;20081:131;20207:4;20081:131;:::i;:::-;20073:139;;19800:419;;;:::o;20225:228::-;20365:34;20361:1;20353:6;20349:14;20342:58;20434:11;20429:2;20421:6;20417:15;20410:36;20225:228;:::o;20459:366::-;20601:3;20622:67;20686:2;20681:3;20622:67;:::i;:::-;20615:74;;20698:93;20787:3;20698:93;:::i;:::-;20816:2;20811:3;20807:12;20800:19;;20459:366;;;:::o;20831:419::-;20997:4;21035:2;21024:9;21020:18;21012:26;;21084:9;21078:4;21074:20;21070:1;21059:9;21055:17;21048:47;21112:131;21238:4;21112:131;:::i;:::-;21104:139;;20831:419;;;:::o;21256:228::-;21396:34;21392:1;21384:6;21380:14;21373:58;21465:11;21460:2;21452:6;21448:15;21441:36;21256:228;:::o;21490:366::-;21632:3;21653:67;21717:2;21712:3;21653:67;:::i;:::-;21646:74;;21729:93;21818:3;21729:93;:::i;:::-;21847:2;21842:3;21838:12;21831:19;;21490:366;;;:::o;21862:419::-;22028:4;22066:2;22055:9;22051:18;22043:26;;22115:9;22109:4;22105:20;22101:1;22090:9;22086:17;22079:47;22143:131;22269:4;22143:131;:::i;:::-;22135:139;;21862:419;;;:::o;22287:175::-;22427:27;22423:1;22415:6;22411:14;22404:51;22287:175;:::o;22468:366::-;22610:3;22631:67;22695:2;22690:3;22631:67;:::i;:::-;22624:74;;22707:93;22796:3;22707:93;:::i;:::-;22825:2;22820:3;22816:12;22809:19;;22468:366;;;:::o;22840:419::-;23006:4;23044:2;23033:9;23029:18;23021:26;;23093:9;23087:4;23083:20;23079:1;23068:9;23064:17;23057:47;23121:131;23247:4;23121:131;:::i;:::-;23113:139;;22840:419;;;:::o;23265:191::-;23305:3;23324:20;23342:1;23324:20;:::i;:::-;23319:25;;23358:20;23376:1;23358:20;:::i;:::-;23353:25;;23401:1;23398;23394:9;23387:16;;23422:3;23419:1;23416:10;23413:36;;;23429:18;;:::i;:::-;23413:36;23265:191;;;;:::o;23462:176::-;23602:28;23598:1;23590:6;23586:14;23579:52;23462:176;:::o;23644:366::-;23786:3;23807:67;23871:2;23866:3;23807:67;:::i;:::-;23800:74;;23883:93;23972:3;23883:93;:::i;:::-;24001:2;23996:3;23992:12;23985:19;;23644:366;;;:::o;24016:419::-;24182:4;24220:2;24209:9;24205:18;24197:26;;24269:9;24263:4;24259:20;24255:1;24244:9;24240:17;24233:47;24297:131;24423:4;24297:131;:::i;:::-;24289:139;;24016:419;;;:::o;24441:233::-;24480:3;24503:24;24521:5;24503:24;:::i;:::-;24494:33;;24549:66;24542:5;24539:77;24536:103;;24619:18;;:::i;:::-;24536:103;24666:1;24659:5;24655:13;24648:20;;24441:233;;;:::o;24680:194::-;24720:4;24740:20;24758:1;24740:20;:::i;:::-;24735:25;;24774:20;24792:1;24774:20;:::i;:::-;24769:25;;24818:1;24815;24811:9;24803:17;;24842:1;24836:4;24833:11;24830:37;;;24847:18;;:::i;:::-;24830:37;24680:194;;;;:::o;24880:180::-;24928:77;24925:1;24918:88;25025:4;25022:1;25015:15;25049:4;25046:1;25039:15;25066:180;25114:77;25111:1;25104:88;25211:4;25208:1;25201:15;25235:4;25232:1;25225:15;25252:114;25319:6;25353:5;25347:12;25337:22;;25252:114;;;:::o;25372:184::-;25471:11;25505:6;25500:3;25493:19;25545:4;25540:3;25536:14;25521:29;;25372:184;;;;:::o;25562:132::-;25629:4;25652:3;25644:11;;25682:4;25677:3;25673:14;25665:22;;25562:132;;;:::o;25700:108::-;25777:24;25795:5;25777:24;:::i;:::-;25772:3;25765:37;25700:108;;:::o;25814:179::-;25883:10;25904:46;25946:3;25938:6;25904:46;:::i;:::-;25982:4;25977:3;25973:14;25959:28;;25814:179;;;;:::o;25999:113::-;26069:4;26101;26096:3;26092:14;26084:22;;25999:113;;;:::o;26148:732::-;26267:3;26296:54;26344:5;26296:54;:::i;:::-;26366:86;26445:6;26440:3;26366:86;:::i;:::-;26359:93;;26476:56;26526:5;26476:56;:::i;:::-;26555:7;26586:1;26571:284;26596:6;26593:1;26590:13;26571:284;;;26672:6;26666:13;26699:63;26758:3;26743:13;26699:63;:::i;:::-;26692:70;;26785:60;26838:6;26785:60;:::i;:::-;26775:70;;26631:224;26618:1;26615;26611:9;26606:14;;26571:284;;;26575:14;26871:3;26864:10;;26272:608;;;26148:732;;;;:::o;26886:831::-;27149:4;27187:3;27176:9;27172:19;27164:27;;27201:71;27269:1;27258:9;27254:17;27245:6;27201:71;:::i;:::-;27282:80;27358:2;27347:9;27343:18;27334:6;27282:80;:::i;:::-;27409:9;27403:4;27399:20;27394:2;27383:9;27379:18;27372:48;27437:108;27540:4;27531:6;27437:108;:::i;:::-;27429:116;;27555:72;27623:2;27612:9;27608:18;27599:6;27555:72;:::i;:::-;27637:73;27705:3;27694:9;27690:19;27681:6;27637:73;:::i;:::-;26886:831;;;;;;;;:::o;27723:180::-;27771:77;27768:1;27761:88;27868:4;27865:1;27858:15;27892:4;27889:1;27882:15;27909:185;27949:1;27966:20;27984:1;27966:20;:::i;:::-;27961:25;;28000:20;28018:1;28000:20;:::i;:::-;27995:25;;28039:1;28029:35;;28044:18;;:::i;:::-;28029:35;28086:1;28083;28079:9;28074:14;;27909:185;;;;:::o;28100:220::-;28240:34;28236:1;28228:6;28224:14;28217:58;28309:3;28304:2;28296:6;28292:15;28285:28;28100:220;:::o;28326:366::-;28468:3;28489:67;28553:2;28548:3;28489:67;:::i;:::-;28482:74;;28565:93;28654:3;28565:93;:::i;:::-;28683:2;28678:3;28674:12;28667:19;;28326:366;;;:::o;28698:419::-;28864:4;28902:2;28891:9;28887:18;28879:26;;28951:9;28945:4;28941:20;28937:1;28926:9;28922:17;28915:47;28979:131;29105:4;28979:131;:::i;:::-;28971:139;;28698:419;;;:::o;29123:177::-;29263:29;29259:1;29251:6;29247:14;29240:53;29123:177;:::o;29306:366::-;29448:3;29469:67;29533:2;29528:3;29469:67;:::i;:::-;29462:74;;29545:93;29634:3;29545:93;:::i;:::-;29663:2;29658:3;29654:12;29647:19;;29306:366;;;:::o;29678:419::-;29844:4;29882:2;29871:9;29867:18;29859:26;;29931:9;29925:4;29921:20;29917:1;29906:9;29902:17;29895:47;29959:131;30085:4;29959:131;:::i;:::-;29951:139;;29678:419;;;:::o

Swarm Source

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