ETH Price: $3,451.98 (-0.83%)
Gas: 8 Gwei

Token

Alfred P. Neuman ($ALFRED)
 

Overview

Max Total Supply

420,690,000,000,000 $ALFRED

Holders

428

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
732,656,498,467.19607065839666166 $ALFRED

Value
$0.00
0x4208C4a921290dD75c572dfBCF2bcfaa25A676C0
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:
Alfred

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-07-06
*/

// SPDX-License-Identifier: MIT


/*
   https://t.me/alfredoneth
   https://x.com/alfredoneth
   https://alfred-erc.xyz/
*/

pragma solidity 0.8.23;


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

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

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(
        address newOwner
        ) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    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 Alfred is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    
    address payable private _devWallet;
    address payable private _marketingWallet;
    
    string private constant _name =  unicode"Alfred P. Neuman";
    string private constant _symbol = unicode"$ALFRED";

    

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletSize =  _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold= _tTotal * 5 / 10000;
    uint256 public _maxTaxSwap=  _tTotal * 1 / 100;
    
    uint256 public _SellTax= 25;
    uint256 public _BuyTax= 15;
     
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen ;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

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

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

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

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

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

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

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

    

    function isbot(address addr) public view returns (bool) {
        return bots[addr];
    }

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

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

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

    function transferFrom(
        address sender,
         address recipient,
          uint256 amount) public override returns (bool) {
        require(_allowances[sender][_msgSender()] >= amount, "Transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function _approve(
        address owner,
         address spender,
         uint256 amount) private {
        require(owner != address(0), "ERC20: Can't approve from the zero address");
        require(spender != address(0), "ERC20: Can't 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: Can't transfer from the zero address");
        require(to != address(0), "ERC20: Can't transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
           
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: cannot send tokens until trading is enabled");
            }    
            
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(amount < _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount < _maxWalletSize, "Exceeds the _maxWalletSize.");
            }
            
            if(from == uniswapV2Pair && to != address(this)){
                taxAmount = amount * _BuyTax / 100;
            }
            if(to == uniswapV2Pair && from != address(this)){
                taxAmount = amount * _SellTax / 100;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)] += taxAmount;
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from] = _balances[from] - amount;
        _balances[to] = _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 AddBot(address[] memory addresses) public onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            bots[addresses[i]] = true;
        }
    }

    function Delbot(address _addres) public onlyOwner { 
    bots[_addres] = false;
        
    }


    function goAlfred() public onlyOwner(){ 
     require(!tradingOpen,"trading is already open");
     tradingOpen = true;
     swapEnabled = true;
     
    }    

    function feeupdate(
        uint256 BuyTax,
         uint256 SellTax
         ) public onlyOwner {
        _BuyTax = BuyTax;
        _SellTax= SellTax; 
    }

    

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

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


    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function MaxSwapThresholdchange(
        uint256 _Threshold
        ) public onlyOwner {
        _taxSwapThreshold = _Threshold;
        
    }
    function manualSend() external onlyOwner {
        require(_msgSender() == _devWallet);
        uint256 amount = balanceOf(address(this));
        _transfer(address(this), _devWallet, amount);
    }

    

    function LpAdd() external onlyOwner() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        
    }

    
    receive() external payable {}
  
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"AddBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addres","type":"address"}],"name":"Delbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LpAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Threshold","type":"uint256"}],"name":"MaxSwapThresholdchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxtaxsw","type":"uint256"}],"name":"Maxtaxswapchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_BuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"BuyTax","type":"uint256"},{"internalType":"uint256","name":"SellTax","type":"uint256"}],"name":"feeupdate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goAlfred","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isbot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052606460026012600a62000018919062000731565b66017e9d8602b4006200002c919062000781565b62000038919062000781565b620000449190620007f8565b600755606460026012600a6200005b919062000731565b66017e9d8602b4006200006f919062000781565b6200007b919062000781565b620000879190620007f8565b60085561271060056012600a6200009f919062000731565b66017e9d8602b400620000b3919062000781565b620000bf919062000781565b620000cb9190620007f8565b600955606460016012600a620000e2919062000731565b66017e9d8602b400620000f6919062000781565b62000102919062000781565b6200010e9190620007f8565b600a556019600b55600f600c555f600e60156101000a81548160ff0219169083151502179055505f600e60166101000a81548160ff0219169083151502179055503480156200015b575f80fd5b505f6200016d6200057160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002196200057160201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002c9919062000731565b66017e9d8602b400620002dd919062000781565b60015f620002f06200057160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620003426200057860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004e26200057160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000540919062000731565b66017e9d8602b40062000554919062000781565b60405162000563919062000840565b60405180910390a36200085b565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000629578086048111156200060157620006006200059f565b5b6001851615620006115780820291505b80810290506200062185620005cc565b9450620005e1565b94509492505050565b5f8262000643576001905062000715565b8162000652575f905062000715565b81600181146200066b57600281146200067657620006ac565b600191505062000715565b60ff8411156200068b576200068a6200059f565b5b8360020a915084821115620006a557620006a46200059f565b5b5062000715565b5060208310610133831016604e8410600b8410161715620006e65782820a905083811115620006e057620006df6200059f565b5b62000715565b620006f58484846001620005d8565b925090508184048111156200070f576200070e6200059f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200073d826200071c565b91506200074a8362000725565b9250620007797fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000632565b905092915050565b5f6200078d826200071c565b91506200079a836200071c565b9250828202620007aa816200071c565b91508282048414831517620007c457620007c36200059f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000804826200071c565b915062000811836200071c565b925082620008245762000823620007cb565b5b828204905092915050565b6200083a816200071c565b82525050565b5f602082019050620008555f8301846200082f565b92915050565b61396780620008695f395ff3fe6080604052600436106101c5575f3560e01c80637d1db4a5116100f6578063a9059cbb11610094578063d3d9f2b211610063578063d3d9f2b2146105d8578063dd62ed3e14610600578063f2fde38b1461063c578063f429389014610664576101cc565b8063a9059cbb14610546578063bf474bed14610582578063c4d6f140146105ac578063cc43aa0f146105c2576101cc565b80638da5cb5b116100d05780638da5cb5b1461049e5780638f9a55c0146104c8578063901849d6146104f257806395d89b411461051c576101cc565b80637d1db4a5146104245780637f2b937d1461044e5780638481b76414610476576101cc565b8063313ce5671161016357806351bc3c851161013d57806351bc3c85146103a657806370a08231146103bc578063715018a6146103f8578063751039fc1461040e576101cc565b8063313ce5671461031657806331f9cdf71461034057806343b8fe041461037c576101cc565b806318160ddd1161019f57806318160ddd14610260578063225e3c5b1461028a57806323b872dd146102b2578063252aa07e146102ee576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630faee56f14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e461067a565b6040516101f1919061286a565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190612928565b6106b7565b60405161022d9190612980565b60405180910390f35b348015610241575f80fd5b5061024a6106d4565b60405161025791906129a8565b60405180910390f35b34801561026b575f80fd5b506102746106da565b60405161028191906129a8565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab91906129c1565b610700565b005b3480156102bd575f80fd5b506102d860048036038101906102d391906129ec565b61079e565b6040516102e59190612980565b60405180910390f35b3480156102f9575f80fd5b50610314600480360381019061030f9190612b7c565b610913565b005b348015610321575f80fd5b5061032a610a32565b6040516103379190612bde565b60405180910390f35b34801561034b575f80fd5b5061036660048036038101906103619190612bf7565b610a3a565b6040516103739190612980565b60405180910390f35b348015610387575f80fd5b50610390610a8c565b60405161039d91906129a8565b60405180910390f35b3480156103b1575f80fd5b506103ba610a92565b005b3480156103c7575f80fd5b506103e260048036038101906103dd9190612bf7565b610b5e565b6040516103ef91906129a8565b60405180910390f35b348015610403575f80fd5b5061040c610ba4565b005b348015610419575f80fd5b50610422610cf2565b005b34801561042f575f80fd5b50610438610e2a565b60405161044591906129a8565b60405180910390f35b348015610459575f80fd5b50610474600480360381019061046f9190612c22565b610e30565b005b348015610481575f80fd5b5061049c60048036038101906104979190612bf7565b610ed6565b005b3480156104a9575f80fd5b506104b2610fc1565b6040516104bf9190612c6f565b60405180910390f35b3480156104d3575f80fd5b506104dc610fe8565b6040516104e991906129a8565b60405180910390f35b3480156104fd575f80fd5b50610506610fee565b60405161051391906129a8565b60405180910390f35b348015610527575f80fd5b50610530610ff4565b60405161053d919061286a565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190612928565b611031565b6040516105799190612980565b60405180910390f35b34801561058d575f80fd5b5061059661104e565b6040516105a391906129a8565b60405180910390f35b3480156105b7575f80fd5b506105c0611054565b005b3480156105cd575f80fd5b506105d66114f3565b005b3480156105e3575f80fd5b506105fe60048036038101906105f991906129c1565b61160f565b005b34801561060b575f80fd5b5061062660048036038101906106219190612c88565b6116ad565b60405161063391906129a8565b60405180910390f35b348015610647575f80fd5b50610662600480360381019061065d9190612bf7565b61172f565b005b34801561066f575f80fd5b506106786118ec565b005b60606040518060400160405280601081526020017f416c6672656420502e204e65756d616e00000000000000000000000000000000815250905090565b5f6106ca6106c3611a1a565b8484611a21565b6001905092915050565b600a5481565b5f6012600a6106e99190612e22565b66017e9d8602b4006106fb9190612e6c565b905090565b610708611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b90612ef7565b60405180910390fd5b8060098190555050565b5f8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107e6611a1a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085890612f85565b60405180910390fd5b61086c848484611be4565b61090884610878611a1a565b8460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108bf611a1a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109039190612fa3565b611a21565b600190509392505050565b61091b611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612ef7565b60405180910390fd5b5f5b8151811015610a2e57600160045f8484815181106109ca576109c9612fd6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109a9565b5050565b5f6012905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600b5481565b610a9a611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90612ef7565b60405180910390fd5b5f610b3030610b5e565b90505f811115610b4457610b43816124d7565b5b5f4790505f811115610b5a57610b5981612760565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bac611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2f90612ef7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cfa611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d90612ef7565b60405180910390fd5b6012600a610d949190612e22565b66017e9d8602b400610da69190612e6c565b6007819055506012600a610dba9190612e22565b66017e9d8602b400610dcc9190612e6c565b6008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610e019190612e22565b66017e9d8602b400610e139190612e6c565b604051610e2091906129a8565b60405180910390a1565b60075481565b610e38611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb90612ef7565b60405180910390fd5b81600c8190555080600b819055505050565b610ede611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190612ef7565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b600c5481565b60606040518060400160405280600781526020017f24414c4652454400000000000000000000000000000000000000000000000000815250905090565b5f61104461103d611a1a565b8484611be4565b6001905092915050565b60095481565b61105c611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df90612ef7565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061118730600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6111709190612e22565b66017e9d8602b4006111829190612e6c565b611a21565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112159190613017565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190613017565b6040518363ffffffff1660e01b81526004016112dc929190613042565b6020604051808303815f875af11580156112f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131c9190613017565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113a330610b5e565b5f806113ad610fc1565b426040518863ffffffff1660e01b81526004016113cf969594939291906130ab565b60606040518083038185885af11580156113eb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611410919061311e565b505050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114b092919061316e565b6020604051808303815f875af11580156114cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f091906131bf565b50565b6114fb611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612ef7565b60405180910390fd5b600e60149054906101000a900460ff16156115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613234565b60405180910390fd5b6001600e60146101000a81548160ff0219169083151502179055506001600e60166101000a81548160ff021916908315150217905550565b611617611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90612ef7565b60405180910390fd5b80600a8190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611737611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90612ef7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611831576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611828906132c2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f4611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197790612ef7565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119c0611a1a565b73ffffffffffffffffffffffffffffffffffffffff16146119df575f80fd5b5f6119e930610b5e565b9050611a173060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611be4565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8690613350565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906133de565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bd791906129a8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c499061346c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb7906134fa565b60405180910390fd5b5f8111611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf990613588565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611da1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561228157600e60149054906101000a900460ff16611e3057611dc2610fc1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2690613616565b60405180910390fd5b5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ece575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f04906136a4565b60405180910390fd5b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fb65750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612057576007548210611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff69061370c565b60405180910390fd5b6008548261200c85610b5e565b612016919061372a565b10612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204d906137a7565b60405180910390fd5b5b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120df57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612101576064600c54836120f49190612e6c565b6120fe91906137f2565b90505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561218957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121ab576064600b548361219e9190612e6c565b6121a891906137f2565b90505b5f6121b530610b5e565b9050600e60159054906101000a900460ff161580156122205750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156122385750600e60169054906101000a900460ff165b8015612245575060095481115b1561227f576122676122628461225d84600a546127c8565b6127c8565b6124d7565b5f4790505f81111561227d5761227c47612760565b5b505b505b5f811115612342578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122d5919061372a565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161233991906129a8565b60405180910390a35b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238b9190612fa3565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080826123d89190612fa3565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612420919061372a565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83856124bc9190612fa3565b6040516124c991906129a8565b60405180910390a350505050565b6001600e60156101000a81548160ff0219169083151502179055505f81031561274357600e60149054906101000a900460ff1615612743575f600267ffffffffffffffff81111561252b5761252a612a40565b5b6040519080825280602002602001820160405280156125595781602001602082028036833780820191505090505b50905030815f815181106125705761256f612fd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612614573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126389190613017565b8160018151811061264c5761264b612fd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126b230600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a21565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016127149594939291906138d9565b5f604051808303815f87803b15801561272b575f80fd5b505af115801561273d573d5f803e3d5ffd5b50505050505b5f600e60156101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156127c4573d5f803e3d5ffd5b5050565b5f8183116127d657826127d8565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156128175780820151818401526020810190506127fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61283c826127e0565b61284681856127ea565b93506128568185602086016127fa565b61285f81612822565b840191505092915050565b5f6020820190508181035f8301526128828184612832565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128c48261289b565b9050919050565b6128d4816128ba565b81146128de575f80fd5b50565b5f813590506128ef816128cb565b92915050565b5f819050919050565b612907816128f5565b8114612911575f80fd5b50565b5f81359050612922816128fe565b92915050565b5f806040838503121561293e5761293d612893565b5b5f61294b858286016128e1565b925050602061295c85828601612914565b9150509250929050565b5f8115159050919050565b61297a81612966565b82525050565b5f6020820190506129935f830184612971565b92915050565b6129a2816128f5565b82525050565b5f6020820190506129bb5f830184612999565b92915050565b5f602082840312156129d6576129d5612893565b5b5f6129e384828501612914565b91505092915050565b5f805f60608486031215612a0357612a02612893565b5b5f612a10868287016128e1565b9350506020612a21868287016128e1565b9250506040612a3286828701612914565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a7682612822565b810181811067ffffffffffffffff82111715612a9557612a94612a40565b5b80604052505050565b5f612aa761288a565b9050612ab38282612a6d565b919050565b5f67ffffffffffffffff821115612ad257612ad1612a40565b5b602082029050602081019050919050565b5f80fd5b5f612af9612af484612ab8565b612a9e565b90508083825260208201905060208402830185811115612b1c57612b1b612ae3565b5b835b81811015612b455780612b3188826128e1565b845260208401935050602081019050612b1e565b5050509392505050565b5f82601f830112612b6357612b62612a3c565b5b8135612b73848260208601612ae7565b91505092915050565b5f60208284031215612b9157612b90612893565b5b5f82013567ffffffffffffffff811115612bae57612bad612897565b5b612bba84828501612b4f565b91505092915050565b5f60ff82169050919050565b612bd881612bc3565b82525050565b5f602082019050612bf15f830184612bcf565b92915050565b5f60208284031215612c0c57612c0b612893565b5b5f612c19848285016128e1565b91505092915050565b5f8060408385031215612c3857612c37612893565b5b5f612c4585828601612914565b9250506020612c5685828601612914565b9150509250929050565b612c69816128ba565b82525050565b5f602082019050612c825f830184612c60565b92915050565b5f8060408385031215612c9e57612c9d612893565b5b5f612cab858286016128e1565b9250506020612cbc858286016128e1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612d4857808604811115612d2457612d23612cc6565b5b6001851615612d335780820291505b8081029050612d4185612cf3565b9450612d08565b94509492505050565b5f82612d605760019050612e1b565b81612d6d575f9050612e1b565b8160018114612d835760028114612d8d57612dbc565b6001915050612e1b565b60ff841115612d9f57612d9e612cc6565b5b8360020a915084821115612db657612db5612cc6565b5b50612e1b565b5060208310610133831016604e8410600b8410161715612df15782820a905083811115612dec57612deb612cc6565b5b612e1b565b612dfe8484846001612cff565b92509050818404811115612e1557612e14612cc6565b5b81810290505b9392505050565b5f612e2c826128f5565b9150612e3783612bc3565b9250612e647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d51565b905092915050565b5f612e76826128f5565b9150612e81836128f5565b9250828202612e8f816128f5565b91508282048414831517612ea657612ea5612cc6565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ee16020836127ea565b9150612eec82612ead565b602082019050919050565b5f6020820190508181035f830152612f0e81612ed5565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f6f6021836127ea565b9150612f7a82612f15565b604082019050919050565b5f6020820190508181035f830152612f9c81612f63565b9050919050565b5f612fad826128f5565b9150612fb8836128f5565b9250828203905081811115612fd057612fcf612cc6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613011816128cb565b92915050565b5f6020828403121561302c5761302b612893565b5b5f61303984828501613003565b91505092915050565b5f6040820190506130555f830185612c60565b6130626020830184612c60565b9392505050565b5f819050919050565b5f819050919050565b5f61309561309061308b84613069565b613072565b6128f5565b9050919050565b6130a58161307b565b82525050565b5f60c0820190506130be5f830189612c60565b6130cb6020830188612999565b6130d8604083018761309c565b6130e5606083018661309c565b6130f26080830185612c60565b6130ff60a0830184612999565b979650505050505050565b5f81519050613118816128fe565b92915050565b5f805f6060848603121561313557613134612893565b5b5f6131428682870161310a565b93505060206131538682870161310a565b92505060406131648682870161310a565b9150509250925092565b5f6040820190506131815f830185612c60565b61318e6020830184612999565b9392505050565b61319e81612966565b81146131a8575f80fd5b50565b5f815190506131b981613195565b92915050565b5f602082840312156131d4576131d3612893565b5b5f6131e1848285016131ab565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61321e6017836127ea565b9150613229826131ea565b602082019050919050565b5f6020820190508181035f83015261324b81613212565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6132ac6026836127ea565b91506132b782613252565b604082019050919050565b5f6020820190508181035f8301526132d9816132a0565b9050919050565b7f45524332303a2043616e277420617070726f76652066726f6d20746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f61333a602a836127ea565b9150613345826132e0565b604082019050919050565b5f6020820190508181035f8301526133678161332e565b9050919050565b7f45524332303a2043616e277420617070726f766520746f20746865207a65726f5f8201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b5f6133c86028836127ea565b91506133d38261336e565b604082019050919050565b5f6020820190508181035f8301526133f5816133bc565b9050919050565b7f45524332303a2043616e2774207472616e736665722066726f6d20746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f613456602b836127ea565b9150613461826133fc565b604082019050919050565b5f6020820190508181035f8301526134838161344a565b9050919050565b7f45524332303a2043616e2774207472616e7366657220746f20746865207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f6134e46029836127ea565b91506134ef8261348a565b604082019050919050565b5f6020820190508181035f830152613511816134d8565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6135726029836127ea565b915061357d82613518565b604082019050919050565b5f6020820190508181035f83015261359f81613566565b9050919050565b7f544f4b454e3a2063616e6e6f742073656e6420746f6b656e7320756e74696c205f8201527f74726164696e6720697320656e61626c65640000000000000000000000000000602082015250565b5f6136006032836127ea565b915061360b826135a6565b604082019050919050565b5f6020820190508181035f83015261362d816135f4565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f61368e6023836127ea565b915061369982613634565b604082019050919050565b5f6020820190508181035f8301526136bb81613682565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6136f66019836127ea565b9150613701826136c2565b602082019050919050565b5f6020820190508181035f830152613723816136ea565b9050919050565b5f613734826128f5565b915061373f836128f5565b925082820190508082111561375757613756612cc6565b5b92915050565b7f4578636565647320746865205f6d617857616c6c657453697a652e00000000005f82015250565b5f613791601b836127ea565b915061379c8261375d565b602082019050919050565b5f6020820190508181035f8301526137be81613785565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137fc826128f5565b9150613807836128f5565b925082613817576138166137c5565b5b828204905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613854816128ba565b82525050565b5f613865838361384b565b60208301905092915050565b5f602082019050919050565b5f61388782613822565b613891818561382c565b935061389c8361383c565b805f5b838110156138cc5781516138b3888261385a565b97506138be83613871565b92505060018101905061389f565b5085935050505092915050565b5f60a0820190506138ec5f830188612999565b6138f9602083018761309c565b818103604083015261390b818661387d565b905061391a6060830185612c60565b6139276080830184612999565b969550505050505056fea26469706673582212202bdf6305fd88495e11ceb86b760c16e5c21f5346f8d8c6d188fbf8ed4ecb6f6264736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101c5575f3560e01c80637d1db4a5116100f6578063a9059cbb11610094578063d3d9f2b211610063578063d3d9f2b2146105d8578063dd62ed3e14610600578063f2fde38b1461063c578063f429389014610664576101cc565b8063a9059cbb14610546578063bf474bed14610582578063c4d6f140146105ac578063cc43aa0f146105c2576101cc565b80638da5cb5b116100d05780638da5cb5b1461049e5780638f9a55c0146104c8578063901849d6146104f257806395d89b411461051c576101cc565b80637d1db4a5146104245780637f2b937d1461044e5780638481b76414610476576101cc565b8063313ce5671161016357806351bc3c851161013d57806351bc3c85146103a657806370a08231146103bc578063715018a6146103f8578063751039fc1461040e576101cc565b8063313ce5671461031657806331f9cdf71461034057806343b8fe041461037c576101cc565b806318160ddd1161019f57806318160ddd14610260578063225e3c5b1461028a57806323b872dd146102b2578063252aa07e146102ee576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780630faee56f14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e461067a565b6040516101f1919061286a565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190612928565b6106b7565b60405161022d9190612980565b60405180910390f35b348015610241575f80fd5b5061024a6106d4565b60405161025791906129a8565b60405180910390f35b34801561026b575f80fd5b506102746106da565b60405161028191906129a8565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab91906129c1565b610700565b005b3480156102bd575f80fd5b506102d860048036038101906102d391906129ec565b61079e565b6040516102e59190612980565b60405180910390f35b3480156102f9575f80fd5b50610314600480360381019061030f9190612b7c565b610913565b005b348015610321575f80fd5b5061032a610a32565b6040516103379190612bde565b60405180910390f35b34801561034b575f80fd5b5061036660048036038101906103619190612bf7565b610a3a565b6040516103739190612980565b60405180910390f35b348015610387575f80fd5b50610390610a8c565b60405161039d91906129a8565b60405180910390f35b3480156103b1575f80fd5b506103ba610a92565b005b3480156103c7575f80fd5b506103e260048036038101906103dd9190612bf7565b610b5e565b6040516103ef91906129a8565b60405180910390f35b348015610403575f80fd5b5061040c610ba4565b005b348015610419575f80fd5b50610422610cf2565b005b34801561042f575f80fd5b50610438610e2a565b60405161044591906129a8565b60405180910390f35b348015610459575f80fd5b50610474600480360381019061046f9190612c22565b610e30565b005b348015610481575f80fd5b5061049c60048036038101906104979190612bf7565b610ed6565b005b3480156104a9575f80fd5b506104b2610fc1565b6040516104bf9190612c6f565b60405180910390f35b3480156104d3575f80fd5b506104dc610fe8565b6040516104e991906129a8565b60405180910390f35b3480156104fd575f80fd5b50610506610fee565b60405161051391906129a8565b60405180910390f35b348015610527575f80fd5b50610530610ff4565b60405161053d919061286a565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190612928565b611031565b6040516105799190612980565b60405180910390f35b34801561058d575f80fd5b5061059661104e565b6040516105a391906129a8565b60405180910390f35b3480156105b7575f80fd5b506105c0611054565b005b3480156105cd575f80fd5b506105d66114f3565b005b3480156105e3575f80fd5b506105fe60048036038101906105f991906129c1565b61160f565b005b34801561060b575f80fd5b5061062660048036038101906106219190612c88565b6116ad565b60405161063391906129a8565b60405180910390f35b348015610647575f80fd5b50610662600480360381019061065d9190612bf7565b61172f565b005b34801561066f575f80fd5b506106786118ec565b005b60606040518060400160405280601081526020017f416c6672656420502e204e65756d616e00000000000000000000000000000000815250905090565b5f6106ca6106c3611a1a565b8484611a21565b6001905092915050565b600a5481565b5f6012600a6106e99190612e22565b66017e9d8602b4006106fb9190612e6c565b905090565b610708611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078b90612ef7565b60405180910390fd5b8060098190555050565b5f8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107e6611a1a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085890612f85565b60405180910390fd5b61086c848484611be4565b61090884610878611a1a565b8460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6108bf611a1a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109039190612fa3565b611a21565b600190509392505050565b61091b611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612ef7565b60405180910390fd5b5f5b8151811015610a2e57600160045f8484815181106109ca576109c9612fd6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109a9565b5050565b5f6012905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600b5481565b610a9a611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90612ef7565b60405180910390fd5b5f610b3030610b5e565b90505f811115610b4457610b43816124d7565b5b5f4790505f811115610b5a57610b5981612760565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bac611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2f90612ef7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cfa611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d90612ef7565b60405180910390fd5b6012600a610d949190612e22565b66017e9d8602b400610da69190612e6c565b6007819055506012600a610dba9190612e22565b66017e9d8602b400610dcc9190612e6c565b6008819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610e019190612e22565b66017e9d8602b400610e139190612e6c565b604051610e2091906129a8565b60405180910390a1565b60075481565b610e38611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb90612ef7565b60405180910390fd5b81600c8190555080600b819055505050565b610ede611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190612ef7565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b600c5481565b60606040518060400160405280600781526020017f24414c4652454400000000000000000000000000000000000000000000000000815250905090565b5f61104461103d611a1a565b8484611be4565b6001905092915050565b60095481565b61105c611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df90612ef7565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061118730600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a6111709190612e22565b66017e9d8602b4006111829190612e6c565b611a21565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112159190613017565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561129b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190613017565b6040518363ffffffff1660e01b81526004016112dc929190613042565b6020604051808303815f875af11580156112f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061131c9190613017565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113a330610b5e565b5f806113ad610fc1565b426040518863ffffffff1660e01b81526004016113cf969594939291906130ab565b60606040518083038185885af11580156113eb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611410919061311e565b505050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114b092919061316e565b6020604051808303815f875af11580156114cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f091906131bf565b50565b6114fb611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612ef7565b60405180910390fd5b600e60149054906101000a900460ff16156115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613234565b60405180910390fd5b6001600e60146101000a81548160ff0219169083151502179055506001600e60166101000a81548160ff021916908315150217905550565b611617611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a90612ef7565b60405180910390fd5b80600a8190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611737611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90612ef7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611831576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611828906132c2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f4611a1a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197790612ef7565b60405180910390fd5b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119c0611a1a565b73ffffffffffffffffffffffffffffffffffffffff16146119df575f80fd5b5f6119e930610b5e565b9050611a173060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611be4565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8690613350565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906133de565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bd791906129a8565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c499061346c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb7906134fa565b60405180910390fd5b5f8111611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf990613588565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611da1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561228157600e60149054906101000a900460ff16611e3057611dc2610fc1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2690613616565b60405180910390fd5b5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ece575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f04906136a4565b60405180910390fd5b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fb65750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612057576007548210611fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff69061370c565b60405180910390fd5b6008548261200c85610b5e565b612016919061372a565b10612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204d906137a7565b60405180910390fd5b5b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120df57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612101576064600c54836120f49190612e6c565b6120fe91906137f2565b90505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561218957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121ab576064600b548361219e9190612e6c565b6121a891906137f2565b90505b5f6121b530610b5e565b9050600e60159054906101000a900460ff161580156122205750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156122385750600e60169054906101000a900460ff165b8015612245575060095481115b1561227f576122676122628461225d84600a546127c8565b6127c8565b6124d7565b5f4790505f81111561227d5761227c47612760565b5b505b505b5f811115612342578060015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122d5919061372a565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161233991906129a8565b60405180910390a35b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238b9190612fa3565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080826123d89190612fa3565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612420919061372a565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83856124bc9190612fa3565b6040516124c991906129a8565b60405180910390a350505050565b6001600e60156101000a81548160ff0219169083151502179055505f81031561274357600e60149054906101000a900460ff1615612743575f600267ffffffffffffffff81111561252b5761252a612a40565b5b6040519080825280602002602001820160405280156125595781602001602082028036833780820191505090505b50905030815f815181106125705761256f612fd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612614573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126389190613017565b8160018151811061264c5761264b612fd6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126b230600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a21565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016127149594939291906138d9565b5f604051808303815f87803b15801561272b575f80fd5b505af115801561273d573d5f803e3d5ffd5b50505050505b5f600e60156101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156127c4573d5f803e3d5ffd5b5050565b5f8183116127d657826127d8565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156128175780820151818401526020810190506127fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61283c826127e0565b61284681856127ea565b93506128568185602086016127fa565b61285f81612822565b840191505092915050565b5f6020820190508181035f8301526128828184612832565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6128c48261289b565b9050919050565b6128d4816128ba565b81146128de575f80fd5b50565b5f813590506128ef816128cb565b92915050565b5f819050919050565b612907816128f5565b8114612911575f80fd5b50565b5f81359050612922816128fe565b92915050565b5f806040838503121561293e5761293d612893565b5b5f61294b858286016128e1565b925050602061295c85828601612914565b9150509250929050565b5f8115159050919050565b61297a81612966565b82525050565b5f6020820190506129935f830184612971565b92915050565b6129a2816128f5565b82525050565b5f6020820190506129bb5f830184612999565b92915050565b5f602082840312156129d6576129d5612893565b5b5f6129e384828501612914565b91505092915050565b5f805f60608486031215612a0357612a02612893565b5b5f612a10868287016128e1565b9350506020612a21868287016128e1565b9250506040612a3286828701612914565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a7682612822565b810181811067ffffffffffffffff82111715612a9557612a94612a40565b5b80604052505050565b5f612aa761288a565b9050612ab38282612a6d565b919050565b5f67ffffffffffffffff821115612ad257612ad1612a40565b5b602082029050602081019050919050565b5f80fd5b5f612af9612af484612ab8565b612a9e565b90508083825260208201905060208402830185811115612b1c57612b1b612ae3565b5b835b81811015612b455780612b3188826128e1565b845260208401935050602081019050612b1e565b5050509392505050565b5f82601f830112612b6357612b62612a3c565b5b8135612b73848260208601612ae7565b91505092915050565b5f60208284031215612b9157612b90612893565b5b5f82013567ffffffffffffffff811115612bae57612bad612897565b5b612bba84828501612b4f565b91505092915050565b5f60ff82169050919050565b612bd881612bc3565b82525050565b5f602082019050612bf15f830184612bcf565b92915050565b5f60208284031215612c0c57612c0b612893565b5b5f612c19848285016128e1565b91505092915050565b5f8060408385031215612c3857612c37612893565b5b5f612c4585828601612914565b9250506020612c5685828601612914565b9150509250929050565b612c69816128ba565b82525050565b5f602082019050612c825f830184612c60565b92915050565b5f8060408385031215612c9e57612c9d612893565b5b5f612cab858286016128e1565b9250506020612cbc858286016128e1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612d4857808604811115612d2457612d23612cc6565b5b6001851615612d335780820291505b8081029050612d4185612cf3565b9450612d08565b94509492505050565b5f82612d605760019050612e1b565b81612d6d575f9050612e1b565b8160018114612d835760028114612d8d57612dbc565b6001915050612e1b565b60ff841115612d9f57612d9e612cc6565b5b8360020a915084821115612db657612db5612cc6565b5b50612e1b565b5060208310610133831016604e8410600b8410161715612df15782820a905083811115612dec57612deb612cc6565b5b612e1b565b612dfe8484846001612cff565b92509050818404811115612e1557612e14612cc6565b5b81810290505b9392505050565b5f612e2c826128f5565b9150612e3783612bc3565b9250612e647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d51565b905092915050565b5f612e76826128f5565b9150612e81836128f5565b9250828202612e8f816128f5565b91508282048414831517612ea657612ea5612cc6565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ee16020836127ea565b9150612eec82612ead565b602082019050919050565b5f6020820190508181035f830152612f0e81612ed5565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f6f6021836127ea565b9150612f7a82612f15565b604082019050919050565b5f6020820190508181035f830152612f9c81612f63565b9050919050565b5f612fad826128f5565b9150612fb8836128f5565b9250828203905081811115612fd057612fcf612cc6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613011816128cb565b92915050565b5f6020828403121561302c5761302b612893565b5b5f61303984828501613003565b91505092915050565b5f6040820190506130555f830185612c60565b6130626020830184612c60565b9392505050565b5f819050919050565b5f819050919050565b5f61309561309061308b84613069565b613072565b6128f5565b9050919050565b6130a58161307b565b82525050565b5f60c0820190506130be5f830189612c60565b6130cb6020830188612999565b6130d8604083018761309c565b6130e5606083018661309c565b6130f26080830185612c60565b6130ff60a0830184612999565b979650505050505050565b5f81519050613118816128fe565b92915050565b5f805f6060848603121561313557613134612893565b5b5f6131428682870161310a565b93505060206131538682870161310a565b92505060406131648682870161310a565b9150509250925092565b5f6040820190506131815f830185612c60565b61318e6020830184612999565b9392505050565b61319e81612966565b81146131a8575f80fd5b50565b5f815190506131b981613195565b92915050565b5f602082840312156131d4576131d3612893565b5b5f6131e1848285016131ab565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61321e6017836127ea565b9150613229826131ea565b602082019050919050565b5f6020820190508181035f83015261324b81613212565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6132ac6026836127ea565b91506132b782613252565b604082019050919050565b5f6020820190508181035f8301526132d9816132a0565b9050919050565b7f45524332303a2043616e277420617070726f76652066726f6d20746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f61333a602a836127ea565b9150613345826132e0565b604082019050919050565b5f6020820190508181035f8301526133678161332e565b9050919050565b7f45524332303a2043616e277420617070726f766520746f20746865207a65726f5f8201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b5f6133c86028836127ea565b91506133d38261336e565b604082019050919050565b5f6020820190508181035f8301526133f5816133bc565b9050919050565b7f45524332303a2043616e2774207472616e736665722066726f6d20746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f613456602b836127ea565b9150613461826133fc565b604082019050919050565b5f6020820190508181035f8301526134838161344a565b9050919050565b7f45524332303a2043616e2774207472616e7366657220746f20746865207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f6134e46029836127ea565b91506134ef8261348a565b604082019050919050565b5f6020820190508181035f830152613511816134d8565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6135726029836127ea565b915061357d82613518565b604082019050919050565b5f6020820190508181035f83015261359f81613566565b9050919050565b7f544f4b454e3a2063616e6e6f742073656e6420746f6b656e7320756e74696c205f8201527f74726164696e6720697320656e61626c65640000000000000000000000000000602082015250565b5f6136006032836127ea565b915061360b826135a6565b604082019050919050565b5f6020820190508181035f83015261362d816135f4565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f61368e6023836127ea565b915061369982613634565b604082019050919050565b5f6020820190508181035f8301526136bb81613682565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6136f66019836127ea565b9150613701826136c2565b602082019050919050565b5f6020820190508181035f830152613723816136ea565b9050919050565b5f613734826128f5565b915061373f836128f5565b925082820190508082111561375757613756612cc6565b5b92915050565b7f4578636565647320746865205f6d617857616c6c657453697a652e00000000005f82015250565b5f613791601b836127ea565b915061379c8261375d565b602082019050919050565b5f6020820190508181035f8301526137be81613785565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137fc826128f5565b9150613807836128f5565b925082613817576138166137c5565b5b828204905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613854816128ba565b82525050565b5f613865838361384b565b60208301905092915050565b5f602082019050919050565b5f61388782613822565b613891818561382c565b935061389c8361383c565b805f5b838110156138cc5781516138b3888261385a565b97506138be83613871565b92505060018101905061389f565b5085935050505092915050565b5f60a0820190506138ec5f830188612999565b6138f9602083018761309c565b818103604083015261390b818661387d565b905061391a6060830185612c60565b6139276080830184612999565b969550505050505056fea26469706673582212202bdf6305fd88495e11ceb86b760c16e5c21f5346f8d8c6d188fbf8ed4ecb6f6264736f6c63430008170033

