ETH Price: $3,119.23 (+0.83%)
Gas: 2 Gwei

Token

Innovai (INO)
 

Overview

Max Total Supply

100,000,000 INO

Holders

195

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
13,014.385940631965772718 INO

Value
$0.00
0xfb3825777c0f12a4428cf2eaf43b84dcff73c5df
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:
innovai

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-22
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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 onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 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 innovai is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _IsLimitFree;
    mapping(address => uint256) private _BlockedAddress;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;

    uint256 private InitialBlockNo;

    uint256 public buyTax = 35;
    uint256 public sellTax = 55;

    uint256 private constant _totalSupply = 100000000 * 10**_decimals;
    uint256 private constant onePercent = (_totalSupply)/100;
    uint256 private constant minimumSwapAmount = 40000;
    uint256 private maxSwap = onePercent;
    uint256 public MaxTX = onePercent;
    uint256 public MxWall = onePercent;

    
    string private constant _name = "Innovai";
    string private constant _symbol = "INO";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address immutable public DevAdd;
    address immutable public AdminAdd;
    address immutable public DAOAdd;

    bool private launch = false;

    constructor() {
        AdminAdd  = 0xd5d8fb0919209C66019601D06Fe79f770a6Ed08B;
        DevAdd = 0xB22B7913Ec4d3c09fcd0962C2C9c8061e9108E37;
        DAOAdd = 0xa55b68a55D1f92cc809338793b99CC45e17c0FaC;
        _balance[msg.sender] = _totalSupply;
        _IsLimitFree[DevAdd ] = 1;
        _IsLimitFree[msg.sender] = 1;
        _IsLimitFree[address(this)] = 1;

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max) { 
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

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


    function OpenTrading() external onlyOwner {
        require(!launch,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        launch = true;
        InitialBlockNo = block.number;
    }

    function _ExcludedWallet(address wallet) external onlyOwner {
        _IsLimitFree[wallet] = 1;
    }

    function _RemoveExcludedWallet(address wallet) external onlyOwner {
        _IsLimitFree[wallet] = 0;
    }

    function TerminateActivity(address _wallet) external onlyOwner {
        require(_wallet != address(this) && _wallet != address(uniswapV2Pair) && _wallet != address(uniswapV2Router), "Invalid wallet");
        _BlockedAddress[_wallet] = 1;
    }

    function FreeActivity(address _wallet) external onlyOwner {
        _BlockedAddress[_wallet] = 0;
    }

    function AbolishLimits() external onlyOwner {
        MaxTX = _totalSupply;
        MxWall = _totalSupply;
    }

    function ChangeTaxes(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(newBuyTax <= buyTax && newSellTax <= sellTax, "Tax cannot be increased");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function _tokenTransfer(address from, address to, uint256 amount, uint256 _tax) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: no tokens transferred");
        uint256 _tax = 0;
        if (_IsLimitFree[from] == 0 && _IsLimitFree[to] == 0)
        {
            require(launch, "Trading not open");
            require(_BlockedAddress[from] == 0, "Please contact support");
            require(amount <= MaxTX, "MaxTx Enabled at launch");
            if (to != uniswapV2Pair && to != address(0xdead)) require(balanceOf(to) + amount <= MxWall, "MaxWallet Enabled at launch");
            if (block.number < InitialBlockNo + 3) {
                _tax = (from == uniswapV2Pair) ? 35 : 90;
                _BlockedAddress[to] = 1;
            } else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minimumSwapAmount) { 
                        uint256 mxSw = maxSwap;
                        if (tokensToSwap > amount) tokensToSwap = amount;
                        if (tokensToSwap > mxSw) tokensToSwap = mxSw;
                        swapTokensForEth(tokensToSwap);
                    }
                    _tax = sellTax;
                }
            }
        }
        _tokenTransfer(from, to, amount, _tax);
    }

    function WDeth() external onlyOwner {
        bool success;
        (success, ) = owner().call{value: address(this).balance}("");
    } 

    function ManualSwap(uint256 percent) external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        uint256 amtswap = (percent*contractBalance)/100;
        swapTokensForEth(amtswap);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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
        );
        bool success;
        uint256 devtax = address(this).balance *60/100;
        uint256 Admin = address(this).balance *30/100;
        uint256 dao = address(this).balance *10/100;

        (success, ) = DAOAdd.call{value: dao}("");
        (success, ) = AdminAdd.call{value: Admin}("");
        (success, ) = DevAdd .call{value: devtax}("");
    }
    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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AbolishLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"AdminAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"ChangeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DAOAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"FreeActivity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MxWall","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"TerminateActivity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WDeth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_ExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"_RemoveExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040526023600655603760075560646012600a620000209190620005c9565b6305f5e1006200003191906200061a565b6200003d919062000694565b60085560646012600a620000529190620005c9565b6305f5e1006200006391906200061a565b6200006f919062000694565b60095560646012600a620000849190620005c9565b6305f5e1006200009591906200061a565b620000a1919062000694565b600a556000600c60146101000a81548160ff021916908315150217905550348015620000cc57600080fd5b506000620000df6200042760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d5d8fb0919209c66019601d06fe79f770a6ed08b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505073b22b7913ec4d3c09fcd0962c2c9c8061e9108e3773ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505073a55b68a55d1f92cc809338793b99cc45e17c0fac73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250506012600a620002659190620005c9565b6305f5e1006200027691906200061a565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200039a6200042760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003f99190620005c9565b6305f5e1006200040a91906200061a565b604051620004199190620006dd565b60405180910390a3620006fa565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620004bd578086048111156200049557620004946200042f565b5b6001851615620004a55780820291505b8081029050620004b5856200045e565b945062000475565b94509492505050565b600082620004d85760019050620005ab565b81620004e85760009050620005ab565b81600181146200050157600281146200050c5762000542565b6001915050620005ab565b60ff8411156200052157620005206200042f565b5b8360020a9150848211156200053b576200053a6200042f565b5b50620005ab565b5060208310610133831016604e8410600b84101617156200057c5782820a9050838111156200057657620005756200042f565b5b620005ab565b6200058b84848460016200046b565b92509050818404811115620005a557620005a46200042f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005d682620005b2565b9150620005e383620005bc565b9250620006127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004c6565b905092915050565b60006200062782620005b2565b91506200063483620005b2565b92508282026200064481620005b2565b915082820484148315176200065e576200065d6200042f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620006a182620005b2565b9150620006ae83620005b2565b925082620006c157620006c062000665565b5b828204905092915050565b620006d781620005b2565b82525050565b6000602082019050620006f46000830184620006cc565b92915050565b60805160a05160c0516139136200073f600039600081816116f40152612337015260008181610a8301526123c30152600081816118b3015261244f01526139136000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063cc1776d311610095578063e5d51dc711610064578063e5d51dc714610607578063f2fde38b14610630578063fa84095c14610659578063fda38a8014610684576101cd565b8063cc1776d31461054b578063d7f7385814610576578063dd62ed3e1461059f578063ddc6245d146105dc576101cd565b8063a9059cbb116100d1578063a9059cbb146104b5578063b19826f4146104f2578063c195230414610509578063c5cb28a314610534576101cd565b8063715018a6146104485780638da5cb5b1461045f57806395d89b411461048a576101cd565b806349bd5a5e116101645780634f7041a51161013e5780634f7041a5146103a057806351cd7cc3146103cb57806356ca8a41146103e257806370a082311461040b576101cd565b806349bd5a5e146103215780634dabe75c1461034c5780634e23803f14610377576101cd565b80631d875776116101a05780631d8757761461026557806323b872dd1461028e578063313ce567146102cb5780633297acb4146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ad565b6040516101f491906128e0565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f919061299b565b6106ea565b60405161023191906129f6565b60405180910390f35b34801561024657600080fd5b5061024f610708565b60405161025c9190612a20565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612a3b565b61072c565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612a68565b61092c565b6040516102c291906129f6565b60405180910390f35b3480156102d757600080fd5b506102e0610a4c565b6040516102ed9190612ad7565b60405180910390f35b34801561030257600080fd5b5061030b610a55565b6040516103189190612a20565b60405180910390f35b34801561032d57600080fd5b50610336610a5b565b6040516103439190612b01565b60405180910390f35b34801561035857600080fd5b50610361610a81565b60405161036e9190612b01565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190612a3b565b610aa5565b005b3480156103ac57600080fd5b506103b5610b82565b6040516103c29190612a20565b60405180910390f35b3480156103d757600080fd5b506103e0610b88565b005b3480156103ee57600080fd5b5061040960048036038101906104049190612b1c565b6110ac565b005b34801561041757600080fd5b50610432600480360381019061042d9190612a3b565b611178565b60405161043f9190612a20565b60405180910390f35b34801561045457600080fd5b5061045d6111c1565b005b34801561046b57600080fd5b50610474611314565b6040516104819190612b01565b60405180910390f35b34801561049657600080fd5b5061049f61133d565b6040516104ac91906128e0565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061299b565b61137a565b6040516104e991906129f6565b60405180910390f35b3480156104fe57600080fd5b50610507611398565b005b34801561051557600080fd5b5061051e6114a5565b60405161052b9190612a20565b60405180910390f35b34801561054057600080fd5b506105496114ab565b005b34801561055757600080fd5b50610560611588565b60405161056d9190612a20565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190612a3b565b61158e565b005b3480156105ab57600080fd5b506105c660048036038101906105c19190612b49565b61166b565b6040516105d39190612a20565b60405180910390f35b3480156105e857600080fd5b506105f16116f2565b6040516105fe9190612b01565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190612b89565b611716565b005b34801561063c57600080fd5b5061065760048036038101906106529190612a3b565b611810565b005b34801561066557600080fd5b5061066e6118b1565b60405161067b9190612b01565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612a3b565b6118d5565b005b60606040518060400160405280600781526020017f496e6e6f76616900000000000000000000000000000000000000000000000000815250905090565b60006106fe6106f76119b2565b84846119ba565b6001905092915050565b60006012600a6107189190612d2b565b6305f5e1006107279190612d76565b905090565b6107346119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612e04565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561084b5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156108a55750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6108e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108db90612e70565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000610939848484611b83565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109846119b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a405782811015610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2290612f02565b60405180910390fd5b610a3f85610a376119b2565b8584036119ba565b5b60019150509392505050565b60006012905090565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b610aad6119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190612e04565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60065481565b610b906119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612e04565b60405180910390fd5b600c60149054906101000a900460ff1615610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490612f6e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d539190612fa3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e009190612fa3565b6040518363ffffffff1660e01b8152600401610e1d929190612fd0565b6020604051808303816000875af1158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190612fa3565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ee930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610ed59190612d2b565b6305f5e100610ee49190612d76565b6119ba565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f3230611178565b600080610f3d611314565b426040518863ffffffff1660e01b8152600401610f5f9695949392919061303e565b60606040518083038185885af1158015610f7d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fa291906130b4565b505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611044929190613107565b6020604051808303816000875af1158015611063573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611087919061315c565b506001600c60146101000a81548160ff02191690831515021790555043600581905550565b6110b46119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890612e04565b60405180910390fd5b600061114c30611178565b905060006064828461115e9190612d76565b61116891906131b8565b90506111738161209e565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111c96119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90612e04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f494e4f0000000000000000000000000000000000000000000000000000000000815250905090565b600061138e6113876119b2565b8484611b83565b6001905092915050565b6113a06119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490612e04565b60405180910390fd5b6000611437611314565b73ffffffffffffffffffffffffffffffffffffffff164760405161145a9061321a565b60006040518083038185875af1925050503d8060008114611497576040519150601f19603f3d011682016040523d82523d6000602084013e61149c565b606091505b50508091505050565b600a5481565b6114b36119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153790612e04565b60405180910390fd5b6012600a61154e9190612d2b565b6305f5e10061155d9190612d76565b6009819055506012600a6115719190612d2b565b6305f5e1006115809190612d76565b600a81905550565b60075481565b6115966119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a90612e04565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61171e6119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290612e04565b60405180910390fd5b60065482111580156117bf57506007548111155b6117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f59061327b565b60405180910390fd5b81600681905550806007819055505050565b6118186119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90612e04565b60405180910390fd5b6118ae816124e1565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6118dd6119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461196a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196190612e04565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a209061330d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f9061339f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b769190612a20565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990613431565b60405180910390fd5b60008111611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c9061349d565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015611cc457506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561208c57600c60149054906101000a900460ff16611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90613509565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9190613575565b60405180910390fd5b600954821115611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd6906135e1565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e6b575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ec957600a5482611e7d85611178565b611e879190613601565b1115611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf90613681565b60405180910390fd5b5b6003600554611ed89190613601565b431015611f8d57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611f3b57605a611f3e565b60235b60ff1690506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061208b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611fec57600654905061208a565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208957600061204c30611178565b9050619c4081111561208257600060085490508382111561206b578391505b80821115612077578091505b6120808261209e565b505b6007549150505b5b5b5b6120988484848461260d565b50505050565b6000600267ffffffffffffffff8111156120bb576120ba6136a1565b5b6040519080825280602002602001820160405280156120e95781602001602082028036833780820191505090505b5090503081600081518110612101576121006136d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cc9190612fa3565b816001815181106121e0576121df6136d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061224730600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119ba565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122ab9594939291906137bd565b600060405180830381600087803b1580156122c557600080fd5b505af11580156122d9573d6000803e3d6000fd5b505050506000806064603c476122ef9190612d76565b6122f991906131b8565b905060006064601e4761230c9190612d76565b61231691906131b8565b905060006064600a476123299190612d76565b61233391906131b8565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816040516123799061321a565b60006040518083038185875af1925050503d80600081146123b6576040519150601f19603f3d011682016040523d82523d6000602084013e6123bb565b606091505b5050809450507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16826040516124059061321a565b60006040518083038185875af1925050503d8060008114612442576040519150601f19603f3d011682016040523d82523d6000602084013e612447565b606091505b5050809450507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16836040516124919061321a565b60006040518083038185875af1925050503d80600081146124ce576040519150601f19603f3d011682016040523d82523d6000602084013e6124d3565b606091505b505080945050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254790613889565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006064828461261d9190612d76565b61262791906131b8565b90506000818461263791906138a9565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268491906138a9565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127129190613601565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a09190613601565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128409190612a20565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561288a57808201518184015260208101905061286f565b60008484015250505050565b6000601f19601f8301169050919050565b60006128b282612850565b6128bc818561285b565b93506128cc81856020860161286c565b6128d581612896565b840191505092915050565b600060208201905081810360008301526128fa81846128a7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061293282612907565b9050919050565b61294281612927565b811461294d57600080fd5b50565b60008135905061295f81612939565b92915050565b6000819050919050565b61297881612965565b811461298357600080fd5b50565b6000813590506129958161296f565b92915050565b600080604083850312156129b2576129b1612902565b5b60006129c085828601612950565b92505060206129d185828601612986565b9150509250929050565b60008115159050919050565b6129f0816129db565b82525050565b6000602082019050612a0b60008301846129e7565b92915050565b612a1a81612965565b82525050565b6000602082019050612a356000830184612a11565b92915050565b600060208284031215612a5157612a50612902565b5b6000612a5f84828501612950565b91505092915050565b600080600060608486031215612a8157612a80612902565b5b6000612a8f86828701612950565b9350506020612aa086828701612950565b9250506040612ab186828701612986565b9150509250925092565b600060ff82169050919050565b612ad181612abb565b82525050565b6000602082019050612aec6000830184612ac8565b92915050565b612afb81612927565b82525050565b6000602082019050612b166000830184612af2565b92915050565b600060208284031215612b3257612b31612902565b5b6000612b4084828501612986565b91505092915050565b60008060408385031215612b6057612b5f612902565b5b6000612b6e85828601612950565b9250506020612b7f85828601612950565b9150509250929050565b60008060408385031215612ba057612b9f612902565b5b6000612bae85828601612986565b9250506020612bbf85828601612986565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c4f57808604811115612c2b57612c2a612bc9565b5b6001851615612c3a5780820291505b8081029050612c4885612bf8565b9450612c0f565b94509492505050565b600082612c685760019050612d24565b81612c765760009050612d24565b8160018114612c8c5760028114612c9657612cc5565b6001915050612d24565b60ff841115612ca857612ca7612bc9565b5b8360020a915084821115612cbf57612cbe612bc9565b5b50612d24565b5060208310610133831016604e8410600b8410161715612cfa5782820a905083811115612cf557612cf4612bc9565b5b612d24565b612d078484846001612c05565b92509050818404811115612d1e57612d1d612bc9565b5b81810290505b9392505050565b6000612d3682612965565b9150612d4183612abb565b9250612d6e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c58565b905092915050565b6000612d8182612965565b9150612d8c83612965565b9250828202612d9a81612965565b91508282048414831517612db157612db0612bc9565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612dee60208361285b565b9150612df982612db8565b602082019050919050565b60006020820190508181036000830152612e1d81612de1565b9050919050565b7f496e76616c69642077616c6c6574000000000000000000000000000000000000600082015250565b6000612e5a600e8361285b565b9150612e6582612e24565b602082019050919050565b60006020820190508181036000830152612e8981612e4d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612eec60288361285b565b9150612ef782612e90565b604082019050919050565b60006020820190508181036000830152612f1b81612edf565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f5860178361285b565b9150612f6382612f22565b602082019050919050565b60006020820190508181036000830152612f8781612f4b565b9050919050565b600081519050612f9d81612939565b92915050565b600060208284031215612fb957612fb8612902565b5b6000612fc784828501612f8e565b91505092915050565b6000604082019050612fe56000830185612af2565b612ff26020830184612af2565b9392505050565b6000819050919050565b6000819050919050565b600061302861302361301e84612ff9565b613003565b612965565b9050919050565b6130388161300d565b82525050565b600060c0820190506130536000830189612af2565b6130606020830188612a11565b61306d604083018761302f565b61307a606083018661302f565b6130876080830185612af2565b61309460a0830184612a11565b979650505050505050565b6000815190506130ae8161296f565b92915050565b6000806000606084860312156130cd576130cc612902565b5b60006130db8682870161309f565b93505060206130ec8682870161309f565b92505060406130fd8682870161309f565b9150509250925092565b600060408201905061311c6000830185612af2565b6131296020830184612a11565b9392505050565b613139816129db565b811461314457600080fd5b50565b60008151905061315681613130565b92915050565b60006020828403121561317257613171612902565b5b600061318084828501613147565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131c382612965565b91506131ce83612965565b9250826131de576131dd613189565b5b828204905092915050565b600081905092915050565b50565b60006132046000836131e9565b915061320f826131f4565b600082019050919050565b6000613225826131f7565b9150819050919050565b7f5461782063616e6e6f7420626520696e63726561736564000000000000000000600082015250565b600061326560178361285b565b91506132708261322f565b602082019050919050565b6000602082019050818103600083015261329481613258565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132f760248361285b565b91506133028261329b565b604082019050919050565b60006020820190508181036000830152613326816132ea565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061338960228361285b565b91506133948261332d565b604082019050919050565b600060208201905081810360008301526133b88161337c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061341b60258361285b565b9150613426826133bf565b604082019050919050565b6000602082019050818103600083015261344a8161340e565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000613487601c8361285b565b915061349282613451565b602082019050919050565b600060208201905081810360008301526134b68161347a565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006134f360108361285b565b91506134fe826134bd565b602082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b600061355f60168361285b565b915061356a82613529565b602082019050919050565b6000602082019050818103600083015261358e81613552565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b60006135cb60178361285b565b91506135d682613595565b602082019050919050565b600060208201905081810360008301526135fa816135be565b9050919050565b600061360c82612965565b915061361783612965565b925082820190508082111561362f5761362e612bc9565b5b92915050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b600061366b601b8361285b565b915061367682613635565b602082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61373481612927565b82525050565b6000613746838361372b565b60208301905092915050565b6000602082019050919050565b600061376a826136ff565b613774818561370a565b935061377f8361371b565b8060005b838110156137b0578151613797888261373a565b97506137a283613752565b925050600181019050613783565b5085935050505092915050565b600060a0820190506137d26000830188612a11565b6137df602083018761302f565b81810360408301526137f1818661375f565b90506138006060830185612af2565b61380d6080830184612a11565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061387360268361285b565b915061387e82613817565b604082019050919050565b600060208201905081810360008301526138a281613866565b9050919050565b60006138b482612965565b91506138bf83612965565b92508282039050818111156138d7576138d6612bc9565b5b9291505056fea2646970667358221220ae5d6426134bd38548d01842fadd4e4eb9373bec57e92fb48acf9bfae4e5099664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063cc1776d311610095578063e5d51dc711610064578063e5d51dc714610607578063f2fde38b14610630578063fa84095c14610659578063fda38a8014610684576101cd565b8063cc1776d31461054b578063d7f7385814610576578063dd62ed3e1461059f578063ddc6245d146105dc576101cd565b8063a9059cbb116100d1578063a9059cbb146104b5578063b19826f4146104f2578063c195230414610509578063c5cb28a314610534576101cd565b8063715018a6146104485780638da5cb5b1461045f57806395d89b411461048a576101cd565b806349bd5a5e116101645780634f7041a51161013e5780634f7041a5146103a057806351cd7cc3146103cb57806356ca8a41146103e257806370a082311461040b576101cd565b806349bd5a5e146103215780634dabe75c1461034c5780634e23803f14610377576101cd565b80631d875776116101a05780631d8757761461026557806323b872dd1461028e578063313ce567146102cb5780633297acb4146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ad565b6040516101f491906128e0565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f919061299b565b6106ea565b60405161023191906129f6565b60405180910390f35b34801561024657600080fd5b5061024f610708565b60405161025c9190612a20565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612a3b565b61072c565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612a68565b61092c565b6040516102c291906129f6565b60405180910390f35b3480156102d757600080fd5b506102e0610a4c565b6040516102ed9190612ad7565b60405180910390f35b34801561030257600080fd5b5061030b610a55565b6040516103189190612a20565b60405180910390f35b34801561032d57600080fd5b50610336610a5b565b6040516103439190612b01565b60405180910390f35b34801561035857600080fd5b50610361610a81565b60405161036e9190612b01565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190612a3b565b610aa5565b005b3480156103ac57600080fd5b506103b5610b82565b6040516103c29190612a20565b60405180910390f35b3480156103d757600080fd5b506103e0610b88565b005b3480156103ee57600080fd5b5061040960048036038101906104049190612b1c565b6110ac565b005b34801561041757600080fd5b50610432600480360381019061042d9190612a3b565b611178565b60405161043f9190612a20565b60405180910390f35b34801561045457600080fd5b5061045d6111c1565b005b34801561046b57600080fd5b50610474611314565b6040516104819190612b01565b60405180910390f35b34801561049657600080fd5b5061049f61133d565b6040516104ac91906128e0565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061299b565b61137a565b6040516104e991906129f6565b60405180910390f35b3480156104fe57600080fd5b50610507611398565b005b34801561051557600080fd5b5061051e6114a5565b60405161052b9190612a20565b60405180910390f35b34801561054057600080fd5b506105496114ab565b005b34801561055757600080fd5b50610560611588565b60405161056d9190612a20565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190612a3b565b61158e565b005b3480156105ab57600080fd5b506105c660048036038101906105c19190612b49565b61166b565b6040516105d39190612a20565b60405180910390f35b3480156105e857600080fd5b506105f16116f2565b6040516105fe9190612b01565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190612b89565b611716565b005b34801561063c57600080fd5b5061065760048036038101906106529190612a3b565b611810565b005b34801561066557600080fd5b5061066e6118b1565b60405161067b9190612b01565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190612a3b565b6118d5565b005b60606040518060400160405280600781526020017f496e6e6f76616900000000000000000000000000000000000000000000000000815250905090565b60006106fe6106f76119b2565b84846119ba565b6001905092915050565b60006012600a6107189190612d2b565b6305f5e1006107279190612d76565b905090565b6107346119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612e04565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561084b5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156108a55750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6108e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108db90612e70565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000610939848484611b83565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109846119b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a405782811015610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2290612f02565b60405180910390fd5b610a3f85610a376119b2565b8584036119ba565b5b60019150509392505050565b60006012905090565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000d5d8fb0919209c66019601d06fe79f770a6ed08b81565b610aad6119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190612e04565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60065481565b610b906119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612e04565b60405180910390fd5b600c60149054906101000a900460ff1615610c6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6490612f6e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d539190612fa3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e009190612fa3565b6040518363ffffffff1660e01b8152600401610e1d929190612fd0565b6020604051808303816000875af1158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190612fa3565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ee930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610ed59190612d2b565b6305f5e100610ee49190612d76565b6119ba565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f3230611178565b600080610f3d611314565b426040518863ffffffff1660e01b8152600401610f5f9695949392919061303e565b60606040518083038185885af1158015610f7d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fa291906130b4565b505050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611044929190613107565b6020604051808303816000875af1158015611063573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611087919061315c565b506001600c60146101000a81548160ff02191690831515021790555043600581905550565b6110b46119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890612e04565b60405180910390fd5b600061114c30611178565b905060006064828461115e9190612d76565b61116891906131b8565b90506111738161209e565b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111c96119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90612e04565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f494e4f0000000000000000000000000000000000000000000000000000000000815250905090565b600061138e6113876119b2565b8484611b83565b6001905092915050565b6113a06119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490612e04565b60405180910390fd5b6000611437611314565b73ffffffffffffffffffffffffffffffffffffffff164760405161145a9061321a565b60006040518083038185875af1925050503d8060008114611497576040519150601f19603f3d011682016040523d82523d6000602084013e61149c565b606091505b50508091505050565b600a5481565b6114b36119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153790612e04565b60405180910390fd5b6012600a61154e9190612d2b565b6305f5e10061155d9190612d76565b6009819055506012600a6115719190612d2b565b6305f5e1006115809190612d76565b600a81905550565b60075481565b6115966119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a90612e04565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f000000000000000000000000a55b68a55d1f92cc809338793b99cc45e17c0fac81565b61171e6119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290612e04565b60405180910390fd5b60065482111580156117bf57506007548111155b6117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f59061327b565b60405180910390fd5b81600681905550806007819055505050565b6118186119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90612e04565b60405180910390fd5b6118ae816124e1565b50565b7f000000000000000000000000b22b7913ec4d3c09fcd0962c2c9c8061e9108e3781565b6118dd6119b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461196a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196190612e04565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a209061330d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f9061339f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b769190612a20565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990613431565b60405180910390fd5b60008111611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c9061349d565b60405180910390fd5b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148015611cc457506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561208c57600c60149054906101000a900460ff16611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90613509565b60405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9190613575565b60405180910390fd5b600954821115611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd6906135e1565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e6b575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ec957600a5482611e7d85611178565b611e879190613601565b1115611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf90613681565b60405180910390fd5b5b6003600554611ed89190613601565b431015611f8d57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611f3b57605a611f3e565b60235b60ff1690506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061208b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611fec57600654905061208a565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208957600061204c30611178565b9050619c4081111561208257600060085490508382111561206b578391505b80821115612077578091505b6120808261209e565b505b6007549150505b5b5b5b6120988484848461260d565b50505050565b6000600267ffffffffffffffff8111156120bb576120ba6136a1565b5b6040519080825280602002602001820160405280156120e95781602001602082028036833780820191505090505b5090503081600081518110612101576121006136d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cc9190612fa3565b816001815181106121e0576121df6136d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061224730600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119ba565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122ab9594939291906137bd565b600060405180830381600087803b1580156122c557600080fd5b505af11580156122d9573d6000803e3d6000fd5b505050506000806064603c476122ef9190612d76565b6122f991906131b8565b905060006064601e4761230c9190612d76565b61231691906131b8565b905060006064600a476123299190612d76565b61233391906131b8565b90507f000000000000000000000000a55b68a55d1f92cc809338793b99cc45e17c0fac73ffffffffffffffffffffffffffffffffffffffff16816040516123799061321a565b60006040518083038185875af1925050503d80600081146123b6576040519150601f19603f3d011682016040523d82523d6000602084013e6123bb565b606091505b5050809450507f000000000000000000000000d5d8fb0919209c66019601d06fe79f770a6ed08b73ffffffffffffffffffffffffffffffffffffffff16826040516124059061321a565b60006040518083038185875af1925050503d8060008114612442576040519150601f19603f3d011682016040523d82523d6000602084013e612447565b606091505b5050809450507f000000000000000000000000b22b7913ec4d3c09fcd0962c2c9c8061e9108e3773ffffffffffffffffffffffffffffffffffffffff16836040516124919061321a565b60006040518083038185875af1925050503d80600081146124ce576040519150601f19603f3d011682016040523d82523d6000602084013e6124d3565b606091505b505080945050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254790613889565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006064828461261d9190612d76565b61262791906131b8565b90506000818461263791906138a9565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268491906138a9565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127129190613601565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a09190613601565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516128409190612a20565b60405180910390a3505050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561288a57808201518184015260208101905061286f565b60008484015250505050565b6000601f19601f8301169050919050565b60006128b282612850565b6128bc818561285b565b93506128cc81856020860161286c565b6128d581612896565b840191505092915050565b600060208201905081810360008301526128fa81846128a7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061293282612907565b9050919050565b61294281612927565b811461294d57600080fd5b50565b60008135905061295f81612939565b92915050565b6000819050919050565b61297881612965565b811461298357600080fd5b50565b6000813590506129958161296f565b92915050565b600080604083850312156129b2576129b1612902565b5b60006129c085828601612950565b92505060206129d185828601612986565b9150509250929050565b60008115159050919050565b6129f0816129db565b82525050565b6000602082019050612a0b60008301846129e7565b92915050565b612a1a81612965565b82525050565b6000602082019050612a356000830184612a11565b92915050565b600060208284031215612a5157612a50612902565b5b6000612a5f84828501612950565b91505092915050565b600080600060608486031215612a8157612a80612902565b5b6000612a8f86828701612950565b9350506020612aa086828701612950565b9250506040612ab186828701612986565b9150509250925092565b600060ff82169050919050565b612ad181612abb565b82525050565b6000602082019050612aec6000830184612ac8565b92915050565b612afb81612927565b82525050565b6000602082019050612b166000830184612af2565b92915050565b600060208284031215612b3257612b31612902565b5b6000612b4084828501612986565b91505092915050565b60008060408385031215612b6057612b5f612902565b5b6000612b6e85828601612950565b9250506020612b7f85828601612950565b9150509250929050565b60008060408385031215612ba057612b9f612902565b5b6000612bae85828601612986565b9250506020612bbf85828601612986565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c4f57808604811115612c2b57612c2a612bc9565b5b6001851615612c3a5780820291505b8081029050612c4885612bf8565b9450612c0f565b94509492505050565b600082612c685760019050612d24565b81612c765760009050612d24565b8160018114612c8c5760028114612c9657612cc5565b6001915050612d24565b60ff841115612ca857612ca7612bc9565b5b8360020a915084821115612cbf57612cbe612bc9565b5b50612d24565b5060208310610133831016604e8410600b8410161715612cfa5782820a905083811115612cf557612cf4612bc9565b5b612d24565b612d078484846001612c05565b92509050818404811115612d1e57612d1d612bc9565b5b81810290505b9392505050565b6000612d3682612965565b9150612d4183612abb565b9250612d6e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c58565b905092915050565b6000612d8182612965565b9150612d8c83612965565b9250828202612d9a81612965565b91508282048414831517612db157612db0612bc9565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612dee60208361285b565b9150612df982612db8565b602082019050919050565b60006020820190508181036000830152612e1d81612de1565b9050919050565b7f496e76616c69642077616c6c6574000000000000000000000000000000000000600082015250565b6000612e5a600e8361285b565b9150612e6582612e24565b602082019050919050565b60006020820190508181036000830152612e8981612e4d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612eec60288361285b565b9150612ef782612e90565b604082019050919050565b60006020820190508181036000830152612f1b81612edf565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f5860178361285b565b9150612f6382612f22565b602082019050919050565b60006020820190508181036000830152612f8781612f4b565b9050919050565b600081519050612f9d81612939565b92915050565b600060208284031215612fb957612fb8612902565b5b6000612fc784828501612f8e565b91505092915050565b6000604082019050612fe56000830185612af2565b612ff26020830184612af2565b9392505050565b6000819050919050565b6000819050919050565b600061302861302361301e84612ff9565b613003565b612965565b9050919050565b6130388161300d565b82525050565b600060c0820190506130536000830189612af2565b6130606020830188612a11565b61306d604083018761302f565b61307a606083018661302f565b6130876080830185612af2565b61309460a0830184612a11565b979650505050505050565b6000815190506130ae8161296f565b92915050565b6000806000606084860312156130cd576130cc612902565b5b60006130db8682870161309f565b93505060206130ec8682870161309f565b92505060406130fd8682870161309f565b9150509250925092565b600060408201905061311c6000830185612af2565b6131296020830184612a11565b9392505050565b613139816129db565b811461314457600080fd5b50565b60008151905061315681613130565b92915050565b60006020828403121561317257613171612902565b5b600061318084828501613147565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131c382612965565b91506131ce83612965565b9250826131de576131dd613189565b5b828204905092915050565b600081905092915050565b50565b60006132046000836131e9565b915061320f826131f4565b600082019050919050565b6000613225826131f7565b9150819050919050565b7f5461782063616e6e6f7420626520696e63726561736564000000000000000000600082015250565b600061326560178361285b565b91506132708261322f565b602082019050919050565b6000602082019050818103600083015261329481613258565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132f760248361285b565b91506133028261329b565b604082019050919050565b60006020820190508181036000830152613326816132ea565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061338960228361285b565b91506133948261332d565b604082019050919050565b600060208201905081810360008301526133b88161337c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061341b60258361285b565b9150613426826133bf565b604082019050919050565b6000602082019050818103600083015261344a8161340e565b9050919050565b7f45524332303a206e6f20746f6b656e73207472616e7366657272656400000000600082015250565b6000613487601c8361285b565b915061349282613451565b602082019050919050565b600060208201905081810360008301526134b68161347a565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006134f360108361285b565b91506134fe826134bd565b602082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b7f506c6561736520636f6e7461637420737570706f727400000000000000000000600082015250565b600061355f60168361285b565b915061356a82613529565b602082019050919050565b6000602082019050818103600083015261358e81613552565b9050919050565b7f4d6178547820456e61626c6564206174206c61756e6368000000000000000000600082015250565b60006135cb60178361285b565b91506135d682613595565b602082019050919050565b600060208201905081810360008301526135fa816135be565b9050919050565b600061360c82612965565b915061361783612965565b925082820190508082111561362f5761362e612bc9565b5b92915050565b7f4d617857616c6c657420456e61626c6564206174206c61756e63680000000000600082015250565b600061366b601b8361285b565b915061367682613635565b602082019050919050565b6000602082019050818103600083015261369a8161365e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61373481612927565b82525050565b6000613746838361372b565b60208301905092915050565b6000602082019050919050565b600061376a826136ff565b613774818561370a565b935061377f8361371b565b8060005b838110156137b0578151613797888261373a565b97506137a283613752565b925050600181019050613783565b5085935050505092915050565b600060a0820190506137d26000830188612a11565b6137df602083018761302f565b81810360408301526137f1818661375f565b90506138006060830185612af2565b61380d6080830184612a11565b9695505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061387360268361285b565b915061387e82613817565b604082019050919050565b600060208201905081810360008301526138a281613866565b9050919050565b60006138b482612965565b91506138bf83612965565b92508282039050818111156138d7576138d6612bc9565b5b9291505056fea2646970667358221220ae5d6426134bd38548d01842fadd4e4eb9373bec57e92fb48acf9bfae4e5099664736f6c63430008130033

