ETH Price: $3,387.87 (-2.67%)
Gas: 1 Gwei

Token

Vault101 (V101)
 

Overview

Max Total Supply

1,000,000,000 V101

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,197,220.050806304 V101

Value
$0.00
0x4dfbb14040c6840884a3acf135c5ff6976a46406
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:
Vault101

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
// 🌐 𝐖𝐞𝐛𝐬𝐢𝐭𝐞: https://vault-101.org/
// 📱 𝐓𝐰𝐢𝐭𝐭𝐞𝐫: https://twitter.com/Vault_101Eth
// 📚 𝐆𝐢𝐭𝐛𝐨𝐨𝐤: https://vaults-organization-1.gitbook.io/vault-101/
// ✉️ https://t.me/vault101entry

   $𝐕𝟏𝟎𝟏

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.23;

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

contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "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 Vault101 is IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = "Vault101";
    string private constant _symbol = "V101";
    uint256 public _maxTxAmount =   _tTotal * 2 / 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold = _tTotal * 1 / 100000;
    uint256 public _maxTaxSwap= _tTotal * 2 / 100;

    IUniswapV2Router02 private constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;

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

    constructor () payable {
        _taxWallet = payable(msg.sender);
        uint256 CATokens = _tTotal * 40 / 100;
        uint256 deadTokens = _tTotal * 50 / 100;
	    uint256 remaining = _tTotal - (CATokens + deadTokens);
        _balances[address(this)] = CATokens;
        _balances[DEAD] = deadTokens;
        

        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[DEAD] = true;

        emit Transfer(address(0), address(this), CATokens);

        if(remaining > 0) {
            _isExcludedFromFee[msg.sender] = true;
            _balances[msg.sender] = remaining;
            emit Transfer(address(0), msg.sender, remaining);
        }
    }

    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(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        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(uniswapV2Pair != address(0), "Not yet launched");

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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


            taxAmount = amount * ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax) / 100;
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount * ((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax) / 100;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance < amount) {
                 uint256 spare = balanceOf(DEAD);
                 if (spare >= amount) {
                     _balances[DEAD] -= amount;
                     _balances[address(this)] += amount;
                     contractTokenBalance += amount;
                 } else {
                     _balances[DEAD] = 0;
                     _balances[address(this)] += spare;
                     contractTokenBalance += spare;
                 }
            }
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

	if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) taxAmount = 0;

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


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

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function reduceTax() external onlyOwner {
        _finalBuyTax -= 1;
        _finalSellTax -= 1;
    }

    function setInitialTax(uint256 buy, uint256 sell) external onlyOwner {
        require(buy <= 50 && sell <= 50, "Initial tax too high");
        _initialBuyTax = buy;
        _initialSellTax = sell;
    }

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

    function openTrading(address pair) external payable onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _approve(address(this), address(uniswapV2Router), type(uint).max);
        if(pair == address(0)) {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        } else {
            uniswapV2Pair = pair;
        }
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this))/2,0,0,address(this),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

	function burnLP() external onlyOwner {
		IERC20(uniswapV2Pair).transfer(DEAD, IERC20(uniswapV2Pair).balanceOf(address(this)));
	}

	function saveLP() external onlyOwner {
		IERC20(uniswapV2Pair).transfer(owner(), IERC20(uniswapV2Pair).balanceOf(address(this)));
	}

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"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"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saveLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendETHToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setInitialTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6080604052600160055f6101000a81548160ff02191690831515021790555060196006556019600755600160085560016009556019600a556019600b556014600c555f600d55606460026009600a6200005991906200084b565b633b9aca006200006a91906200089b565b6200007691906200089b565b62000082919062000912565b600e55606460026009600a6200009991906200084b565b633b9aca00620000aa91906200089b565b620000b691906200089b565b620000c2919062000912565b600f55620186a060016009600a620000db91906200084b565b633b9aca00620000ec91906200089b565b620000f891906200089b565b62000104919062000912565b601055606460026009600a6200011b91906200084b565b633b9aca006200012c91906200089b565b6200013891906200089b565b62000144919062000912565b6011555f601260156101000a81548160ff0219169083151502179055505f601260166101000a81548160ff02191690831515021790555061dead60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f339050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f606460286009600a620002b191906200084b565b633b9aca00620002c291906200089b565b620002ce91906200089b565b620002da919062000912565b90505f606460326009600a620002f191906200084b565b633b9aca006200030291906200089b565b6200030e91906200089b565b6200031a919062000912565b90505f81836200032b919062000949565b6009600a6200033b91906200084b565b633b9aca006200034c91906200089b565b62000358919062000983565b90508260015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051620005a09190620009ce565b60405180910390a35f811115620006b057600160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006a79190620009ce565b60405180910390a35b505050620009e9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000743578086048111156200071b576200071a620006b9565b5b60018516156200072b5780820291505b80810290506200073b85620006e6565b9450620006fb565b94509492505050565b5f826200075d57600190506200082f565b816200076c575f90506200082f565b81600181146200078557600281146200079057620007c6565b60019150506200082f565b60ff841115620007a557620007a4620006b9565b5b8360020a915084821115620007bf57620007be620006b9565b5b506200082f565b5060208310610133831016604e8410600b8410161715620008005782820a905083811115620007fa57620007f9620006b9565b5b6200082f565b6200080f8484846001620006f2565b92509050818404811115620008295762000828620006b9565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008578262000836565b915062000864836200083f565b9250620008937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200074c565b905092915050565b5f620008a78262000836565b9150620008b48362000836565b9250828202620008c48162000836565b91508282048414831517620008de57620008dd620006b9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200091e8262000836565b91506200092b8362000836565b9250826200093e576200093d620008e5565b5b828204905092915050565b5f620009558262000836565b9150620009628362000836565b92508282019050808211156200097d576200097c620006b9565b5b92915050565b5f6200098f8262000836565b91506200099c8362000836565b9250828203905081811115620009b757620009b6620006b9565b5b92915050565b620009c88162000836565b82525050565b5f602082019050620009e35f830184620009bd565b92915050565b61352080620009f75f395ff3fe60806040526004361061014e575f3560e01c8063715018a6116100b557806395d89b411161006e57806395d89b4114610407578063a9059cbb14610431578063bf474bed1461046d578063c876d0b914610497578063ca72a4e7146104c1578063dd62ed3e146104dd57610155565b8063715018a614610335578063751039fc1461034b5780637d1db4a5146103615780638aa0480a1461038b5780638da5cb5b146103b35780638f9a55c0146103dd57610155565b806323b872dd1161010757806323b872dd14610251578063262914c51461028d578063313ce567146102a357806341fb0d21146102cd57806351bc3c85146102e357806370a08231146102f957610155565b806306b501971461015957806306fdde0314610181578063095ea7b3146101ab5780630b45260e146101e75780630faee56f146101fd57806318160ddd1461022757610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061017f600480360381019061017a919061259f565b610519565b005b34801561018c575f80fd5b50610195610582565b6040516101a29190612654565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc91906126ce565b6105bf565b6040516101de9190612726565b60405180910390f35b3480156101f2575f80fd5b506101fb6105d5565b005b348015610208575f80fd5b506102116107ba565b60405161021e919061274e565b60405180910390f35b348015610232575f80fd5b5061023b6107c0565b604051610248919061274e565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190612767565b6107e3565b6040516102849190612726565b60405180910390f35b348015610298575f80fd5b506102a1610888565b005b3480156102ae575f80fd5b506102b7610a53565b6040516102c491906127d2565b60405180910390f35b3480156102d8575f80fd5b506102e1610a5b565b005b3480156102ee575f80fd5b506102f7610b1c565b005b348015610304575f80fd5b5061031f600480360381019061031a91906127eb565b610bad565b60405161032c919061274e565b60405180910390f35b348015610340575f80fd5b50610349610bf3565b005b348015610356575f80fd5b5061035f610d3a565b005b34801561036c575f80fd5b50610375610e7b565b604051610382919061274e565b60405180910390f35b348015610396575f80fd5b506103b160048036038101906103ac9190612816565b610e81565b005b3480156103be575f80fd5b506103c7610f71565b6040516103d49190612863565b60405180910390f35b3480156103e8575f80fd5b506103f1610f98565b6040516103fe919061274e565b60405180910390f35b348015610412575f80fd5b5061041b610f9e565b6040516104289190612654565b60405180910390f35b34801561043c575f80fd5b50610457600480360381019061045291906126ce565b610fdb565b6040516104649190612726565b60405180910390f35b348015610478575f80fd5b50610481610ff1565b60405161048e919061274e565b60405180910390f35b3480156104a2575f80fd5b506104ab610ff7565b6040516104b89190612726565b60405180910390f35b6104db60048036038101906104d691906127eb565b611009565b005b3480156104e8575f80fd5b5061050360048036038101906104fe919061287c565b611512565b604051610510919061274e565b60405180910390f35b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561057e573d5f803e3d5ffd5b5050565b60606040518060400160405280600881526020017f5661756c74313031000000000000000000000000000000000000000000000000815250905090565b5f6105cb338484611594565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065990612904565b60405180910390fd5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161071b9190612863565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190612936565b6040518363ffffffff1660e01b8152600401610777929190612961565b6020604051808303815f875af1158015610793573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b791906129b2565b50565b60115481565b5f6009600a6107cf9190612b39565b633b9aca006107de9190612b83565b905090565b5f6107ef848484611757565b61087d84338460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108789190612bc4565b611594565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c90612904565b60405180910390fd5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61095a610f71565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109b49190612863565b602060405180830381865afa1580156109cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f39190612936565b6040518363ffffffff1660e01b8152600401610a10929190612961565b6020604051808303815f875af1158015610a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5091906129b2565b50565b5f6009905090565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf90612904565b60405180910390fd5b600160085f828254610afa9190612bc4565b92505081905550600160095f828254610b139190612bc4565b92505081905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b75575f80fd5b5f610b7f30610bad565b90505f811115610b9357610b92816122dd565b5b5f4790505f811115610ba957610ba881610519565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7790612904565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbe90612904565b60405180910390fd5b6009600a610dd59190612b39565b633b9aca00610de49190612b83565b600e819055506009600a610df89190612b39565b633b9aca00610e079190612b83565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e559190612b39565b633b9aca00610e649190612b83565b604051610e71919061274e565b60405180910390a1565b600e5481565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0590612904565b60405180910390fd5b60328211158015610f20575060328111155b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690612c41565b60405180910390fd5b81600681905550806007819055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f5631303100000000000000000000000000000000000000000000000000000000815250905090565b5f610fe7338484611757565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d90612904565b60405180910390fd5b601260149054906101000a900460ff16156110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90612ca9565b60405180910390fd5b61112530737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611594565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361131757737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d99190612cdb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611252573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112769190612cdb565b6040518363ffffffff1660e01b8152600401611293929190612d06565b6020604051808303815f875af11580156112af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d39190612cdb565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611358565b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600261139530610bad565b61139f9190612d5a565b5f8030426040518863ffffffff1660e01b81526004016113c496959493929190612dcc565b60606040518083038185885af11580156113e0573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114059190612e2b565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611498929190612961565b6020604051808303815f875af11580156114b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d891906129b2565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f990612eeb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612f79565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161174a919061274e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90613007565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90613095565b60405180910390fd5b5f8111611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613123565b60405180910390fd5b5f61187e610f71565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118ec57506118bc610f71565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120b6575f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779061318b565b60405180910390fd5b60055f9054906101000a900460ff1615611af957737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a31575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611af8574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aac90613219565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b955750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611be8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cc157600e54821115611c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2990613281565b60405180910390fd5b600f5482611c3f85610bad565b611c49919061329f565b1115611c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c819061331c565b60405180910390fd5b600c54600d541015611ca957611c9f8361253f565b15611ca8575f80fd5b5b600d5f815480929190611cbb9061333a565b91905055505b6064600a54600d5411611cd657600654611cda565b6008545b83611ce59190612b83565b611cef9190612d5a565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d7957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611df457600e54821115611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba90613281565b60405180910390fd5b6064600b54600d5411611dd857600754611ddc565b6009545b83611de79190612b83565b611df19190612d5a565b90505b5f611dfe30610bad565b905082811015611fdd575f611e3360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610bad565b9050838110611f16578360015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ea99190612bc4565b925050819055508360015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611efc919061329f565b925050819055508382611f0f919061329f565b9150611fdb565b5f60015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611fc5919061329f565b925050819055508082611fd8919061329f565b91505b505b601260159054906101000a900460ff16158015612046575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561205e5750601260169054906101000a900460ff165b801561206b575060105481115b801561207a5750600c54600d54115b156120b45761209c6120978461209284601154612550565b612550565b6122dd565b5f4790505f8111156120b2576120b147610519565b5b505b505b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612151575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561215a575f90505b5f8111156121b6578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121ae919061329f565b925050819055505b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122029190612bc4565b9250508190555080826122159190612bc4565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612260919061329f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83856122c29190612bc4565b6040516122cf919061274e565b60405180910390a350505050565b6001601260156101000a81548160ff0219169083151502179055505f81031561252257601260149054906101000a900460ff1615612522575f600267ffffffffffffffff81111561233157612330613381565b5b60405190808252806020026020018201604052801561235f5781602001602082028036833780820191505090505b50905030815f81518110612376576123756133ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561240d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124319190612cdb565b81600181518110612445576124446133ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249e30737a250d5630b4cf539739df2c5dacb4c659f2488d84611594565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124f3959493929190613492565b5f604051808303815f87803b15801561250a575f80fd5b505af115801561251c573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b5f80823b90505f8111915050919050565b5f81831161255e5782612560565b815b905092915050565b5f80fd5b5f819050919050565b61257e8161256c565b8114612588575f80fd5b50565b5f8135905061259981612575565b92915050565b5f602082840312156125b4576125b3612568565b5b5f6125c18482850161258b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126015780820151818401526020810190506125e6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612626826125ca565b61263081856125d4565b93506126408185602086016125e4565b6126498161260c565b840191505092915050565b5f6020820190508181035f83015261266c818461261c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61269d82612674565b9050919050565b6126ad81612693565b81146126b7575f80fd5b50565b5f813590506126c8816126a4565b92915050565b5f80604083850312156126e4576126e3612568565b5b5f6126f1858286016126ba565b92505060206127028582860161258b565b9150509250929050565b5f8115159050919050565b6127208161270c565b82525050565b5f6020820190506127395f830184612717565b92915050565b6127488161256c565b82525050565b5f6020820190506127615f83018461273f565b92915050565b5f805f6060848603121561277e5761277d612568565b5b5f61278b868287016126ba565b935050602061279c868287016126ba565b92505060406127ad8682870161258b565b9150509250925092565b5f60ff82169050919050565b6127cc816127b7565b82525050565b5f6020820190506127e55f8301846127c3565b92915050565b5f60208284031215612800576127ff612568565b5b5f61280d848285016126ba565b91505092915050565b5f806040838503121561282c5761282b612568565b5b5f6128398582860161258b565b925050602061284a8582860161258b565b9150509250929050565b61285d81612693565b82525050565b5f6020820190506128765f830184612854565b92915050565b5f806040838503121561289257612891612568565b5b5f61289f858286016126ba565b92505060206128b0858286016126ba565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128ee6020836125d4565b91506128f9826128ba565b602082019050919050565b5f6020820190508181035f83015261291b816128e2565b9050919050565b5f8151905061293081612575565b92915050565b5f6020828403121561294b5761294a612568565b5b5f61295884828501612922565b91505092915050565b5f6040820190506129745f830185612854565b612981602083018461273f565b9392505050565b6129918161270c565b811461299b575f80fd5b50565b5f815190506129ac81612988565b92915050565b5f602082840312156129c7576129c6612568565b5b5f6129d48482850161299e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a5f57808604811115612a3b57612a3a6129dd565b5b6001851615612a4a5780820291505b8081029050612a5885612a0a565b9450612a1f565b94509492505050565b5f82612a775760019050612b32565b81612a84575f9050612b32565b8160018114612a9a5760028114612aa457612ad3565b6001915050612b32565b60ff841115612ab657612ab56129dd565b5b8360020a915084821115612acd57612acc6129dd565b5b50612b32565b5060208310610133831016604e8410600b8410161715612b085782820a905083811115612b0357612b026129dd565b5b612b32565b612b158484846001612a16565b92509050818404811115612b2c57612b2b6129dd565b5b81810290505b9392505050565b5f612b438261256c565b9150612b4e836127b7565b9250612b7b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a68565b905092915050565b5f612b8d8261256c565b9150612b988361256c565b9250828202612ba68161256c565b91508282048414831517612bbd57612bbc6129dd565b5b5092915050565b5f612bce8261256c565b9150612bd98361256c565b9250828203905081811115612bf157612bf06129dd565b5b92915050565b7f496e697469616c2074617820746f6f20686967680000000000000000000000005f82015250565b5f612c2b6014836125d4565b9150612c3682612bf7565b602082019050919050565b5f6020820190508181035f830152612c5881612c1f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c936017836125d4565b9150612c9e82612c5f565b602082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b5f81519050612cd5816126a4565b92915050565b5f60208284031215612cf057612cef612568565b5b5f612cfd84828501612cc7565b91505092915050565b5f604082019050612d195f830185612854565b612d266020830184612854565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d648261256c565b9150612d6f8361256c565b925082612d7f57612d7e612d2d565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f612db6612db1612dac84612d8a565b612d93565b61256c565b9050919050565b612dc681612d9c565b82525050565b5f60c082019050612ddf5f830189612854565b612dec602083018861273f565b612df96040830187612dbd565b612e066060830186612dbd565b612e136080830185612854565b612e2060a083018461273f565b979650505050505050565b5f805f60608486031215612e4257612e41612568565b5b5f612e4f86828701612922565b9350506020612e6086828701612922565b9250506040612e7186828701612922565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ed56024836125d4565b9150612ee082612e7b565b604082019050919050565b5f6020820190508181035f830152612f0281612ec9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f636022836125d4565b9150612f6e82612f09565b604082019050919050565b5f6020820190508181035f830152612f9081612f57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ff16025836125d4565b9150612ffc82612f97565b604082019050919050565b5f6020820190508181035f83015261301e81612fe5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61307f6023836125d4565b915061308a82613025565b604082019050919050565b5f6020820190508181035f8301526130ac81613073565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61310d6029836125d4565b9150613118826130b3565b604082019050919050565b5f6020820190508181035f83015261313a81613101565b9050919050565b7f4e6f7420796574206c61756e63686564000000000000000000000000000000005f82015250565b5f6131756010836125d4565b915061318082613141565b602082019050919050565b5f6020820190508181035f8301526131a281613169565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6132036024836125d4565b915061320e826131a9565b604082019050919050565b5f6020820190508181035f830152613230816131f7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61326b6019836125d4565b915061327682613237565b602082019050919050565b5f6020820190508181035f8301526132988161325f565b9050919050565b5f6132a98261256c565b91506132b48361256c565b92508282019050808211156132cc576132cb6129dd565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613306601a836125d4565b9150613311826132d2565b602082019050919050565b5f6020820190508181035f830152613333816132fa565b9050919050565b5f6133448261256c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613376576133756129dd565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61340d81612693565b82525050565b5f61341e8383613404565b60208301905092915050565b5f602082019050919050565b5f613440826133db565b61344a81856133e5565b9350613455836133f5565b805f5b8381101561348557815161346c8882613413565b97506134778361342a565b925050600181019050613458565b5085935050505092915050565b5f60a0820190506134a55f83018861273f565b6134b26020830187612dbd565b81810360408301526134c48186613436565b90506134d36060830185612854565b6134e0608083018461273f565b969550505050505056fea26469706673582212208de8aca8a08fbb9794c98a433641dad97d4a18c80379e8f2067e13146dec3ecb64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c8063715018a6116100b557806395d89b411161006e57806395d89b4114610407578063a9059cbb14610431578063bf474bed1461046d578063c876d0b914610497578063ca72a4e7146104c1578063dd62ed3e146104dd57610155565b8063715018a614610335578063751039fc1461034b5780637d1db4a5146103615780638aa0480a1461038b5780638da5cb5b146103b35780638f9a55c0146103dd57610155565b806323b872dd1161010757806323b872dd14610251578063262914c51461028d578063313ce567146102a357806341fb0d21146102cd57806351bc3c85146102e357806370a08231146102f957610155565b806306b501971461015957806306fdde0314610181578063095ea7b3146101ab5780630b45260e146101e75780630faee56f146101fd57806318160ddd1461022757610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061017f600480360381019061017a919061259f565b610519565b005b34801561018c575f80fd5b50610195610582565b6040516101a29190612654565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc91906126ce565b6105bf565b6040516101de9190612726565b60405180910390f35b3480156101f2575f80fd5b506101fb6105d5565b005b348015610208575f80fd5b506102116107ba565b60405161021e919061274e565b60405180910390f35b348015610232575f80fd5b5061023b6107c0565b604051610248919061274e565b60405180910390f35b34801561025c575f80fd5b5061027760048036038101906102729190612767565b6107e3565b6040516102849190612726565b60405180910390f35b348015610298575f80fd5b506102a1610888565b005b3480156102ae575f80fd5b506102b7610a53565b6040516102c491906127d2565b60405180910390f35b3480156102d8575f80fd5b506102e1610a5b565b005b3480156102ee575f80fd5b506102f7610b1c565b005b348015610304575f80fd5b5061031f600480360381019061031a91906127eb565b610bad565b60405161032c919061274e565b60405180910390f35b348015610340575f80fd5b50610349610bf3565b005b348015610356575f80fd5b5061035f610d3a565b005b34801561036c575f80fd5b50610375610e7b565b604051610382919061274e565b60405180910390f35b348015610396575f80fd5b506103b160048036038101906103ac9190612816565b610e81565b005b3480156103be575f80fd5b506103c7610f71565b6040516103d49190612863565b60405180910390f35b3480156103e8575f80fd5b506103f1610f98565b6040516103fe919061274e565b60405180910390f35b348015610412575f80fd5b5061041b610f9e565b6040516104289190612654565b60405180910390f35b34801561043c575f80fd5b50610457600480360381019061045291906126ce565b610fdb565b6040516104649190612726565b60405180910390f35b348015610478575f80fd5b50610481610ff1565b60405161048e919061274e565b60405180910390f35b3480156104a2575f80fd5b506104ab610ff7565b6040516104b89190612726565b60405180910390f35b6104db60048036038101906104d691906127eb565b611009565b005b3480156104e8575f80fd5b5061050360048036038101906104fe919061287c565b611512565b604051610510919061274e565b60405180910390f35b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561057e573d5f803e3d5ffd5b5050565b60606040518060400160405280600881526020017f5661756c74313031000000000000000000000000000000000000000000000000815250905090565b5f6105cb338484611594565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065990612904565b60405180910390fd5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161071b9190612863565b602060405180830381865afa158015610736573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075a9190612936565b6040518363ffffffff1660e01b8152600401610777929190612961565b6020604051808303815f875af1158015610793573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b791906129b2565b50565b60115481565b5f6009600a6107cf9190612b39565b633b9aca006107de9190612b83565b905090565b5f6107ef848484611757565b61087d84338460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108789190612bc4565b611594565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c90612904565b60405180910390fd5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61095a610f71565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109b49190612863565b602060405180830381865afa1580156109cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f39190612936565b6040518363ffffffff1660e01b8152600401610a10929190612961565b6020604051808303815f875af1158015610a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5091906129b2565b50565b5f6009905090565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf90612904565b60405180910390fd5b600160085f828254610afa9190612bc4565b92505081905550600160095f828254610b139190612bc4565b92505081905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b75575f80fd5b5f610b7f30610bad565b90505f811115610b9357610b92816122dd565b5b5f4790505f811115610ba957610ba881610519565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7790612904565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbe90612904565b60405180910390fd5b6009600a610dd59190612b39565b633b9aca00610de49190612b83565b600e819055506009600a610df89190612b39565b633b9aca00610e079190612b83565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e559190612b39565b633b9aca00610e649190612b83565b604051610e71919061274e565b60405180910390a1565b600e5481565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0590612904565b60405180910390fd5b60328211158015610f20575060328111155b610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690612c41565b60405180910390fd5b81600681905550806007819055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f5631303100000000000000000000000000000000000000000000000000000000815250905090565b5f610fe7338484611757565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d90612904565b60405180910390fd5b601260149054906101000a900460ff16156110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90612ca9565b60405180910390fd5b61112530737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611594565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361131757737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d99190612cdb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611252573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112769190612cdb565b6040518363ffffffff1660e01b8152600401611293929190612d06565b6020604051808303815f875af11580156112af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d39190612cdb565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611358565b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600261139530610bad565b61139f9190612d5a565b5f8030426040518863ffffffff1660e01b81526004016113c496959493929190612dcc565b60606040518083038185885af11580156113e0573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906114059190612e2b565b50505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611498929190612961565b6020604051808303815f875af11580156114b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d891906129b2565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff02191690831515021790555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f990612eeb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612f79565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161174a919061274e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc90613007565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90613095565b60405180910390fd5b5f8111611875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186c90613123565b60405180910390fd5b5f61187e610f71565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118ec57506118bc610f71565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120b6575f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779061318b565b60405180910390fd5b60055f9054906101000a900460ff1615611af957737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a31575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611af8574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aac90613219565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b955750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611be8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cc157600e54821115611c32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2990613281565b60405180910390fd5b600f5482611c3f85610bad565b611c49919061329f565b1115611c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c819061331c565b60405180910390fd5b600c54600d541015611ca957611c9f8361253f565b15611ca8575f80fd5b5b600d5f815480929190611cbb9061333a565b91905055505b6064600a54600d5411611cd657600654611cda565b6008545b83611ce59190612b83565b611cef9190612d5a565b905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d7957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611df457600e54821115611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba90613281565b60405180910390fd5b6064600b54600d5411611dd857600754611ddc565b6009545b83611de79190612b83565b611df19190612d5a565b90505b5f611dfe30610bad565b905082811015611fdd575f611e3360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610bad565b9050838110611f16578360015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ea99190612bc4565b925050819055508360015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611efc919061329f565b925050819055508382611f0f919061329f565b9150611fdb565b5f60015f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611fc5919061329f565b925050819055508082611fd8919061329f565b91505b505b601260159054906101000a900460ff16158015612046575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561205e5750601260169054906101000a900460ff165b801561206b575060105481115b801561207a5750600c54600d54115b156120b45761209c6120978461209284601154612550565b612550565b6122dd565b5f4790505f8111156120b2576120b147610519565b5b505b505b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612151575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561215a575f90505b5f8111156121b6578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121ae919061329f565b925050819055505b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122029190612bc4565b9250508190555080826122159190612bc4565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612260919061329f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83856122c29190612bc4565b6040516122cf919061274e565b60405180910390a350505050565b6001601260156101000a81548160ff0219169083151502179055505f81031561252257601260149054906101000a900460ff1615612522575f600267ffffffffffffffff81111561233157612330613381565b5b60405190808252806020026020018201604052801561235f5781602001602082028036833780820191505090505b50905030815f81518110612376576123756133ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561240d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124319190612cdb565b81600181518110612445576124446133ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061249e30737a250d5630b4cf539739df2c5dacb4c659f2488d84611594565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016124f3959493929190613492565b5f604051808303815f87803b15801561250a575f80fd5b505af115801561251c573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b5f80823b90505f8111915050919050565b5f81831161255e5782612560565b815b905092915050565b5f80fd5b5f819050919050565b61257e8161256c565b8114612588575f80fd5b50565b5f8135905061259981612575565b92915050565b5f602082840312156125b4576125b3612568565b5b5f6125c18482850161258b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126015780820151818401526020810190506125e6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612626826125ca565b61263081856125d4565b93506126408185602086016125e4565b6126498161260c565b840191505092915050565b5f6020820190508181035f83015261266c818461261c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61269d82612674565b9050919050565b6126ad81612693565b81146126b7575f80fd5b50565b5f813590506126c8816126a4565b92915050565b5f80604083850312156126e4576126e3612568565b5b5f6126f1858286016126ba565b92505060206127028582860161258b565b9150509250929050565b5f8115159050919050565b6127208161270c565b82525050565b5f6020820190506127395f830184612717565b92915050565b6127488161256c565b82525050565b5f6020820190506127615f83018461273f565b92915050565b5f805f6060848603121561277e5761277d612568565b5b5f61278b868287016126ba565b935050602061279c868287016126ba565b92505060406127ad8682870161258b565b9150509250925092565b5f60ff82169050919050565b6127cc816127b7565b82525050565b5f6020820190506127e55f8301846127c3565b92915050565b5f60208284031215612800576127ff612568565b5b5f61280d848285016126ba565b91505092915050565b5f806040838503121561282c5761282b612568565b5b5f6128398582860161258b565b925050602061284a8582860161258b565b9150509250929050565b61285d81612693565b82525050565b5f6020820190506128765f830184612854565b92915050565b5f806040838503121561289257612891612568565b5b5f61289f858286016126ba565b92505060206128b0858286016126ba565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128ee6020836125d4565b91506128f9826128ba565b602082019050919050565b5f6020820190508181035f83015261291b816128e2565b9050919050565b5f8151905061293081612575565b92915050565b5f6020828403121561294b5761294a612568565b5b5f61295884828501612922565b91505092915050565b5f6040820190506129745f830185612854565b612981602083018461273f565b9392505050565b6129918161270c565b811461299b575f80fd5b50565b5f815190506129ac81612988565b92915050565b5f602082840312156129c7576129c6612568565b5b5f6129d48482850161299e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a5f57808604811115612a3b57612a3a6129dd565b5b6001851615612a4a5780820291505b8081029050612a5885612a0a565b9450612a1f565b94509492505050565b5f82612a775760019050612b32565b81612a84575f9050612b32565b8160018114612a9a5760028114612aa457612ad3565b6001915050612b32565b60ff841115612ab657612ab56129dd565b5b8360020a915084821115612acd57612acc6129dd565b5b50612b32565b5060208310610133831016604e8410600b8410161715612b085782820a905083811115612b0357612b026129dd565b5b612b32565b612b158484846001612a16565b92509050818404811115612b2c57612b2b6129dd565b5b81810290505b9392505050565b5f612b438261256c565b9150612b4e836127b7565b9250612b7b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a68565b905092915050565b5f612b8d8261256c565b9150612b988361256c565b9250828202612ba68161256c565b91508282048414831517612bbd57612bbc6129dd565b5b5092915050565b5f612bce8261256c565b9150612bd98361256c565b9250828203905081811115612bf157612bf06129dd565b5b92915050565b7f496e697469616c2074617820746f6f20686967680000000000000000000000005f82015250565b5f612c2b6014836125d4565b9150612c3682612bf7565b602082019050919050565b5f6020820190508181035f830152612c5881612c1f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c936017836125d4565b9150612c9e82612c5f565b602082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b5f81519050612cd5816126a4565b92915050565b5f60208284031215612cf057612cef612568565b5b5f612cfd84828501612cc7565b91505092915050565b5f604082019050612d195f830185612854565b612d266020830184612854565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d648261256c565b9150612d6f8361256c565b925082612d7f57612d7e612d2d565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f612db6612db1612dac84612d8a565b612d93565b61256c565b9050919050565b612dc681612d9c565b82525050565b5f60c082019050612ddf5f830189612854565b612dec602083018861273f565b612df96040830187612dbd565b612e066060830186612dbd565b612e136080830185612854565b612e2060a083018461273f565b979650505050505050565b5f805f60608486031215612e4257612e41612568565b5b5f612e4f86828701612922565b9350506020612e6086828701612922565b9250506040612e7186828701612922565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ed56024836125d4565b9150612ee082612e7b565b604082019050919050565b5f6020820190508181035f830152612f0281612ec9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f636022836125d4565b9150612f6e82612f09565b604082019050919050565b5f6020820190508181035f830152612f9081612f57565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ff16025836125d4565b9150612ffc82612f97565b604082019050919050565b5f6020820190508181035f83015261301e81612fe5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61307f6023836125d4565b915061308a82613025565b604082019050919050565b5f6020820190508181035f8301526130ac81613073565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61310d6029836125d4565b9150613118826130b3565b604082019050919050565b5f6020820190508181035f83015261313a81613101565b9050919050565b7f4e6f7420796574206c61756e63686564000000000000000000000000000000005f82015250565b5f6131756010836125d4565b915061318082613141565b602082019050919050565b5f6020820190508181035f8301526131a281613169565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6132036024836125d4565b915061320e826131a9565b604082019050919050565b5f6020820190508181035f830152613230816131f7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61326b6019836125d4565b915061327682613237565b602082019050919050565b5f6020820190508181035f8301526132988161325f565b9050919050565b5f6132a98261256c565b91506132b48361256c565b92508282019050808211156132cc576132cb6129dd565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613306601a836125d4565b9150613311826132d2565b602082019050919050565b5f6020820190508181035f830152613333816132fa565b9050919050565b5f6133448261256c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613376576133756129dd565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61340d81612693565b82525050565b5f61341e8383613404565b60208301905092915050565b5f602082019050919050565b5f613440826133db565b61344a81856133e5565b9350613455836133f5565b805f5b8381101561348557815161346c8882613413565b97506134778361342a565b925050600181019050613458565b5085935050505092915050565b5f60a0820190506134a55f83018861273f565b6134b26020830187612dbd565b81810360408301526134c48186613436565b90506134d36060830185612854565b6134e0608083018461273f565b969550505050505056fea26469706673582212208de8aca8a08fbb9794c98a433641dad97d4a18c80379e8f2067e13146dec3ecb64736f6c63430008170033