Deployed Bytecode Sourcemap

2742:8808:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4447:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5450:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3546:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4724:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10569:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5645:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9189:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4633:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4962:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3605:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9974:314;;;;;;;;;;;;;:::i;:::-;;4827:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1823:148;;;;;;;;;;;;;:::i;:::-;;10404:159;;;;;;;;;;;;;:::i;:::-;;3375:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9655:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9375:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1337:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3429:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3639:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4538:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5062:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3486:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10941:559;;;;;;;;;;;;;:::i;:::-;;9482:161;;;;;;;;;;;;;:::i;:::-;;9835:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5268:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1551:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10723:202;;;;;;;;;;;;;:::i;:::-;;4447:83;4484:13;4517:5;;;;;;;;;;;;;;;;;4510:12;;4447:83;:::o;5450:187::-;5551:4;5568:39;5577:12;:10;:12::i;:::-;5591:7;5600:6;5568:8;:39::i;:::-;5625:4;5618:11;;5450:187;;;;:::o;3546:46::-;;;;:::o;4724:95::-;4777:7;3293:2;3355;:13;;;;:::i;:::-;3337:15;:31;;;;:::i;:::-;4797:14;;4724:95;:::o;10569:148::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10689:10:::1;10669:17;:30;;;;10569:148:::0;:::o;5645:397::-;5774:4;5836:6;5799:11;:19;5811:6;5799:19;;;;;;;;;;;;;;;:33;5819:12;:10;:12::i;:::-;5799:33;;;;;;;;;;;;;;;;:43;;5791:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;5891:36;5901:6;5909:9;5920:6;5891:9;:36::i;:::-;5938:74;5947:6;5955:12;:10;:12::i;:::-;6005:6;5969:11;:19;5981:6;5969:19;;;;;;;;;;;;;;;:33;5989:12;:10;:12::i;:::-;5969:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5938:8;:74::i;:::-;6030:4;6023:11;;5645:397;;;;;:::o;9189:178::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9266:9:::1;9261:99;9285:9;:16;9281:1;:20;9261:99;;;9344:4;9323;:18;9328:9;9338:1;9328:12;;;;;;;;:::i;:::-;;;;;;;;9323:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;9303:3;;;;;;;9261:99;;;;9189:178:::0;:::o;4633:83::-;4674:5;3293:2;4692:16;;4633:83;:::o;4962:92::-;5012:4;5036;:10;5041:4;5036:10;;;;;;;;;;;;;;;;;;;;;;;;;5029:17;;4962:92;;;:::o;3605:27::-;;;;:::o;9974:314::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10026:20:::1;10047:24;10065:4;10047:9;:24::i;:::-;10026:45;;10098:1;10085:12;:14;10082:73;;;10113:30;10130:12;10113:16;:30::i;:::-;10082:73;10165:18;10184:21;10165:40;;10230:1;10219:10;:12;10216:65;;;10245:24;10258:10;10245:12;:24::i;:::-;10216:65;10015:273;;9974:314::o:0;4827:119::-;4893:7;4920:9;:18;4930:7;4920:18;;;;;;;;;;;;;;;;4913:25;;4827:119;;;:::o;1823:148::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1930:1:::1;1893:40;;1914:6;::::0;::::1;;;;;;;;1893:40;;;;;;;;;;;;1961:1;1944:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1823:148::o:0;10404:159::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3293:2:::1;3355;:13;;;;:::i;:::-;3337:15;:31;;;;:::i;:::-;10457:12;:22;;;;3293:2;3355;:13;;;;:::i;:::-;3337:15;:31;;;;:::i;:::-;10490:14;:22;;;;10528:27;3293:2;3355;:13;;;;:::i;:::-;3337:15;:31;;;;:::i;:::-;10528:27;;;;;;:::i;:::-;;;;;;;;10404:159::o:0;3375:47::-;;;;:::o;9655:164::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9776:6:::1;9766:7;:16;;;;9803:7;9793:8;:17;;;;9655:164:::0;;:::o;9375:97::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9449:5:::1;9433:4;:13;9438:7;9433:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9375:97:::0;:::o;1337:79::-;1375:7;1402:6;;;;;;;;;;;1395:13;;1337:79;:::o;3429:50::-;;;;:::o;3639:26::-;;;;:::o;4538:87::-;4577:13;4610:7;;;;;;;;;;;;;;;;;4603:14;;4538:87;:::o;5062:198::-;5171:4;5188:42;5198:12;:10;:12::i;:::-;5212:9;5223:6;5188:9;:42::i;:::-;5248:4;5241:11;;5062:198;;;;:::o;3486:53::-;;;;:::o;10941:559::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11027:42:::1;10990:15;;:80;;;;;;;;;;;;;;;;;;11081:58;11098:4;11113:15;;;;;;;;;;;3293:2;3355;:13;;;;:::i;:::-;3337:15;:31;;;;:::i;:::-;11081:8;:58::i;:::-;11184:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11166:55;;;11230:4;11237:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11166:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11150:13;;:110;;;;;;;;;;;;;;;;;;11271:15;;;;;;;;;;;:31;;;11310:21;11341:4;11347:24;11365:4;11347:9;:24::i;:::-;11372:1;11374::::0;11376:7:::1;:5;:7::i;:::-;11384:15;11271:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11418:13;;;;;;;;;;;11411:29;;;11449:15;;;;;;;;;;;11467:14;11411:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10941:559::o:0;9482:161::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9538:11:::1;;;;;;;;;;;9537:12;9529:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9598:4;9584:11;;:18;;;;;;;;;;;;;;;;;;9624:4;9610:11;;:18;;;;;;;;;;;;;;;;;;9482:161::o:0;9835:133::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9941:9:::1;9928:11;:22;;;;9835:133:::0;:::o;5268:174::-;5380:7;5407:11;:18;5419:5;5407:18;;;;;;;;;;;;;;;:27;5426:7;5407:27;;;;;;;;;;;;;;;;5400:34;;5268:174;;;;:::o;1551:264::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1680:1:::1;1660:22;;:8;:22;;::::0;1652:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1770:8;1741:38;;1762:6;::::0;::::1;;;;;;;;1741:38;;;;;;;;;;;;1799:8;1790:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1551:264:::0;:::o;10723:202::-;1474:12;:10;:12::i;:::-;1464:22;;:6;;;;;;;;;;:22;;;1456:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10799:10:::1;;;;;;;;;;;10783:26;;:12;:10;:12::i;:::-;:26;;;10775:35;;;::::0;::::1;;10821:14;10838:24;10856:4;10838:9;:24::i;:::-;10821:41;;10873:44;10891:4;10898:10;;;;;;;;;;;10910:6;10873:9;:44::i;:::-;10764:161;10723:202::o:0;196:98::-;249:7;276:10;269:17;;196:98;:::o;6050:377::-;6190:1;6173:19;;:5;:19;;;6165:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6277:1;6258:21;;:7;:21;;;6250:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6365:6;6335:11;:18;6347:5;6335:18;;;;;;;;;;;;;;;:27;6354:7;6335:27;;;;;;;;;;;;;;;:36;;;;6403:7;6387:32;;6396:5;6387:32;;;6412:6;6387:32;;;;;;:::i;:::-;;;;;;;;6050:377;;;:::o;6435:2069::-;6582:1;6566:18;;:4;:18;;;6558:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6665:1;6651:16;;:2;:16;;;6643:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6741:1;6732:6;:10;6724:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6799:17;6834:18;:24;6853:4;6834:24;;;;;;;;;;;;;;;;;;;;;;;;;6833:25;:52;;;;;6863:18;:22;6882:2;6863:22;;;;;;;;;;;;;;;;;;;;;;;;;6862:23;6833:52;6829:1352;;;6920:11;;;;;;;;;;;6915:131;;6968:7;:5;:7::i;:::-;6960:15;;:4;:15;;;6952:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;6915:131;7087:4;:10;7092:4;7087:10;;;;;;;;;;;;;;;;;;;;;;;;;7086:11;:24;;;;;7102:4;:8;7107:2;7102:8;;;;;;;;;;;;;;;;;;;;;;;;;7101:9;7086:24;7078:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7179:13;;;;;;;;;;;7171:21;;:4;:21;;;:55;;;;;7210:15;;;;;;;;;;;7196:30;;:2;:30;;;;7171:55;7167:253;;;7264:12;;7255:6;:21;7247:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7358:14;;7349:6;7333:13;7343:2;7333:9;:13::i;:::-;:22;;;;:::i;:::-;:39;7325:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7167:253;7459:13;;;;;;;;;;;7451:21;;:4;:21;;;:44;;;;;7490:4;7476:19;;:2;:19;;;;7451:44;7448:117;;;7546:3;7536:7;;7527:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;7515:34;;7448:117;7588:13;;;;;;;;;;;7582:19;;:2;:19;;;:44;;;;;7621:4;7605:21;;:4;:21;;;;7582:44;7579:118;;;7678:3;7667:8;;7658:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;7646:35;;7579:118;7713:28;7744:24;7762:4;7744:9;:24::i;:::-;7713:55;;7788:6;;;;;;;;;;;7787:7;:30;;;;;7804:13;;;;;;;;;;;7798:19;;:2;:19;;;7787:30;:45;;;;;7821:11;;;;;;;;;;;7787:45;:87;;;;;7857:17;;7836:20;:38;7787:87;7783:387;;;7895:67;7912:49;7916:6;7923:37;7927:20;7948:11;;7923:3;:37::i;:::-;7912:3;:49::i;:::-;7895:16;:67::i;:::-;7981:26;8010:21;7981:50;;8074:1;8053:18;:22;8050:105;;;8100:35;8113:21;8100:12;:35::i;:::-;8050:105;7876:294;7783:387;6887:1294;6829:1352;8206:1;8196:9;:11;8193:134;;;8249:9;8221;:24;8239:4;8221:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;8299:4;8276:39;;8285:4;8276:39;;;8305:9;8276:39;;;;;;:::i;:::-;;;;;;;;8193:134;8373:6;8355:9;:15;8365:4;8355:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;8337:9;:15;8347:4;8337:15;;;;;;;;;;;;;;;:42;;;;8432:9;8423:6;:18;;;;:::i;:::-;8406:9;:13;8416:2;8406:13;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;8390:9;:13;8400:2;8390:13;;;;;;;;;;;;;;;:52;;;;8473:2;8458:38;;8467:4;8458:38;;;8486:9;8477:6;:18;;;;:::i;:::-;8458:38;;;;;;:::i;:::-;;;;;;;;6547:1957;6435:2069;;;:::o;8616:557::-;3962:4;3953:6;;:13;;;;;;;;;;;;;;;;;;8712:1:::1;8697:11;:16:::0;8694:29;8715:7:::1;8694:29;8737:11;;;;;;;;;;;8733:25:::0;8750:7:::1;8733:25;8768:21;8806:1;8792:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8768:40;;8837:4;8819;8824:1;8819:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8863:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8853:4;8858:1;8853:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8896:62;8913:4;8928:15;;;;;;;;;;;8946:11;8896:8;:62::i;:::-;8969:15;;;;;;;;;;;:66;;;9050:11;9076:1;9092:4;9119;9139:15;8969:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8683:490;3977:1;3998:5:::0;3989:6;;:14;;;;;;;;;;;;;;;;;;8616:557;:::o;10296:98::-;10353:16;;;;;;;;;;;:25;;:33;10379:6;10353:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10296:98;:::o;8510:::-;8567:7;8594:1;8592;:3;8591:9;;8599:1;8591:9;;;8597:1;8591:9;8584:16;;8510:98;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::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:117::-;4867:1;4864;4857:12;4881:180;4929:77;4926:1;4919:88;5026:4;5023:1;5016:15;5050:4;5047:1;5040:15;5067:281;5150:27;5172:4;5150:27;:::i;:::-;5142:6;5138:40;5280:6;5268:10;5265:22;5244:18;5232:10;5229:34;5226:62;5223:88;;;5291:18;;:::i;:::-;5223:88;5331:10;5327:2;5320:22;5110:238;5067:281;;:::o;5354:129::-;5388:6;5415:20;;:::i;:::-;5405:30;;5444:33;5472:4;5464:6;5444:33;:::i;:::-;5354:129;;;:::o;5489:311::-;5566:4;5656:18;5648:6;5645:30;5642:56;;;5678:18;;:::i;:::-;5642:56;5728:4;5720:6;5716:17;5708:25;;5788:4;5782;5778:15;5770:23;;5489:311;;;:::o;5806:117::-;5915:1;5912;5905:12;5946:710;6042:5;6067:81;6083:64;6140:6;6083:64;:::i;:::-;6067:81;:::i;:::-;6058:90;;6168:5;6197:6;6190:5;6183:21;6231:4;6224:5;6220:16;6213:23;;6284:4;6276:6;6272:17;6264:6;6260:30;6313:3;6305:6;6302:15;6299:122;;;6332:79;;:::i;:::-;6299:122;6447:6;6430:220;6464:6;6459:3;6456:15;6430:220;;;6539:3;6568:37;6601:3;6589:10;6568:37;:::i;:::-;6563:3;6556:50;6635:4;6630:3;6626:14;6619:21;;6506:144;6490:4;6485:3;6481:14;6474:21;;6430:220;;;6434:21;6048:608;;5946:710;;;;;:::o;6679:370::-;6750:5;6799:3;6792:4;6784:6;6780:17;6776:27;6766:122;;6807:79;;:::i;:::-;6766:122;6924:6;6911:20;6949:94;7039:3;7031:6;7024:4;7016:6;7012:17;6949:94;:::i;:::-;6940:103;;6756:293;6679:370;;;;:::o;7055:539::-;7139:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:119;;;7194:79;;:::i;:::-;7156:119;7342:1;7331:9;7327:17;7314:31;7372:18;7364:6;7361:30;7358:117;;;7394:79;;:::i;:::-;7358:117;7499:78;7569:7;7560:6;7549:9;7545:22;7499:78;:::i;:::-;7489:88;;7285:302;7055:539;;;;:::o;7600:86::-;7635:7;7675:4;7668:5;7664:16;7653:27;;7600:86;;;:::o;7692:112::-;7775:22;7791:5;7775:22;:::i;:::-;7770:3;7763:35;7692:112;;:::o;7810:214::-;7899:4;7937:2;7926:9;7922:18;7914:26;;7950:67;8014:1;8003:9;7999:17;7990:6;7950:67;:::i;:::-;7810:214;;;;:::o;8030:329::-;8089:6;8138:2;8126:9;8117:7;8113:23;8109:32;8106:119;;;8144:79;;:::i;:::-;8106:119;8264:1;8289:53;8334:7;8325:6;8314:9;8310:22;8289:53;:::i;:::-;8279:63;;8235:117;8030:329;;;;:::o;8365:474::-;8433:6;8441;8490:2;8478:9;8469:7;8465:23;8461:32;8458:119;;;8496:79;;:::i;:::-;8458:119;8616:1;8641:53;8686:7;8677:6;8666:9;8662:22;8641:53;:::i;:::-;8631:63;;8587:117;8743:2;8769:53;8814:7;8805:6;8794:9;8790:22;8769:53;:::i;:::-;8759:63;;8714:118;8365:474;;;;;:::o;8845:118::-;8932:24;8950:5;8932:24;:::i;:::-;8927:3;8920:37;8845:118;;:::o;8969:222::-;9062:4;9100:2;9089:9;9085:18;9077:26;;9113:71;9181:1;9170:9;9166:17;9157:6;9113:71;:::i;:::-;8969:222;;;;:::o;9197:474::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:180::-;9725:77;9722:1;9715:88;9822:4;9819:1;9812:15;9846:4;9843:1;9836:15;9863:102;9905:8;9952:5;9949:1;9945:13;9924:34;;9863:102;;;:::o;9971:848::-;10032:5;10039:4;10063:6;10054:15;;10087:5;10078:14;;10101:712;10122:1;10112:8;10109:15;10101:712;;;10217:4;10212:3;10208:14;10202:4;10199:24;10196:50;;;10226:18;;:::i;:::-;10196:50;10276:1;10266:8;10262:16;10259:451;;;10691:4;10684:5;10680:16;10671:25;;10259:451;10741:4;10735;10731:15;10723:23;;10771:32;10794:8;10771:32;:::i;:::-;10759:44;;10101:712;;;9971:848;;;;;;;:::o;10825:1073::-;10879:5;11070:8;11060:40;;11091:1;11082:10;;11093:5;;11060:40;11119:4;11109:36;;11136:1;11127:10;;11138:5;;11109:36;11205:4;11253:1;11248:27;;;;11289:1;11284:191;;;;11198:277;;11248:27;11266:1;11257:10;;11268:5;;;11284:191;11329:3;11319:8;11316:17;11313:43;;;11336:18;;:::i;:::-;11313:43;11385:8;11382:1;11378:16;11369:25;;11420:3;11413:5;11410:14;11407:40;;;11427:18;;:::i;:::-;11407:40;11460:5;;;11198:277;;11584:2;11574:8;11571:16;11565:3;11559:4;11556:13;11552:36;11534:2;11524:8;11521:16;11516:2;11510:4;11507:12;11503:35;11487:111;11484:246;;;11640:8;11634:4;11630:19;11621:28;;11675:3;11668:5;11665:14;11662:40;;;11682:18;;:::i;:::-;11662:40;11715:5;;11484:246;11755:42;11793:3;11783:8;11777:4;11774:1;11755:42;:::i;:::-;11740:57;;;;11829:4;11824:3;11820:14;11813:5;11810:25;11807:51;;;11838:18;;:::i;:::-;11807:51;11887:4;11880:5;11876:16;11867:25;;10825:1073;;;;;;:::o;11904:281::-;11962:5;11986:23;12004:4;11986:23;:::i;:::-;11978:31;;12030:25;12046:8;12030:25;:::i;:::-;12018:37;;12074:104;12111:66;12101:8;12095:4;12074:104;:::i;:::-;12065:113;;11904:281;;;;:::o;12191:410::-;12231:7;12254:20;12272:1;12254:20;:::i;:::-;12249:25;;12288:20;12306:1;12288:20;:::i;:::-;12283:25;;12343:1;12340;12336:9;12365:30;12383:11;12365:30;:::i;:::-;12354:41;;12544:1;12535:7;12531:15;12528:1;12525:22;12505:1;12498:9;12478:83;12455:139;;12574:18;;:::i;:::-;12455:139;12239:362;12191:410;;;;:::o;12607:182::-;12747:34;12743:1;12735:6;12731:14;12724:58;12607:182;:::o;12795:366::-;12937:3;12958:67;13022:2;13017:3;12958:67;:::i;:::-;12951:74;;13034:93;13123:3;13034:93;:::i;:::-;13152:2;13147:3;13143:12;13136:19;;12795:366;;;:::o;13167:419::-;13333:4;13371:2;13360:9;13356:18;13348:26;;13420:9;13414:4;13410:20;13406:1;13395:9;13391:17;13384:47;13448:131;13574:4;13448:131;:::i;:::-;13440:139;;13167:419;;;:::o;13592:220::-;13732:34;13728:1;13720:6;13716:14;13709:58;13801:3;13796:2;13788:6;13784:15;13777:28;13592:220;:::o;13818:366::-;13960:3;13981:67;14045:2;14040:3;13981:67;:::i;:::-;13974:74;;14057:93;14146:3;14057:93;:::i;:::-;14175:2;14170:3;14166:12;14159:19;;13818:366;;;:::o;14190:419::-;14356:4;14394:2;14383:9;14379:18;14371:26;;14443:9;14437:4;14433:20;14429:1;14418:9;14414:17;14407:47;14471:131;14597:4;14471:131;:::i;:::-;14463:139;;14190:419;;;:::o;14615:194::-;14655:4;14675:20;14693:1;14675:20;:::i;:::-;14670:25;;14709:20;14727:1;14709:20;:::i;:::-;14704:25;;14753:1;14750;14746:9;14738:17;;14777:1;14771:4;14768:11;14765:37;;;14782:18;;:::i;:::-;14765:37;14615:194;;;;:::o;14815:180::-;14863:77;14860:1;14853:88;14960:4;14957:1;14950:15;14984:4;14981:1;14974:15;15001:143;15058:5;15089:6;15083:13;15074:22;;15105:33;15132:5;15105:33;:::i;:::-;15001:143;;;;:::o;15150:351::-;15220:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:119;;;15275:79;;:::i;:::-;15237:119;15395:1;15420:64;15476:7;15467:6;15456:9;15452:22;15420:64;:::i;:::-;15410:74;;15366:128;15150:351;;;;:::o;15507:332::-;15628:4;15666:2;15655:9;15651:18;15643:26;;15679:71;15747:1;15736:9;15732:17;15723:6;15679:71;:::i;:::-;15760:72;15828:2;15817:9;15813:18;15804:6;15760:72;:::i;:::-;15507:332;;;;;:::o;15845:85::-;15890:7;15919:5;15908:16;;15845:85;;;:::o;15936:60::-;15964:3;15985:5;15978:12;;15936:60;;;:::o;16002:158::-;16060:9;16093:61;16111:42;16120:32;16146:5;16120:32;:::i;:::-;16111:42;:::i;:::-;16093:61;:::i;:::-;16080:74;;16002:158;;;:::o;16166:147::-;16261:45;16300:5;16261:45;:::i;:::-;16256:3;16249:58;16166:147;;:::o;16319:807::-;16568:4;16606:3;16595:9;16591:19;16583:27;;16620:71;16688:1;16677:9;16673:17;16664:6;16620:71;:::i;:::-;16701:72;16769:2;16758:9;16754:18;16745:6;16701:72;:::i;:::-;16783:80;16859:2;16848:9;16844:18;16835:6;16783:80;:::i;:::-;16873;16949:2;16938:9;16934:18;16925:6;16873:80;:::i;:::-;16963:73;17031:3;17020:9;17016:19;17007:6;16963:73;:::i;:::-;17046;17114:3;17103:9;17099:19;17090:6;17046:73;:::i;:::-;16319:807;;;;;;;;;:::o;17132:143::-;17189:5;17220:6;17214:13;17205:22;;17236:33;17263:5;17236:33;:::i;:::-;17132:143;;;;:::o;17281:663::-;17369:6;17377;17385;17434:2;17422:9;17413:7;17409:23;17405:32;17402:119;;;17440:79;;:::i;:::-;17402:119;17560:1;17585:64;17641:7;17632:6;17621:9;17617:22;17585:64;:::i;:::-;17575:74;;17531:128;17698:2;17724:64;17780:7;17771:6;17760:9;17756:22;17724:64;:::i;:::-;17714:74;;17669:129;17837:2;17863:64;17919:7;17910:6;17899:9;17895:22;17863:64;:::i;:::-;17853:74;;17808:129;17281:663;;;;;:::o;17950:332::-;18071:4;18109:2;18098:9;18094:18;18086:26;;18122:71;18190:1;18179:9;18175:17;18166:6;18122:71;:::i;:::-;18203:72;18271:2;18260:9;18256:18;18247:6;18203:72;:::i;:::-;17950:332;;;;;:::o;18288:116::-;18358:21;18373:5;18358:21;:::i;:::-;18351:5;18348:32;18338:60;;18394:1;18391;18384:12;18338:60;18288:116;:::o;18410:137::-;18464:5;18495:6;18489:13;18480:22;;18511:30;18535:5;18511:30;:::i;:::-;18410:137;;;;:::o;18553:345::-;18620:6;18669:2;18657:9;18648:7;18644:23;18640:32;18637:119;;;18675:79;;:::i;:::-;18637:119;18795:1;18820:61;18873:7;18864:6;18853:9;18849:22;18820:61;:::i;:::-;18810:71;;18766:125;18553:345;;;;:::o;18904:173::-;19044:25;19040:1;19032:6;19028:14;19021:49;18904:173;:::o;19083:366::-;19225:3;19246:67;19310:2;19305:3;19246:67;:::i;:::-;19239:74;;19322:93;19411:3;19322:93;:::i;:::-;19440:2;19435:3;19431:12;19424:19;;19083:366;;;:::o;19455:419::-;19621:4;19659:2;19648:9;19644:18;19636:26;;19708:9;19702:4;19698:20;19694:1;19683:9;19679:17;19672:47;19736:131;19862:4;19736:131;:::i;:::-;19728:139;;19455:419;;;:::o;19880:225::-;20020:34;20016:1;20008:6;20004:14;19997:58;20089:8;20084:2;20076:6;20072:15;20065:33;19880:225;:::o;20111:366::-;20253:3;20274:67;20338:2;20333:3;20274:67;:::i;:::-;20267:74;;20350:93;20439:3;20350:93;:::i;:::-;20468:2;20463:3;20459:12;20452:19;;20111:366;;;:::o;20483:419::-;20649:4;20687:2;20676:9;20672:18;20664:26;;20736:9;20730:4;20726:20;20722:1;20711:9;20707:17;20700:47;20764:131;20890:4;20764:131;:::i;:::-;20756:139;;20483:419;;;:::o;20908:229::-;21048:34;21044:1;21036:6;21032:14;21025:58;21117:12;21112:2;21104:6;21100:15;21093:37;20908:229;:::o;21143:366::-;21285:3;21306:67;21370:2;21365:3;21306:67;:::i;:::-;21299:74;;21382:93;21471:3;21382:93;:::i;:::-;21500:2;21495:3;21491:12;21484:19;;21143:366;;;:::o;21515:419::-;21681:4;21719:2;21708:9;21704:18;21696:26;;21768:9;21762:4;21758:20;21754:1;21743:9;21739:17;21732:47;21796:131;21922:4;21796:131;:::i;:::-;21788:139;;21515:419;;;:::o;21940:227::-;22080:34;22076:1;22068:6;22064:14;22057:58;22149:10;22144:2;22136:6;22132:15;22125:35;21940:227;:::o;22173:366::-;22315:3;22336:67;22400:2;22395:3;22336:67;:::i;:::-;22329:74;;22412:93;22501:3;22412:93;:::i;:::-;22530:2;22525:3;22521:12;22514:19;;22173:366;;;:::o;22545:419::-;22711:4;22749:2;22738:9;22734:18;22726:26;;22798:9;22792:4;22788:20;22784:1;22773:9;22769:17;22762:47;22826:131;22952:4;22826:131;:::i;:::-;22818:139;;22545:419;;;:::o;22970:230::-;23110:34;23106:1;23098:6;23094:14;23087:58;23179:13;23174:2;23166:6;23162:15;23155:38;22970:230;:::o;23206:366::-;23348:3;23369:67;23433:2;23428:3;23369:67;:::i;:::-;23362:74;;23445:93;23534:3;23445:93;:::i;:::-;23563:2;23558:3;23554:12;23547:19;;23206:366;;;:::o;23578:419::-;23744:4;23782:2;23771:9;23767:18;23759:26;;23831:9;23825:4;23821:20;23817:1;23806:9;23802:17;23795:47;23859:131;23985:4;23859:131;:::i;:::-;23851:139;;23578:419;;;:::o;24003:228::-;24143:34;24139:1;24131:6;24127:14;24120:58;24212:11;24207:2;24199:6;24195:15;24188:36;24003:228;:::o;24237:366::-;24379:3;24400:67;24464:2;24459:3;24400:67;:::i;:::-;24393:74;;24476:93;24565:3;24476:93;:::i;:::-;24594:2;24589:3;24585:12;24578:19;;24237:366;;;:::o;24609:419::-;24775:4;24813:2;24802:9;24798:18;24790:26;;24862:9;24856:4;24852:20;24848:1;24837:9;24833:17;24826:47;24890:131;25016:4;24890:131;:::i;:::-;24882:139;;24609:419;;;:::o;25034:228::-;25174:34;25170:1;25162:6;25158:14;25151:58;25243:11;25238:2;25230:6;25226:15;25219:36;25034:228;:::o;25268:366::-;25410:3;25431:67;25495:2;25490:3;25431:67;:::i;:::-;25424:74;;25507:93;25596:3;25507:93;:::i;:::-;25625:2;25620:3;25616:12;25609:19;;25268:366;;;:::o;25640:419::-;25806:4;25844:2;25833:9;25829:18;25821:26;;25893:9;25887:4;25883:20;25879:1;25868:9;25864:17;25857:47;25921:131;26047:4;25921:131;:::i;:::-;25913:139;;25640:419;;;:::o;26065:237::-;26205:34;26201:1;26193:6;26189:14;26182:58;26274:20;26269:2;26261:6;26257:15;26250:45;26065:237;:::o;26308:366::-;26450:3;26471:67;26535:2;26530:3;26471:67;:::i;:::-;26464:74;;26547:93;26636:3;26547:93;:::i;:::-;26665:2;26660:3;26656:12;26649:19;;26308:366;;;:::o;26680:419::-;26846:4;26884:2;26873:9;26869:18;26861:26;;26933:9;26927:4;26923:20;26919:1;26908:9;26904:17;26897:47;26961:131;27087:4;26961:131;:::i;:::-;26953:139;;26680:419;;;:::o;27105:222::-;27245:34;27241:1;27233:6;27229:14;27222:58;27314:5;27309:2;27301:6;27297:15;27290:30;27105:222;:::o;27333:366::-;27475:3;27496:67;27560:2;27555:3;27496:67;:::i;:::-;27489:74;;27572:93;27661:3;27572:93;:::i;:::-;27690:2;27685:3;27681:12;27674:19;;27333:366;;;:::o;27705:419::-;27871:4;27909:2;27898:9;27894:18;27886:26;;27958:9;27952:4;27948:20;27944:1;27933:9;27929:17;27922:47;27986:131;28112:4;27986:131;:::i;:::-;27978:139;;27705:419;;;:::o;28130:175::-;28270:27;28266:1;28258:6;28254:14;28247:51;28130:175;:::o;28311:366::-;28453:3;28474:67;28538:2;28533:3;28474:67;:::i;:::-;28467:74;;28550:93;28639:3;28550:93;:::i;:::-;28668:2;28663:3;28659:12;28652:19;;28311:366;;;:::o;28683:419::-;28849:4;28887:2;28876:9;28872:18;28864:26;;28936:9;28930:4;28926:20;28922:1;28911:9;28907:17;28900:47;28964:131;29090:4;28964:131;:::i;:::-;28956:139;;28683:419;;;:::o;29108:191::-;29148:3;29167:20;29185:1;29167:20;:::i;:::-;29162:25;;29201:20;29219:1;29201:20;:::i;:::-;29196:25;;29244:1;29241;29237:9;29230:16;;29265:3;29262:1;29259:10;29256:36;;;29272:18;;:::i;:::-;29256:36;29108:191;;;;:::o;29305:177::-;29445:29;29441:1;29433:6;29429:14;29422:53;29305:177;:::o;29488:366::-;29630:3;29651:67;29715:2;29710:3;29651:67;:::i;:::-;29644:74;;29727:93;29816:3;29727:93;:::i;:::-;29845:2;29840:3;29836:12;29829:19;;29488:366;;;:::o;29860:419::-;30026:4;30064:2;30053:9;30049:18;30041:26;;30113:9;30107:4;30103:20;30099:1;30088:9;30084:17;30077:47;30141:131;30267:4;30141:131;:::i;:::-;30133:139;;29860:419;;;:::o;30285:180::-;30333:77;30330:1;30323:88;30430:4;30427:1;30420:15;30454:4;30451:1;30444:15;30471:185;30511:1;30528:20;30546:1;30528:20;:::i;:::-;30523:25;;30562:20;30580:1;30562:20;:::i;:::-;30557:25;;30601:1;30591:35;;30606:18;;:::i;:::-;30591:35;30648:1;30645;30641:9;30636:14;;30471:185;;;;:::o;30662:114::-;30729:6;30763:5;30757:12;30747:22;;30662:114;;;:::o;30782:184::-;30881:11;30915:6;30910:3;30903:19;30955:4;30950:3;30946:14;30931:29;;30782:184;;;;:::o;30972:132::-;31039:4;31062:3;31054:11;;31092:4;31087:3;31083:14;31075:22;;30972:132;;;:::o;31110:108::-;31187:24;31205:5;31187:24;:::i;:::-;31182:3;31175:37;31110:108;;:::o;31224:179::-;31293:10;31314:46;31356:3;31348:6;31314:46;:::i;:::-;31392:4;31387:3;31383:14;31369:28;;31224:179;;;;:::o;31409:113::-;31479:4;31511;31506:3;31502:14;31494:22;;31409:113;;;:::o;31558:732::-;31677:3;31706:54;31754:5;31706:54;:::i;:::-;31776:86;31855:6;31850:3;31776:86;:::i;:::-;31769:93;;31886:56;31936:5;31886:56;:::i;:::-;31965:7;31996:1;31981:284;32006:6;32003:1;32000:13;31981:284;;;32082:6;32076:13;32109:63;32168:3;32153:13;32109:63;:::i;:::-;32102:70;;32195:60;32248:6;32195:60;:::i;:::-;32185:70;;32041:224;32028:1;32025;32021:9;32016:14;;31981:284;;;31985:14;32281:3;32274:10;;31682:608;;;31558:732;;;;:::o;32296:831::-;32559:4;32597:3;32586:9;32582:19;32574:27;;32611:71;32679:1;32668:9;32664:17;32655:6;32611:71;:::i;:::-;32692:80;32768:2;32757:9;32753:18;32744:6;32692:80;:::i;:::-;32819:9;32813:4;32809:20;32804:2;32793:9;32789:18;32782:48;32847:108;32950:4;32941:6;32847:108;:::i;:::-;32839:116;;32965:72;33033:2;33022:9;33018:18;33009:6;32965:72;:::i;:::-;33047:73;33115:3;33104:9;33100:19;33091:6;33047:73;:::i;:::-;32296:831;;;;;;;;:::o

Swarm Source

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