Deployed Bytecode Sourcemap

2734:8376:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4333:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5167:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4610:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7187:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5335:578;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4519:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3462:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3696:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3769:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6959:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3158:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6266:685;;;;;;;;;;;;;:::i;:::-;;10018:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4718:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1786:148;;;;;;;;;;;;;:::i;:::-;;1218:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4424:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4844:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9871:138;;;;;;;;;;;;;:::i;:::-;;3502:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7556:115;;;;;;;;;;;;;:::i;:::-;;3191:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7070:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5017:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3809:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7679:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1432:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3731:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7443:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4333:83;4370:13;4403:5;;;;;;;;;;;;;;;;;4396:12;;4333:83;:::o;5167:160::-;5242:4;5258:39;5267:12;:10;:12::i;:::-;5281:7;5290:6;5258:8;:39::i;:::-;5315:4;5308:11;;5167:160;;;;:::o;4610:100::-;4663:7;3108:2;3279;:13;;;;:::i;:::-;3267:9;:25;;;;:::i;:::-;4683:19;;4610:100;:::o;7187:248::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7288:4:::1;7269:24;;:7;:24;;;;:61;;;;;7316:13;;;;;;;;;;;7297:33;;:7;:33;;;;7269:61;:100;;;;;7353:15;;;;;;;;;;;7334:35;;:7;:35;;;;7269:100;7261:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;7426:1;7399:15;:24;7415:7;7399:24;;;;;;;;;;;;;;;:28;;;;7187:248:::0;:::o;5335:578::-;5433:4;5450:36;5460:6;5468:9;5479:6;5450:9;:36::i;:::-;5499:24;5526:11;:19;5538:6;5526:19;;;;;;;;;;;;;;;:33;5546:12;:10;:12::i;:::-;5526:33;;;;;;;;;;;;;;;;5499:60;;5593:17;5573:16;:37;5570:314;;5674:6;5654:16;:26;;5628:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;5800:57;5809:6;5817:12;:10;:12::i;:::-;5850:6;5831:16;:25;5800:8;:57::i;:::-;5570:314;5901:4;5894:11;;;5335:578;;;;;:::o;4519:83::-;4560:5;3108:2;4578:16;;4519:83;:::o;3462:33::-;;;;:::o;3696:28::-;;;;;;;;;;;;;:::o;3769:33::-;;;:::o;6959:103::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7053:1:::1;7030:12;:20;7043:6;7030:20;;;;;;;;;;;;;;;:24;;;;6959:103:::0;:::o;3158:26::-;;;;:::o;6266:685::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6328:6:::1;;;;;;;;;;;6327:7;6319:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6409;6372:15;;:80;;;;;;;;;;;;;;;;;;6497:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6479:55;;;6543:4;6550:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6479:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6463:13;;:110;;;;;;;;;;;;;;;;;;6584:63;6601:4;6616:15;;;;;;;;;;;3108:2;3279;:13;;;;:::i;:::-;3267:9;:25;;;;:::i;:::-;6584:8;:63::i;:::-;6668:15;;;;;;;;;;;:31;;;6707:21;6738:4;6744:24;6762:4;6744:9;:24::i;:::-;6769:1;6771::::0;6773:7:::1;:5;:7::i;:::-;6781:15;6668:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6815:13;;;;;;;;;;;6808:29;;;6846:15;;;;;;;;;;;6864:14;6808:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6899:4;6890:6;;:13;;;;;;;;;;;;;;;;;;6931:12;6914:14;:29;;;;6266:685::o:0;10018:219::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10085:23:::1;10111:24;10129:4;10111:9;:24::i;:::-;10085:50;;10146:15;10190:3;10173:15;10165:7;:23;;;;:::i;:::-;10164:29;;;;:::i;:::-;10146:47;;10204:25;10221:7;10204:16;:25::i;:::-;10074:163;;10018:219:::0;:::o;4718:118::-;4784:7;4811:8;:17;4820:7;4811:17;;;;;;;;;;;;;;;;4804:24;;4718:118;;;:::o;1786:148::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1893:1:::1;1856:40;;1877:6;::::0;::::1;;;;;;;;1856:40;;;;;;;;;;;;1924:1;1907:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1786:148::o:0;1218:79::-;1256:7;1283:6;;;;;;;;;;;1276:13;;1218:79;:::o;4424:87::-;4463:13;4496:7;;;;;;;;;;;;;;;;;4489:14;;4424:87;:::o;4844:165::-;4921:4;4937:42;4947:12;:10;:12::i;:::-;4961:9;4972:6;4937:9;:42::i;:::-;4997:4;4990:11;;4844:165;;;;:::o;9871:138::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9918:12:::1;9955:7;:5;:7::i;:::-;:12;;9975:21;9955:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9941:60;;;;;9907:102;9871:138::o:0;3502:34::-;;;;:::o;7556:115::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3108:2:::1;3279;:13;;;;:::i;:::-;3267:9;:25;;;;:::i;:::-;7611:5;:20;;;;3108:2;3279;:13;;;;:::i;:::-;3267:9;:25;;;;:::i;:::-;7642:6;:21;;;;7556:115::o:0;3191:27::-;;;;:::o;7070:109::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7170:1:::1;7147:12;:20;7160:6;7147:20;;;;;;;;;;;;;;;:24;;;;7070:109:::0;:::o;5017:142::-;5098:7;5124:11;:18;5136:5;5124:18;;;;;;;;;;;;;;;:27;5143:7;5124:27;;;;;;;;;;;;;;;;5117:34;;5017:142;;;;:::o;3809:31::-;;;:::o;7679:238::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7790:6:::1;;7777:9;:19;;:44;;;;;7814:7;;7800:10;:21;;7777:44;7769:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;7869:9;7860:6;:18;;;;7899:10;7889:7;:20;;;;7679:238:::0;;:::o;1432:109::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1505:28:::1;1524:8;1505:18;:28::i;:::-;1432:109:::0;:::o;3731:31::-;;;:::o;7443:105::-;1355:12;:10;:12::i;:::-;1345:22;;:6;;;;;;;;;;:22;;;1337:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7539:1:::1;7512:15;:24;7528:7;7512:24;;;;;;;;;;;;;;;:28;;;;7443:105:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;5921:335::-;6031:1;6014:19;;:5;:19;;;6006:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6112:1;6093:21;;:7;:21;;;6085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6194:6;6164:11;:18;6176:5;6164:18;;;;;;;;;;;;;;;:27;6183:7;6164:27;;;;;;;;;;;;;;;:36;;;;6232:7;6216:32;;6225:5;6216:32;;;6241:6;6216:32;;;;;;:::i;:::-;;;;;;;;5921:335;;;:::o;8367:1496::-;8471:1;8455:18;;:4;:18;;;8447:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8543:1;8534:6;:10;8526:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8588:12;8641:1;8619:12;:18;8632:4;8619:18;;;;;;;;;;;;;;;;:23;:48;;;;;8666:1;8646:12;:16;8659:2;8646:16;;;;;;;;;;;;;;;;:21;8619:48;8615:1192;;;8701:6;;;;;;;;;;;8693:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;8776:1;8751:15;:21;8767:4;8751:21;;;;;;;;;;;;;;;;:26;8743:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8837:5;;8827:6;:15;;8819:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8895:13;;;;;;;;;;;8889:19;;:2;:19;;;;:44;;;;;8926:6;8912:21;;:2;:21;;;;8889:44;8885:122;;;8969:6;;8959;8943:13;8953:2;8943:9;:13::i;:::-;:22;;;;:::i;:::-;:32;;8935:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;8885:122;9058:1;9041:14;;:18;;;;:::i;:::-;9026:12;:33;9022:774;;;9096:13;;;;;;;;;;;9088:21;;:4;:21;;;9087:33;;9118:2;9087:33;;;9113:2;9087:33;9080:40;;;;9161:1;9139:15;:19;9155:2;9139:19;;;;;;;;;;;;;;;:23;;;;9022:774;;;9215:13;;;;;;;;;;;9207:21;;:4;:21;;;9203:578;;9260:6;;9253:13;;9203:578;;;9302:13;;;;;;;;;;;9296:19;;:2;:19;;;9292:489;;9340:20;9363:24;9381:4;9363:9;:24::i;:::-;9340:47;;3407:5;9414:12;:32;9410:315;;;9476:12;9491:7;;9476:22;;9544:6;9529:12;:21;9525:48;;;9567:6;9552:21;;9525:48;9619:4;9604:12;:19;9600:44;;;9640:4;9625:19;;9600:44;9671:30;9688:12;9671:16;:30::i;:::-;9448:277;9410:315;9754:7;;9747:14;;9317:464;9292:489;9203:578;9022:774;8615:1192;9817:38;9832:4;9838:2;9842:6;9850:4;9817:14;:38::i;:::-;8436:1427;8367:1496;;;:::o;10245:827::-;10311:21;10349:1;10335:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10311:40;;10380:4;10362;10367:1;10362:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10406:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10396:4;10401:1;10396:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;10439:62;10456:4;10471:15;;;;;;;;;;;10489:11;10439:8;:62::i;:::-;10512:15;;;;;;;;;;;:66;;;10593:11;10619:1;10635:4;10662;10682:15;10512:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10719:12;10742:14;10785:3;10782:2;10759:21;:25;;;;:::i;:::-;:29;;;;:::i;:::-;10742:46;;10799:13;10841:3;10838:2;10815:21;:25;;;;:::i;:::-;:29;;;;:::i;:::-;10799:45;;10855:11;10895:3;10892:2;10869:21;:25;;;;:::i;:::-;:29;;;;:::i;:::-;10855:43;;10925:6;:11;;10944:3;10925:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10911:41;;;;;10977:8;:13;;10998:5;10977:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10963:45;;;;;11033:6;:12;;11053:6;11033:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11019:45;;;;;10300:772;;;;;10245:827;:::o;1549:229::-;1643:1;1623:22;;:8;:22;;;1615:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1733:8;1704:38;;1725:6;;;;;;;;;;1704:38;;;;;;;;;;;;1762:8;1753:6;;:17;;;;;;;;;;;;;;;;;;1549:229;:::o;7925:434::-;8024:17;8062:3;8054:4;8045:6;:13;;;;:::i;:::-;8044:21;;;;:::i;:::-;8024:41;;8076:22;8110:9;8101:6;:18;;;;:::i;:::-;8076:43;;8166:6;8149:8;:14;8158:4;8149:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;8132:8;:14;8141:4;8132:14;;;;;;;;;;;;;;;:40;;;;8213:14;8198:8;:12;8207:2;8198:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;8183:8;:12;8192:2;8183:12;;;;;;;;;;;;;;;:44;;;;8290:9;8264:8;:23;8281:4;8264:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;8238:8;:23;8255:4;8238:23;;;;;;;;;;;;;;;:61;;;;8332:2;8317:34;;8326:4;8317:34;;;8336:14;8317:34;;;;;;:::i;:::-;;;;;;;;8013:346;;7925:434;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798: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:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:102;7063:8;7110:5;7107:1;7103:13;7082:34;;7021:102;;;:::o;7129:848::-;7190:5;7197:4;7221:6;7212:15;;7245:5;7236:14;;7259:712;7280:1;7270:8;7267:15;7259:712;;;7375:4;7370:3;7366:14;7360:4;7357:24;7354:50;;;7384:18;;:::i;:::-;7354:50;7434:1;7424:8;7420:16;7417:451;;;7849:4;7842:5;7838:16;7829:25;;7417:451;7899:4;7893;7889:15;7881:23;;7929:32;7952:8;7929:32;:::i;:::-;7917:44;;7259:712;;;7129:848;;;;;;;:::o;7983:1073::-;8037:5;8228:8;8218:40;;8249:1;8240:10;;8251:5;;8218:40;8277:4;8267:36;;8294:1;8285:10;;8296:5;;8267:36;8363:4;8411:1;8406:27;;;;8447:1;8442:191;;;;8356:277;;8406:27;8424:1;8415:10;;8426:5;;;8442:191;8487:3;8477:8;8474:17;8471:43;;;8494:18;;:::i;:::-;8471:43;8543:8;8540:1;8536:16;8527:25;;8578:3;8571:5;8568:14;8565:40;;;8585:18;;:::i;:::-;8565:40;8618:5;;;8356:277;;8742:2;8732:8;8729:16;8723:3;8717:4;8714:13;8710:36;8692:2;8682:8;8679:16;8674:2;8668:4;8665:12;8661:35;8645:111;8642:246;;;8798:8;8792:4;8788:19;8779:28;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;8642:246;8913:42;8951:3;8941:8;8935:4;8932:1;8913:42;:::i;:::-;8898:57;;;;8987:4;8982:3;8978:14;8971:5;8968:25;8965:51;;;8996:18;;:::i;:::-;8965:51;9045:4;9038:5;9034:16;9025:25;;7983:1073;;;;;;:::o;9062:281::-;9120:5;9144:23;9162:4;9144:23;:::i;:::-;9136:31;;9188:25;9204:8;9188:25;:::i;:::-;9176:37;;9232:104;9269:66;9259:8;9253:4;9232:104;:::i;:::-;9223:113;;9062:281;;;;:::o;9349:410::-;9389:7;9412:20;9430:1;9412:20;:::i;:::-;9407:25;;9446:20;9464:1;9446:20;:::i;:::-;9441:25;;9501:1;9498;9494:9;9523:30;9541:11;9523:30;:::i;:::-;9512:41;;9702:1;9693:7;9689:15;9686:1;9683:22;9663:1;9656:9;9636:83;9613:139;;9732:18;;:::i;:::-;9613:139;9397:362;9349:410;;;;:::o;9765:182::-;9905:34;9901:1;9893:6;9889:14;9882:58;9765:182;:::o;9953:366::-;10095:3;10116:67;10180:2;10175:3;10116:67;:::i;:::-;10109:74;;10192:93;10281:3;10192:93;:::i;:::-;10310:2;10305:3;10301:12;10294:19;;9953:366;;;:::o;10325:419::-;10491:4;10529:2;10518:9;10514:18;10506:26;;10578:9;10572:4;10568:20;10564:1;10553:9;10549:17;10542:47;10606:131;10732:4;10606:131;:::i;:::-;10598:139;;10325:419;;;:::o;10750:164::-;10890:16;10886:1;10878:6;10874:14;10867:40;10750:164;:::o;10920:366::-;11062:3;11083:67;11147:2;11142:3;11083:67;:::i;:::-;11076:74;;11159:93;11248:3;11159:93;:::i;:::-;11277:2;11272:3;11268:12;11261:19;;10920:366;;;:::o;11292:419::-;11458:4;11496:2;11485:9;11481:18;11473:26;;11545:9;11539:4;11535:20;11531:1;11520:9;11516:17;11509:47;11573:131;11699:4;11573:131;:::i;:::-;11565:139;;11292:419;;;:::o;11717:227::-;11857:34;11853:1;11845:6;11841:14;11834:58;11926:10;11921:2;11913:6;11909:15;11902:35;11717:227;:::o;11950:366::-;12092:3;12113:67;12177:2;12172:3;12113:67;:::i;:::-;12106:74;;12189:93;12278:3;12189:93;:::i;:::-;12307:2;12302:3;12298:12;12291:19;;11950:366;;;:::o;12322:419::-;12488:4;12526:2;12515:9;12511:18;12503:26;;12575:9;12569:4;12565:20;12561:1;12550:9;12546:17;12539:47;12603:131;12729:4;12603:131;:::i;:::-;12595:139;;12322:419;;;:::o;12747:173::-;12887:25;12883:1;12875:6;12871:14;12864:49;12747:173;:::o;12926:366::-;13068:3;13089:67;13153:2;13148:3;13089:67;:::i;:::-;13082:74;;13165:93;13254:3;13165:93;:::i;:::-;13283:2;13278:3;13274:12;13267:19;;12926:366;;;:::o;13298:419::-;13464:4;13502:2;13491:9;13487:18;13479:26;;13551:9;13545:4;13541:20;13537:1;13526:9;13522:17;13515:47;13579:131;13705:4;13579:131;:::i;:::-;13571:139;;13298:419;;;:::o;13723:143::-;13780:5;13811:6;13805:13;13796:22;;13827:33;13854:5;13827:33;:::i;:::-;13723:143;;;;:::o;13872:351::-;13942:6;13991:2;13979:9;13970:7;13966:23;13962:32;13959:119;;;13997:79;;:::i;:::-;13959:119;14117:1;14142:64;14198:7;14189:6;14178:9;14174:22;14142:64;:::i;:::-;14132:74;;14088:128;13872:351;;;;:::o;14229:332::-;14350:4;14388:2;14377:9;14373:18;14365:26;;14401:71;14469:1;14458:9;14454:17;14445:6;14401:71;:::i;:::-;14482:72;14550:2;14539:9;14535:18;14526:6;14482:72;:::i;:::-;14229:332;;;;;:::o;14567:85::-;14612:7;14641:5;14630:16;;14567:85;;;:::o;14658:60::-;14686:3;14707:5;14700:12;;14658:60;;;:::o;14724:158::-;14782:9;14815:61;14833:42;14842:32;14868:5;14842:32;:::i;:::-;14833:42;:::i;:::-;14815:61;:::i;:::-;14802:74;;14724:158;;;:::o;14888:147::-;14983:45;15022:5;14983:45;:::i;:::-;14978:3;14971:58;14888:147;;:::o;15041:807::-;15290:4;15328:3;15317:9;15313:19;15305:27;;15342:71;15410:1;15399:9;15395:17;15386:6;15342:71;:::i;:::-;15423:72;15491:2;15480:9;15476:18;15467:6;15423:72;:::i;:::-;15505:80;15581:2;15570:9;15566:18;15557:6;15505:80;:::i;:::-;15595;15671:2;15660:9;15656:18;15647:6;15595:80;:::i;:::-;15685:73;15753:3;15742:9;15738:19;15729:6;15685:73;:::i;:::-;15768;15836:3;15825:9;15821:19;15812:6;15768:73;:::i;:::-;15041:807;;;;;;;;;:::o;15854:143::-;15911:5;15942:6;15936:13;15927:22;;15958:33;15985:5;15958:33;:::i;:::-;15854:143;;;;:::o;16003:663::-;16091:6;16099;16107;16156:2;16144:9;16135:7;16131:23;16127:32;16124:119;;;16162:79;;:::i;:::-;16124:119;16282:1;16307:64;16363:7;16354:6;16343:9;16339:22;16307:64;:::i;:::-;16297:74;;16253:128;16420:2;16446:64;16502:7;16493:6;16482:9;16478:22;16446:64;:::i;:::-;16436:74;;16391:129;16559:2;16585:64;16641:7;16632:6;16621:9;16617:22;16585:64;:::i;:::-;16575:74;;16530:129;16003:663;;;;;:::o;16672:332::-;16793:4;16831:2;16820:9;16816:18;16808:26;;16844:71;16912:1;16901:9;16897:17;16888:6;16844:71;:::i;:::-;16925:72;16993:2;16982:9;16978:18;16969:6;16925:72;:::i;:::-;16672:332;;;;;:::o;17010:116::-;17080:21;17095:5;17080:21;:::i;:::-;17073:5;17070:32;17060:60;;17116:1;17113;17106:12;17060:60;17010:116;:::o;17132:137::-;17186:5;17217:6;17211:13;17202:22;;17233:30;17257:5;17233:30;:::i;:::-;17132:137;;;;:::o;17275:345::-;17342:6;17391:2;17379:9;17370:7;17366:23;17362:32;17359:119;;;17397:79;;:::i;:::-;17359:119;17517:1;17542:61;17595:7;17586:6;17575:9;17571:22;17542:61;:::i;:::-;17532:71;;17488:125;17275:345;;;;:::o;17626:180::-;17674:77;17671:1;17664:88;17771:4;17768:1;17761:15;17795:4;17792:1;17785:15;17812:185;17852:1;17869:20;17887:1;17869:20;:::i;:::-;17864:25;;17903:20;17921:1;17903:20;:::i;:::-;17898:25;;17942:1;17932:35;;17947:18;;:::i;:::-;17932:35;17989:1;17986;17982:9;17977:14;;17812:185;;;;:::o;18003:147::-;18104:11;18141:3;18126:18;;18003:147;;;;:::o;18156:114::-;;:::o;18276:398::-;18435:3;18456:83;18537:1;18532:3;18456:83;:::i;:::-;18449:90;;18548:93;18637:3;18548:93;:::i;:::-;18666:1;18661:3;18657:11;18650:18;;18276:398;;;:::o;18680:379::-;18864:3;18886:147;19029:3;18886:147;:::i;:::-;18879:154;;19050:3;19043:10;;18680:379;;;:::o;19065:173::-;19205:25;19201:1;19193:6;19189:14;19182:49;19065:173;:::o;19244:366::-;19386:3;19407:67;19471:2;19466:3;19407:67;:::i;:::-;19400:74;;19483:93;19572:3;19483:93;:::i;:::-;19601:2;19596:3;19592:12;19585:19;;19244:366;;;:::o;19616:419::-;19782:4;19820:2;19809:9;19805:18;19797:26;;19869:9;19863:4;19859:20;19855:1;19844:9;19840:17;19833:47;19897:131;20023:4;19897:131;:::i;:::-;19889:139;;19616:419;;;:::o;20041:223::-;20181:34;20177:1;20169:6;20165:14;20158:58;20250:6;20245:2;20237:6;20233:15;20226:31;20041:223;:::o;20270:366::-;20412:3;20433:67;20497:2;20492:3;20433:67;:::i;:::-;20426:74;;20509:93;20598:3;20509:93;:::i;:::-;20627:2;20622:3;20618:12;20611:19;;20270:366;;;:::o;20642:419::-;20808:4;20846:2;20835:9;20831:18;20823:26;;20895:9;20889:4;20885:20;20881:1;20870:9;20866:17;20859:47;20923:131;21049:4;20923:131;:::i;:::-;20915:139;;20642:419;;;:::o;21067:221::-;21207:34;21203:1;21195:6;21191:14;21184:58;21276:4;21271:2;21263:6;21259:15;21252:29;21067:221;:::o;21294:366::-;21436:3;21457:67;21521:2;21516:3;21457:67;:::i;:::-;21450:74;;21533:93;21622:3;21533:93;:::i;:::-;21651:2;21646:3;21642:12;21635:19;;21294:366;;;:::o;21666:419::-;21832:4;21870:2;21859:9;21855:18;21847:26;;21919:9;21913:4;21909:20;21905:1;21894:9;21890:17;21883:47;21947:131;22073:4;21947:131;:::i;:::-;21939:139;;21666:419;;;:::o;22091:224::-;22231:34;22227:1;22219:6;22215:14;22208:58;22300:7;22295:2;22287:6;22283:15;22276:32;22091:224;:::o;22321:366::-;22463:3;22484:67;22548:2;22543:3;22484:67;:::i;:::-;22477:74;;22560:93;22649:3;22560:93;:::i;:::-;22678:2;22673:3;22669:12;22662:19;;22321:366;;;:::o;22693:419::-;22859:4;22897:2;22886:9;22882:18;22874:26;;22946:9;22940:4;22936:20;22932:1;22921:9;22917:17;22910:47;22974:131;23100:4;22974:131;:::i;:::-;22966:139;;22693:419;;;:::o;23118:178::-;23258:30;23254:1;23246:6;23242:14;23235:54;23118:178;:::o;23302:366::-;23444:3;23465:67;23529:2;23524:3;23465:67;:::i;:::-;23458:74;;23541:93;23630:3;23541:93;:::i;:::-;23659:2;23654:3;23650:12;23643:19;;23302:366;;;:::o;23674:419::-;23840:4;23878:2;23867:9;23863:18;23855:26;;23927:9;23921:4;23917:20;23913:1;23902:9;23898:17;23891:47;23955:131;24081:4;23955:131;:::i;:::-;23947:139;;23674:419;;;:::o;24099:166::-;24239:18;24235:1;24227:6;24223:14;24216:42;24099:166;:::o;24271:366::-;24413:3;24434:67;24498:2;24493:3;24434:67;:::i;:::-;24427:74;;24510:93;24599:3;24510:93;:::i;:::-;24628:2;24623:3;24619:12;24612:19;;24271:366;;;:::o;24643:419::-;24809:4;24847:2;24836:9;24832:18;24824:26;;24896:9;24890:4;24886:20;24882:1;24871:9;24867:17;24860:47;24924:131;25050:4;24924:131;:::i;:::-;24916:139;;24643:419;;;:::o;25068:172::-;25208:24;25204:1;25196:6;25192:14;25185:48;25068:172;:::o;25246:366::-;25388:3;25409:67;25473:2;25468:3;25409:67;:::i;:::-;25402:74;;25485:93;25574:3;25485:93;:::i;:::-;25603:2;25598:3;25594:12;25587:19;;25246:366;;;:::o;25618:419::-;25784:4;25822:2;25811:9;25807:18;25799:26;;25871:9;25865:4;25861:20;25857:1;25846:9;25842:17;25835:47;25899:131;26025:4;25899:131;:::i;:::-;25891:139;;25618:419;;;:::o;26043:173::-;26183:25;26179:1;26171:6;26167:14;26160:49;26043:173;:::o;26222:366::-;26364:3;26385:67;26449:2;26444:3;26385:67;:::i;:::-;26378:74;;26461:93;26550:3;26461:93;:::i;:::-;26579:2;26574:3;26570:12;26563:19;;26222:366;;;:::o;26594:419::-;26760:4;26798:2;26787:9;26783:18;26775:26;;26847:9;26841:4;26837:20;26833:1;26822:9;26818:17;26811:47;26875:131;27001:4;26875:131;:::i;:::-;26867:139;;26594:419;;;:::o;27019:191::-;27059:3;27078:20;27096:1;27078:20;:::i;:::-;27073:25;;27112:20;27130:1;27112:20;:::i;:::-;27107:25;;27155:1;27152;27148:9;27141:16;;27176:3;27173:1;27170:10;27167:36;;;27183:18;;:::i;:::-;27167:36;27019:191;;;;:::o;27216:177::-;27356:29;27352:1;27344:6;27340:14;27333:53;27216:177;:::o;27399:366::-;27541:3;27562:67;27626:2;27621:3;27562:67;:::i;:::-;27555:74;;27638:93;27727:3;27638:93;:::i;:::-;27756:2;27751:3;27747:12;27740:19;;27399:366;;;:::o;27771:419::-;27937:4;27975:2;27964:9;27960:18;27952:26;;28024:9;28018:4;28014:20;28010:1;27999:9;27995:17;27988:47;28052:131;28178:4;28052:131;:::i;:::-;28044:139;;27771:419;;;:::o;28196:180::-;28244:77;28241:1;28234:88;28341:4;28338:1;28331:15;28365:4;28362:1;28355:15;28382:180;28430:77;28427:1;28420:88;28527:4;28524:1;28517:15;28551:4;28548:1;28541:15;28568:114;28635:6;28669:5;28663:12;28653:22;;28568:114;;;:::o;28688:184::-;28787:11;28821:6;28816:3;28809:19;28861:4;28856:3;28852:14;28837:29;;28688:184;;;;:::o;28878:132::-;28945:4;28968:3;28960:11;;28998:4;28993:3;28989:14;28981:22;;28878:132;;;:::o;29016:108::-;29093:24;29111:5;29093:24;:::i;:::-;29088:3;29081:37;29016:108;;:::o;29130:179::-;29199:10;29220:46;29262:3;29254:6;29220:46;:::i;:::-;29298:4;29293:3;29289:14;29275:28;;29130:179;;;;:::o;29315:113::-;29385:4;29417;29412:3;29408:14;29400:22;;29315:113;;;:::o;29464:732::-;29583:3;29612:54;29660:5;29612:54;:::i;:::-;29682:86;29761:6;29756:3;29682:86;:::i;:::-;29675:93;;29792:56;29842:5;29792:56;:::i;:::-;29871:7;29902:1;29887:284;29912:6;29909:1;29906:13;29887:284;;;29988:6;29982:13;30015:63;30074:3;30059:13;30015:63;:::i;:::-;30008:70;;30101:60;30154:6;30101:60;:::i;:::-;30091:70;;29947:224;29934:1;29931;29927:9;29922:14;;29887:284;;;29891:14;30187:3;30180:10;;29588:608;;;29464:732;;;;:::o;30202:831::-;30465:4;30503:3;30492:9;30488:19;30480:27;;30517:71;30585:1;30574:9;30570:17;30561:6;30517:71;:::i;:::-;30598:80;30674:2;30663:9;30659:18;30650:6;30598:80;:::i;:::-;30725:9;30719:4;30715:20;30710:2;30699:9;30695:18;30688:48;30753:108;30856:4;30847:6;30753:108;:::i;:::-;30745:116;;30871:72;30939:2;30928:9;30924:18;30915:6;30871:72;:::i;:::-;30953:73;31021:3;31010:9;31006:19;30997:6;30953:73;:::i;:::-;30202:831;;;;;;;;:::o;31039:225::-;31179:34;31175:1;31167:6;31163:14;31156:58;31248:8;31243:2;31235:6;31231:15;31224:33;31039:225;:::o;31270:366::-;31412:3;31433:67;31497:2;31492:3;31433:67;:::i;:::-;31426:74;;31509:93;31598:3;31509:93;:::i;:::-;31627:2;31622:3;31618:12;31611:19;;31270:366;;;:::o;31642:419::-;31808:4;31846:2;31835:9;31831:18;31823:26;;31895:9;31889:4;31885:20;31881:1;31870:9;31866:17;31859:47;31923:131;32049:4;31923:131;:::i;:::-;31915:139;;31642:419;;;:::o;32067:194::-;32107:4;32127:20;32145:1;32127:20;:::i;:::-;32122:25;;32161:20;32179:1;32161:20;:::i;:::-;32156:25;;32205:1;32202;32198:9;32190:17;;32229:1;32223:4;32220:11;32217:37;;;32234:18;;:::i;:::-;32217:37;32067:194;;;;:::o

Swarm Source

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