ETH Price: $1,984.13 (+0.93%)
 

Overview

Max Total Supply

1,000,000,000 USD

Holders

13

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Contract

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSE

/*

https://t.me/USDCoinETH

*/

pragma solidity 0.8.23;

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 Contract is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=21;
    uint256 private _initialSellTax=21;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=4;
    uint256 private _reduceSellTaxAt=21;
    uint256 private _preventSwapBefore=4;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"USD Coin";
    string private constant _symbol = unicode"USD";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 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;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

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

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }



    function removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);

         _transferTax = 0;
        emit TransferTaxUpdated(0);
    }


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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)) * 96 / 100,0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

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

    receive() external payable {}

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

    function manualSend() external {
        require(_msgSender()==_taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function rescueERC20Token(address tokenAddress) external {
        require(msg.sender == _taxWallet, "Only deployer can call this function");
        IERC20 token = IERC20(tokenAddress);
        uint256 balance = token.balanceOf(address(this));
        require(balance > 0, "No tokens to retrieve");

        bool success = token.transfer(_taxWallet, balance);
        require(success, "Token transfer failed");
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"bot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueERC20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601560065560156007555f6008555f6009556004600a556015600b556004600c555f600d555f600e556009600a6200003d9190620005d1565b6301312d006200004e919062000621565b600f556009600a620000619190620005d1565b6301312d0062000072919062000621565b6010556009600a620000859190620005d1565b6298968062000095919062000621565b6011556009600a620000a89190620005d1565b62989680620000b8919062000621565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f6016555f620001086200041160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b46200041160201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002039190620005d1565b633b9aca0062000214919062000621565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200026a6200041860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620003e39190620005d1565b633b9aca00620003f4919062000621565b6040516200040391906200067c565b60405180910390a362000697565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004c957808604811115620004a157620004a06200043f565b5b6001851615620004b15780820291505b8081029050620004c1856200046c565b945062000481565b94509492505050565b5f82620004e35760019050620005b5565b81620004f2575f9050620005b5565b81600181146200050b576002811462000516576200054c565b6001915050620005b5565b60ff8411156200052b576200052a6200043f565b5b8360020a9150848211156200054557620005446200043f565b5b50620005b5565b5060208310610133831016604e8410600b8410161715620005865782820a90508381111562000580576200057f6200043f565b5b620005b5565b62000595848484600162000478565b92509050818404811115620005af57620005ae6200043f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005dd82620005bc565b9150620005ea83620005c5565b9250620006197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004d2565b905092915050565b5f6200062d82620005bc565b91506200063a83620005bc565b92508282026200064a81620005bc565b915082820484148315176200066457620006636200043f565b5b5092915050565b6200067681620005bc565b82525050565b5f602082019050620006915f8301846200066b565b92915050565b6139a980620006a55f395ff3fe60806040526004361061014e575f3560e01c8063715018a6116100b5578063bf474bed1161006e578063bf474bed14610467578063c9567bf914610491578063d34628cc146104a7578063dd62ed3e146104cf578063ec1f3f631461050b578063f42938901461053357610155565b8063715018a61461036d5780637d1db4a5146103835780638da5cb5b146103ad5780638f9a55c0146103d757806395d89b4114610401578063a9059cbb1461042b57610155565b8063313ce56711610107578063313ce5671461027757806331c2d847146102a1578063353f2345146102c957806351bc3c8514610305578063622565891461031b57806370a082311461033157610155565b806306fdde0314610159578063095ea7b3146101835780630a31610f146101bf5780630faee56f146101e757806318160ddd1461021157806323b872dd1461023b57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610549565b60405161017a919061273a565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a491906127f8565b610586565b6040516101b69190612850565b60405180910390f35b3480156101ca575f80fd5b506101e560048036038101906101e09190612869565b6105a3565b005b3480156101f2575f80fd5b506101fb6107d8565b60405161020891906128a3565b60405180910390f35b34801561021c575f80fd5b506102256107de565b60405161023291906128a3565b60405180910390f35b348015610246575f80fd5b50610261600480360381019061025c91906128bc565b610801565b60405161026e9190612850565b60405180910390f35b348015610282575f80fd5b5061028b6108d5565b6040516102989190612927565b60405180910390f35b3480156102ac575f80fd5b506102c760048036038101906102c29190612a80565b6108dd565b005b3480156102d4575f80fd5b506102ef60048036038101906102ea9190612869565b6109fb565b6040516102fc9190612850565b60405180910390f35b348015610310575f80fd5b50610319610a4d565b005b348015610326575f80fd5b5061032f610ae4565b005b34801561033c575f80fd5b5061035760048036038101906103529190612869565b610c51565b60405161036491906128a3565b60405180910390f35b348015610378575f80fd5b50610381610c97565b005b34801561038e575f80fd5b50610397610de5565b6040516103a491906128a3565b60405180910390f35b3480156103b8575f80fd5b506103c1610deb565b6040516103ce9190612ad6565b60405180910390f35b3480156103e2575f80fd5b506103eb610e12565b6040516103f891906128a3565b60405180910390f35b34801561040c575f80fd5b50610415610e18565b604051610422919061273a565b60405180910390f35b348015610436575f80fd5b50610451600480360381019061044c91906127f8565b610e55565b60405161045e9190612850565b60405180910390f35b348015610472575f80fd5b5061047b610e72565b60405161048891906128a3565b60405180910390f35b34801561049c575f80fd5b506104a5610e78565b005b3480156104b2575f80fd5b506104cd60048036038101906104c89190612a80565b6113af565b005b3480156104da575f80fd5b506104f560048036038101906104f09190612aef565b6114ce565b60405161050291906128a3565b60405180910390f35b348015610516575f80fd5b50610531600480360381019061052c9190612b2d565b611550565b005b34801561053e575f80fd5b506105476115dc565b005b60606040518060400160405280600881526020017f55534420436f696e000000000000000000000000000000000000000000000000815250905090565b5f61059961059261164b565b8484611652565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062990612bc8565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106709190612ad6565b602060405180830381865afa15801561068b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af9190612bfa565b90505f81116106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90612c6f565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610750929190612ce8565b6020604051808303815f875af115801561076c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107909190612d39565b9050806107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990612dae565b60405180910390fd5b50505050565b60125481565b5f6009600a6107ed9190612f28565b633b9aca006107fc9190612f72565b905090565b5f61080d848484611815565b6108ca8461081961164b565b6108c58560405180606001604052806028815260200161394c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61087c61164b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219c9092919063ffffffff16565b611652565b600190509392505050565b5f6009905090565b6108e561164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096890612ffd565b60405180910390fd5b5f5b81518110156109f7575f60045f8484815181106109935761099261301b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610973565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a8d61164b565b73ffffffffffffffffffffffffffffffffffffffff1614610aac575f80fd5b5f610ab630610c51565b90505f811115610aca57610ac9816121fe565b5b5f4790505f811115610ae057610adf81612469565b5b5050565b610aec61164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90612ffd565b60405180910390fd5b6009600a610b869190612f28565b633b9aca00610b959190612f72565b600f819055506009600a610ba99190612f28565b633b9aca00610bb89190612f72565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bed9190612f28565b633b9aca00610bfc9190612f72565b604051610c0991906128a3565b60405180910390a15f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610c479190613081565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c9f61164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290612ffd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f5553440000000000000000000000000000000000000000000000000000000000815250905090565b5f610e68610e6161164b565b8484611815565b6001905092915050565b60115481565b610e8061164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390612ffd565b60405180910390fd5b60148054906101000a900460ff1615610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f51906130e4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ff63060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fe29190612f28565b633b9aca00610ff19190612f72565b611652565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611060573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110849190613116565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561110a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112e9190613116565b6040518363ffffffff1660e01b815260040161114b929190613141565b6020604051808303815f875af1158015611167573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118b9190613116565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064606061121630610c51565b6112209190612f72565b61122a9190613195565b5f80611234610deb565b426040518863ffffffff1660e01b8152600401611256969594939291906131c5565b60606040518083038185885af1158015611272573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112979190613224565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611337929190613274565b6020604051808303815f875af1158015611353573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113779190612d39565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6113b761164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90612ffd565b60405180910390fd5b5f5b81518110156114ca57600160045f8484815181106114665761146561301b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611445565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661159061164b565b73ffffffffffffffffffffffffffffffffffffffff16146115af575f80fd5b60085481111580156115c357506009548111155b6115cb575f80fd5b806008819055508060098190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161c61164b565b73ffffffffffffffffffffffffffffffffffffffff161461163b575f80fd5b5f47905061164881612469565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b79061330b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613399565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180891906128a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90613427565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e8906134b5565b60405180910390fd5b5f8111611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90613543565b60405180910390fd5b5f61193c610deb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119aa575061197a610deb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eec5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a4d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611a55575f80fd5b5f600e5403611a9d57611a9a6064611a8c600a54600e5411611a7957600654611a7d565b6008545b856124d190919063ffffffff16565b61254890919063ffffffff16565b90505b5f600e541115611ad257611acf6064611ac1600d54856124d190919063ffffffff16565b61254890919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bce575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cc657600f54821115611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f906135ab565b60405180910390fd5b60105482611c2585610c51565b611c2f91906135c9565b1115611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790613646565b60405180910390fd5b611cac6064611c9e600a54600e5411611c8b57600654611c8f565b6008545b856124d190919063ffffffff16565b61254890919063ffffffff16565b9050600e5f815480929190611cc090613664565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d4e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d9257611d8f6064611d81600b54600e5411611d6e57600754611d72565b6009545b856124d190919063ffffffff16565b61254890919063ffffffff16565b90505b5f611d9c30610c51565b9050601460159054906101000a900460ff16158015611e07575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e1f5750601460169054906101000a900460ff165b8015611e2c575060115481115b8015611e3b5750600c54600e54115b15611eea57601654431115611e52575f6015819055505b600360155410611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e906136f5565b60405180910390fd5b611eb4611eaf84611eaa84601254612591565b612591565b6121fe565b5f4790505f811115611eca57611ec947612469565b5b60155f815480929190611edc90613664565b919050555043601681905550505b505b5f811115611feb57611f448160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125a990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe291906128a3565b60405180910390a35b61203b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461260690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120de612092828461260690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125a990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612181848661260690919063ffffffff16565b60405161218e91906128a3565b60405180910390a350505050565b5f8383111582906121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da919061273a565b60405180910390fd5b505f83856121f19190613713565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561223557612234612944565b5b6040519080825280602002602001820160405280156122635781602001602082028036833780820191505090505b50905030815f8151811061227a5761227961301b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561231e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123429190613116565b816001815181106123565761235561301b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123bc3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611652565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161241e9594939291906137fd565b5f604051808303815f87803b158015612435575f80fd5b505af1158015612447573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124cd573d5f803e3d5ffd5b5050565b5f8083036124e1575f9050612542565b5f82846124ee9190612f72565b90508284826124fd9190613195565b1461253d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612534906138c5565b60405180910390fd5b809150505b92915050565b5f61258983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061264f565b905092915050565b5f81831161259f57826125a1565b815b905092915050565b5f8082846125b791906135c9565b9050838110156125fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f39061392d565b60405180910390fd5b8091505092915050565b5f61264783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061219c565b905092915050565b5f8083118290612695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268c919061273a565b60405180910390fd5b505f83856126a39190613195565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126e75780820151818401526020810190506126cc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61270c826126b0565b61271681856126ba565b93506127268185602086016126ca565b61272f816126f2565b840191505092915050565b5f6020820190508181035f8301526127528184612702565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127948261276b565b9050919050565b6127a48161278a565b81146127ae575f80fd5b50565b5f813590506127bf8161279b565b92915050565b5f819050919050565b6127d7816127c5565b81146127e1575f80fd5b50565b5f813590506127f2816127ce565b92915050565b5f806040838503121561280e5761280d612763565b5b5f61281b858286016127b1565b925050602061282c858286016127e4565b9150509250929050565b5f8115159050919050565b61284a81612836565b82525050565b5f6020820190506128635f830184612841565b92915050565b5f6020828403121561287e5761287d612763565b5b5f61288b848285016127b1565b91505092915050565b61289d816127c5565b82525050565b5f6020820190506128b65f830184612894565b92915050565b5f805f606084860312156128d3576128d2612763565b5b5f6128e0868287016127b1565b93505060206128f1868287016127b1565b9250506040612902868287016127e4565b9150509250925092565b5f60ff82169050919050565b6129218161290c565b82525050565b5f60208201905061293a5f830184612918565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61297a826126f2565b810181811067ffffffffffffffff8211171561299957612998612944565b5b80604052505050565b5f6129ab61275a565b90506129b78282612971565b919050565b5f67ffffffffffffffff8211156129d6576129d5612944565b5b602082029050602081019050919050565b5f80fd5b5f6129fd6129f8846129bc565b6129a2565b90508083825260208201905060208402830185811115612a2057612a1f6129e7565b5b835b81811015612a495780612a3588826127b1565b845260208401935050602081019050612a22565b5050509392505050565b5f82601f830112612a6757612a66612940565b5b8135612a778482602086016129eb565b91505092915050565b5f60208284031215612a9557612a94612763565b5b5f82013567ffffffffffffffff811115612ab257612ab1612767565b5b612abe84828501612a53565b91505092915050565b612ad08161278a565b82525050565b5f602082019050612ae95f830184612ac7565b92915050565b5f8060408385031215612b0557612b04612763565b5b5f612b12858286016127b1565b9250506020612b23858286016127b1565b9150509250929050565b5f60208284031215612b4257612b41612763565b5b5f612b4f848285016127e4565b91505092915050565b7f4f6e6c79206465706c6f7965722063616e2063616c6c20746869732066756e635f8201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b5f612bb26024836126ba565b9150612bbd82612b58565b604082019050919050565b5f6020820190508181035f830152612bdf81612ba6565b9050919050565b5f81519050612bf4816127ce565b92915050565b5f60208284031215612c0f57612c0e612763565b5b5f612c1c84828501612be6565b91505092915050565b7f4e6f20746f6b656e7320746f20726574726965766500000000000000000000005f82015250565b5f612c596015836126ba565b9150612c6482612c25565b602082019050919050565b5f6020820190508181035f830152612c8681612c4d565b9050919050565b5f819050919050565b5f612cb0612cab612ca68461276b565b612c8d565b61276b565b9050919050565b5f612cc182612c96565b9050919050565b5f612cd282612cb7565b9050919050565b612ce281612cc8565b82525050565b5f604082019050612cfb5f830185612cd9565b612d086020830184612894565b9392505050565b612d1881612836565b8114612d22575f80fd5b50565b5f81519050612d3381612d0f565b92915050565b5f60208284031215612d4e57612d4d612763565b5b5f612d5b84828501612d25565b91505092915050565b7f546f6b656e207472616e73666572206661696c656400000000000000000000005f82015250565b5f612d986015836126ba565b9150612da382612d64565b602082019050919050565b5f6020820190508181035f830152612dc581612d8c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612e4e57808604811115612e2a57612e29612dcc565b5b6001851615612e395780820291505b8081029050612e4785612df9565b9450612e0e565b94509492505050565b5f82612e665760019050612f21565b81612e73575f9050612f21565b8160018114612e895760028114612e9357612ec2565b6001915050612f21565b60ff841115612ea557612ea4612dcc565b5b8360020a915084821115612ebc57612ebb612dcc565b5b50612f21565b5060208310610133831016604e8410600b8410161715612ef75782820a905083811115612ef257612ef1612dcc565b5b612f21565b612f048484846001612e05565b92509050818404811115612f1b57612f1a612dcc565b5b81810290505b9392505050565b5f612f32826127c5565b9150612f3d8361290c565b9250612f6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e57565b905092915050565b5f612f7c826127c5565b9150612f87836127c5565b9250828202612f95816127c5565b91508282048414831517612fac57612fab612dcc565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612fe76020836126ba565b9150612ff282612fb3565b602082019050919050565b5f6020820190508181035f83015261301481612fdb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61306b61306661306184613048565b612c8d565b6127c5565b9050919050565b61307b81613051565b82525050565b5f6020820190506130945f830184613072565b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130ce6017836126ba565b91506130d98261309a565b602082019050919050565b5f6020820190508181035f8301526130fb816130c2565b9050919050565b5f815190506131108161279b565b92915050565b5f6020828403121561312b5761312a612763565b5b5f61313884828501613102565b91505092915050565b5f6040820190506131545f830185612ac7565b6131616020830184612ac7565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61319f826127c5565b91506131aa836127c5565b9250826131ba576131b9613168565b5b828204905092915050565b5f60c0820190506131d85f830189612ac7565b6131e56020830188612894565b6131f26040830187613072565b6131ff6060830186613072565b61320c6080830185612ac7565b61321960a0830184612894565b979650505050505050565b5f805f6060848603121561323b5761323a612763565b5b5f61324886828701612be6565b935050602061325986828701612be6565b925050604061326a86828701612be6565b9150509250925092565b5f6040820190506132875f830185612ac7565b6132946020830184612894565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132f56024836126ba565b91506133008261329b565b604082019050919050565b5f6020820190508181035f830152613322816132e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133836022836126ba565b915061338e82613329565b604082019050919050565b5f6020820190508181035f8301526133b081613377565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134116025836126ba565b915061341c826133b7565b604082019050919050565b5f6020820190508181035f83015261343e81613405565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61349f6023836126ba565b91506134aa82613445565b604082019050919050565b5f6020820190508181035f8301526134cc81613493565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61352d6029836126ba565b9150613538826134d3565b604082019050919050565b5f6020820190508181035f83015261355a81613521565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6135956019836126ba565b91506135a082613561565b602082019050919050565b5f6020820190508181035f8301526135c281613589565b9050919050565b5f6135d3826127c5565b91506135de836127c5565b92508282019050808211156135f6576135f5612dcc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613630601a836126ba565b915061363b826135fc565b602082019050919050565b5f6020820190508181035f83015261365d81613624565b9050919050565b5f61366e826127c5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136a05761369f612dcc565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6136df6017836126ba565b91506136ea826136ab565b602082019050919050565b5f6020820190508181035f83015261370c816136d3565b9050919050565b5f61371d826127c5565b9150613728836127c5565b92508282039050818111156137405761373f612dcc565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137788161278a565b82525050565b5f613789838361376f565b60208301905092915050565b5f602082019050919050565b5f6137ab82613746565b6137b58185613750565b93506137c083613760565b805f5b838110156137f05781516137d7888261377e565b97506137e283613795565b9250506001810190506137c3565b5085935050505092915050565b5f60a0820190506138105f830188612894565b61381d6020830187613072565b818103604083015261382f81866137a1565b905061383e6060830185612ac7565b61384b6080830184612894565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138af6021836126ba565b91506138ba82613855565b604082019050919050565b5f6020820190508181035f8301526138dc816138a3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613917601b836126ba565b9150613922826138e3565b602082019050919050565b5f6020820190508181035f8301526139448161390b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220583b0be6afadc80ae07e9e010f251a1e38cd769ba71f3842a55d11ddd1e6a9bc64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c8063715018a6116100b5578063bf474bed1161006e578063bf474bed14610467578063c9567bf914610491578063d34628cc146104a7578063dd62ed3e146104cf578063ec1f3f631461050b578063f42938901461053357610155565b8063715018a61461036d5780637d1db4a5146103835780638da5cb5b146103ad5780638f9a55c0146103d757806395d89b4114610401578063a9059cbb1461042b57610155565b8063313ce56711610107578063313ce5671461027757806331c2d847146102a1578063353f2345146102c957806351bc3c8514610305578063622565891461031b57806370a082311461033157610155565b806306fdde0314610159578063095ea7b3146101835780630a31610f146101bf5780630faee56f146101e757806318160ddd1461021157806323b872dd1461023b57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610549565b60405161017a919061273a565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a491906127f8565b610586565b6040516101b69190612850565b60405180910390f35b3480156101ca575f80fd5b506101e560048036038101906101e09190612869565b6105a3565b005b3480156101f2575f80fd5b506101fb6107d8565b60405161020891906128a3565b60405180910390f35b34801561021c575f80fd5b506102256107de565b60405161023291906128a3565b60405180910390f35b348015610246575f80fd5b50610261600480360381019061025c91906128bc565b610801565b60405161026e9190612850565b60405180910390f35b348015610282575f80fd5b5061028b6108d5565b6040516102989190612927565b60405180910390f35b3480156102ac575f80fd5b506102c760048036038101906102c29190612a80565b6108dd565b005b3480156102d4575f80fd5b506102ef60048036038101906102ea9190612869565b6109fb565b6040516102fc9190612850565b60405180910390f35b348015610310575f80fd5b50610319610a4d565b005b348015610326575f80fd5b5061032f610ae4565b005b34801561033c575f80fd5b5061035760048036038101906103529190612869565b610c51565b60405161036491906128a3565b60405180910390f35b348015610378575f80fd5b50610381610c97565b005b34801561038e575f80fd5b50610397610de5565b6040516103a491906128a3565b60405180910390f35b3480156103b8575f80fd5b506103c1610deb565b6040516103ce9190612ad6565b60405180910390f35b3480156103e2575f80fd5b506103eb610e12565b6040516103f891906128a3565b60405180910390f35b34801561040c575f80fd5b50610415610e18565b604051610422919061273a565b60405180910390f35b348015610436575f80fd5b50610451600480360381019061044c91906127f8565b610e55565b60405161045e9190612850565b60405180910390f35b348015610472575f80fd5b5061047b610e72565b60405161048891906128a3565b60405180910390f35b34801561049c575f80fd5b506104a5610e78565b005b3480156104b2575f80fd5b506104cd60048036038101906104c89190612a80565b6113af565b005b3480156104da575f80fd5b506104f560048036038101906104f09190612aef565b6114ce565b60405161050291906128a3565b60405180910390f35b348015610516575f80fd5b50610531600480360381019061052c9190612b2d565b611550565b005b34801561053e575f80fd5b506105476115dc565b005b60606040518060400160405280600881526020017f55534420436f696e000000000000000000000000000000000000000000000000815250905090565b5f61059961059261164b565b8484611652565b6001905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062990612bc8565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106709190612ad6565b602060405180830381865afa15801561068b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106af9190612bfa565b90505f81116106f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ea90612c6f565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610750929190612ce8565b6020604051808303815f875af115801561076c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107909190612d39565b9050806107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990612dae565b60405180910390fd5b50505050565b60125481565b5f6009600a6107ed9190612f28565b633b9aca006107fc9190612f72565b905090565b5f61080d848484611815565b6108ca8461081961164b565b6108c58560405180606001604052806028815260200161394c6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61087c61164b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219c9092919063ffffffff16565b611652565b600190509392505050565b5f6009905090565b6108e561164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096890612ffd565b60405180910390fd5b5f5b81518110156109f7575f60045f8484815181106109935761099261301b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610973565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a8d61164b565b73ffffffffffffffffffffffffffffffffffffffff1614610aac575f80fd5b5f610ab630610c51565b90505f811115610aca57610ac9816121fe565b5b5f4790505f811115610ae057610adf81612469565b5b5050565b610aec61164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90612ffd565b60405180910390fd5b6009600a610b869190612f28565b633b9aca00610b959190612f72565b600f819055506009600a610ba99190612f28565b633b9aca00610bb89190612f72565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610bed9190612f28565b633b9aca00610bfc9190612f72565b604051610c0991906128a3565b60405180910390a15f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f604051610c479190613081565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c9f61164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290612ffd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f5553440000000000000000000000000000000000000000000000000000000000815250905090565b5f610e68610e6161164b565b8484611815565b6001905092915050565b60115481565b610e8061164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390612ffd565b60405180910390fd5b60148054906101000a900460ff1615610f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f51906130e4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ff63060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fe29190612f28565b633b9aca00610ff19190612f72565b611652565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611060573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110849190613116565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561110a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061112e9190613116565b6040518363ffffffff1660e01b815260040161114b929190613141565b6020604051808303815f875af1158015611167573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118b9190613116565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064606061121630610c51565b6112209190612f72565b61122a9190613195565b5f80611234610deb565b426040518863ffffffff1660e01b8152600401611256969594939291906131c5565b60606040518083038185885af1158015611272573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112979190613224565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611337929190613274565b6020604051808303815f875af1158015611353573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113779190612d39565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6113b761164b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90612ffd565b60405180910390fd5b5f5b81518110156114ca57600160045f8484815181106114665761146561301b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611445565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661159061164b565b73ffffffffffffffffffffffffffffffffffffffff16146115af575f80fd5b60085481111580156115c357506009548111155b6115cb575f80fd5b806008819055508060098190555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161c61164b565b73ffffffffffffffffffffffffffffffffffffffff161461163b575f80fd5b5f47905061164881612469565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b79061330b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590613399565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180891906128a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90613427565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e8906134b5565b60405180910390fd5b5f8111611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90613543565b60405180910390fd5b5f61193c610deb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119aa575061197a610deb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eec5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a4d575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611a55575f80fd5b5f600e5403611a9d57611a9a6064611a8c600a54600e5411611a7957600654611a7d565b6008545b856124d190919063ffffffff16565b61254890919063ffffffff16565b90505b5f600e541115611ad257611acf6064611ac1600d54856124d190919063ffffffff16565b61254890919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bce575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cc657600f54821115611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f906135ab565b60405180910390fd5b60105482611c2585610c51565b611c2f91906135c9565b1115611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6790613646565b60405180910390fd5b611cac6064611c9e600a54600e5411611c8b57600654611c8f565b6008545b856124d190919063ffffffff16565b61254890919063ffffffff16565b9050600e5f815480929190611cc090613664565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d4e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d9257611d8f6064611d81600b54600e5411611d6e57600754611d72565b6009545b856124d190919063ffffffff16565b61254890919063ffffffff16565b90505b5f611d9c30610c51565b9050601460159054906101000a900460ff16158015611e07575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e1f5750601460169054906101000a900460ff165b8015611e2c575060115481115b8015611e3b5750600c54600e54115b15611eea57601654431115611e52575f6015819055505b600360155410611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e906136f5565b60405180910390fd5b611eb4611eaf84611eaa84601254612591565b612591565b6121fe565b5f4790505f811115611eca57611ec947612469565b5b60155f815480929190611edc90613664565b919050555043601681905550505b505b5f811115611feb57611f448160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125a990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe291906128a3565b60405180910390a35b61203b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461260690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120de612092828461260690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125a990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612181848661260690919063ffffffff16565b60405161218e91906128a3565b60405180910390a350505050565b5f8383111582906121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121da919061273a565b60405180910390fd5b505f83856121f19190613713565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561223557612234612944565b5b6040519080825280602002602001820160405280156122635781602001602082028036833780820191505090505b50905030815f8151811061227a5761227961301b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561231e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123429190613116565b816001815181106123565761235561301b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123bc3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611652565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161241e9594939291906137fd565b5f604051808303815f87803b158015612435575f80fd5b505af1158015612447573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124cd573d5f803e3d5ffd5b5050565b5f8083036124e1575f9050612542565b5f82846124ee9190612f72565b90508284826124fd9190613195565b1461253d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612534906138c5565b60405180910390fd5b809150505b92915050565b5f61258983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061264f565b905092915050565b5f81831161259f57826125a1565b815b905092915050565b5f8082846125b791906135c9565b9050838110156125fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f39061392d565b60405180910390fd5b8091505092915050565b5f61264783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061219c565b905092915050565b5f8083118290612695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268c919061273a565b60405180910390fd5b505f83856126a39190613195565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126e75780820151818401526020810190506126cc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61270c826126b0565b61271681856126ba565b93506127268185602086016126ca565b61272f816126f2565b840191505092915050565b5f6020820190508181035f8301526127528184612702565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127948261276b565b9050919050565b6127a48161278a565b81146127ae575f80fd5b50565b5f813590506127bf8161279b565b92915050565b5f819050919050565b6127d7816127c5565b81146127e1575f80fd5b50565b5f813590506127f2816127ce565b92915050565b5f806040838503121561280e5761280d612763565b5b5f61281b858286016127b1565b925050602061282c858286016127e4565b9150509250929050565b5f8115159050919050565b61284a81612836565b82525050565b5f6020820190506128635f830184612841565b92915050565b5f6020828403121561287e5761287d612763565b5b5f61288b848285016127b1565b91505092915050565b61289d816127c5565b82525050565b5f6020820190506128b65f830184612894565b92915050565b5f805f606084860312156128d3576128d2612763565b5b5f6128e0868287016127b1565b93505060206128f1868287016127b1565b9250506040612902868287016127e4565b9150509250925092565b5f60ff82169050919050565b6129218161290c565b82525050565b5f60208201905061293a5f830184612918565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61297a826126f2565b810181811067ffffffffffffffff8211171561299957612998612944565b5b80604052505050565b5f6129ab61275a565b90506129b78282612971565b919050565b5f67ffffffffffffffff8211156129d6576129d5612944565b5b602082029050602081019050919050565b5f80fd5b5f6129fd6129f8846129bc565b6129a2565b90508083825260208201905060208402830185811115612a2057612a1f6129e7565b5b835b81811015612a495780612a3588826127b1565b845260208401935050602081019050612a22565b5050509392505050565b5f82601f830112612a6757612a66612940565b5b8135612a778482602086016129eb565b91505092915050565b5f60208284031215612a9557612a94612763565b5b5f82013567ffffffffffffffff811115612ab257612ab1612767565b5b612abe84828501612a53565b91505092915050565b612ad08161278a565b82525050565b5f602082019050612ae95f830184612ac7565b92915050565b5f8060408385031215612b0557612b04612763565b5b5f612b12858286016127b1565b9250506020612b23858286016127b1565b9150509250929050565b5f60208284031215612b4257612b41612763565b5b5f612b4f848285016127e4565b91505092915050565b7f4f6e6c79206465706c6f7965722063616e2063616c6c20746869732066756e635f8201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b5f612bb26024836126ba565b9150612bbd82612b58565b604082019050919050565b5f6020820190508181035f830152612bdf81612ba6565b9050919050565b5f81519050612bf4816127ce565b92915050565b5f60208284031215612c0f57612c0e612763565b5b5f612c1c84828501612be6565b91505092915050565b7f4e6f20746f6b656e7320746f20726574726965766500000000000000000000005f82015250565b5f612c596015836126ba565b9150612c6482612c25565b602082019050919050565b5f6020820190508181035f830152612c8681612c4d565b9050919050565b5f819050919050565b5f612cb0612cab612ca68461276b565b612c8d565b61276b565b9050919050565b5f612cc182612c96565b9050919050565b5f612cd282612cb7565b9050919050565b612ce281612cc8565b82525050565b5f604082019050612cfb5f830185612cd9565b612d086020830184612894565b9392505050565b612d1881612836565b8114612d22575f80fd5b50565b5f81519050612d3381612d0f565b92915050565b5f60208284031215612d4e57612d4d612763565b5b5f612d5b84828501612d25565b91505092915050565b7f546f6b656e207472616e73666572206661696c656400000000000000000000005f82015250565b5f612d986015836126ba565b9150612da382612d64565b602082019050919050565b5f6020820190508181035f830152612dc581612d8c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612e4e57808604811115612e2a57612e29612dcc565b5b6001851615612e395780820291505b8081029050612e4785612df9565b9450612e0e565b94509492505050565b5f82612e665760019050612f21565b81612e73575f9050612f21565b8160018114612e895760028114612e9357612ec2565b6001915050612f21565b60ff841115612ea557612ea4612dcc565b5b8360020a915084821115612ebc57612ebb612dcc565b5b50612f21565b5060208310610133831016604e8410600b8410161715612ef75782820a905083811115612ef257612ef1612dcc565b5b612f21565b612f048484846001612e05565b92509050818404811115612f1b57612f1a612dcc565b5b81810290505b9392505050565b5f612f32826127c5565b9150612f3d8361290c565b9250612f6a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e57565b905092915050565b5f612f7c826127c5565b9150612f87836127c5565b9250828202612f95816127c5565b91508282048414831517612fac57612fab612dcc565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612fe76020836126ba565b9150612ff282612fb3565b602082019050919050565b5f6020820190508181035f83015261301481612fdb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61306b61306661306184613048565b612c8d565b6127c5565b9050919050565b61307b81613051565b82525050565b5f6020820190506130945f830184613072565b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6130ce6017836126ba565b91506130d98261309a565b602082019050919050565b5f6020820190508181035f8301526130fb816130c2565b9050919050565b5f815190506131108161279b565b92915050565b5f6020828403121561312b5761312a612763565b5b5f61313884828501613102565b91505092915050565b5f6040820190506131545f830185612ac7565b6131616020830184612ac7565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61319f826127c5565b91506131aa836127c5565b9250826131ba576131b9613168565b5b828204905092915050565b5f60c0820190506131d85f830189612ac7565b6131e56020830188612894565b6131f26040830187613072565b6131ff6060830186613072565b61320c6080830185612ac7565b61321960a0830184612894565b979650505050505050565b5f805f6060848603121561323b5761323a612763565b5b5f61324886828701612be6565b935050602061325986828701612be6565b925050604061326a86828701612be6565b9150509250925092565b5f6040820190506132875f830185612ac7565b6132946020830184612894565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132f56024836126ba565b91506133008261329b565b604082019050919050565b5f6020820190508181035f830152613322816132e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133836022836126ba565b915061338e82613329565b604082019050919050565b5f6020820190508181035f8301526133b081613377565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134116025836126ba565b915061341c826133b7565b604082019050919050565b5f6020820190508181035f83015261343e81613405565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61349f6023836126ba565b91506134aa82613445565b604082019050919050565b5f6020820190508181035f8301526134cc81613493565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61352d6029836126ba565b9150613538826134d3565b604082019050919050565b5f6020820190508181035f83015261355a81613521565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6135956019836126ba565b91506135a082613561565b602082019050919050565b5f6020820190508181035f8301526135c281613589565b9050919050565b5f6135d3826127c5565b91506135de836127c5565b92508282019050808211156135f6576135f5612dcc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613630601a836126ba565b915061363b826135fc565b602082019050919050565b5f6020820190508181035f83015261365d81613624565b9050919050565b5f61366e826127c5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136a05761369f612dcc565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6136df6017836126ba565b91506136ea826136ab565b602082019050919050565b5f6020820190508181035f83015261370c816136d3565b9050919050565b5f61371d826127c5565b9150613728836127c5565b92508282039050818111156137405761373f612dcc565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6137788161278a565b82525050565b5f613789838361376f565b60208301905092915050565b5f602082019050919050565b5f6137ab82613746565b6137b58185613750565b93506137c083613760565b805f5b838110156137f05781516137d7888261377e565b97506137e283613795565b9250506001810190506137c3565b5085935050505092915050565b5f60a0820190506138105f830188612894565b61381d6020830187613072565b818103604083015261382f81866137a1565b905061383e6060830185612ac7565b61384b6080830184612894565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6138af6021836126ba565b91506138ba82613855565b604082019050919050565b5f6020820190508181035f8301526138dc816138a3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613917601b836126ba565b9150613922826138e3565b602082019050919050565b5f6020820190508181035f8301526139448161390b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220583b0be6afadc80ae07e9e010f251a1e38cd769ba71f3842a55d11ddd1e6a9bc64736f6c63430008170033

Deployed Bytecode Sourcemap

3518:9409:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5498:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6331:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12499:425;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4643:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5775:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6500:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5684:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10730:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10900:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11948:348;;;;;;;;;;;;;:::i;:::-;;10223:225;;;;;;;;;;;;;:::i;:::-;;5878:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2599:148;;;;;;;;;;;;;:::i;:::-;;4454:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2385:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4515:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5589:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6005:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4578:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10989:682;;;;;;;;;;;;;:::i;:::-;;10558:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6180:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11685:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12304:187;;;;;;;;;;;;;:::i;:::-;;5498:83;5535:13;5568:5;;;;;;;;;;;;;;;;;5561:12;;5498:83;:::o;6331:161::-;6406:4;6423:39;6432:12;:10;:12::i;:::-;6446:7;6455:6;6423:8;:39::i;:::-;6480:4;6473:11;;6331:161;;;;:::o;12499:425::-;12589:10;;;;;;;;;;;12575:24;;:10;:24;;;12567:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12651:12;12673;12651:35;;12697:15;12715:5;:15;;;12739:4;12715:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12697:48;;12774:1;12764:7;:11;12756:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12814:12;12829:5;:14;;;12844:10;;;;;;;;;;;12856:7;12829:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12814:50;;12883:7;12875:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12556:368;;;12499:425;:::o;4643:52::-;;;;:::o;5775:95::-;5828:7;4269:1;4325:2;:13;;;;:::i;:::-;4312:10;:26;;;;:::i;:::-;5848:14;;5775:95;:::o;6500:313::-;6598:4;6615:36;6625:6;6633:9;6644:6;6615:9;:36::i;:::-;6662:121;6671:6;6679:12;:10;:12::i;:::-;6693:89;6731:6;6693:89;;;;;;;;;;;;;;;;;:11;:19;6705:6;6693:19;;;;;;;;;;;;;;;:33;6713:12;:10;:12::i;:::-;6693:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6662:8;:121::i;:::-;6801:4;6794:11;;6500:313;;;;;:::o;5684:83::-;5725:5;4269:1;5743:16;;5684:83;:::o;10730:162::-;2522:12;:10;:12::i;:::-;2512:22;;:6;;;;;;;;;;:22;;;2504:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10803:6:::1;10798:87;10819:6;:13;10815:1;:17;10798:87;;;10870:5;10852:4;:15;10857:6;10864:1;10857:9;;;;;;;;:::i;:::-;;;;;;;;10852:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10834:3;;;;;;;10798:87;;;;10730:162:::0;:::o;10900:81::-;10945:4;10966;:7;10971:1;10966:7;;;;;;;;;;;;;;;;;;;;;;;;;10959:14;;10900:81;;;:::o;11948:348::-;12012:10;;;;;;;;;;;11998:24;;:12;:10;:12::i;:::-;:24;;;11990:33;;;;;;12034:20;12055:24;12073:4;12055:9;:24::i;:::-;12034:45;;12106:1;12093:12;:14;12090:73;;;12121:30;12138:12;12121:16;:30::i;:::-;12090:73;12173:18;12192:21;12173:40;;12238:1;12227:10;:12;12224:65;;;12253:24;12266:10;12253:12;:24::i;:::-;12224:65;11979:317;;11948:348::o;10223:225::-;2522:12;:10;:12::i;:::-;2512:22;;:6;;;;;;;;;;:22;;;2504:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4269:1:::1;4325:2;:13;;;;:::i;:::-;4312:10;:26;;;;:::i;:::-;10275:12;:22;;;;4269:1;4325:2;:13;;;;:::i;:::-;4312:10;:26;;;;:::i;:::-;10308:14;:22;;;;10346:27;4269:1;4325:2;:13;;;;:::i;:::-;4312:10;:26;;;;:::i;:::-;10346:27;;;;;;:::i;:::-;;;;;;;;10402:1;10387:12;:16;;;;10419:21;10438:1;10419:21;;;;;;:::i;:::-;;;;;;;;10223:225::o:0;5878:119::-;5944:7;5971:9;:18;5981:7;5971:18;;;;;;;;;;;;;;;;5964:25;;5878:119;;;:::o;2599:148::-;2522:12;:10;:12::i;:::-;2512:22;;:6;;;;;;;;;;:22;;;2504:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2706:1:::1;2669:40;;2690:6;::::0;::::1;;;;;;;;2669:40;;;;;;;;;;;;2737:1;2720:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2599:148::o:0;4454:54::-;;;;:::o;2385:79::-;2423:7;2450:6;;;;;;;;;;;2443:13;;2385:79;:::o;4515:56::-;;;;:::o;5589:87::-;5628:13;5661:7;;;;;;;;;;;;;;;;;5654:14;;5589:87;:::o;6005:167::-;6083:4;6100:42;6110:12;:10;:12::i;:::-;6124:9;6135:6;6100:9;:42::i;:::-;6160:4;6153:11;;6005:167;;;;:::o;4578:58::-;;;;:::o;10989:682::-;2522:12;:10;:12::i;:::-;2512:22;;:6;;;;;;;;;;:22;;;2504:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11053:11:::1;::::0;::::1;;;;;;;;11052:12;11044:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11139:42;11102:15;;:80;;;;;;;;;;;;;;;;;;11193:58;11210:4;11225:15;;;;;;;;;;;4269:1;4325:2;:13;;;;:::i;:::-;4312:10;:26;;;;:::i;:::-;11193:8;:58::i;:::-;11296:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11278:55;;;11342:4;11349:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11278:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11262:13;;:110;;;;;;;;;;;;;;;;;;11383:15;;;;;;;;;;;:31;;;11422:21;11453:4;11491:3;11486:2;11459:24;11477:4;11459:9;:24::i;:::-;:29;;;;:::i;:::-;:35;;;;:::i;:::-;11495:1;11497::::0;11499:7:::1;:5;:7::i;:::-;11507:15;11383:140;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11541:13;;;;;;;;;;;11534:29;;;11572:15;;;;;;;;;;;11590:14;11534:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11630:4;11616:11;;:18;;;;;;;;;;;;;;;;;;11659:4;11645:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10989:682::o:0;10558:164::-;2522:12;:10;:12::i;:::-;2512:22;;:6;;;;;;;;;;:22;;;2504:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10632:6:::1;10627:88;10648:5;:12;10644:1;:16;10627:88;;;10699:4;10682;:14;10687:5;10693:1;10687:8;;;;;;;;:::i;:::-;;;;;;;;10682:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10662:3;;;;;;;10627:88;;;;10558:164:::0;:::o;6180:143::-;6261:7;6288:11;:18;6300:5;6288:18;;;;;;;;;;;;;;;:27;6307:7;6288:27;;;;;;;;;;;;;;;;6281:34;;6180:143;;;;:::o;11685:218::-;11760:10;;;;;;;;;;;11746:24;;:12;:10;:12::i;:::-;:24;;;11738:33;;;;;;11797:12;;11788:7;:21;;:47;;;;;11822:13;;11813:7;:22;;11788:47;11780:56;;;;;;11858:7;11845:12;:20;;;;11888:7;11874:13;:21;;;;11685:218;:::o;12304:187::-;12368:10;;;;;;;;;;;12354:24;;:12;:10;:12::i;:::-;:24;;;12346:33;;;;;;12390:26;12419:21;12390:50;;12451:32;12464:18;12451:12;:32::i;:::-;12335:156;12304:187::o;140:98::-;193:7;220:10;213:17;;140:98;:::o;6821:335::-;6931:1;6914:19;;:5;:19;;;6906:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7012:1;6993:21;;:7;:21;;;6985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7094:6;7064:11;:18;7076:5;7064:18;;;;;;;;;;;;;;;:27;7083:7;7064:27;;;;;;;;;;;;;;;:36;;;;7132:7;7116:32;;7125:5;7116:32;;;7141:6;7116:32;;;;;;:::i;:::-;;;;;;;;6821:335;;;:::o;7164:2448::-;7268:1;7252:18;;:4;:18;;;7244:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7345:1;7331:16;;:2;:16;;;7323:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7415:1;7406:6;:10;7398:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7473:17;7515:7;:5;:7::i;:::-;7507:15;;:4;:15;;;;:32;;;;;7532:7;:5;:7::i;:::-;7526:13;;:2;:13;;;;7507:32;7503:1753;;;7565:4;:10;7570:4;7565:10;;;;;;;;;;;;;;;;;;;;;;;;;7564:11;:24;;;;;7580:4;:8;7585:2;7580:8;;;;;;;;;;;;;;;;;;;;;;;;;7579:9;7564:24;7556:33;;;;;;7620:1;7609:9;;:12;7606:139;;7653:76;7725:3;7653:67;7675:15;;7665:9;;:25;7664:55;;7705:14;;7664:55;;;7692:12;;7664:55;7653:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7641:88;;7606:139;7772:1;7762:9;;:11;7759:95;;;7805:33;7834:3;7805:24;7816:12;;7805:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7793:45;;7759:95;7882:13;;;;;;;;;;;7874:21;;:4;:21;;;:55;;;;;7913:15;;;;;;;;;;;7899:30;;:2;:30;;;;7874:55;:83;;;;;7935:18;:22;7954:2;7935:22;;;;;;;;;;;;;;;;;;;;;;;;;7933:24;7874:83;7870:420;;;7997:12;;7987:6;:22;;7979:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8092:14;;8082:6;8066:13;8076:2;8066:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8058:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8168:76;8240:3;8168:67;8190:15;;8180:9;;:25;8179:55;;8220:14;;8179:55;;;8207:12;;8179:55;8168:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8156:88;;8263:9;;:11;;;;;;;;;:::i;:::-;;;;;;7870:420;8315:13;;;;;;;;;;;8309:19;;:2;:19;;;:43;;;;;8347:4;8332:20;;:4;:20;;;;8309:43;8306:174;;;8385:79;8460:3;8385:70;8407:16;;8397:9;;:26;8396:58;;8439:15;;8396:58;;;8425:13;;8396:58;8385:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8373:91;;8306:174;8496:28;8527:24;8545:4;8527:9;:24::i;:::-;8496:55;;8571:6;;;;;;;;;;;8570:7;:30;;;;;8587:13;;;;;;;;;;;8581:19;;:2;:19;;;8570:30;:45;;;;;8604:11;;;;;;;;;;;8570:45;:89;;;;;8642:17;;8619:20;:40;8570:89;:123;;;;;8675:18;;8663:9;;:30;8570:123;8566:679;;;8733:13;;8718:12;:28;8714:90;;;8783:1;8771:9;:13;;;;8714:90;8842:1;8830:9;;:13;8822:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8890:69;8907:51;8911:6;8919:38;8923:20;8945:11;;8919:3;:38::i;:::-;8907:3;:51::i;:::-;8890:16;:69::i;:::-;8978:26;9007:21;8978:50;;9072:1;9051:18;:22;9047:106;;;9098:35;9111:21;9098:12;:35::i;:::-;9047:106;9171:9;;:11;;;;;;;;;:::i;:::-;;;;;;9217:12;9201:13;:28;;;;8695:550;8566:679;7541:1715;7503:1753;9281:1;9271:9;:11;9268:161;;;9321:39;9350:9;9321;:24;9339:4;9321:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9296:9;:24;9314:4;9296:24;;;;;;;;;;;;;;;:64;;;;9401:4;9378:39;;9387:4;9378:39;;;9407:9;9378:39;;;;;;:::i;:::-;;;;;;;;9268:161;9455:27;9475:6;9455:9;:15;9465:4;9455:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9439:9;:15;9449:4;9439:15;;;;;;;;;;;;;;;:43;;;;9507:40;9525:21;9536:9;9525:6;:10;;:21;;;;:::i;:::-;9507:9;:13;9517:2;9507:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9493:9;:13;9503:2;9493:13;;;;;;;;;;;;;;;:54;;;;9578:2;9563:41;;9572:4;9563:41;;;9582:21;9593:9;9582:6;:10;;:21;;;;:::i;:::-;9563:41;;;;;;:::i;:::-;;;;;;;;7233:2379;7164:2448;;;:::o;1277:190::-;1363:7;1396:1;1391;:6;;1399:12;1383:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1423:9;1439:1;1435;:5;;;;:::i;:::-;1423:17;;1458:1;1451:8;;;1277:190;;;;;:::o;9728:483::-;5106:4;5097:6;;:13;;;;;;;;;;;;;;;;;;9806:21:::1;9844:1;9830:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9806:40;;9875:4;9857;9862:1;9857:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9901:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9891:4;9896:1;9891:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9934:62;9951:4;9966:15;;;;;;;;;;;9984:11;9934:8;:62::i;:::-;10007:15;;;;;;;;;;;:66;;;10088:11;10114:1;10130:4;10157;10177:15;10007:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9795:416;5142:5:::0;5133:6;;:14;;;;;;;;;;;;;;;;;;9728:483;:::o;10458:92::-;10515:10;;;;;;;;;;;:19;;:27;10535:6;10515:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10458:92;:::o;1475:246::-;1533:7;1562:1;1557;:6;1553:47;;1587:1;1580:8;;;;1553:47;1610:9;1626:1;1622;:5;;;;:::i;:::-;1610:17;;1655:1;1650;1646;:5;;;;:::i;:::-;:10;1638:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1712:1;1705:8;;;1475:246;;;;;:::o;1729:132::-;1787:7;1814:39;1818:1;1821;1814:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1807:46;;1729:132;;;;:::o;9622:98::-;9679:7;9706:1;9704;:3;9703:9;;9711:1;9703:9;;;9709:1;9703:9;9696:16;;9622:98;;;;:::o;946:179::-;1004:7;1024:9;1040:1;1036;:5;;;;:::i;:::-;1024:17;;1065:1;1060;:6;;1052:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1116:1;1109:8;;;946:179;;;;:::o;1133:136::-;1191:7;1218:43;1222:1;1225;1218:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1211:50;;1133:136;;;;:::o;1869:189::-;1955:7;1987:1;1983;:5;1990:12;1975:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2014:9;2030:1;2026;:5;;;;:::i;:::-;2014:17;;2049:1;2042:8;;;1869: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:180;5359:77;5356:1;5349:88;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5497:281;5580:27;5602:4;5580:27;:::i;:::-;5572:6;5568:40;5710:6;5698:10;5695:22;5674:18;5662:10;5659:34;5656:62;5653:88;;;5721:18;;:::i;:::-;5653:88;5761:10;5757:2;5750:22;5540:238;5497:281;;:::o;5784:129::-;5818:6;5845:20;;:::i;:::-;5835:30;;5874:33;5902:4;5894:6;5874:33;:::i;:::-;5784:129;;;:::o;5919:311::-;5996:4;6086:18;6078:6;6075:30;6072:56;;;6108:18;;:::i;:::-;6072:56;6158:4;6150:6;6146:17;6138:25;;6218:4;6212;6208:15;6200:23;;5919:311;;;:::o;6236:117::-;6345:1;6342;6335:12;6376:710;6472:5;6497:81;6513:64;6570:6;6513:64;:::i;:::-;6497:81;:::i;:::-;6488:90;;6598:5;6627:6;6620:5;6613:21;6661:4;6654:5;6650:16;6643:23;;6714:4;6706:6;6702:17;6694:6;6690:30;6743:3;6735:6;6732:15;6729:122;;;6762:79;;:::i;:::-;6729:122;6877:6;6860:220;6894:6;6889:3;6886:15;6860:220;;;6969:3;6998:37;7031:3;7019:10;6998:37;:::i;:::-;6993:3;6986:50;7065:4;7060:3;7056:14;7049:21;;6936:144;6920:4;6915:3;6911:14;6904:21;;6860:220;;;6864:21;6478:608;;6376:710;;;;;:::o;7109:370::-;7180:5;7229:3;7222:4;7214:6;7210:17;7206:27;7196:122;;7237:79;;:::i;:::-;7196:122;7354:6;7341:20;7379:94;7469:3;7461:6;7454:4;7446:6;7442:17;7379:94;:::i;:::-;7370:103;;7186:293;7109:370;;;;:::o;7485:539::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7772:1;7761:9;7757:17;7744:31;7802:18;7794:6;7791:30;7788:117;;;7824:79;;:::i;:::-;7788:117;7929:78;7999:7;7990:6;7979:9;7975:22;7929:78;:::i;:::-;7919:88;;7715:302;7485:539;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:329::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:223::-;9337:34;9333:1;9325:6;9321:14;9314:58;9406:6;9401:2;9393:6;9389:15;9382:31;9197:223;:::o;9426:366::-;9568:3;9589:67;9653:2;9648:3;9589:67;:::i;:::-;9582:74;;9665:93;9754:3;9665:93;:::i;:::-;9783:2;9778:3;9774:12;9767:19;;9426:366;;;:::o;9798:419::-;9964:4;10002:2;9991:9;9987:18;9979:26;;10051:9;10045:4;10041:20;10037:1;10026:9;10022:17;10015:47;10079:131;10205:4;10079:131;:::i;:::-;10071:139;;9798:419;;;:::o;10223:143::-;10280:5;10311:6;10305:13;10296:22;;10327:33;10354:5;10327:33;:::i;:::-;10223:143;;;;:::o;10372:351::-;10442:6;10491:2;10479:9;10470:7;10466:23;10462:32;10459:119;;;10497:79;;:::i;:::-;10459:119;10617:1;10642:64;10698:7;10689:6;10678:9;10674:22;10642:64;:::i;:::-;10632:74;;10588:128;10372:351;;;;:::o;10729:171::-;10869:23;10865:1;10857:6;10853:14;10846:47;10729:171;:::o;10906:366::-;11048:3;11069:67;11133:2;11128:3;11069:67;:::i;:::-;11062:74;;11145:93;11234:3;11145:93;:::i;:::-;11263:2;11258:3;11254:12;11247:19;;10906:366;;;:::o;11278:419::-;11444:4;11482:2;11471:9;11467:18;11459:26;;11531:9;11525:4;11521:20;11517:1;11506:9;11502:17;11495:47;11559:131;11685:4;11559:131;:::i;:::-;11551:139;;11278:419;;;:::o;11703:60::-;11731:3;11752:5;11745:12;;11703:60;;;:::o;11769:142::-;11819:9;11852:53;11870:34;11879:24;11897:5;11879:24;:::i;:::-;11870:34;:::i;:::-;11852:53;:::i;:::-;11839:66;;11769:142;;;:::o;11917:126::-;11967:9;12000:37;12031:5;12000:37;:::i;:::-;11987:50;;11917:126;;;:::o;12049:134::-;12107:9;12140:37;12171:5;12140:37;:::i;:::-;12127:50;;12049:134;;;:::o;12189:147::-;12284:45;12323:5;12284:45;:::i;:::-;12279:3;12272:58;12189:147;;:::o;12342:348::-;12471:4;12509:2;12498:9;12494:18;12486:26;;12522:79;12598:1;12587:9;12583:17;12574:6;12522:79;:::i;:::-;12611:72;12679:2;12668:9;12664:18;12655:6;12611:72;:::i;:::-;12342:348;;;;;:::o;12696:116::-;12766:21;12781:5;12766:21;:::i;:::-;12759:5;12756:32;12746:60;;12802:1;12799;12792:12;12746:60;12696:116;:::o;12818:137::-;12872:5;12903:6;12897:13;12888:22;;12919:30;12943:5;12919:30;:::i;:::-;12818:137;;;;:::o;12961:345::-;13028:6;13077:2;13065:9;13056:7;13052:23;13048:32;13045:119;;;13083:79;;:::i;:::-;13045:119;13203:1;13228:61;13281:7;13272:6;13261:9;13257:22;13228:61;:::i;:::-;13218:71;;13174:125;12961:345;;;;:::o;13312:171::-;13452:23;13448:1;13440:6;13436:14;13429:47;13312:171;:::o;13489:366::-;13631:3;13652:67;13716:2;13711:3;13652:67;:::i;:::-;13645:74;;13728:93;13817:3;13728:93;:::i;:::-;13846:2;13841:3;13837:12;13830:19;;13489:366;;;:::o;13861:419::-;14027:4;14065:2;14054:9;14050:18;14042:26;;14114:9;14108:4;14104:20;14100:1;14089:9;14085:17;14078:47;14142:131;14268:4;14142:131;:::i;:::-;14134:139;;13861:419;;;:::o;14286:180::-;14334:77;14331:1;14324:88;14431:4;14428:1;14421:15;14455:4;14452:1;14445:15;14472:102;14514:8;14561:5;14558:1;14554:13;14533:34;;14472:102;;;:::o;14580:848::-;14641:5;14648:4;14672:6;14663:15;;14696:5;14687:14;;14710:712;14731:1;14721:8;14718:15;14710:712;;;14826:4;14821:3;14817:14;14811:4;14808:24;14805:50;;;14835:18;;:::i;:::-;14805:50;14885:1;14875:8;14871:16;14868:451;;;15300:4;15293:5;15289:16;15280:25;;14868:451;15350:4;15344;15340:15;15332:23;;15380:32;15403:8;15380:32;:::i;:::-;15368:44;;14710:712;;;14580:848;;;;;;;:::o;15434:1073::-;15488:5;15679:8;15669:40;;15700:1;15691:10;;15702:5;;15669:40;15728:4;15718:36;;15745:1;15736:10;;15747:5;;15718:36;15814:4;15862:1;15857:27;;;;15898:1;15893:191;;;;15807:277;;15857:27;15875:1;15866:10;;15877:5;;;15893:191;15938:3;15928:8;15925:17;15922:43;;;15945:18;;:::i;:::-;15922:43;15994:8;15991:1;15987:16;15978:25;;16029:3;16022:5;16019:14;16016:40;;;16036:18;;:::i;:::-;16016:40;16069:5;;;15807:277;;16193:2;16183:8;16180:16;16174:3;16168:4;16165:13;16161:36;16143:2;16133:8;16130:16;16125:2;16119:4;16116:12;16112:35;16096:111;16093:246;;;16249:8;16243:4;16239:19;16230:28;;16284:3;16277:5;16274:14;16271:40;;;16291:18;;:::i;:::-;16271:40;16324:5;;16093:246;16364:42;16402:3;16392:8;16386:4;16383:1;16364:42;:::i;:::-;16349:57;;;;16438:4;16433:3;16429:14;16422:5;16419:25;16416:51;;;16447:18;;:::i;:::-;16416:51;16496:4;16489:5;16485:16;16476:25;;15434:1073;;;;;;:::o;16513:281::-;16571:5;16595:23;16613:4;16595:23;:::i;:::-;16587:31;;16639:25;16655:8;16639:25;:::i;:::-;16627:37;;16683:104;16720:66;16710:8;16704:4;16683:104;:::i;:::-;16674:113;;16513:281;;;;:::o;16800:410::-;16840:7;16863:20;16881:1;16863:20;:::i;:::-;16858:25;;16897:20;16915:1;16897:20;:::i;:::-;16892:25;;16952:1;16949;16945:9;16974:30;16992:11;16974:30;:::i;:::-;16963:41;;17153:1;17144:7;17140:15;17137:1;17134:22;17114:1;17107:9;17087:83;17064:139;;17183:18;;:::i;:::-;17064:139;16848:362;16800:410;;;;:::o;17216:182::-;17356:34;17352:1;17344:6;17340:14;17333:58;17216:182;:::o;17404:366::-;17546:3;17567:67;17631:2;17626:3;17567:67;:::i;:::-;17560:74;;17643:93;17732:3;17643:93;:::i;:::-;17761:2;17756:3;17752:12;17745:19;;17404:366;;;:::o;17776:419::-;17942:4;17980:2;17969:9;17965:18;17957:26;;18029:9;18023:4;18019:20;18015:1;18004:9;18000:17;17993:47;18057:131;18183:4;18057:131;:::i;:::-;18049:139;;17776:419;;;:::o;18201:180::-;18249:77;18246:1;18239:88;18346:4;18343:1;18336:15;18370:4;18367:1;18360:15;18387:85;18432:7;18461:5;18450:16;;18387:85;;;:::o;18478:158::-;18536:9;18569:61;18587:42;18596:32;18622:5;18596:32;:::i;:::-;18587:42;:::i;:::-;18569:61;:::i;:::-;18556:74;;18478:158;;;:::o;18642:147::-;18737:45;18776:5;18737:45;:::i;:::-;18732:3;18725:58;18642:147;;:::o;18795:238::-;18896:4;18934:2;18923:9;18919:18;18911:26;;18947:79;19023:1;19012:9;19008:17;18999:6;18947:79;:::i;:::-;18795:238;;;;:::o;19039:173::-;19179:25;19175:1;19167:6;19163:14;19156:49;19039:173;:::o;19218:366::-;19360:3;19381:67;19445:2;19440:3;19381:67;:::i;:::-;19374:74;;19457:93;19546:3;19457:93;:::i;:::-;19575:2;19570:3;19566:12;19559:19;;19218:366;;;:::o;19590:419::-;19756:4;19794:2;19783:9;19779:18;19771:26;;19843:9;19837:4;19833:20;19829:1;19818:9;19814:17;19807:47;19871:131;19997:4;19871:131;:::i;:::-;19863:139;;19590:419;;;:::o;20015:143::-;20072:5;20103:6;20097:13;20088:22;;20119:33;20146:5;20119:33;:::i;:::-;20015:143;;;;:::o;20164:351::-;20234:6;20283:2;20271:9;20262:7;20258:23;20254:32;20251:119;;;20289:79;;:::i;:::-;20251:119;20409:1;20434:64;20490:7;20481:6;20470:9;20466:22;20434:64;:::i;:::-;20424:74;;20380:128;20164:351;;;;:::o;20521:332::-;20642:4;20680:2;20669:9;20665:18;20657:26;;20693:71;20761:1;20750:9;20746:17;20737:6;20693:71;:::i;:::-;20774:72;20842:2;20831:9;20827:18;20818:6;20774:72;:::i;:::-;20521:332;;;;;:::o;20859:180::-;20907:77;20904:1;20897:88;21004:4;21001:1;20994:15;21028:4;21025:1;21018:15;21045:185;21085:1;21102:20;21120:1;21102:20;:::i;:::-;21097:25;;21136:20;21154:1;21136:20;:::i;:::-;21131:25;;21175:1;21165:35;;21180:18;;:::i;:::-;21165:35;21222:1;21219;21215:9;21210:14;;21045:185;;;;:::o;21236:807::-;21485:4;21523:3;21512:9;21508:19;21500:27;;21537:71;21605:1;21594:9;21590:17;21581:6;21537:71;:::i;:::-;21618:72;21686:2;21675:9;21671:18;21662:6;21618:72;:::i;:::-;21700:80;21776:2;21765:9;21761:18;21752:6;21700:80;:::i;:::-;21790;21866:2;21855:9;21851:18;21842:6;21790:80;:::i;:::-;21880:73;21948:3;21937:9;21933:19;21924:6;21880:73;:::i;:::-;21963;22031:3;22020:9;22016:19;22007:6;21963:73;:::i;:::-;21236:807;;;;;;;;;:::o;22049:663::-;22137:6;22145;22153;22202:2;22190:9;22181:7;22177:23;22173:32;22170:119;;;22208:79;;:::i;:::-;22170:119;22328:1;22353:64;22409:7;22400:6;22389:9;22385:22;22353:64;:::i;:::-;22343:74;;22299:128;22466:2;22492:64;22548:7;22539:6;22528:9;22524:22;22492:64;:::i;:::-;22482:74;;22437:129;22605:2;22631:64;22687:7;22678:6;22667:9;22663:22;22631:64;:::i;:::-;22621:74;;22576:129;22049:663;;;;;:::o;22718:332::-;22839:4;22877:2;22866:9;22862:18;22854:26;;22890:71;22958:1;22947:9;22943:17;22934:6;22890:71;:::i;:::-;22971:72;23039:2;23028:9;23024:18;23015:6;22971:72;:::i;:::-;22718:332;;;;;:::o;23056:223::-;23196:34;23192:1;23184:6;23180:14;23173:58;23265:6;23260:2;23252:6;23248:15;23241:31;23056:223;:::o;23285:366::-;23427:3;23448:67;23512:2;23507:3;23448:67;:::i;:::-;23441:74;;23524:93;23613:3;23524:93;:::i;:::-;23642:2;23637:3;23633:12;23626:19;;23285:366;;;:::o;23657:419::-;23823:4;23861:2;23850:9;23846:18;23838:26;;23910:9;23904:4;23900:20;23896:1;23885:9;23881:17;23874:47;23938:131;24064:4;23938:131;:::i;:::-;23930:139;;23657:419;;;:::o;24082:221::-;24222:34;24218:1;24210:6;24206:14;24199:58;24291:4;24286:2;24278:6;24274:15;24267:29;24082:221;:::o;24309:366::-;24451:3;24472:67;24536:2;24531:3;24472:67;:::i;:::-;24465:74;;24548:93;24637:3;24548:93;:::i;:::-;24666:2;24661:3;24657:12;24650:19;;24309:366;;;:::o;24681:419::-;24847:4;24885:2;24874:9;24870:18;24862:26;;24934:9;24928:4;24924:20;24920:1;24909:9;24905:17;24898:47;24962:131;25088:4;24962:131;:::i;:::-;24954:139;;24681:419;;;:::o;25106:224::-;25246:34;25242:1;25234:6;25230:14;25223:58;25315:7;25310:2;25302:6;25298:15;25291:32;25106:224;:::o;25336:366::-;25478:3;25499:67;25563:2;25558:3;25499:67;:::i;:::-;25492:74;;25575:93;25664:3;25575:93;:::i;:::-;25693:2;25688:3;25684:12;25677:19;;25336:366;;;:::o;25708:419::-;25874:4;25912:2;25901:9;25897:18;25889:26;;25961:9;25955:4;25951:20;25947:1;25936:9;25932:17;25925:47;25989:131;26115:4;25989:131;:::i;:::-;25981:139;;25708:419;;;:::o;26133:222::-;26273:34;26269:1;26261:6;26257:14;26250:58;26342:5;26337:2;26329:6;26325:15;26318:30;26133:222;:::o;26361:366::-;26503:3;26524:67;26588:2;26583:3;26524:67;:::i;:::-;26517:74;;26600:93;26689:3;26600:93;:::i;:::-;26718:2;26713:3;26709:12;26702:19;;26361:366;;;:::o;26733:419::-;26899:4;26937:2;26926:9;26922:18;26914:26;;26986:9;26980:4;26976:20;26972:1;26961:9;26957:17;26950:47;27014:131;27140:4;27014:131;:::i;:::-;27006:139;;26733:419;;;:::o;27158:228::-;27298:34;27294:1;27286:6;27282:14;27275:58;27367:11;27362:2;27354:6;27350:15;27343:36;27158:228;:::o;27392:366::-;27534:3;27555:67;27619:2;27614:3;27555:67;:::i;:::-;27548:74;;27631:93;27720:3;27631:93;:::i;:::-;27749:2;27744:3;27740:12;27733:19;;27392:366;;;:::o;27764:419::-;27930:4;27968:2;27957:9;27953:18;27945:26;;28017:9;28011:4;28007:20;28003:1;27992:9;27988:17;27981:47;28045:131;28171:4;28045:131;:::i;:::-;28037:139;;27764:419;;;:::o;28189:175::-;28329:27;28325:1;28317:6;28313:14;28306:51;28189:175;:::o;28370:366::-;28512:3;28533:67;28597:2;28592:3;28533:67;:::i;:::-;28526:74;;28609:93;28698:3;28609:93;:::i;:::-;28727:2;28722:3;28718:12;28711:19;;28370:366;;;:::o;28742:419::-;28908:4;28946:2;28935:9;28931:18;28923:26;;28995:9;28989:4;28985:20;28981:1;28970:9;28966:17;28959:47;29023:131;29149:4;29023:131;:::i;:::-;29015:139;;28742:419;;;:::o;29167:191::-;29207:3;29226:20;29244:1;29226:20;:::i;:::-;29221:25;;29260:20;29278:1;29260:20;:::i;:::-;29255:25;;29303:1;29300;29296:9;29289:16;;29324:3;29321:1;29318:10;29315:36;;;29331:18;;:::i;:::-;29315:36;29167:191;;;;:::o;29364:176::-;29504:28;29500:1;29492:6;29488:14;29481:52;29364:176;:::o;29546:366::-;29688:3;29709:67;29773:2;29768:3;29709:67;:::i;:::-;29702:74;;29785:93;29874:3;29785:93;:::i;:::-;29903:2;29898:3;29894:12;29887:19;;29546:366;;;:::o;29918:419::-;30084:4;30122:2;30111:9;30107:18;30099:26;;30171:9;30165:4;30161:20;30157:1;30146:9;30142:17;30135:47;30199:131;30325:4;30199:131;:::i;:::-;30191:139;;29918:419;;;:::o;30343:233::-;30382:3;30405:24;30423:5;30405:24;:::i;:::-;30396:33;;30451:66;30444:5;30441:77;30438:103;;30521:18;;:::i;:::-;30438:103;30568:1;30561:5;30557:13;30550:20;;30343:233;;;:::o;30582:173::-;30722:25;30718:1;30710:6;30706:14;30699:49;30582:173;:::o;30761:366::-;30903:3;30924:67;30988:2;30983:3;30924:67;:::i;:::-;30917:74;;31000:93;31089:3;31000:93;:::i;:::-;31118:2;31113:3;31109:12;31102:19;;30761:366;;;:::o;31133:419::-;31299:4;31337:2;31326:9;31322:18;31314:26;;31386:9;31380:4;31376:20;31372:1;31361:9;31357:17;31350:47;31414:131;31540:4;31414:131;:::i;:::-;31406:139;;31133:419;;;:::o;31558:194::-;31598:4;31618:20;31636:1;31618:20;:::i;:::-;31613:25;;31652:20;31670:1;31652:20;:::i;:::-;31647:25;;31696:1;31693;31689:9;31681:17;;31720:1;31714:4;31711:11;31708:37;;;31725:18;;:::i;:::-;31708:37;31558:194;;;;:::o;31758:114::-;31825:6;31859:5;31853:12;31843:22;;31758:114;;;:::o;31878:184::-;31977:11;32011:6;32006:3;31999:19;32051:4;32046:3;32042:14;32027:29;;31878:184;;;;:::o;32068:132::-;32135:4;32158:3;32150:11;;32188:4;32183:3;32179:14;32171:22;;32068:132;;;:::o;32206:108::-;32283:24;32301:5;32283:24;:::i;:::-;32278:3;32271:37;32206:108;;:::o;32320:179::-;32389:10;32410:46;32452:3;32444:6;32410:46;:::i;:::-;32488:4;32483:3;32479:14;32465:28;;32320:179;;;;:::o;32505:113::-;32575:4;32607;32602:3;32598:14;32590:22;;32505:113;;;:::o;32654:732::-;32773:3;32802:54;32850:5;32802:54;:::i;:::-;32872:86;32951:6;32946:3;32872:86;:::i;:::-;32865:93;;32982:56;33032:5;32982:56;:::i;:::-;33061:7;33092:1;33077:284;33102:6;33099:1;33096:13;33077:284;;;33178:6;33172:13;33205:63;33264:3;33249:13;33205:63;:::i;:::-;33198:70;;33291:60;33344:6;33291:60;:::i;:::-;33281:70;;33137:224;33124:1;33121;33117:9;33112:14;;33077:284;;;33081:14;33377:3;33370:10;;32778:608;;;32654:732;;;;:::o;33392:831::-;33655:4;33693:3;33682:9;33678:19;33670:27;;33707:71;33775:1;33764:9;33760:17;33751:6;33707:71;:::i;:::-;33788:80;33864:2;33853:9;33849:18;33840:6;33788:80;:::i;:::-;33915:9;33909:4;33905:20;33900:2;33889:9;33885:18;33878:48;33943:108;34046:4;34037:6;33943:108;:::i;:::-;33935:116;;34061:72;34129:2;34118:9;34114:18;34105:6;34061:72;:::i;:::-;34143:73;34211:3;34200:9;34196:19;34187:6;34143:73;:::i;:::-;33392:831;;;;;;;;:::o;34229:220::-;34369:34;34365:1;34357:6;34353:14;34346:58;34438:3;34433:2;34425:6;34421:15;34414:28;34229:220;:::o;34455:366::-;34597:3;34618:67;34682:2;34677:3;34618:67;:::i;:::-;34611:74;;34694:93;34783:3;34694:93;:::i;:::-;34812:2;34807:3;34803:12;34796:19;;34455:366;;;:::o;34827:419::-;34993:4;35031:2;35020:9;35016:18;35008:26;;35080:9;35074:4;35070:20;35066:1;35055:9;35051:17;35044:47;35108:131;35234:4;35108:131;:::i;:::-;35100:139;;34827:419;;;:::o;35252:177::-;35392:29;35388:1;35380:6;35376:14;35369:53;35252:177;:::o;35435:366::-;35577:3;35598:67;35662:2;35657:3;35598:67;:::i;:::-;35591:74;;35674:93;35763:3;35674:93;:::i;:::-;35792:2;35787:3;35783:12;35776:19;;35435:366;;;:::o;35807:419::-;35973:4;36011:2;36000:9;35996:18;35988:26;;36060:9;36054:4;36050:20;36046:1;36035:9;36031:17;36024:47;36088:131;36214:4;36088:131;:::i;:::-;36080:139;;35807:419;;;:::o

Swarm Source

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