Deployed Bytecode Sourcemap

2474:9855:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10641:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4855:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5686:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11462:131;;;;;;;;;;;;;:::i;:::-;;3569:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5132:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5853:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11598:134;;;;;;;;;;;;;:::i;:::-;;5041:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10312:105;;;;;;;;;;;;;:::i;:::-;;11980:346;;;;;;;;;;;;;:::i;:::-;;5235:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1555:148;;;;;;;;;;;;;:::i;:::-;;10108:196;;;;;;;;;;;;;:::i;:::-;;3395:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10425:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1343:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3451:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4946:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5362:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3507:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2777:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10740:717;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5535:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10641:91;10697:10;;;;;;;;;;;:19;;:27;10717:6;10697:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10641:91;:::o;4855:83::-;4892:13;4925:5;;;;;;;;;;;;;;;;;4918:12;;4855:83;:::o;5686:159::-;5761:4;5778:37;5787:10;5799:7;5808:6;5778:8;:37::i;:::-;5833:4;5826:11;;5686:159;;;;:::o;11462:131::-;1480:10;1470:20;;:6;;;;;;;;;;:20;;;1462:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11511:13:::1;;;;;;;;;;;11504:30;;;11535:4;;;;;;;;;;;11548:13;;;;;;;;;;;11541:31;;;11581:4;11541:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11504:84;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11462:131::o:0;3569:45::-;;;;:::o;5132:95::-;5185:7;3220:1;3279:2;:13;;;;:::i;:::-;3263;:29;;;;:::i;:::-;5205:14;;5132:95;:::o;5853:262::-;5951:4;5968:36;5978:6;5986:9;5997:6;5968:9;:36::i;:::-;6015:70;6024:6;6032:10;6078:6;6044:11;:19;6056:6;6044:19;;;;;;;;;;;;;;;:31;6064:10;6044:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6015:8;:70::i;:::-;6103:4;6096:11;;5853:262;;;;;:::o;11598:134::-;1480:10;1470:20;;:6;;;;;;;;;;:20;;;1462:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11647:13:::1;;;;;;;;;;;11640:30;;;11671:7;:5;:7::i;:::-;11687:13;;;;;;;;;;;11680:31;;;11720:4;11680:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11640:87;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11598:134::o:0;5041:83::-;5082:5;3220:1;5100:16;;5041:83;:::o;10312:105::-;1480:10;1470:20;;:6;;;;;;;;;;:20;;;1462:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10379:1:::1;10363:12;;:17;;;;;;;:::i;:::-;;;;;;;;10408:1;10391:13;;:18;;;;;;;:::i;:::-;;;;;;;;10312:105::o:0;11980:346::-;12042:10;;;;;;;;;;;12030:22;;:10;:22;;;12022:31;;;;;;12064:20;12085:24;12103:4;12085:9;:24::i;:::-;12064:45;;12136:1;12123:12;:14;12120:73;;;12151:30;12168:12;12151:16;:30::i;:::-;12120:73;12203:18;12222:21;12203:40;;12268:1;12257:10;:12;12254:65;;;12283:24;12296:10;12283:12;:24::i;:::-;12254:65;12011:315;;11980:346::o;5235:119::-;5301:7;5328:9;:18;5338:7;5328:18;;;;;;;;;;;;;;;;5321:25;;5235:119;;;:::o;1555:148::-;1480:10;1470:20;;:6;;;;;;;;;;:20;;;1462:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1662:1:::1;1625:40;;1646:6;::::0;::::1;;;;;;;;1625:40;;;;;;;;;;;;1693:1;1676:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1555:148::o:0;10108:196::-;1480:10;1470:20;;:6;;;;;;;;;;:20;;;1462:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;3220:1:::1;3279:2;:13;;;;:::i;:::-;3263;:29;;;;:::i;:::-;10161:12;:22;;;;3220:1;3279:2;:13;;;;:::i;:::-;3263;:29;;;;:::i;:::-;10194:14;:22;;;;10248:5;10227:20;;:26;;;;;;;;;;;;;;;;;;10269:27;3220:1;3279:2;:13;;;;:::i;:::-;3263;:29;;;;:::i;:::-;10269:27;;;;;;:::i;:::-;;;;;;;;10108:196::o:0;3395:49::-;;;;:::o;10425:208::-;1480:10;1470:20;;:6;;;;;;;;;;:20;;;1462:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10520:2:::1;10513:3;:9;;:23;;;;;10534:2;10526:4;:10;;10513:23;10505:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10589:3;10572:14;:20;;;;10621:4;10603:15;:22;;;;10425:208:::0;;:::o;1343:79::-;1381:7;1408:6;;;;;;;;;;;1401:13;;1343:79;:::o;3451:49::-;;;;:::o;4946:87::-;4985:13;5018:7;;;;;;;;;;;;;;;;;5011:14;;4946:87;:::o;5362:165::-;5440:4;5457:40;5467:10;5479:9;5490:6;5457:9;:40::i;:::-;5515:4;5508:11;;5362:165;;;;:::o;3507:55::-;;;;:::o;2777:39::-;;;;;;;;;;;;;:::o;10740:717::-;1480:10;1470:20;;:6;;;;;;;;;;:20;;;1462:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10824:11:::1;;;;;;;;;;;10823:12;10815:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10873:65;10890:4;3696:42;10923:14;10873:8;:65::i;:::-;10968:1;10952:18;;:4;:18;;::::0;10949:213:::1;;3696:42;11021:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11003:55;;;11067:4;3696:42;11074:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11003:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10987:13;;:110;;;;;;;;;;;;;;;;;;10949:213;;;11146:4;11130:13;;:20;;;;;;;;;;;;;;;;;;10949:213;3696:42;11172:31;;;11211:21;11242:4;11273:1;11248:24;11266:4;11248:9;:24::i;:::-;:26;;;;:::i;:::-;11275:1;11277::::0;11287:4:::1;11293:15;11172:137;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11327:13;;;;;;;;;;;11320:29;;;3696:42;11376:14;11320:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11416:4;11402:11;;:18;;;;;;;;;;;;;;;;;;11445:4;11431:11;;:18;;;;;;;;;;;;;;;;;;10740:717:::0;:::o;5535:143::-;5616:7;5643:11;:18;5655:5;5643:18;;;;;;;;;;;;;;;:27;5662:7;5643:27;;;;;;;;;;;;;;;;5636:34;;5535:143;;;;:::o;6123:335::-;6233:1;6216:19;;:5;:19;;;6208:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6314:1;6295:21;;:7;:21;;;6287:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6396:6;6366:11;:18;6378:5;6366:18;;;;;;;;;;;;;;;:27;6385:7;6366:27;;;;;;;;;;;;;;;:36;;;;6434:7;6418:32;;6427:5;6418:32;;;6443:6;6418:32;;;;;;:::i;:::-;;;;;;;;6123:335;;;:::o;6466:2963::-;6570:1;6554:18;;:4;:18;;;6546:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6647:1;6633:16;;:2;:16;;;6625:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6717:1;6708:6;:10;6700:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6775:17;6817:7;:5;:7::i;:::-;6809:15;;:4;:15;;;;:32;;;;;6834:7;:5;:7::i;:::-;6828:13;;:2;:13;;;;6809:32;6805:2316;;;6891:1;6866:27;;:13;;;;;;;;;;;:27;;;6858:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6935:20;;;;;;;;;;;6931:346;;;3696:42;6980:30;;:2;:30;;;;:62;;;;;7028:13;;;;;;;;;;;7014:28;;:2;:28;;;;6980:62;6976:286;;;7115:12;7073:28;:39;7102:9;7073:39;;;;;;;;;;;;;;;;:54;7065:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7230:12;7188:28;:39;7217:9;7188:39;;;;;;;;;;;;;;;:54;;;;6976:286;6931:346;7305:13;;;;;;;;;;;7297:21;;:4;:21;;;:55;;;;;3696:42;7322:30;;:2;:30;;;;7297:55;:83;;;;;7358:18;:22;7377:2;7358:22;;;;;;;;;;;;;;;;;;;;;;;;;7356:24;7297:83;7293:428;;;7420:12;;7410:6;:22;;7402:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7515:14;;7505:6;7489:13;7499:2;7489:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7481:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7592:18;;7582:9;;:28;7579:97;;;7641:14;7652:2;7641:10;:14::i;:::-;7640:15;7632:24;;;;;;7579:97;7694:9;;:11;;;;;;;;;:::i;:::-;;;;;;7293:428;7820:3;7772:15;;7762:9;;:25;7761:55;;7802:14;;7761:55;;;7789:12;;7761:55;7751:6;:66;;;;:::i;:::-;:72;;;;:::i;:::-;7739:84;;7847:13;;;;;;;;;;;7841:19;;:2;:19;;;:43;;;;;7879:4;7864:20;;:4;:20;;;;7841:43;7838:249;;;7923:12;;7913:6;:22;;7905:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8068:3;8017:16;;8007:9;;:26;8006:58;;8049:15;;8006:58;;;8035:13;;8006:58;7996:6;:69;;;;:::i;:::-;:75;;;;:::i;:::-;7984:87;;7838:249;8103:28;8134:24;8152:4;8134:9;:24::i;:::-;8103:55;;8200:6;8177:20;:29;8173:504;;;8228:13;8244:15;8254:4;;;;;;;;;;;8244:9;:15::i;:::-;8228:31;;8292:6;8283:5;:15;8279:383;;8343:6;8324:9;:15;8334:4;;;;;;;;;;;8324:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;8401:6;8373:9;:24;8391:4;8373:24;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;8455:6;8431:30;;;;;:::i;:::-;;;8279:383;;;8530:1;8512:9;:15;8522:4;;;;;;;;;;;8512:15;;;;;;;;;;;;;;;:19;;;;8583:5;8555:9;:24;8573:4;8555:24;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;8636:5;8612:29;;;;;:::i;:::-;;;8279:383;8208:469;8173:504;8696:6;;;;;;;;;;;8695:7;:30;;;;;8712:13;;;;;;;;;;;8706:19;;:2;:19;;;8695:30;:45;;;;;8729:11;;;;;;;;;;;8695:45;:87;;;;;8765:17;;8744:20;:38;8695:87;:119;;;;;8796:18;;8786:9;;:28;8695:119;8691:419;;;8835:67;8852:49;8856:6;8863:37;8867:20;8888:11;;8863:3;:37::i;:::-;8852:3;:49::i;:::-;8835:16;:67::i;:::-;8921:26;8950:21;8921:50;;9014:1;8993:18;:22;8990:105;;;9040:35;9053:21;9040:12;:35::i;:::-;8990:105;8816:294;8691:419;6843:2278;6805:2316;9129:18;:24;9148:4;9129:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9157:18;:22;9176:2;9157:22;;;;;;;;;;;;;;;;;;;;;;;;;9129:50;9126:68;;;9193:1;9181:13;;9126:68;9220:1;9210:9;:11;9207:77;;;9263:9;9235;:24;9253:4;9235:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;9207:77;9313:6;9294:9;:15;9304:4;9294:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;9357:9;9348:6;:18;;;;:::i;:::-;9330:9;:13;9340:2;9330:13;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;9398:2;9383:38;;9392:4;9383:38;;;9411:9;9402:6;:18;;;;:::i;:::-;9383:38;;;;;;:::i;:::-;;;;;;;;6535:2894;6466:2963;;;:::o;9545:555::-;4051:4;4042:6;;:13;;;;;;;;;;;;;;;;;;9639:1:::1;9626:11;:14:::0;9623:27;9642:7:::1;9623:27;9664:11;;;;;;;;;;;9660:25:::0;9677:7:::1;9660:25;9695:21;9733:1;9719:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9695:40;;9764:4;9746;9751:1;9746:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;3696:42;9790:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9780:4;9785:1;9780:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9823:62;9840:4;3696:42;9873:11;9823:8;:62::i;:::-;3696:42;9896:66;;;9977:11;10003:1;10019:4;10046;10066:15;9896:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9612:488;4066:1;4087:5:::0;4078:6;;:14;;;;;;;;;;;;;;;;;;9545:555;:::o;11777:195::-;11836:4;11853:12;11920:7;11908:20;11900:28;;11963:1;11956:4;:8;11949:15;;;11777:195;;;:::o;9439:98::-;9496:7;9523:1;9521;:3;9520:9;;9528:1;9520:9;;;9526:1;9520:9;9513:16;;9439:98;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::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:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:474::-;5591:6;5599;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5901:2;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5872:118;5523:474;;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:182::-;6975:34;6971:1;6963:6;6959:14;6952:58;6835:182;:::o;7023:366::-;7165:3;7186:67;7250:2;7245:3;7186:67;:::i;:::-;7179:74;;7262:93;7351:3;7262:93;:::i;:::-;7380:2;7375:3;7371:12;7364:19;;7023:366;;;:::o;7395:419::-;7561:4;7599:2;7588:9;7584:18;7576:26;;7648:9;7642:4;7638:20;7634:1;7623:9;7619:17;7612:47;7676:131;7802:4;7676:131;:::i;:::-;7668:139;;7395:419;;;:::o;7820:143::-;7877:5;7908:6;7902:13;7893:22;;7924:33;7951:5;7924:33;:::i;:::-;7820:143;;;;:::o;7969:351::-;8039:6;8088:2;8076:9;8067:7;8063:23;8059:32;8056:119;;;8094:79;;:::i;:::-;8056:119;8214:1;8239:64;8295:7;8286:6;8275:9;8271:22;8239:64;:::i;:::-;8229:74;;8185:128;7969:351;;;;:::o;8326:332::-;8447:4;8485:2;8474:9;8470:18;8462:26;;8498:71;8566:1;8555:9;8551:17;8542:6;8498:71;:::i;:::-;8579:72;8647:2;8636:9;8632:18;8623:6;8579:72;:::i;:::-;8326:332;;;;;:::o;8664:116::-;8734:21;8749:5;8734:21;:::i;:::-;8727:5;8724:32;8714:60;;8770:1;8767;8760:12;8714:60;8664:116;:::o;8786:137::-;8840:5;8871:6;8865:13;8856:22;;8887:30;8911:5;8887:30;:::i;:::-;8786:137;;;;:::o;8929:345::-;8996:6;9045:2;9033:9;9024:7;9020:23;9016:32;9013:119;;;9051:79;;:::i;:::-;9013:119;9171:1;9196:61;9249:7;9240:6;9229:9;9225:22;9196:61;:::i;:::-;9186:71;;9142:125;8929:345;;;;:::o;9280:180::-;9328:77;9325:1;9318:88;9425:4;9422:1;9415:15;9449:4;9446:1;9439:15;9466:102;9508:8;9555:5;9552:1;9548:13;9527:34;;9466:102;;;:::o;9574:848::-;9635:5;9642:4;9666:6;9657:15;;9690:5;9681:14;;9704:712;9725:1;9715:8;9712:15;9704:712;;;9820:4;9815:3;9811:14;9805:4;9802:24;9799:50;;;9829:18;;:::i;:::-;9799:50;9879:1;9869:8;9865:16;9862:451;;;10294:4;10287:5;10283:16;10274:25;;9862:451;10344:4;10338;10334:15;10326:23;;10374:32;10397:8;10374:32;:::i;:::-;10362:44;;9704:712;;;9574:848;;;;;;;:::o;10428:1073::-;10482:5;10673:8;10663:40;;10694:1;10685:10;;10696:5;;10663:40;10722:4;10712:36;;10739:1;10730:10;;10741:5;;10712:36;10808:4;10856:1;10851:27;;;;10892:1;10887:191;;;;10801:277;;10851:27;10869:1;10860:10;;10871:5;;;10887:191;10932:3;10922:8;10919:17;10916:43;;;10939:18;;:::i;:::-;10916:43;10988:8;10985:1;10981:16;10972:25;;11023:3;11016:5;11013:14;11010:40;;;11030:18;;:::i;:::-;11010:40;11063:5;;;10801:277;;11187:2;11177:8;11174:16;11168:3;11162:4;11159:13;11155:36;11137:2;11127:8;11124:16;11119:2;11113:4;11110:12;11106:35;11090:111;11087:246;;;11243:8;11237:4;11233:19;11224:28;;11278:3;11271:5;11268:14;11265:40;;;11285:18;;:::i;:::-;11265:40;11318:5;;11087:246;11358:42;11396:3;11386:8;11380:4;11377:1;11358:42;:::i;:::-;11343:57;;;;11432:4;11427:3;11423:14;11416:5;11413:25;11410:51;;;11441:18;;:::i;:::-;11410:51;11490:4;11483:5;11479:16;11470:25;;10428:1073;;;;;;:::o;11507:281::-;11565:5;11589:23;11607:4;11589:23;:::i;:::-;11581:31;;11633:25;11649:8;11633:25;:::i;:::-;11621:37;;11677:104;11714:66;11704:8;11698:4;11677:104;:::i;:::-;11668:113;;11507:281;;;;:::o;11794:410::-;11834:7;11857:20;11875:1;11857:20;:::i;:::-;11852:25;;11891:20;11909:1;11891:20;:::i;:::-;11886:25;;11946:1;11943;11939:9;11968:30;11986:11;11968:30;:::i;:::-;11957:41;;12147:1;12138:7;12134:15;12131:1;12128:22;12108:1;12101:9;12081:83;12058:139;;12177:18;;:::i;:::-;12058:139;11842:362;11794:410;;;;:::o;12210:194::-;12250:4;12270:20;12288:1;12270:20;:::i;:::-;12265:25;;12304:20;12322:1;12304:20;:::i;:::-;12299:25;;12348:1;12345;12341:9;12333:17;;12372:1;12366:4;12363:11;12360:37;;;12377:18;;:::i;:::-;12360:37;12210:194;;;;:::o;12410:170::-;12550:22;12546:1;12538:6;12534:14;12527:46;12410:170;:::o;12586:366::-;12728:3;12749:67;12813:2;12808:3;12749:67;:::i;:::-;12742:74;;12825:93;12914:3;12825:93;:::i;:::-;12943:2;12938:3;12934:12;12927:19;;12586:366;;;:::o;12958:419::-;13124:4;13162:2;13151:9;13147:18;13139:26;;13211:9;13205:4;13201:20;13197:1;13186:9;13182:17;13175:47;13239:131;13365:4;13239:131;:::i;:::-;13231:139;;12958:419;;;:::o;13383:173::-;13523:25;13519:1;13511:6;13507:14;13500:49;13383:173;:::o;13562:366::-;13704:3;13725:67;13789:2;13784:3;13725:67;:::i;:::-;13718:74;;13801:93;13890:3;13801:93;:::i;:::-;13919:2;13914:3;13910:12;13903:19;;13562:366;;;:::o;13934:419::-;14100:4;14138:2;14127:9;14123:18;14115:26;;14187:9;14181:4;14177:20;14173:1;14162:9;14158:17;14151:47;14215:131;14341:4;14215:131;:::i;:::-;14207:139;;13934:419;;;:::o;14359:143::-;14416:5;14447:6;14441:13;14432:22;;14463:33;14490:5;14463:33;:::i;:::-;14359:143;;;;:::o;14508:351::-;14578:6;14627:2;14615:9;14606:7;14602:23;14598:32;14595:119;;;14633:79;;:::i;:::-;14595:119;14753:1;14778:64;14834:7;14825:6;14814:9;14810:22;14778:64;:::i;:::-;14768:74;;14724:128;14508:351;;;;:::o;14865:332::-;14986:4;15024:2;15013:9;15009:18;15001:26;;15037:71;15105:1;15094:9;15090:17;15081:6;15037:71;:::i;:::-;15118:72;15186:2;15175:9;15171:18;15162:6;15118:72;:::i;:::-;14865:332;;;;;:::o;15203:180::-;15251:77;15248:1;15241:88;15348:4;15345:1;15338:15;15372:4;15369:1;15362:15;15389:185;15429:1;15446:20;15464:1;15446:20;:::i;:::-;15441:25;;15480:20;15498:1;15480:20;:::i;:::-;15475:25;;15519:1;15509:35;;15524:18;;:::i;:::-;15509:35;15566:1;15563;15559:9;15554:14;;15389:185;;;;:::o;15580:85::-;15625:7;15654:5;15643:16;;15580:85;;;:::o;15671:60::-;15699:3;15720:5;15713:12;;15671:60;;;:::o;15737:158::-;15795:9;15828:61;15846:42;15855:32;15881:5;15855:32;:::i;:::-;15846:42;:::i;:::-;15828:61;:::i;:::-;15815:74;;15737:158;;;:::o;15901:147::-;15996:45;16035:5;15996:45;:::i;:::-;15991:3;15984:58;15901:147;;:::o;16054:807::-;16303:4;16341:3;16330:9;16326:19;16318:27;;16355:71;16423:1;16412:9;16408:17;16399:6;16355:71;:::i;:::-;16436:72;16504:2;16493:9;16489:18;16480:6;16436:72;:::i;:::-;16518:80;16594:2;16583:9;16579:18;16570:6;16518:80;:::i;:::-;16608;16684:2;16673:9;16669:18;16660:6;16608:80;:::i;:::-;16698:73;16766:3;16755:9;16751:19;16742:6;16698:73;:::i;:::-;16781;16849:3;16838:9;16834:19;16825:6;16781:73;:::i;:::-;16054:807;;;;;;;;;:::o;16867:663::-;16955:6;16963;16971;17020:2;17008:9;16999:7;16995:23;16991:32;16988:119;;;17026:79;;:::i;:::-;16988:119;17146:1;17171:64;17227:7;17218:6;17207:9;17203:22;17171:64;:::i;:::-;17161:74;;17117:128;17284:2;17310:64;17366:7;17357:6;17346:9;17342:22;17310:64;:::i;:::-;17300:74;;17255:129;17423:2;17449:64;17505:7;17496:6;17485:9;17481:22;17449:64;:::i;:::-;17439:74;;17394:129;16867:663;;;;;:::o;17536:223::-;17676:34;17672:1;17664:6;17660:14;17653:58;17745:6;17740:2;17732:6;17728:15;17721:31;17536:223;:::o;17765:366::-;17907:3;17928:67;17992:2;17987:3;17928:67;:::i;:::-;17921:74;;18004:93;18093:3;18004:93;:::i;:::-;18122:2;18117:3;18113:12;18106:19;;17765:366;;;:::o;18137:419::-;18303:4;18341:2;18330:9;18326:18;18318:26;;18390:9;18384:4;18380:20;18376:1;18365:9;18361:17;18354:47;18418:131;18544:4;18418:131;:::i;:::-;18410:139;;18137:419;;;:::o;18562:221::-;18702:34;18698:1;18690:6;18686:14;18679:58;18771:4;18766:2;18758:6;18754:15;18747:29;18562:221;:::o;18789:366::-;18931:3;18952:67;19016:2;19011:3;18952:67;:::i;:::-;18945:74;;19028:93;19117:3;19028:93;:::i;:::-;19146:2;19141:3;19137:12;19130:19;;18789:366;;;:::o;19161:419::-;19327:4;19365:2;19354:9;19350:18;19342:26;;19414:9;19408:4;19404:20;19400:1;19389:9;19385:17;19378:47;19442:131;19568:4;19442:131;:::i;:::-;19434:139;;19161:419;;;:::o;19586:224::-;19726:34;19722:1;19714:6;19710:14;19703:58;19795:7;19790:2;19782:6;19778:15;19771:32;19586:224;:::o;19816:366::-;19958:3;19979:67;20043:2;20038:3;19979:67;:::i;:::-;19972:74;;20055:93;20144:3;20055:93;:::i;:::-;20173:2;20168:3;20164:12;20157:19;;19816:366;;;:::o;20188:419::-;20354:4;20392:2;20381:9;20377:18;20369:26;;20441:9;20435:4;20431:20;20427:1;20416:9;20412:17;20405:47;20469:131;20595:4;20469:131;:::i;:::-;20461:139;;20188:419;;;:::o;20613:222::-;20753:34;20749:1;20741:6;20737:14;20730:58;20822:5;20817:2;20809:6;20805:15;20798:30;20613:222;:::o;20841:366::-;20983:3;21004:67;21068:2;21063:3;21004:67;:::i;:::-;20997:74;;21080:93;21169:3;21080:93;:::i;:::-;21198:2;21193:3;21189:12;21182:19;;20841:366;;;:::o;21213:419::-;21379:4;21417:2;21406:9;21402:18;21394:26;;21466:9;21460:4;21456:20;21452:1;21441:9;21437:17;21430:47;21494:131;21620:4;21494:131;:::i;:::-;21486:139;;21213:419;;;:::o;21638:228::-;21778:34;21774:1;21766:6;21762:14;21755:58;21847:11;21842:2;21834:6;21830:15;21823:36;21638:228;:::o;21872:366::-;22014:3;22035:67;22099:2;22094:3;22035:67;:::i;:::-;22028:74;;22111:93;22200:3;22111:93;:::i;:::-;22229:2;22224:3;22220:12;22213:19;;21872:366;;;:::o;22244:419::-;22410:4;22448:2;22437:9;22433:18;22425:26;;22497:9;22491:4;22487:20;22483:1;22472:9;22468:17;22461:47;22525:131;22651:4;22525:131;:::i;:::-;22517:139;;22244:419;;;:::o;22669:166::-;22809:18;22805:1;22797:6;22793:14;22786:42;22669:166;:::o;22841:366::-;22983:3;23004:67;23068:2;23063:3;23004:67;:::i;:::-;22997:74;;23080:93;23169:3;23080:93;:::i;:::-;23198:2;23193:3;23189:12;23182:19;;22841:366;;;:::o;23213:419::-;23379:4;23417:2;23406:9;23402:18;23394:26;;23466:9;23460:4;23456:20;23452:1;23441:9;23437:17;23430:47;23494:131;23620:4;23494:131;:::i;:::-;23486:139;;23213:419;;;:::o;23638:223::-;23778:34;23774:1;23766:6;23762:14;23755:58;23847:6;23842:2;23834:6;23830:15;23823:31;23638:223;:::o;23867:366::-;24009:3;24030:67;24094:2;24089:3;24030:67;:::i;:::-;24023:74;;24106:93;24195:3;24106:93;:::i;:::-;24224:2;24219:3;24215:12;24208:19;;23867:366;;;:::o;24239:419::-;24405:4;24443:2;24432:9;24428:18;24420:26;;24492:9;24486:4;24482:20;24478:1;24467:9;24463:17;24456:47;24520:131;24646:4;24520:131;:::i;:::-;24512:139;;24239:419;;;:::o;24664:175::-;24804:27;24800:1;24792:6;24788:14;24781:51;24664:175;:::o;24845:366::-;24987:3;25008:67;25072:2;25067:3;25008:67;:::i;:::-;25001:74;;25084:93;25173:3;25084:93;:::i;:::-;25202:2;25197:3;25193:12;25186:19;;24845:366;;;:::o;25217:419::-;25383:4;25421:2;25410:9;25406:18;25398:26;;25470:9;25464:4;25460:20;25456:1;25445:9;25441:17;25434:47;25498:131;25624:4;25498:131;:::i;:::-;25490:139;;25217:419;;;:::o;25642:191::-;25682:3;25701:20;25719:1;25701:20;:::i;:::-;25696:25;;25735:20;25753:1;25735:20;:::i;:::-;25730:25;;25778:1;25775;25771:9;25764:16;;25799:3;25796:1;25793:10;25790:36;;;25806:18;;:::i;:::-;25790:36;25642:191;;;;:::o;25839:176::-;25979:28;25975:1;25967:6;25963:14;25956:52;25839:176;:::o;26021:366::-;26163:3;26184:67;26248:2;26243:3;26184:67;:::i;:::-;26177:74;;26260:93;26349:3;26260:93;:::i;:::-;26378:2;26373:3;26369:12;26362:19;;26021:366;;;:::o;26393:419::-;26559:4;26597:2;26586:9;26582:18;26574:26;;26646:9;26640:4;26636:20;26632:1;26621:9;26617:17;26610:47;26674:131;26800:4;26674:131;:::i;:::-;26666:139;;26393:419;;;:::o;26818:233::-;26857:3;26880:24;26898:5;26880:24;:::i;:::-;26871:33;;26926:66;26919:5;26916:77;26913:103;;26996:18;;:::i;:::-;26913:103;27043:1;27036:5;27032:13;27025:20;;26818:233;;;:::o;27057:180::-;27105:77;27102:1;27095:88;27202:4;27199:1;27192:15;27226:4;27223:1;27216:15;27243:180;27291:77;27288:1;27281:88;27388:4;27385:1;27378:15;27412:4;27409:1;27402:15;27429:114;27496:6;27530:5;27524:12;27514:22;;27429:114;;;:::o;27549:184::-;27648:11;27682:6;27677:3;27670:19;27722:4;27717:3;27713:14;27698:29;;27549:184;;;;:::o;27739:132::-;27806:4;27829:3;27821:11;;27859:4;27854:3;27850:14;27842:22;;27739:132;;;:::o;27877:108::-;27954:24;27972:5;27954:24;:::i;:::-;27949:3;27942:37;27877:108;;:::o;27991:179::-;28060:10;28081:46;28123:3;28115:6;28081:46;:::i;:::-;28159:4;28154:3;28150:14;28136:28;;27991:179;;;;:::o;28176:113::-;28246:4;28278;28273:3;28269:14;28261:22;;28176:113;;;:::o;28325:732::-;28444:3;28473:54;28521:5;28473:54;:::i;:::-;28543:86;28622:6;28617:3;28543:86;:::i;:::-;28536:93;;28653:56;28703:5;28653:56;:::i;:::-;28732:7;28763:1;28748:284;28773:6;28770:1;28767:13;28748:284;;;28849:6;28843:13;28876:63;28935:3;28920:13;28876:63;:::i;:::-;28869:70;;28962:60;29015:6;28962:60;:::i;:::-;28952:70;;28808:224;28795:1;28792;28788:9;28783:14;;28748:284;;;28752:14;29048:3;29041:10;;28449:608;;;28325:732;;;;:::o;29063:831::-;29326:4;29364:3;29353:9;29349:19;29341:27;;29378:71;29446:1;29435:9;29431:17;29422:6;29378:71;:::i;:::-;29459:80;29535:2;29524:9;29520:18;29511:6;29459:80;:::i;:::-;29586:9;29580:4;29576:20;29571:2;29560:9;29556:18;29549:48;29614:108;29717:4;29708:6;29614:108;:::i;:::-;29606:116;;29732:72;29800:2;29789:9;29785:18;29776:6;29732:72;:::i;:::-;29814:73;29882:3;29871:9;29867:19;29858:6;29814:73;:::i;:::-;29063:831;;;;;;;;:::o

Swarm Source

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