ETH Price: $3,385.52 (-0.28%)
Gas: 2 Gwei

Token

JizzCam (JIZZCAM)
 

Overview

Max Total Supply

69,000,000 JIZZCAM

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
56,719.673847221308621448 JIZZCAM

Value
$0.00
0x27a628f9dba3612557c55ca929dc5a491d5d50cb
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:
JizzCam

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-16
*/

/**

░░░▒█ ░▀░ ▀▀█ ▀▀█ ▒█▀▀█ █▀▀█ █▀▄▀█ 
░▄░▒█ ▀█▀ ▄▀░ ▄▀░ ▒█░░░ █▄▄█ █░▀░█ 
▒█▄▄█ ▀▀▀ ▀▀▀ ▀▀▀ ▒█▄▄█ ▀░░▀ ▀░░░▀

> https://jizzcam.io/
> https://t.me/JizzCam
> https://twitter.com/JizzCamOfficial

*/


//SPDX-License-Identifier: MIT

pragma solidity 0.8.12;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    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);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract JizzCam is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    
    uint256 public swapThreshold = 13_800 * 10e18; // 0.2%
    uint256 public maxTxAmount = 1_380_000 * 10**18; // 2%
    uint256 public maxWalletAmount = 1_380_000 * 10**18; // 2%
    
    address public marketingWallet = 0x0a72043a6AA2A99e33b6421f126aB50cD3e42481;
    address public developmentWallet = 0x0a72043a6AA2A99e33b6421f126aB50cD3e42481;
    address public lpReceiver = 0x0a72043a6AA2A99e33b6421f126aB50cD3e42481;

    address public nullAddr = 0x000000000000000000000000000000000000dEaD;
    
    struct Taxes {
        uint256 marketing; 
        uint256 development;
        uint256 liquidity;
    }
    
    Taxes public buyTaxes = Taxes(25,0,0);
    Taxes public sellTaxes = Taxes(50,0,0);
    uint256 public totalBuyTax = 25;
    uint256 public totalSellTax = 50;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("JizzCam", "JIZZCAM") {
        _mint(msg.sender, 69e6 * 10**decimals()); // 69 million
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[developmentWallet] = true;
        excludedFromFees[lpReceiver] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
        //calculate fee
        else{
            if(recipient == pair) fee = amount * totalSellTax / 100;
            else fee = amount * totalBuyTax / 100;
        }
        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            // Split the contract balance into halves
            uint256 denominator = totalSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 developmentAmt = unitBalance * 2 * sellTaxes.development;
            if(developmentAmt > 0){
                payable(developmentWallet).sendValue(developmentAmt);
            }
        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            lpReceiver,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external {
        require (msg.sender == developmentWallet);
        swapThreshold = new_amount;
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
    }

    function setBuyTaxes(uint256 _marketing, uint256 _development, uint256 _liquidity) external onlyOwner{
        buyTaxes = Taxes(_marketing, _development, _liquidity);
        totalBuyTax = _marketing + _development + _liquidity;
    }

    function setSellTaxes(uint256 _marketing, uint256 _development, uint256 _liquidity) external onlyOwner{
        sellTaxes = Taxes(_marketing, _development, _liquidity);
        totalSellTax = _marketing + _development + _liquidity;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateDevelopmentWallet(address newWallet) external onlyOwner{
        developmentWallet = newWallet;
    }

    function updateLpReceiver(address newWallet) external onlyOwner {
        lpReceiver = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }

    function addBots(address[] memory isBot_) external onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }

    function delBots(address[] memory isBot_) external onlyOwner {
        require (msg.sender == developmentWallet);
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = false;
        }
    }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner{
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external {
        require (msg.sender == developmentWallet);
        IERC20(tokenAddress).transfer(developmentWallet, amount);
    }

    function burnERC20(address tokenAddress, uint256 amount) external {
        require (msg.sender == developmentWallet);
        IERC20(tokenAddress).transfer(nullAddr, amount);
    }

    function rescueETH(uint256 weiAmount) external {
        require (msg.sender == developmentWallet);
        payable(developmentWallet).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 developmentPercentage, uint256 marketingPercentage) external {
        require (msg.sender == developmentWallet);
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (developmentPercentage + marketingPercentage));
        if(developmentPercentage > 0) payable(developmentWallet).sendValue(newBalance * developmentPercentage / (developmentPercentage + marketingPercentage));
    }

    function removeLimits() external onlyOwner returns (bool) {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
        return true;
    }

    // fallbacks
    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":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"developmentPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nullAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateLpReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052691d38feb7acaa024000006009556a012439f32cbea416800000600a556a012439f32cbea416800000600b55730a72043a6aa2a99e33b6421f126ab50cd3e42481600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730a72043a6aa2a99e33b6421f126ab50cd3e42481600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730a72043a6aa2a99e33b6421f126ab50cd3e42481600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060600160405280601981526020016000815260200160008152506010600082015181600001556020820151816001015560408201518160020155505060405180606001604052806032815260200160008152602001600081525060136000820151816000015560208201518160010155604082015181600201555050601960165560326017553480156200020957600080fd5b506040518060400160405280600781526020017f4a697a7a43616d000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4a495a5a43414d0000000000000000000000000000000000000000000000000081525081600390805190602001906200028e92919062000975565b508060049080519060200190620002a792919062000975565b505050620002ca620002be6200073460201b60201c565b6200073c60201b60201c565b6200030a33620002df6200080260201b60201c565b600a620002ed919062000bbf565b63041cdb40620002fe919062000c10565b6200080b60201b60201c565b6001601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ef919062000cdb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000457573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047d919062000cdb565b6040518363ffffffff1660e01b81526004016200049c92919062000d1e565b6020604051808303816000875af1158015620004bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e2919062000cdb565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000ebe565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008759062000dac565b60405180910390fd5b62000892600083836200097060201b60201c565b8060026000828254620008a6919062000dce565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620008fd919062000dce565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000964919062000e3c565b60405180910390a35050565b505050565b828054620009839062000e88565b90600052602060002090601f016020900481019282620009a75760008555620009f3565b82601f10620009c257805160ff1916838001178555620009f3565b82800160010185558215620009f3579182015b82811115620009f2578251825591602001919060010190620009d5565b5b50905062000a02919062000a06565b5090565b5b8082111562000a2157600081600090555060010162000a07565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ab35780860481111562000a8b5762000a8a62000a25565b5b600185161562000a9b5780820291505b808102905062000aab8562000a54565b945062000a6b565b94509492505050565b60008262000ace576001905062000ba1565b8162000ade576000905062000ba1565b816001811462000af7576002811462000b025762000b38565b600191505062000ba1565b60ff84111562000b175762000b1662000a25565b5b8360020a91508482111562000b315762000b3062000a25565b5b5062000ba1565b5060208310610133831016604e8410600b841016171562000b725782820a90508381111562000b6c5762000b6b62000a25565b5b62000ba1565b62000b81848484600162000a61565b9250905081840481111562000b9b5762000b9a62000a25565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000bcc8262000ba8565b915062000bd98362000bb2565b925062000c087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000abc565b905092915050565b600062000c1d8262000ba8565b915062000c2a8362000ba8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c665762000c6562000a25565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ca38262000c76565b9050919050565b62000cb58162000c96565b811462000cc157600080fd5b50565b60008151905062000cd58162000caa565b92915050565b60006020828403121562000cf45762000cf362000c71565b5b600062000d048482850162000cc4565b91505092915050565b62000d188162000c96565b82525050565b600060408201905062000d35600083018562000d0d565b62000d44602083018462000d0d565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d94601f8362000d4b565b915062000da18262000d5c565b602082019050919050565b6000602082019050818103600083015262000dc78162000d85565b9050919050565b600062000ddb8262000ba8565b915062000de88362000ba8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e205762000e1f62000a25565b5b828201905092915050565b62000e368162000ba8565b82525050565b600060208201905062000e53600083018462000e2b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ea157607f821691505b6020821081141562000eb85762000eb762000e59565b5b50919050565b614bb48062000ece6000396000f3fe6080604052600436106102e85760003560e01c8063751039fc11610190578063aa4bde28116100dc578063dd62ed3e11610095578063f023f5731161006f578063f023f57314610b35578063f2fde38b14610b5e578063f66895a314610b87578063f887ea4014610bb4576102ef565b8063dd62ed3e14610aa6578063e01af92c14610ae3578063e545fd6d14610b0c576102ef565b8063aa4bde2814610998578063aacebbe3146109c3578063c04a5414146109ec578063c18bc19514610a17578063d34628cc14610a40578063dbe66ca014610a69576102ef565b80638da5cb5b116101495780639e252f00116101235780639e252f00146108ca578063a457c2d7146108f3578063a8aa1b3114610930578063a9059cbb1461095b576102ef565b80638da5cb5b1461084b57806395d89b41146108765780639d0014b1146108a1576102ef565b8063751039fc1461075d57806375f0a87414610788578063864701a5146107b35780638a8c523c146107e05780638c0b5e22146107f75780638cd4426d14610822576102ef565b8063274a533c1161024f57806346469afb1161020857806365431974116101e257806365431974146106b55780636ddd1713146106de57806370a0823114610709578063715018a614610746576102ef565b806346469afb146106365780634ada218b146106615780636256d1811461068c576102ef565b8063274a533c14610514578063313ce5671461053f57806331c2d8471461056a57806339509351146105935780633bbac579146105d057806340b28c2f1461060d576102ef565b80631870517a116102a15780631870517a146104065780631bff78981461042f5780631eeece061461045a5780631f0c57fc1461048357806323b872dd146104ae57806326b5d32f146104eb576102ef565b80630445b667146102f457806306fdde031461031f578063087332141461034a578063095ea7b314610373578063130b1696146103b057806318160ddd146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bdf565b6040516103169190613671565b60405180910390f35b34801561032b57600080fd5b50610334610be5565b6040516103419190613725565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c9190613787565b610c77565b005b34801561037f57600080fd5b5061039a60048036038101906103959190613838565b610d53565b6040516103a79190613893565b60405180910390f35b3480156103bc57600080fd5b506103c5610d71565b6040516103d291906138bd565b60405180910390f35b3480156103e757600080fd5b506103f0610d97565b6040516103fd9190613671565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190613787565b610da1565b005b34801561043b57600080fd5b50610444610e7d565b6040516104519190613671565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c9190613838565b610e83565b005b34801561048f57600080fd5b50610498610f82565b6040516104a591906138bd565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d091906138d8565b610fa8565b6040516104e29190613893565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613787565b6110a9565b005b34801561052057600080fd5b50610529611214565b6040516105369190613671565b60405180910390f35b34801561054b57600080fd5b5061055461121a565b6040516105619190613947565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613aaa565b611223565b005b34801561059f57600080fd5b506105ba60048036038101906105b59190613838565b61138e565b6040516105c79190613893565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f29190613af3565b61143a565b6040516106049190613893565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f9190613b5e565b61145a565b005b34801561064257600080fd5b5061064b61155c565b6040516106589190613671565b60405180910390f35b34801561066d57600080fd5b50610676611562565b6040516106839190613893565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190613b9e565b611575565b005b3480156106c157600080fd5b506106dc60048036038101906106d79190613af3565b61160e565b005b3480156106ea57600080fd5b506106f36116ce565b6040516107009190613893565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b9190613af3565b6116e1565b60405161073d9190613671565b60405180910390f35b34801561075257600080fd5b5061075b611729565b005b34801561076957600080fd5b506107726117b1565b60405161077f9190613893565b60405180910390f35b34801561079457600080fd5b5061079d611852565b6040516107aa91906138bd565b60405180910390f35b3480156107bf57600080fd5b506107c8611878565b6040516107d793929190613bcb565b60405180910390f35b3480156107ec57600080fd5b506107f5611890565b005b34801561080357600080fd5b5061080c61199b565b6040516108199190613671565b60405180910390f35b34801561082e57600080fd5b5061084960048036038101906108449190613838565b6119a1565b005b34801561085757600080fd5b50610860611aa0565b60405161086d91906138bd565b60405180910390f35b34801561088257600080fd5b5061088b611aca565b6040516108989190613725565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613b9e565b611b5c565b005b3480156108d657600080fd5b506108f160048036038101906108ec9190613b9e565b611bc0565b005b3480156108ff57600080fd5b5061091a60048036038101906109159190613838565b611c68565b6040516109279190613893565b60405180910390f35b34801561093c57600080fd5b50610945611d5c565b60405161095291906138bd565b60405180910390f35b34801561096757600080fd5b50610982600480360381019061097d9190613838565b611d82565b60405161098f9190613893565b60405180910390f35b3480156109a457600080fd5b506109ad611da0565b6040516109ba9190613671565b60405180910390f35b3480156109cf57600080fd5b506109ea60048036038101906109e59190613af3565b611da6565b005b3480156109f857600080fd5b50610a01611e66565b604051610a0e91906138bd565b60405180910390f35b348015610a2357600080fd5b50610a3e6004803603810190610a399190613b9e565b611e8c565b005b348015610a4c57600080fd5b50610a676004803603810190610a629190613aaa565b611f25565b005b348015610a7557600080fd5b50610a906004803603810190610a8b9190613af3565b612036565b604051610a9d9190613893565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190613c02565b612056565b604051610ada9190613671565b60405180910390f35b348015610aef57600080fd5b50610b0a6004803603810190610b059190613c6e565b6120dd565b005b348015610b1857600080fd5b50610b336004803603810190610b2e9190613c9b565b612176565b005b348015610b4157600080fd5b50610b5c6004803603810190610b579190613af3565b61224d565b005b348015610b6a57600080fd5b50610b856004803603810190610b809190613af3565b61230d565b005b348015610b9357600080fd5b50610b9c612405565b604051610bab93929190613bcb565b60405180910390f35b348015610bc057600080fd5b50610bc961241d565b604051610bd69190613d3a565b60405180910390f35b60095481565b606060038054610bf490613d84565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2090613d84565b8015610c6d5780601f10610c4257610100808354040283529160200191610c6d565b820191906000526020600020905b815481529060010190602001808311610c5057829003601f168201915b5050505050905090565b610c7f612443565b73ffffffffffffffffffffffffffffffffffffffff16610c9d611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613e02565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506013600082015181600001556020820151816001015560408201518160020155905050808284610d3e9190613e51565b610d489190613e51565b601781905550505050565b6000610d67610d60612443565b848461244b565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610da9612443565b73ffffffffffffffffffffffffffffffffffffffff16610dc7611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490613e02565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506010600082015181600001556020820151816001015560408201518160020155905050808284610e689190613e51565b610e729190613e51565b601681905550505050565b60175481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610edd57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610f3a929190613ea7565b6020604051808303816000875af1158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d9190613ee5565b505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fb5848484612616565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611000612443565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790613f84565b60405180910390fd5b61109d8561108c612443565b85846110989190613fa4565b61244b565b60019150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461110357600080fd5b600047905061111184612cd3565b6000814761111f9190613fa4565b905060008311156111975761119683856111399190613e51565b84836111459190613fd8565b61114f9190614061565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b5b600084111561120d5761120c83856111af9190613e51565b85836111bb9190613fd8565b6111c59190614061565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b5b5050505050565b60085481565b60006012905090565b61122b612443565b73ffffffffffffffffffffffffffffffffffffffff16611249611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690613e02565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112f957600080fd5b60005b815181101561138a5760006019600084848151811061131e5761131d614092565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611382906140c1565b9150506112fc565b5050565b600061143061139b612443565b8484600160006113a9612443565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461142b9190613e51565b61244b565b6001905092915050565b60196020528060005260406000206000915054906101000a900460ff1681565b611462612443565b73ffffffffffffffffffffffffffffffffffffffff16611480611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90613e02565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60165481565b600760169054906101000a900460ff1681565b61157d612443565b73ffffffffffffffffffffffffffffffffffffffff1661159b611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890613e02565b60405180910390fd5b670de0b6b3a7640000816116059190613fd8565b600a8190555050565b611616612443565b73ffffffffffffffffffffffffffffffffffffffff16611634611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613e02565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611731612443565b73ffffffffffffffffffffffffffffffffffffffff1661174f611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179c90613e02565b60405180910390fd5b6117af600061300a565b565b60006117bb612443565b73ffffffffffffffffffffffffffffffffffffffff166117d9611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613e02565b60405180910390fd5b611837610d97565b600a81905550611845610d97565b600b819055506001905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60108060000154908060010154908060020154905083565b611898612443565b73ffffffffffffffffffffffffffffffffffffffff166118b6611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461190c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190390613e02565b60405180910390fd5b600760169054906101000a900460ff161561195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390614156565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600881905550565b600a5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119fb57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611a58929190613ea7565b6020604051808303816000875af1158015611a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9b9190613ee5565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611ad990613d84565b80601f0160208091040260200160405190810160405280929190818152602001828054611b0590613d84565b8015611b525780601f10611b2757610100808354040283529160200191611b52565b820191906000526020600020905b815481529060010190602001808311611b3557829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bb657600080fd5b8060098190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c1a57600080fd5b611c6581600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b50565b60008060016000611c77612443565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b906141e8565b60405180910390fd5b611d51611d3f612443565b858584611d4c9190613fa4565b61244b565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d96611d8f612443565b8484612616565b6001905092915050565b600b5481565b611dae612443565b73ffffffffffffffffffffffffffffffffffffffff16611dcc611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1990613e02565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e94612443565b73ffffffffffffffffffffffffffffffffffffffff16611eb2611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614611f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eff90613e02565b60405180910390fd5b670de0b6b3a764000081611f1c9190613fd8565b600b8190555050565b611f2d612443565b73ffffffffffffffffffffffffffffffffffffffff16611f4b611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613e02565b60405180910390fd5b60005b815181101561203257600160196000848481518110611fc657611fc5614092565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061202a906140c1565b915050611fa4565b5050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120e5612443565b73ffffffffffffffffffffffffffffffffffffffff16612103611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090613e02565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b61217e612443565b73ffffffffffffffffffffffffffffffffffffffff1661219c611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e990613e02565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612255612443565b73ffffffffffffffffffffffffffffffffffffffff16612273611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146122c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c090613e02565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612315612443565b73ffffffffffffffffffffffffffffffffffffffff16612333611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614612389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238090613e02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f09061427a565b60405180910390fd5b6124028161300a565b50565b60138060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b29061430c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561252b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125229061439e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126099190613671565b60405180910390a3505050565b60008111612659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265090614430565b60405180910390fd5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126fd5750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61273c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127339061449c565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127e05750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127f95750600760149054906101000a900460ff16155b15612aa857600760169054906101000a900460ff1661284d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284490614508565b60405180910390fd5b4360085411156129b457600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612905576001601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146129b3576001601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600a548111156129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f090614574565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612aa757600b5481612a5b846116e1565b612a659190613e51565b1115612aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9d90614606565b60405180910390fd5b5b5b6000600760149054906101000a900460ff1680612b0e5750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612b625750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b705760009050612c05565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be757606460175483612bd69190613fd8565b612be09190614061565b9050612c04565b606460165483612bf79190613fd8565b612c019190614061565b90505b5b600760159054906101000a900460ff168015612c2e5750600760149054906101000a900460ff16155b8015612c885750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612c945750600081115b15612ca257612ca16130d0565b5b612cb884848385612cb39190613fa4565b6132d4565b6000811115612ccd57612ccc8430836132d4565b5b50505050565b6000600267ffffffffffffffff811115612cf057612cef613967565b5b604051908082528060200260200182016040528015612d1e5781602001602082028036833780820191505090505b5090503081600081518110612d3657612d35614092565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e01919061463b565b81600181518110612e1557612e14614092565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e7c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461244b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ee0959493929190614761565b600060405180830381600087803b158015612efa57600080fd5b505af1158015612f0e573d6000803e3d6000fd5b505050505050565b80471015612f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5090614807565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7f90614858565b60006040518083038185875af1925050503d8060008114612fbc576040519150601f19603f3d011682016040523d82523d6000602084013e612fc1565b606091505b5050905080613005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffc906148df565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff166132d2576001600760146101000a81548160ff021916908315150217905550600061310a306116e1565b905060095481106132b557600060026017546131269190613fd8565b90506000816013600201548461313c9190613fd8565b6131469190614061565b9050600081846131569190613fa4565b9050600047905061316682612cd3565b600081476131749190613fa4565b90506000601360020154866131899190613fa4565b826131949190614061565b90506000601360020154826131a99190613fd8565b905060008111156131bf576131be8682613553565b5b60006013600001546002846131d49190613fd8565b6131de9190613fd8565b905060008111156132355761323481600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b5b600060136001015460028561324a9190613fd8565b6132549190613fd8565b905060008111156132ab576132aa81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333b90614971565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ab90614a03565b60405180910390fd5b6133bf838383613653565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343c90614a95565b60405180910390fd5b81816134519190613fa4565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134e19190613e51565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135459190613671565b60405180910390a350505050565b61358030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461244b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161360996959493929190614ab5565b60606040518083038185885af1158015613627573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061364c9190614b2b565b5050505050565b505050565b6000819050919050565b61366b81613658565b82525050565b60006020820190506136866000830184613662565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136c65780820151818401526020810190506136ab565b838111156136d5576000848401525b50505050565b6000601f19601f8301169050919050565b60006136f78261368c565b6137018185613697565b93506137118185602086016136a8565b61371a816136db565b840191505092915050565b6000602082019050818103600083015261373f81846136ec565b905092915050565b6000604051905090565b600080fd5b600080fd5b61376481613658565b811461376f57600080fd5b50565b6000813590506137818161375b565b92915050565b6000806000606084860312156137a05761379f613751565b5b60006137ae86828701613772565b93505060206137bf86828701613772565b92505060406137d086828701613772565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613805826137da565b9050919050565b613815816137fa565b811461382057600080fd5b50565b6000813590506138328161380c565b92915050565b6000806040838503121561384f5761384e613751565b5b600061385d85828601613823565b925050602061386e85828601613772565b9150509250929050565b60008115159050919050565b61388d81613878565b82525050565b60006020820190506138a86000830184613884565b92915050565b6138b7816137fa565b82525050565b60006020820190506138d260008301846138ae565b92915050565b6000806000606084860312156138f1576138f0613751565b5b60006138ff86828701613823565b935050602061391086828701613823565b925050604061392186828701613772565b9150509250925092565b600060ff82169050919050565b6139418161392b565b82525050565b600060208201905061395c6000830184613938565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61399f826136db565b810181811067ffffffffffffffff821117156139be576139bd613967565b5b80604052505050565b60006139d1613747565b90506139dd8282613996565b919050565b600067ffffffffffffffff8211156139fd576139fc613967565b5b602082029050602081019050919050565b600080fd5b6000613a26613a21846139e2565b6139c7565b90508083825260208201905060208402830185811115613a4957613a48613a0e565b5b835b81811015613a725780613a5e8882613823565b845260208401935050602081019050613a4b565b5050509392505050565b600082601f830112613a9157613a90613962565b5b8135613aa1848260208601613a13565b91505092915050565b600060208284031215613ac057613abf613751565b5b600082013567ffffffffffffffff811115613ade57613add613756565b5b613aea84828501613a7c565b91505092915050565b600060208284031215613b0957613b08613751565b5b6000613b1784828501613823565b91505092915050565b6000613b2b826137fa565b9050919050565b613b3b81613b20565b8114613b4657600080fd5b50565b600081359050613b5881613b32565b92915050565b60008060408385031215613b7557613b74613751565b5b6000613b8385828601613b49565b9250506020613b9485828601613823565b9150509250929050565b600060208284031215613bb457613bb3613751565b5b6000613bc284828501613772565b91505092915050565b6000606082019050613be06000830186613662565b613bed6020830185613662565b613bfa6040830184613662565b949350505050565b60008060408385031215613c1957613c18613751565b5b6000613c2785828601613823565b9250506020613c3885828601613823565b9150509250929050565b613c4b81613878565b8114613c5657600080fd5b50565b600081359050613c6881613c42565b92915050565b600060208284031215613c8457613c83613751565b5b6000613c9284828501613c59565b91505092915050565b60008060408385031215613cb257613cb1613751565b5b6000613cc085828601613823565b9250506020613cd185828601613c59565b9150509250929050565b6000819050919050565b6000613d00613cfb613cf6846137da565b613cdb565b6137da565b9050919050565b6000613d1282613ce5565b9050919050565b6000613d2482613d07565b9050919050565b613d3481613d19565b82525050565b6000602082019050613d4f6000830184613d2b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d9c57607f821691505b60208210811415613db057613daf613d55565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613dec602083613697565b9150613df782613db6565b602082019050919050565b60006020820190508181036000830152613e1b81613ddf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e5c82613658565b9150613e6783613658565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e9c57613e9b613e22565b5b828201905092915050565b6000604082019050613ebc60008301856138ae565b613ec96020830184613662565b9392505050565b600081519050613edf81613c42565b92915050565b600060208284031215613efb57613efa613751565b5b6000613f0984828501613ed0565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613f6e602883613697565b9150613f7982613f12565b604082019050919050565b60006020820190508181036000830152613f9d81613f61565b9050919050565b6000613faf82613658565b9150613fba83613658565b925082821015613fcd57613fcc613e22565b5b828203905092915050565b6000613fe382613658565b9150613fee83613658565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561402757614026613e22565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061406c82613658565b915061407783613658565b92508261408757614086614032565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006140cc82613658565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140ff576140fe613e22565b5b600182019050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000614140601683613697565b915061414b8261410a565b602082019050919050565b6000602082019050818103600083015261416f81614133565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006141d2602583613697565b91506141dd82614176565b604082019050919050565b60006020820190508181036000830152614201816141c5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614264602683613697565b915061426f82614208565b604082019050919050565b6000602082019050818103600083015261429381614257565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142f6602483613697565b91506143018261429a565b604082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614388602283613697565b91506143938261432c565b604082019050919050565b600060208201905081810360008301526143b78161437b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061441a602983613697565b9150614425826143be565b604082019050919050565b600060208201905081810360008301526144498161440d565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614486601983613697565b915061449182614450565b602082019050919050565b600060208201905081810360008301526144b581614479565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b60006144f2601683613697565b91506144fd826144bc565b602082019050919050565b60006020820190508181036000830152614521816144e5565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b600061455e601d83613697565b915061456982614528565b602082019050919050565b6000602082019050818103600083015261458d81614551565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006145f0602183613697565b91506145fb82614594565b604082019050919050565b6000602082019050818103600083015261461f816145e3565b9050919050565b6000815190506146358161380c565b92915050565b60006020828403121561465157614650613751565b5b600061465f84828501614626565b91505092915050565b6000819050919050565b600061468d61468861468384614668565b613cdb565b613658565b9050919050565b61469d81614672565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146d8816137fa565b82525050565b60006146ea83836146cf565b60208301905092915050565b6000602082019050919050565b600061470e826146a3565b61471881856146ae565b9350614723836146bf565b8060005b8381101561475457815161473b88826146de565b9750614746836146f6565b925050600181019050614727565b5085935050505092915050565b600060a0820190506147766000830188613662565b6147836020830187614694565b81810360408301526147958186614703565b90506147a460608301856138ae565b6147b16080830184613662565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006147f1601d83613697565b91506147fc826147bb565b602082019050919050565b60006020820190508181036000830152614820816147e4565b9050919050565b600081905092915050565b50565b6000614842600083614827565b915061484d82614832565b600082019050919050565b600061486382614835565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006148c9603a83613697565b91506148d48261486d565b604082019050919050565b600060208201905081810360008301526148f8816148bc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061495b602583613697565b9150614966826148ff565b604082019050919050565b6000602082019050818103600083015261498a8161494e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006149ed602383613697565b91506149f882614991565b604082019050919050565b60006020820190508181036000830152614a1c816149e0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614a7f602683613697565b9150614a8a82614a23565b604082019050919050565b60006020820190508181036000830152614aae81614a72565b9050919050565b600060c082019050614aca60008301896138ae565b614ad76020830188613662565b614ae46040830187614694565b614af16060830186614694565b614afe60808301856138ae565b614b0b60a0830184613662565b979650505050505050565b600081519050614b258161375b565b92915050565b600080600060608486031215614b4457614b43613751565b5b6000614b5286828701614b16565b9350506020614b6386828701614b16565b9250506040614b7486828701614b16565b915050925092509256fea2646970667358221220d68e3a9378529d97bc69f1e8c7056e659ccd8c02fc7e513c4da64823a1f4c1d864736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c8063751039fc11610190578063aa4bde28116100dc578063dd62ed3e11610095578063f023f5731161006f578063f023f57314610b35578063f2fde38b14610b5e578063f66895a314610b87578063f887ea4014610bb4576102ef565b8063dd62ed3e14610aa6578063e01af92c14610ae3578063e545fd6d14610b0c576102ef565b8063aa4bde2814610998578063aacebbe3146109c3578063c04a5414146109ec578063c18bc19514610a17578063d34628cc14610a40578063dbe66ca014610a69576102ef565b80638da5cb5b116101495780639e252f00116101235780639e252f00146108ca578063a457c2d7146108f3578063a8aa1b3114610930578063a9059cbb1461095b576102ef565b80638da5cb5b1461084b57806395d89b41146108765780639d0014b1146108a1576102ef565b8063751039fc1461075d57806375f0a87414610788578063864701a5146107b35780638a8c523c146107e05780638c0b5e22146107f75780638cd4426d14610822576102ef565b8063274a533c1161024f57806346469afb1161020857806365431974116101e257806365431974146106b55780636ddd1713146106de57806370a0823114610709578063715018a614610746576102ef565b806346469afb146106365780634ada218b146106615780636256d1811461068c576102ef565b8063274a533c14610514578063313ce5671461053f57806331c2d8471461056a57806339509351146105935780633bbac579146105d057806340b28c2f1461060d576102ef565b80631870517a116102a15780631870517a146104065780631bff78981461042f5780631eeece061461045a5780631f0c57fc1461048357806323b872dd146104ae57806326b5d32f146104eb576102ef565b80630445b667146102f457806306fdde031461031f578063087332141461034a578063095ea7b314610373578063130b1696146103b057806318160ddd146103db576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bdf565b6040516103169190613671565b60405180910390f35b34801561032b57600080fd5b50610334610be5565b6040516103419190613725565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c9190613787565b610c77565b005b34801561037f57600080fd5b5061039a60048036038101906103959190613838565b610d53565b6040516103a79190613893565b60405180910390f35b3480156103bc57600080fd5b506103c5610d71565b6040516103d291906138bd565b60405180910390f35b3480156103e757600080fd5b506103f0610d97565b6040516103fd9190613671565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190613787565b610da1565b005b34801561043b57600080fd5b50610444610e7d565b6040516104519190613671565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c9190613838565b610e83565b005b34801561048f57600080fd5b50610498610f82565b6040516104a591906138bd565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d091906138d8565b610fa8565b6040516104e29190613893565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190613787565b6110a9565b005b34801561052057600080fd5b50610529611214565b6040516105369190613671565b60405180910390f35b34801561054b57600080fd5b5061055461121a565b6040516105619190613947565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613aaa565b611223565b005b34801561059f57600080fd5b506105ba60048036038101906105b59190613838565b61138e565b6040516105c79190613893565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f29190613af3565b61143a565b6040516106049190613893565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f9190613b5e565b61145a565b005b34801561064257600080fd5b5061064b61155c565b6040516106589190613671565b60405180910390f35b34801561066d57600080fd5b50610676611562565b6040516106839190613893565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190613b9e565b611575565b005b3480156106c157600080fd5b506106dc60048036038101906106d79190613af3565b61160e565b005b3480156106ea57600080fd5b506106f36116ce565b6040516107009190613893565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b9190613af3565b6116e1565b60405161073d9190613671565b60405180910390f35b34801561075257600080fd5b5061075b611729565b005b34801561076957600080fd5b506107726117b1565b60405161077f9190613893565b60405180910390f35b34801561079457600080fd5b5061079d611852565b6040516107aa91906138bd565b60405180910390f35b3480156107bf57600080fd5b506107c8611878565b6040516107d793929190613bcb565b60405180910390f35b3480156107ec57600080fd5b506107f5611890565b005b34801561080357600080fd5b5061080c61199b565b6040516108199190613671565b60405180910390f35b34801561082e57600080fd5b5061084960048036038101906108449190613838565b6119a1565b005b34801561085757600080fd5b50610860611aa0565b60405161086d91906138bd565b60405180910390f35b34801561088257600080fd5b5061088b611aca565b6040516108989190613725565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613b9e565b611b5c565b005b3480156108d657600080fd5b506108f160048036038101906108ec9190613b9e565b611bc0565b005b3480156108ff57600080fd5b5061091a60048036038101906109159190613838565b611c68565b6040516109279190613893565b60405180910390f35b34801561093c57600080fd5b50610945611d5c565b60405161095291906138bd565b60405180910390f35b34801561096757600080fd5b50610982600480360381019061097d9190613838565b611d82565b60405161098f9190613893565b60405180910390f35b3480156109a457600080fd5b506109ad611da0565b6040516109ba9190613671565b60405180910390f35b3480156109cf57600080fd5b506109ea60048036038101906109e59190613af3565b611da6565b005b3480156109f857600080fd5b50610a01611e66565b604051610a0e91906138bd565b60405180910390f35b348015610a2357600080fd5b50610a3e6004803603810190610a399190613b9e565b611e8c565b005b348015610a4c57600080fd5b50610a676004803603810190610a629190613aaa565b611f25565b005b348015610a7557600080fd5b50610a906004803603810190610a8b9190613af3565b612036565b604051610a9d9190613893565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190613c02565b612056565b604051610ada9190613671565b60405180910390f35b348015610aef57600080fd5b50610b0a6004803603810190610b059190613c6e565b6120dd565b005b348015610b1857600080fd5b50610b336004803603810190610b2e9190613c9b565b612176565b005b348015610b4157600080fd5b50610b5c6004803603810190610b579190613af3565b61224d565b005b348015610b6a57600080fd5b50610b856004803603810190610b809190613af3565b61230d565b005b348015610b9357600080fd5b50610b9c612405565b604051610bab93929190613bcb565b60405180910390f35b348015610bc057600080fd5b50610bc961241d565b604051610bd69190613d3a565b60405180910390f35b60095481565b606060038054610bf490613d84565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2090613d84565b8015610c6d5780601f10610c4257610100808354040283529160200191610c6d565b820191906000526020600020905b815481529060010190602001808311610c5057829003601f168201915b5050505050905090565b610c7f612443565b73ffffffffffffffffffffffffffffffffffffffff16610c9d611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614610cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cea90613e02565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506013600082015181600001556020820151816001015560408201518160020155905050808284610d3e9190613e51565b610d489190613e51565b601781905550505050565b6000610d67610d60612443565b848461244b565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b610da9612443565b73ffffffffffffffffffffffffffffffffffffffff16610dc7611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490613e02565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506010600082015181600001556020820151816001015560408201518160020155905050808284610e689190613e51565b610e729190613e51565b601681905550505050565b60175481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610edd57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610f3a929190613ea7565b6020604051808303816000875af1158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d9190613ee5565b505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fb5848484612616565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611000612443565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790613f84565b60405180910390fd5b61109d8561108c612443565b85846110989190613fa4565b61244b565b60019150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461110357600080fd5b600047905061111184612cd3565b6000814761111f9190613fa4565b905060008311156111975761119683856111399190613e51565b84836111459190613fd8565b61114f9190614061565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b5b600084111561120d5761120c83856111af9190613e51565b85836111bb9190613fd8565b6111c59190614061565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b5b5050505050565b60085481565b60006012905090565b61122b612443565b73ffffffffffffffffffffffffffffffffffffffff16611249611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690613e02565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112f957600080fd5b60005b815181101561138a5760006019600084848151811061131e5761131d614092565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611382906140c1565b9150506112fc565b5050565b600061143061139b612443565b8484600160006113a9612443565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461142b9190613e51565b61244b565b6001905092915050565b60196020528060005260406000206000915054906101000a900460ff1681565b611462612443565b73ffffffffffffffffffffffffffffffffffffffff16611480611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90613e02565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60165481565b600760169054906101000a900460ff1681565b61157d612443565b73ffffffffffffffffffffffffffffffffffffffff1661159b611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890613e02565b60405180910390fd5b670de0b6b3a7640000816116059190613fd8565b600a8190555050565b611616612443565b73ffffffffffffffffffffffffffffffffffffffff16611634611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613e02565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611731612443565b73ffffffffffffffffffffffffffffffffffffffff1661174f611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179c90613e02565b60405180910390fd5b6117af600061300a565b565b60006117bb612443565b73ffffffffffffffffffffffffffffffffffffffff166117d9611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613e02565b60405180910390fd5b611837610d97565b600a81905550611845610d97565b600b819055506001905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60108060000154908060010154908060020154905083565b611898612443565b73ffffffffffffffffffffffffffffffffffffffff166118b6611aa0565b73ffffffffffffffffffffffffffffffffffffffff161461190c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190390613e02565b60405180910390fd5b600760169054906101000a900460ff161561195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390614156565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600881905550565b600a5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119fb57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611a58929190613ea7565b6020604051808303816000875af1158015611a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9b9190613ee5565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611ad990613d84565b80601f0160208091040260200160405190810160405280929190818152602001828054611b0590613d84565b8015611b525780601f10611b2757610100808354040283529160200191611b52565b820191906000526020600020905b815481529060010190602001808311611b3557829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bb657600080fd5b8060098190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c1a57600080fd5b611c6581600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b50565b60008060016000611c77612443565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b906141e8565b60405180910390fd5b611d51611d3f612443565b858584611d4c9190613fa4565b61244b565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d96611d8f612443565b8484612616565b6001905092915050565b600b5481565b611dae612443565b73ffffffffffffffffffffffffffffffffffffffff16611dcc611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1990613e02565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e94612443565b73ffffffffffffffffffffffffffffffffffffffff16611eb2611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614611f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eff90613e02565b60405180910390fd5b670de0b6b3a764000081611f1c9190613fd8565b600b8190555050565b611f2d612443565b73ffffffffffffffffffffffffffffffffffffffff16611f4b611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9890613e02565b60405180910390fd5b60005b815181101561203257600160196000848481518110611fc657611fc5614092565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061202a906140c1565b915050611fa4565b5050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120e5612443565b73ffffffffffffffffffffffffffffffffffffffff16612103611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090613e02565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b61217e612443565b73ffffffffffffffffffffffffffffffffffffffff1661219c611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e990613e02565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612255612443565b73ffffffffffffffffffffffffffffffffffffffff16612273611aa0565b73ffffffffffffffffffffffffffffffffffffffff16146122c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c090613e02565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612315612443565b73ffffffffffffffffffffffffffffffffffffffff16612333611aa0565b73ffffffffffffffffffffffffffffffffffffffff1614612389576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238090613e02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f09061427a565b60405180910390fd5b6124028161300a565b50565b60138060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b29061430c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561252b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125229061439e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126099190613671565b60405180910390a3505050565b60008111612659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265090614430565b60405180910390fd5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126fd5750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61273c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127339061449c565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127e05750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127f95750600760149054906101000a900460ff16155b15612aa857600760169054906101000a900460ff1661284d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284490614508565b60405180910390fd5b4360085411156129b457600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612905576001601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146129b3576001601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600a548111156129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f090614574565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612aa757600b5481612a5b846116e1565b612a659190613e51565b1115612aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9d90614606565b60405180910390fd5b5b5b6000600760149054906101000a900460ff1680612b0e5750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612b625750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b705760009050612c05565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be757606460175483612bd69190613fd8565b612be09190614061565b9050612c04565b606460165483612bf79190613fd8565b612c019190614061565b90505b5b600760159054906101000a900460ff168015612c2e5750600760149054906101000a900460ff16155b8015612c885750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612c945750600081115b15612ca257612ca16130d0565b5b612cb884848385612cb39190613fa4565b6132d4565b6000811115612ccd57612ccc8430836132d4565b5b50505050565b6000600267ffffffffffffffff811115612cf057612cef613967565b5b604051908082528060200260200182016040528015612d1e5781602001602082028036833780820191505090505b5090503081600081518110612d3657612d35614092565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e01919061463b565b81600181518110612e1557612e14614092565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e7c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461244b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ee0959493929190614761565b600060405180830381600087803b158015612efa57600080fd5b505af1158015612f0e573d6000803e3d6000fd5b505050505050565b80471015612f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5090614807565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612f7f90614858565b60006040518083038185875af1925050503d8060008114612fbc576040519150601f19603f3d011682016040523d82523d6000602084013e612fc1565b606091505b5050905080613005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffc906148df565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff166132d2576001600760146101000a81548160ff021916908315150217905550600061310a306116e1565b905060095481106132b557600060026017546131269190613fd8565b90506000816013600201548461313c9190613fd8565b6131469190614061565b9050600081846131569190613fa4565b9050600047905061316682612cd3565b600081476131749190613fa4565b90506000601360020154866131899190613fa4565b826131949190614061565b90506000601360020154826131a99190613fd8565b905060008111156131bf576131be8682613553565b5b60006013600001546002846131d49190613fd8565b6131de9190613fd8565b905060008111156132355761323481600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b5b600060136001015460028561324a9190613fd8565b6132549190613fd8565b905060008111156132ab576132aa81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612f1690919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333b90614971565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156133b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ab90614a03565b60405180910390fd5b6133bf838383613653565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343c90614a95565b60405180910390fd5b81816134519190613fa4565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134e19190613e51565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135459190613671565b60405180910390a350505050565b61358030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461244b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161360996959493929190614ab5565b60606040518083038185885af1158015613627573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061364c9190614b2b565b5050505050565b505050565b6000819050919050565b61366b81613658565b82525050565b60006020820190506136866000830184613662565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136c65780820151818401526020810190506136ab565b838111156136d5576000848401525b50505050565b6000601f19601f8301169050919050565b60006136f78261368c565b6137018185613697565b93506137118185602086016136a8565b61371a816136db565b840191505092915050565b6000602082019050818103600083015261373f81846136ec565b905092915050565b6000604051905090565b600080fd5b600080fd5b61376481613658565b811461376f57600080fd5b50565b6000813590506137818161375b565b92915050565b6000806000606084860312156137a05761379f613751565b5b60006137ae86828701613772565b93505060206137bf86828701613772565b92505060406137d086828701613772565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613805826137da565b9050919050565b613815816137fa565b811461382057600080fd5b50565b6000813590506138328161380c565b92915050565b6000806040838503121561384f5761384e613751565b5b600061385d85828601613823565b925050602061386e85828601613772565b9150509250929050565b60008115159050919050565b61388d81613878565b82525050565b60006020820190506138a86000830184613884565b92915050565b6138b7816137fa565b82525050565b60006020820190506138d260008301846138ae565b92915050565b6000806000606084860312156138f1576138f0613751565b5b60006138ff86828701613823565b935050602061391086828701613823565b925050604061392186828701613772565b9150509250925092565b600060ff82169050919050565b6139418161392b565b82525050565b600060208201905061395c6000830184613938565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61399f826136db565b810181811067ffffffffffffffff821117156139be576139bd613967565b5b80604052505050565b60006139d1613747565b90506139dd8282613996565b919050565b600067ffffffffffffffff8211156139fd576139fc613967565b5b602082029050602081019050919050565b600080fd5b6000613a26613a21846139e2565b6139c7565b90508083825260208201905060208402830185811115613a4957613a48613a0e565b5b835b81811015613a725780613a5e8882613823565b845260208401935050602081019050613a4b565b5050509392505050565b600082601f830112613a9157613a90613962565b5b8135613aa1848260208601613a13565b91505092915050565b600060208284031215613ac057613abf613751565b5b600082013567ffffffffffffffff811115613ade57613add613756565b5b613aea84828501613a7c565b91505092915050565b600060208284031215613b0957613b08613751565b5b6000613b1784828501613823565b91505092915050565b6000613b2b826137fa565b9050919050565b613b3b81613b20565b8114613b4657600080fd5b50565b600081359050613b5881613b32565b92915050565b60008060408385031215613b7557613b74613751565b5b6000613b8385828601613b49565b9250506020613b9485828601613823565b9150509250929050565b600060208284031215613bb457613bb3613751565b5b6000613bc284828501613772565b91505092915050565b6000606082019050613be06000830186613662565b613bed6020830185613662565b613bfa6040830184613662565b949350505050565b60008060408385031215613c1957613c18613751565b5b6000613c2785828601613823565b9250506020613c3885828601613823565b9150509250929050565b613c4b81613878565b8114613c5657600080fd5b50565b600081359050613c6881613c42565b92915050565b600060208284031215613c8457613c83613751565b5b6000613c9284828501613c59565b91505092915050565b60008060408385031215613cb257613cb1613751565b5b6000613cc085828601613823565b9250506020613cd185828601613c59565b9150509250929050565b6000819050919050565b6000613d00613cfb613cf6846137da565b613cdb565b6137da565b9050919050565b6000613d1282613ce5565b9050919050565b6000613d2482613d07565b9050919050565b613d3481613d19565b82525050565b6000602082019050613d4f6000830184613d2b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d9c57607f821691505b60208210811415613db057613daf613d55565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613dec602083613697565b9150613df782613db6565b602082019050919050565b60006020820190508181036000830152613e1b81613ddf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e5c82613658565b9150613e6783613658565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613e9c57613e9b613e22565b5b828201905092915050565b6000604082019050613ebc60008301856138ae565b613ec96020830184613662565b9392505050565b600081519050613edf81613c42565b92915050565b600060208284031215613efb57613efa613751565b5b6000613f0984828501613ed0565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613f6e602883613697565b9150613f7982613f12565b604082019050919050565b60006020820190508181036000830152613f9d81613f61565b9050919050565b6000613faf82613658565b9150613fba83613658565b925082821015613fcd57613fcc613e22565b5b828203905092915050565b6000613fe382613658565b9150613fee83613658565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561402757614026613e22565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061406c82613658565b915061407783613658565b92508261408757614086614032565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006140cc82613658565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140ff576140fe613e22565b5b600182019050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000614140601683613697565b915061414b8261410a565b602082019050919050565b6000602082019050818103600083015261416f81614133565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006141d2602583613697565b91506141dd82614176565b604082019050919050565b60006020820190508181036000830152614201816141c5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614264602683613697565b915061426f82614208565b604082019050919050565b6000602082019050818103600083015261429381614257565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006142f6602483613697565b91506143018261429a565b604082019050919050565b60006020820190508181036000830152614325816142e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614388602283613697565b91506143938261432c565b604082019050919050565b600060208201905081810360008301526143b78161437b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061441a602983613697565b9150614425826143be565b604082019050919050565b600060208201905081810360008301526144498161440d565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614486601983613697565b915061449182614450565b602082019050919050565b600060208201905081810360008301526144b581614479565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b60006144f2601683613697565b91506144fd826144bc565b602082019050919050565b60006020820190508181036000830152614521816144e5565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b600061455e601d83613697565b915061456982614528565b602082019050919050565b6000602082019050818103600083015261458d81614551565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006145f0602183613697565b91506145fb82614594565b604082019050919050565b6000602082019050818103600083015261461f816145e3565b9050919050565b6000815190506146358161380c565b92915050565b60006020828403121561465157614650613751565b5b600061465f84828501614626565b91505092915050565b6000819050919050565b600061468d61468861468384614668565b613cdb565b613658565b9050919050565b61469d81614672565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146d8816137fa565b82525050565b60006146ea83836146cf565b60208301905092915050565b6000602082019050919050565b600061470e826146a3565b61471881856146ae565b9350614723836146bf565b8060005b8381101561475457815161473b88826146de565b9750614746836146f6565b925050600181019050614727565b5085935050505092915050565b600060a0820190506147766000830188613662565b6147836020830187614694565b81810360408301526147958186614703565b90506147a460608301856138ae565b6147b16080830184613662565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006147f1601d83613697565b91506147fc826147bb565b602082019050919050565b60006020820190508181036000830152614820816147e4565b9050919050565b600081905092915050565b50565b6000614842600083614827565b915061484d82614832565b600082019050919050565b600061486382614835565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006148c9603a83613697565b91506148d48261486d565b604082019050919050565b600060208201905081810360008301526148f8816148bc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061495b602583613697565b9150614966826148ff565b604082019050919050565b6000602082019050818103600083015261498a8161494e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006149ed602383613697565b91506149f882614991565b604082019050919050565b60006020820190508181036000830152614a1c816149e0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614a7f602683613697565b9150614a8a82614a23565b604082019050919050565b60006020820190508181036000830152614aae81614a72565b9050919050565b600060c082019050614aca60008301896138ae565b614ad76020830188613662565b614ae46040830187614694565b614af16060830186614694565b614afe60808301856138ae565b614b0b60a0830184613662565b979650505050505050565b600081519050614b258161375b565b92915050565b600080600060608486031215614b4457614b43613751565b5b6000614b5286828701614b16565b9350506020614b6386828701614b16565b9250506040614b7486828701614b16565b915050925092509256fea2646970667358221220d68e3a9378529d97bc69f1e8c7056e659ccd8c02fc7e513c4da64823a1f4c1d864736f6c634300080c0033

Deployed Bytecode Sourcemap

13555:9617:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13836:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2761:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20165:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4928:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14271:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3881:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19920:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14599:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21930:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14192:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5579:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22295:637;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13795:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3723:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21105:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6410:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14700:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20782:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14561:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13760:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21481:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20669:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13730:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4052:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12332:94;;;;;;;;;;;;;:::i;:::-;;22940:168;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14026:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14472:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;19699:213;;;;;;;;;;;;;:::i;:::-;;13896:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21727:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12109:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2980:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19539:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22122:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7128:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13670:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4392:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13956:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20417:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14108:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21602:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20927:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14644:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4630:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19438:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21336:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20543:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12434:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14516:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13642:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13836:45;;;;:::o;2761:100::-;2815:13;2848:5;2841:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2761:100;:::o;20165:240::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20290:43:::1;;;;;;;;20296:10;20290:43;;;;20308:12;20290:43;;;;20322:10;20290:43;;::::0;20278:9:::1;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;20387:10;20372:12;20359:10;:25;;;;:::i;:::-;:38;;;;:::i;:::-;20344:12;:53;;;;20165:240:::0;;;:::o;4928:169::-;5011:4;5028:39;5037:12;:10;:12::i;:::-;5051:7;5060:6;5028:8;:39::i;:::-;5085:4;5078:11;;4928:169;;;;:::o;14271:68::-;;;;;;;;;;;;;:::o;3881:108::-;3942:7;3969:12;;3962:19;;3881:108;:::o;19920:237::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20043:43:::1;;;;;;;;20049:10;20043:43;;;;20061:12;20043:43;;;;20075:10;20043:43;;::::0;20032:8:::1;:54;;;;;;;;;;;;;;;;;;;;;;;;;;;20139:10;20124:12;20111:10;:25;;;;:::i;:::-;:38;;;;:::i;:::-;20097:11;:52;;;;19920:237:::0;;;:::o;14599:32::-;;;;:::o;21930:184::-;22030:17;;;;;;;;;;;22016:31;;:10;:31;;;22007:41;;;;;;22066:12;22059:29;;;22089:8;;;;;;;;;;;22099:6;22059:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21930:184;;:::o;14192:70::-;;;;;;;;;;;;;:::o;5579:422::-;5685:4;5702:36;5712:6;5720:9;5731:6;5702:9;:36::i;:::-;5751:24;5778:11;:19;5790:6;5778:19;;;;;;;;;;;;;;;:33;5798:12;:10;:12::i;:::-;5778:33;;;;;;;;;;;;;;;;5751:60;;5850:6;5830:16;:26;;5822:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5912:57;5921:6;5929:12;:10;:12::i;:::-;5962:6;5943:16;:25;;;;:::i;:::-;5912:8;:57::i;:::-;5989:4;5982:11;;;5579:422;;;;;:::o;22295:637::-;22434:17;;;;;;;;;;;22420:31;;:10;:31;;;22411:41;;;;;;22463:19;22485:21;22463:43;;22517:24;22534:6;22517:16;:24::i;:::-;22552:18;22597:11;22573:21;:35;;;;:::i;:::-;22552:56;;22644:1;22622:19;:23;22619:144;;;22647:116;22742:19;22718:21;:43;;;;:::i;:::-;22695:19;22682:10;:32;;;;:::i;:::-;:80;;;;:::i;:::-;22655:15;;;;;;;;;;;22647:34;;;;:116;;;;:::i;:::-;22619:144;22801:1;22777:21;:25;22774:150;;;22804:120;22903:19;22879:21;:43;;;;:::i;:::-;22854:21;22841:10;:34;;;;:::i;:::-;:82;;;;:::i;:::-;22812:17;;;;;;;;;;;22804:36;;;;:120;;;;:::i;:::-;22774:150;22400:532;;22295:637;;;:::o;13795:28::-;;;;:::o;3723:93::-;3781:5;3806:2;3799:9;;3723:93;:::o;21105:223::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21200:17:::1;;;;;;;;;;;21186:31;;:10;:31;;;21177:41;;;::::0;::::1;;21234:6;21229:92;21250:6;:13;21246:1;:17;21229:92;;;21304:5;21285;:16;21291:6;21298:1;21291:9;;;;;;;;:::i;:::-;;;;;;;;21285:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;21265:3;;;;;:::i;:::-;;;;21229:92;;;;21105:223:::0;:::o;6410:215::-;6498:4;6515:80;6524:12;:10;:12::i;:::-;6538:7;6584:10;6547:11;:25;6559:12;:10;:12::i;:::-;6547:25;;;;;;;;;;;;;;;:34;6573:7;6547:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6515:8;:80::i;:::-;6613:4;6606:11;;6410:215;;;;:::o;14700:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;20782:137::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20881:7:::1;20872:6;;:16;;;;;;;;;;;;;;;;;;20906:5;20899:4;;:12;;;;;;;;;;;;;;;;;;20782:137:::0;;:::o;14561:31::-;;;;:::o;13760:26::-;;;;;;;;;;;;;:::o;21481:109::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21576:6:::1;21567;:15;;;;:::i;:::-;21553:11;:29;;;;21481:109:::0;:::o;20669:105::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20757:9:::1;20744:10;;:22;;;;;;;;;;;;;;;;;;20669:105:::0;:::o;13730:23::-;;;;;;;;;;;;;:::o;4052:127::-;4126:7;4153:9;:18;4163:7;4153:18;;;;;;;;;;;;;;;;4146:25;;4052:127;;;:::o;12332:94::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12397:21:::1;12415:1;12397:9;:21::i;:::-;12332:94::o:0;22940:168::-;22992:4;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23023:13:::1;:11;:13::i;:::-;23009:11;:27;;;;23065:13;:11;:13::i;:::-;23047:15;:31;;;;23096:4;23089:11;;22940:168:::0;:::o;14026:75::-;;;;;;;;;;;;;:::o;14472:37::-;;;;;;;;;;;;;;;;;;;:::o;19699:213::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19763:14:::1;;;;;;;;;;;19762:15;19754:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19832:4;19815:14;;:21;;;;;;;;;;;;;;;;;;19861:4;19847:11;;:18;;;;;;;;;;;;;;;;;;19892:12;19876:13;:28;;;;19699:213::o:0;13896:47::-;;;;:::o;21727:195::-;21829:17;;;;;;;;;;;21815:31;;:10;:31;;;21806:41;;;;;;21865:12;21858:29;;;21888:17;;;;;;;;;;;21907:6;21858:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21727:195;;:::o;12109:87::-;12155:7;12182:6;;;;;;;;;;;12175:13;;12109:87;:::o;2980:104::-;3036:13;3069:7;3062:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2980:104;:::o;19539:152::-;19628:17;;;;;;;;;;;19614:31;;:10;:31;;;19605:41;;;;;;19673:10;19657:13;:26;;;;19539:152;:::o;22122:165::-;22203:17;;;;;;;;;;;22189:31;;:10;:31;;;22180:41;;;;;;22232:47;22269:9;22240:17;;;;;;;;;;;22232:36;;;;:47;;;;:::i;:::-;22122:165;:::o;7128:377::-;7221:4;7238:24;7265:11;:25;7277:12;:10;:12::i;:::-;7265:25;;;;;;;;;;;;;;;:34;7291:7;7265:34;;;;;;;;;;;;;;;;7238:61;;7338:15;7318:16;:35;;7310:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7406:67;7415:12;:10;:12::i;:::-;7429:7;7457:15;7438:16;:34;;;;:::i;:::-;7406:8;:67::i;:::-;7493:4;7486:11;;;7128:377;;;;:::o;13670:19::-;;;;;;;;;;;;;:::o;4392:175::-;4478:4;4495:42;4505:12;:10;:12::i;:::-;4519:9;4530:6;4495:9;:42::i;:::-;4555:4;4548:11;;4392:175;;;;:::o;13956:51::-;;;;:::o;20417:114::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20514:9:::1;20496:15;;:27;;;;;;;;;;;;;;;;;;20417:114:::0;:::o;14108:77::-;;;;;;;;;;;;;:::o;21602:117::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21705:6:::1;21696;:15;;;;:::i;:::-;21678;:33;;;;21602:117:::0;:::o;20927:170::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21004:6:::1;20999:91;21020:6;:13;21016:1;:17;20999:91;;;21074:4;21055:5;:16;21061:6;21068:1;21061:9;;;;;;;;:::i;:::-;;;;;;;;21055:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;21035:3;;;;;:::i;:::-;;;;20999:91;;;;20927:170:::0;:::o;14644:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4630:151::-;4719:7;4746:11;:18;4758:5;4746:18;;;;;;;;;;;;;;;:27;4765:7;4746:27;;;;;;;;;;;;;;;;4739:34;;4630:151;;;;:::o;19438:93::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19518:5:::1;19504:11;;:19;;;;;;;;;;;;;;;;;;19438:93:::0;:::o;21336:133::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21456:5:::1;21427:16;:26;21444:8;21427:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;21336:133:::0;;:::o;20543:118::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20644:9:::1;20624:17;;:29;;;;;;;;;;;;;;;;;;20543:118:::0;:::o;12434:192::-;12255:12;:10;:12::i;:::-;12244:23;;:7;:5;:7::i;:::-;:23;;;12236:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12543:1:::1;12523:22;;:8;:22;;;;12515:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12599:19;12609:8;12599:9;:19::i;:::-;12434:192:::0;:::o;14516:38::-;;;;;;;;;;;;;;;;;;;:::o;13642:21::-;;;;;;;;;;;;;:::o;477:98::-;530:7;557:10;550:17;;477:98;:::o;10484:346::-;10603:1;10586:19;;:5;:19;;;;10578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10684:1;10665:21;;:7;:21;;;;10657:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10768:6;10738:11;:18;10750:5;10738:18;;;;;;;;;;;;;;;:27;10757:7;10738:27;;;;;;;;;;;;;;;:36;;;;10806:7;10790:32;;10799:5;10790:32;;;10815:6;10790:32;;;;;;:::i;:::-;;;;;;;;10484:346;;;:::o;15523:1567::-;15639:1;15630:6;:10;15622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15706:5;:13;15712:6;15706:13;;;;;;;;;;;;;;;;;;;;;;;;;15705:14;:35;;;;;15724:5;:16;15730:9;15724:16;;;;;;;;;;;;;;;;;;;;;;;;;15723:17;15705:35;15697:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15813:16;:24;15830:6;15813:24;;;;;;;;;;;;;;;;;;;;;;;;;15812:25;:57;;;;;15842:16;:27;15859:9;15842:27;;;;;;;;;;;;;;;;;;;;;;;;;15841:28;15812:57;:70;;;;;15874:8;;;;;;;;;;;15873:9;15812:70;15809:576;;;15906:14;;;;;;;;;;;15898:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15981:12;15965:13;;:28;15962:170;;;16029:4;;;;;;;;;;;16016:17;;:9;:17;;;16013:45;;16054:4;16035:5;:16;16041:9;16035:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16013:45;16090:4;;;;;;;;;;;16080:14;;:6;:14;;;16077:39;;16112:4;16096:5;:13;16102:6;16096:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16077:39;15962:170;16164:11;;16154:6;:21;;16146:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16240:4;;;;;;;;;;;16227:17;;:9;:17;;;16224:150;;16305:15;;16295:6;16272:20;16282:9;16272;:20::i;:::-;:29;;;;:::i;:::-;:48;;16264:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;16224:150;15809:576;16397:11;16504:8;;;;;;;;;;;:36;;;;16516:16;:24;16533:6;16516:24;;;;;;;;;;;;;;;;;;;;;;;;;16504:36;:67;;;;16544:16;:27;16561:9;16544:27;;;;;;;;;;;;;;;;;;;;;;;;;16504:67;16500:264;;;16579:1;16573:7;;16500:264;;;16661:4;;;;;;;;;;;16648:17;;:9;:17;;;16645:107;;;16697:3;16682:12;;16673:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;16667:33;;16645:107;;;16749:3;16735:11;;16726:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;16720:32;;16645:107;16500:264;16885:11;;;;;;;;;;;:24;;;;;16901:8;;;;;;;;;;;16900:9;16885:24;:42;;;;;16923:4;;;;;;;;;;;16913:14;;:6;:14;;;;16885:42;:53;;;;;16937:1;16931:3;:7;16885:53;16881:72;;;16940:13;:11;:13::i;:::-;16881:72;16966:48;16982:6;16990:9;17010:3;17001:6;:12;;;;:::i;:::-;16966:15;:48::i;:::-;17034:1;17028:3;:7;17025:55;;;17037:43;17053:6;17069:4;17076:3;17037:15;:43::i;:::-;17025:55;15611:1479;15523:1567;;;:::o;18524:400::-;18590:21;18628:1;18614:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18590:40;;18659:4;18641;18646:1;18641:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18685:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18675:4;18680:1;18675:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18711:53;18728:4;18743:6;;;;;;;;;;;18752:11;18711:8;:53::i;:::-;18803:6;;;;;;;;;;;:57;;;18861:11;18874:1;18877:4;18891;18898:15;18803:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18579:345;18524:400;:::o;11554:317::-;11669:6;11644:21;:31;;11636:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11723:12;11741:9;:14;;11763:6;11741:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11722:52;;;11793:7;11785:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11625:246;11554:317;;:::o;12634:173::-;12690:16;12709:6;;;;;;;;;;;12690:25;;12735:8;12726:6;;:17;;;;;;;;;;;;;;;;;;12790:8;12759:40;;12780:8;12759:40;;;;;;;;;;;;12679:128;12634:173;:::o;17098:1416::-;14785:8;;;;;;;;;;;14780:104;;14821:4;14810:8;;:15;;;;;;;;;;;;;;;;;;17147:23:::1;17173:24;17191:4;17173:9;:24::i;:::-;17147:50;;17231:13;;17212:15;:32;17208:1299;;17318:19;17355:1;17340:12;;:16;;;;:::i;:::-;17318:38;;17371:32;17446:11;17424:9;:19;;;17406:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17371:86;;17472:14;17507:24;17489:15;:42;;;;:::i;:::-;17472:59;;17552:22;17577:21;17552:46;;17619:24;17636:6;17619:16;:24::i;:::-;17664:20;17711:14;17687:21;:38;;;;:::i;:::-;17664:61;;17740:19;17791:9;:19;;;17777:11;:33;;;;:::i;:::-;17761:12;:50;;;;:::i;:::-;17740:71;;17826:29;17872:9;:19;;;17858:11;:33;;;;:::i;:::-;17826:65;;17939:1;17915:21;:25;17912:170;;;18005:61;18018:24;18044:21;18005:12;:61::i;:::-;17912:170;18102:20;18143:9;:19;;;18139:1;18125:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;18102:60;;18195:1;18180:12;:16;18177:103;;;18216:48;18251:12;18224:15;;;;;;;;;;;18216:34;;;;:48;;;;:::i;:::-;18177:103;18308:22;18351:9;:21;;;18347:1;18333:11;:15;;;;:::i;:::-;:39;;;;:::i;:::-;18308:64;;18407:1;18390:14;:18;18387:109;;;18428:52;18465:14;18436:17;;;;;;;;;;;18428:36;;;;:52;;;;:::i;:::-;18387:109;17246:1261;;;;;;;;;17208:1299;17136:1378;14867:5:::0;14856:8;;:16;;;;;;;;;;;;;;;;;;14780:104;17098:1416::o;7995:604::-;8119:1;8101:20;;:6;:20;;;;8093:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8203:1;8182:23;;:9;:23;;;;8174:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8258:47;8279:6;8287:9;8298:6;8258:20;:47::i;:::-;8318:21;8342:9;:17;8352:6;8342:17;;;;;;;;;;;;;;;;8318:41;;8395:6;8378:13;:23;;8370:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8491:6;8475:13;:22;;;;:::i;:::-;8455:9;:17;8465:6;8455:17;;;;;;;;;;;;;;;:42;;;;8532:6;8508:9;:20;8518:9;8508:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8573:9;8556:35;;8565:6;8556:35;;;8584:6;8556:35;;;;;;:::i;:::-;;;;;;;;8082:517;7995:604;;;:::o;18932:498::-;19080:53;19097:4;19112:6;;;;;;;;;;;19121:11;19080:8;:53::i;:::-;19176:6;;;;;;;;;;;:22;;;19206:9;19239:4;19259:11;19285:1;19328;19371:10;;;;;;;;;;;19396:15;19176:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18932:498;;:::o;11433:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:122;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:619::-;2509:6;2517;2525;2574:2;2562:9;2553:7;2549:23;2545:32;2542:119;;;2580:79;;:::i;:::-;2542:119;2700:1;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;:::i;:::-;2715:63;;2671:117;2827:2;2853:53;2898:7;2889:6;2878:9;2874:22;2853:53;:::i;:::-;2843:63;;2798:118;2955:2;2981:53;3026:7;3017:6;3006:9;3002:22;2981:53;:::i;:::-;2971:63;;2926:118;2432:619;;;;;:::o;3057:126::-;3094:7;3134:42;3127:5;3123:54;3112:65;;3057:126;;;:::o;3189:96::-;3226:7;3255:24;3273:5;3255:24;:::i;:::-;3244:35;;3189:96;;;:::o;3291:122::-;3364:24;3382:5;3364:24;:::i;:::-;3357:5;3354:35;3344:63;;3403:1;3400;3393:12;3344:63;3291:122;:::o;3419:139::-;3465:5;3503:6;3490:20;3481:29;;3519:33;3546:5;3519:33;:::i;:::-;3419:139;;;;:::o;3564:474::-;3632:6;3640;3689:2;3677:9;3668:7;3664:23;3660:32;3657:119;;;3695:79;;:::i;:::-;3657:119;3815:1;3840:53;3885:7;3876:6;3865:9;3861:22;3840:53;:::i;:::-;3830:63;;3786:117;3942:2;3968:53;4013:7;4004:6;3993:9;3989:22;3968:53;:::i;:::-;3958:63;;3913:118;3564:474;;;;;:::o;4044:90::-;4078:7;4121:5;4114:13;4107:21;4096:32;;4044:90;;;:::o;4140:109::-;4221:21;4236:5;4221:21;:::i;:::-;4216:3;4209:34;4140:109;;:::o;4255:210::-;4342:4;4380:2;4369:9;4365:18;4357:26;;4393:65;4455:1;4444:9;4440:17;4431:6;4393:65;:::i;:::-;4255:210;;;;:::o;4471:118::-;4558:24;4576:5;4558:24;:::i;:::-;4553:3;4546:37;4471:118;;:::o;4595:222::-;4688:4;4726:2;4715:9;4711:18;4703:26;;4739:71;4807:1;4796:9;4792:17;4783:6;4739:71;:::i;:::-;4595:222;;;;:::o;4823:619::-;4900:6;4908;4916;4965:2;4953:9;4944:7;4940:23;4936:32;4933:119;;;4971:79;;:::i;:::-;4933:119;5091:1;5116:53;5161:7;5152:6;5141:9;5137:22;5116:53;:::i;:::-;5106:63;;5062:117;5218:2;5244:53;5289:7;5280:6;5269:9;5265:22;5244:53;:::i;:::-;5234:63;;5189:118;5346:2;5372:53;5417:7;5408:6;5397:9;5393:22;5372:53;:::i;:::-;5362:63;;5317:118;4823:619;;;;;:::o;5448:86::-;5483:7;5523:4;5516:5;5512:16;5501:27;;5448:86;;;:::o;5540:112::-;5623:22;5639:5;5623:22;:::i;:::-;5618:3;5611:35;5540:112;;:::o;5658:214::-;5747:4;5785:2;5774:9;5770:18;5762:26;;5798:67;5862:1;5851:9;5847:17;5838:6;5798:67;:::i;:::-;5658:214;;;;:::o;5878:117::-;5987:1;5984;5977:12;6001:180;6049:77;6046:1;6039:88;6146:4;6143:1;6136:15;6170:4;6167:1;6160:15;6187:281;6270:27;6292:4;6270:27;:::i;:::-;6262:6;6258:40;6400:6;6388:10;6385:22;6364:18;6352:10;6349:34;6346:62;6343:88;;;6411:18;;:::i;:::-;6343:88;6451:10;6447:2;6440:22;6230:238;6187:281;;:::o;6474:129::-;6508:6;6535:20;;:::i;:::-;6525:30;;6564:33;6592:4;6584:6;6564:33;:::i;:::-;6474:129;;;:::o;6609:311::-;6686:4;6776:18;6768:6;6765:30;6762:56;;;6798:18;;:::i;:::-;6762:56;6848:4;6840:6;6836:17;6828:25;;6908:4;6902;6898:15;6890:23;;6609:311;;;:::o;6926:117::-;7035:1;7032;7025:12;7066:710;7162:5;7187:81;7203:64;7260:6;7203:64;:::i;:::-;7187:81;:::i;:::-;7178:90;;7288:5;7317:6;7310:5;7303:21;7351:4;7344:5;7340:16;7333:23;;7404:4;7396:6;7392:17;7384:6;7380:30;7433:3;7425:6;7422:15;7419:122;;;7452:79;;:::i;:::-;7419:122;7567:6;7550:220;7584:6;7579:3;7576:15;7550:220;;;7659:3;7688:37;7721:3;7709:10;7688:37;:::i;:::-;7683:3;7676:50;7755:4;7750:3;7746:14;7739:21;;7626:144;7610:4;7605:3;7601:14;7594:21;;7550:220;;;7554:21;7168:608;;7066:710;;;;;:::o;7799:370::-;7870:5;7919:3;7912:4;7904:6;7900:17;7896:27;7886:122;;7927:79;;:::i;:::-;7886:122;8044:6;8031:20;8069:94;8159:3;8151:6;8144:4;8136:6;8132:17;8069:94;:::i;:::-;8060:103;;7876:293;7799:370;;;;:::o;8175:539::-;8259:6;8308:2;8296:9;8287:7;8283:23;8279:32;8276:119;;;8314:79;;:::i;:::-;8276:119;8462:1;8451:9;8447:17;8434:31;8492:18;8484:6;8481:30;8478:117;;;8514:79;;:::i;:::-;8478:117;8619:78;8689:7;8680:6;8669:9;8665:22;8619:78;:::i;:::-;8609:88;;8405:302;8175:539;;;;:::o;8720:329::-;8779:6;8828:2;8816:9;8807:7;8803:23;8799:32;8796:119;;;8834:79;;:::i;:::-;8796:119;8954:1;8979:53;9024:7;9015:6;9004:9;9000:22;8979:53;:::i;:::-;8969:63;;8925:117;8720:329;;;;:::o;9055:111::-;9107:7;9136:24;9154:5;9136:24;:::i;:::-;9125:35;;9055:111;;;:::o;9172:152::-;9260:39;9293:5;9260:39;:::i;:::-;9253:5;9250:50;9240:78;;9314:1;9311;9304:12;9240:78;9172:152;:::o;9330:169::-;9391:5;9429:6;9416:20;9407:29;;9445:48;9487:5;9445:48;:::i;:::-;9330:169;;;;:::o;9505:504::-;9588:6;9596;9645:2;9633:9;9624:7;9620:23;9616:32;9613:119;;;9651:79;;:::i;:::-;9613:119;9771:1;9796:68;9856:7;9847:6;9836:9;9832:22;9796:68;:::i;:::-;9786:78;;9742:132;9913:2;9939:53;9984:7;9975:6;9964:9;9960:22;9939:53;:::i;:::-;9929:63;;9884:118;9505:504;;;;;:::o;10015:329::-;10074:6;10123:2;10111:9;10102:7;10098:23;10094:32;10091:119;;;10129:79;;:::i;:::-;10091:119;10249:1;10274:53;10319:7;10310:6;10299:9;10295:22;10274:53;:::i;:::-;10264:63;;10220:117;10015:329;;;;:::o;10350:442::-;10499:4;10537:2;10526:9;10522:18;10514:26;;10550:71;10618:1;10607:9;10603:17;10594:6;10550:71;:::i;:::-;10631:72;10699:2;10688:9;10684:18;10675:6;10631:72;:::i;:::-;10713;10781:2;10770:9;10766:18;10757:6;10713:72;:::i;:::-;10350:442;;;;;;:::o;10798:474::-;10866:6;10874;10923:2;10911:9;10902:7;10898:23;10894:32;10891:119;;;10929:79;;:::i;:::-;10891:119;11049:1;11074:53;11119:7;11110:6;11099:9;11095:22;11074:53;:::i;:::-;11064:63;;11020:117;11176:2;11202:53;11247:7;11238:6;11227:9;11223:22;11202:53;:::i;:::-;11192:63;;11147:118;10798:474;;;;;:::o;11278:116::-;11348:21;11363:5;11348:21;:::i;:::-;11341:5;11338:32;11328:60;;11384:1;11381;11374:12;11328:60;11278:116;:::o;11400:133::-;11443:5;11481:6;11468:20;11459:29;;11497:30;11521:5;11497:30;:::i;:::-;11400:133;;;;:::o;11539:323::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11770:1;11795:50;11837:7;11828:6;11817:9;11813:22;11795:50;:::i;:::-;11785:60;;11741:114;11539:323;;;;:::o;11868:468::-;11933:6;11941;11990:2;11978:9;11969:7;11965:23;11961:32;11958:119;;;11996:79;;:::i;:::-;11958:119;12116:1;12141:53;12186:7;12177:6;12166:9;12162:22;12141:53;:::i;:::-;12131:63;;12087:117;12243:2;12269:50;12311:7;12302:6;12291:9;12287:22;12269:50;:::i;:::-;12259:60;;12214:115;11868:468;;;;;:::o;12342:60::-;12370:3;12391:5;12384:12;;12342:60;;;:::o;12408:142::-;12458:9;12491:53;12509:34;12518:24;12536:5;12518:24;:::i;:::-;12509:34;:::i;:::-;12491:53;:::i;:::-;12478:66;;12408:142;;;:::o;12556:126::-;12606:9;12639:37;12670:5;12639:37;:::i;:::-;12626:50;;12556:126;;;:::o;12688:141::-;12753:9;12786:37;12817:5;12786:37;:::i;:::-;12773:50;;12688:141;;;:::o;12835:161::-;12937:52;12983:5;12937:52;:::i;:::-;12932:3;12925:65;12835:161;;:::o;13002:252::-;13110:4;13148:2;13137:9;13133:18;13125:26;;13161:86;13244:1;13233:9;13229:17;13220:6;13161:86;:::i;:::-;13002:252;;;;:::o;13260:180::-;13308:77;13305:1;13298:88;13405:4;13402:1;13395:15;13429:4;13426:1;13419:15;13446:320;13490:6;13527:1;13521:4;13517:12;13507:22;;13574:1;13568:4;13564:12;13595:18;13585:81;;13651:4;13643:6;13639:17;13629:27;;13585:81;13713:2;13705:6;13702:14;13682:18;13679:38;13676:84;;;13732:18;;:::i;:::-;13676:84;13497:269;13446:320;;;:::o;13772:182::-;13912:34;13908:1;13900:6;13896:14;13889:58;13772:182;:::o;13960:366::-;14102:3;14123:67;14187:2;14182:3;14123:67;:::i;:::-;14116:74;;14199:93;14288:3;14199:93;:::i;:::-;14317:2;14312:3;14308:12;14301:19;;13960:366;;;:::o;14332:419::-;14498:4;14536:2;14525:9;14521:18;14513:26;;14585:9;14579:4;14575:20;14571:1;14560:9;14556:17;14549:47;14613:131;14739:4;14613:131;:::i;:::-;14605:139;;14332:419;;;:::o;14757:180::-;14805:77;14802:1;14795:88;14902:4;14899:1;14892:15;14926:4;14923:1;14916:15;14943:305;14983:3;15002:20;15020:1;15002:20;:::i;:::-;14997:25;;15036:20;15054:1;15036:20;:::i;:::-;15031:25;;15190:1;15122:66;15118:74;15115:1;15112:81;15109:107;;;15196:18;;:::i;:::-;15109:107;15240:1;15237;15233:9;15226:16;;14943:305;;;;:::o;15254:332::-;15375:4;15413:2;15402:9;15398:18;15390:26;;15426:71;15494:1;15483:9;15479:17;15470:6;15426:71;:::i;:::-;15507:72;15575:2;15564:9;15560:18;15551:6;15507:72;:::i;:::-;15254:332;;;;;:::o;15592:137::-;15646:5;15677:6;15671:13;15662:22;;15693:30;15717:5;15693:30;:::i;:::-;15592:137;;;;:::o;15735:345::-;15802:6;15851:2;15839:9;15830:7;15826:23;15822:32;15819:119;;;15857:79;;:::i;:::-;15819:119;15977:1;16002:61;16055:7;16046:6;16035:9;16031:22;16002:61;:::i;:::-;15992:71;;15948:125;15735:345;;;;:::o;16086:227::-;16226:34;16222:1;16214:6;16210:14;16203:58;16295:10;16290:2;16282:6;16278:15;16271:35;16086:227;:::o;16319:366::-;16461:3;16482:67;16546:2;16541:3;16482:67;:::i;:::-;16475:74;;16558:93;16647:3;16558:93;:::i;:::-;16676:2;16671:3;16667:12;16660:19;;16319:366;;;:::o;16691:419::-;16857:4;16895:2;16884:9;16880:18;16872:26;;16944:9;16938:4;16934:20;16930:1;16919:9;16915:17;16908:47;16972:131;17098:4;16972:131;:::i;:::-;16964:139;;16691:419;;;:::o;17116:191::-;17156:4;17176:20;17194:1;17176:20;:::i;:::-;17171:25;;17210:20;17228:1;17210:20;:::i;:::-;17205:25;;17249:1;17246;17243:8;17240:34;;;17254:18;;:::i;:::-;17240:34;17299:1;17296;17292:9;17284:17;;17116:191;;;;:::o;17313:348::-;17353:7;17376:20;17394:1;17376:20;:::i;:::-;17371:25;;17410:20;17428:1;17410:20;:::i;:::-;17405:25;;17598:1;17530:66;17526:74;17523:1;17520:81;17515:1;17508:9;17501:17;17497:105;17494:131;;;17605:18;;:::i;:::-;17494:131;17653:1;17650;17646:9;17635:20;;17313:348;;;;:::o;17667:180::-;17715:77;17712:1;17705:88;17812:4;17809:1;17802:15;17836:4;17833:1;17826:15;17853:185;17893:1;17910:20;17928:1;17910:20;:::i;:::-;17905:25;;17944:20;17962:1;17944:20;:::i;:::-;17939:25;;17983:1;17973:35;;17988:18;;:::i;:::-;17973:35;18030:1;18027;18023:9;18018:14;;17853:185;;;;:::o;18044:180::-;18092:77;18089:1;18082:88;18189:4;18186:1;18179:15;18213:4;18210:1;18203:15;18230:233;18269:3;18292:24;18310:5;18292:24;:::i;:::-;18283:33;;18338:66;18331:5;18328:77;18325:103;;;18408:18;;:::i;:::-;18325:103;18455:1;18448:5;18444:13;18437:20;;18230:233;;;:::o;18469:172::-;18609:24;18605:1;18597:6;18593:14;18586:48;18469:172;:::o;18647:366::-;18789:3;18810:67;18874:2;18869:3;18810:67;:::i;:::-;18803:74;;18886:93;18975:3;18886:93;:::i;:::-;19004:2;18999:3;18995:12;18988:19;;18647:366;;;:::o;19019:419::-;19185:4;19223:2;19212:9;19208:18;19200:26;;19272:9;19266:4;19262:20;19258:1;19247:9;19243:17;19236:47;19300:131;19426:4;19300:131;:::i;:::-;19292:139;;19019:419;;;:::o;19444:224::-;19584:34;19580:1;19572:6;19568:14;19561:58;19653:7;19648:2;19640:6;19636:15;19629:32;19444:224;:::o;19674:366::-;19816:3;19837:67;19901:2;19896:3;19837:67;:::i;:::-;19830:74;;19913:93;20002:3;19913:93;:::i;:::-;20031:2;20026:3;20022:12;20015:19;;19674:366;;;:::o;20046:419::-;20212:4;20250:2;20239:9;20235:18;20227:26;;20299:9;20293:4;20289:20;20285:1;20274:9;20270:17;20263:47;20327:131;20453:4;20327:131;:::i;:::-;20319:139;;20046:419;;;:::o;20471:225::-;20611:34;20607:1;20599:6;20595:14;20588:58;20680:8;20675:2;20667:6;20663:15;20656:33;20471:225;:::o;20702:366::-;20844:3;20865:67;20929:2;20924:3;20865:67;:::i;:::-;20858:74;;20941:93;21030:3;20941:93;:::i;:::-;21059:2;21054:3;21050:12;21043:19;;20702:366;;;:::o;21074:419::-;21240:4;21278:2;21267:9;21263:18;21255:26;;21327:9;21321:4;21317:20;21313:1;21302:9;21298:17;21291:47;21355:131;21481:4;21355:131;:::i;:::-;21347:139;;21074:419;;;:::o;21499:223::-;21639:34;21635:1;21627:6;21623:14;21616:58;21708:6;21703:2;21695:6;21691:15;21684:31;21499:223;:::o;21728:366::-;21870:3;21891:67;21955:2;21950:3;21891:67;:::i;:::-;21884:74;;21967:93;22056:3;21967:93;:::i;:::-;22085:2;22080:3;22076:12;22069:19;;21728:366;;;:::o;22100:419::-;22266:4;22304:2;22293:9;22289:18;22281:26;;22353:9;22347:4;22343:20;22339:1;22328:9;22324:17;22317:47;22381:131;22507:4;22381:131;:::i;:::-;22373:139;;22100:419;;;:::o;22525:221::-;22665:34;22661:1;22653:6;22649:14;22642:58;22734:4;22729:2;22721:6;22717:15;22710:29;22525:221;:::o;22752:366::-;22894:3;22915:67;22979:2;22974:3;22915:67;:::i;:::-;22908:74;;22991:93;23080:3;22991:93;:::i;:::-;23109:2;23104:3;23100:12;23093:19;;22752:366;;;:::o;23124:419::-;23290:4;23328:2;23317:9;23313:18;23305:26;;23377:9;23371:4;23367:20;23363:1;23352:9;23348:17;23341:47;23405:131;23531:4;23405:131;:::i;:::-;23397:139;;23124:419;;;:::o;23549:228::-;23689:34;23685:1;23677:6;23673:14;23666:58;23758:11;23753:2;23745:6;23741:15;23734:36;23549:228;:::o;23783:366::-;23925:3;23946:67;24010:2;24005:3;23946:67;:::i;:::-;23939:74;;24022:93;24111:3;24022:93;:::i;:::-;24140:2;24135:3;24131:12;24124:19;;23783:366;;;:::o;24155:419::-;24321:4;24359:2;24348:9;24344:18;24336:26;;24408:9;24402:4;24398:20;24394:1;24383:9;24379:17;24372:47;24436:131;24562:4;24436:131;:::i;:::-;24428:139;;24155:419;;;:::o;24580:175::-;24720:27;24716:1;24708:6;24704:14;24697:51;24580:175;:::o;24761:366::-;24903:3;24924:67;24988:2;24983:3;24924:67;:::i;:::-;24917:74;;25000:93;25089:3;25000:93;:::i;:::-;25118:2;25113:3;25109:12;25102:19;;24761:366;;;:::o;25133:419::-;25299:4;25337:2;25326:9;25322:18;25314:26;;25386:9;25380:4;25376:20;25372:1;25361:9;25357:17;25350:47;25414:131;25540:4;25414:131;:::i;:::-;25406:139;;25133:419;;;:::o;25558:172::-;25698:24;25694:1;25686:6;25682:14;25675:48;25558:172;:::o;25736:366::-;25878:3;25899:67;25963:2;25958:3;25899:67;:::i;:::-;25892:74;;25975:93;26064:3;25975:93;:::i;:::-;26093:2;26088:3;26084:12;26077:19;;25736:366;;;:::o;26108:419::-;26274:4;26312:2;26301:9;26297:18;26289:26;;26361:9;26355:4;26351:20;26347:1;26336:9;26332:17;26325:47;26389:131;26515:4;26389:131;:::i;:::-;26381:139;;26108:419;;;:::o;26533:179::-;26673:31;26669:1;26661:6;26657:14;26650:55;26533:179;:::o;26718:366::-;26860:3;26881:67;26945:2;26940:3;26881:67;:::i;:::-;26874:74;;26957:93;27046:3;26957:93;:::i;:::-;27075:2;27070:3;27066:12;27059:19;;26718:366;;;:::o;27090:419::-;27256:4;27294:2;27283:9;27279:18;27271:26;;27343:9;27337:4;27333:20;27329:1;27318:9;27314:17;27307:47;27371:131;27497:4;27371:131;:::i;:::-;27363:139;;27090:419;;;:::o;27515:220::-;27655:34;27651:1;27643:6;27639:14;27632:58;27724:3;27719:2;27711:6;27707:15;27700:28;27515:220;:::o;27741:366::-;27883:3;27904:67;27968:2;27963:3;27904:67;:::i;:::-;27897:74;;27980:93;28069:3;27980:93;:::i;:::-;28098:2;28093:3;28089:12;28082:19;;27741:366;;;:::o;28113:419::-;28279:4;28317:2;28306:9;28302:18;28294:26;;28366:9;28360:4;28356:20;28352:1;28341:9;28337:17;28330:47;28394:131;28520:4;28394:131;:::i;:::-;28386:139;;28113:419;;;:::o;28538:143::-;28595:5;28626:6;28620:13;28611:22;;28642:33;28669:5;28642:33;:::i;:::-;28538:143;;;;:::o;28687:351::-;28757:6;28806:2;28794:9;28785:7;28781:23;28777:32;28774:119;;;28812:79;;:::i;:::-;28774:119;28932:1;28957:64;29013:7;29004:6;28993:9;28989:22;28957:64;:::i;:::-;28947:74;;28903:128;28687:351;;;;:::o;29044:85::-;29089:7;29118:5;29107:16;;29044:85;;;:::o;29135:158::-;29193:9;29226:61;29244:42;29253:32;29279:5;29253:32;:::i;:::-;29244:42;:::i;:::-;29226:61;:::i;:::-;29213:74;;29135:158;;;:::o;29299:147::-;29394:45;29433:5;29394:45;:::i;:::-;29389:3;29382:58;29299:147;;:::o;29452:114::-;29519:6;29553:5;29547:12;29537:22;;29452:114;;;:::o;29572:184::-;29671:11;29705:6;29700:3;29693:19;29745:4;29740:3;29736:14;29721:29;;29572:184;;;;:::o;29762:132::-;29829:4;29852:3;29844:11;;29882:4;29877:3;29873:14;29865:22;;29762:132;;;:::o;29900:108::-;29977:24;29995:5;29977:24;:::i;:::-;29972:3;29965:37;29900:108;;:::o;30014:179::-;30083:10;30104:46;30146:3;30138:6;30104:46;:::i;:::-;30182:4;30177:3;30173:14;30159:28;;30014:179;;;;:::o;30199:113::-;30269:4;30301;30296:3;30292:14;30284:22;;30199:113;;;:::o;30348:732::-;30467:3;30496:54;30544:5;30496:54;:::i;:::-;30566:86;30645:6;30640:3;30566:86;:::i;:::-;30559:93;;30676:56;30726:5;30676:56;:::i;:::-;30755:7;30786:1;30771:284;30796:6;30793:1;30790:13;30771:284;;;30872:6;30866:13;30899:63;30958:3;30943:13;30899:63;:::i;:::-;30892:70;;30985:60;31038:6;30985:60;:::i;:::-;30975:70;;30831:224;30818:1;30815;30811:9;30806:14;;30771:284;;;30775:14;31071:3;31064:10;;30472:608;;;30348:732;;;;:::o;31086:831::-;31349:4;31387:3;31376:9;31372:19;31364:27;;31401:71;31469:1;31458:9;31454:17;31445:6;31401:71;:::i;:::-;31482:80;31558:2;31547:9;31543:18;31534:6;31482:80;:::i;:::-;31609:9;31603:4;31599:20;31594:2;31583:9;31579:18;31572:48;31637:108;31740:4;31731:6;31637:108;:::i;:::-;31629:116;;31755:72;31823:2;31812:9;31808:18;31799:6;31755:72;:::i;:::-;31837:73;31905:3;31894:9;31890:19;31881:6;31837:73;:::i;:::-;31086:831;;;;;;;;:::o;31923:179::-;32063:31;32059:1;32051:6;32047:14;32040:55;31923:179;:::o;32108:366::-;32250:3;32271:67;32335:2;32330:3;32271:67;:::i;:::-;32264:74;;32347:93;32436:3;32347:93;:::i;:::-;32465:2;32460:3;32456:12;32449:19;;32108:366;;;:::o;32480:419::-;32646:4;32684:2;32673:9;32669:18;32661:26;;32733:9;32727:4;32723:20;32719:1;32708:9;32704:17;32697:47;32761:131;32887:4;32761:131;:::i;:::-;32753:139;;32480:419;;;:::o;32905:147::-;33006:11;33043:3;33028:18;;32905:147;;;;:::o;33058:114::-;;:::o;33178:398::-;33337:3;33358:83;33439:1;33434:3;33358:83;:::i;:::-;33351:90;;33450:93;33539:3;33450:93;:::i;:::-;33568:1;33563:3;33559:11;33552:18;;33178:398;;;:::o;33582:379::-;33766:3;33788:147;33931:3;33788:147;:::i;:::-;33781:154;;33952:3;33945:10;;33582:379;;;:::o;33967:245::-;34107:34;34103:1;34095:6;34091:14;34084:58;34176:28;34171:2;34163:6;34159:15;34152:53;33967:245;:::o;34218:366::-;34360:3;34381:67;34445:2;34440:3;34381:67;:::i;:::-;34374:74;;34457:93;34546:3;34457:93;:::i;:::-;34575:2;34570:3;34566:12;34559:19;;34218:366;;;:::o;34590:419::-;34756:4;34794:2;34783:9;34779:18;34771:26;;34843:9;34837:4;34833:20;34829:1;34818:9;34814:17;34807:47;34871:131;34997:4;34871:131;:::i;:::-;34863:139;;34590:419;;;:::o;35015:224::-;35155:34;35151:1;35143:6;35139:14;35132:58;35224:7;35219:2;35211:6;35207:15;35200:32;35015:224;:::o;35245:366::-;35387:3;35408:67;35472:2;35467:3;35408:67;:::i;:::-;35401:74;;35484:93;35573:3;35484:93;:::i;:::-;35602:2;35597:3;35593:12;35586:19;;35245:366;;;:::o;35617:419::-;35783:4;35821:2;35810:9;35806:18;35798:26;;35870:9;35864:4;35860:20;35856:1;35845:9;35841:17;35834:47;35898:131;36024:4;35898:131;:::i;:::-;35890:139;;35617:419;;;:::o;36042:222::-;36182:34;36178:1;36170:6;36166:14;36159:58;36251:5;36246:2;36238:6;36234:15;36227:30;36042:222;:::o;36270:366::-;36412:3;36433:67;36497:2;36492:3;36433:67;:::i;:::-;36426:74;;36509:93;36598:3;36509:93;:::i;:::-;36627:2;36622:3;36618:12;36611:19;;36270:366;;;:::o;36642:419::-;36808:4;36846:2;36835:9;36831:18;36823:26;;36895:9;36889:4;36885:20;36881:1;36870:9;36866:17;36859:47;36923:131;37049:4;36923:131;:::i;:::-;36915:139;;36642:419;;;:::o;37067:225::-;37207:34;37203:1;37195:6;37191:14;37184:58;37276:8;37271:2;37263:6;37259:15;37252:33;37067:225;:::o;37298:366::-;37440:3;37461:67;37525:2;37520:3;37461:67;:::i;:::-;37454:74;;37537:93;37626:3;37537:93;:::i;:::-;37655:2;37650:3;37646:12;37639:19;;37298:366;;;:::o;37670:419::-;37836:4;37874:2;37863:9;37859:18;37851:26;;37923:9;37917:4;37913:20;37909:1;37898:9;37894:17;37887:47;37951:131;38077:4;37951:131;:::i;:::-;37943:139;;37670:419;;;:::o;38095:807::-;38344:4;38382:3;38371:9;38367:19;38359:27;;38396:71;38464:1;38453:9;38449:17;38440:6;38396:71;:::i;:::-;38477:72;38545:2;38534:9;38530:18;38521:6;38477:72;:::i;:::-;38559:80;38635:2;38624:9;38620:18;38611:6;38559:80;:::i;:::-;38649;38725:2;38714:9;38710:18;38701:6;38649:80;:::i;:::-;38739:73;38807:3;38796:9;38792:19;38783:6;38739:73;:::i;:::-;38822;38890:3;38879:9;38875:19;38866:6;38822:73;:::i;:::-;38095:807;;;;;;;;;:::o;38908:143::-;38965:5;38996:6;38990:13;38981:22;;39012:33;39039:5;39012:33;:::i;:::-;38908:143;;;;:::o;39057:663::-;39145:6;39153;39161;39210:2;39198:9;39189:7;39185:23;39181:32;39178:119;;;39216:79;;:::i;:::-;39178:119;39336:1;39361:64;39417:7;39408:6;39397:9;39393:22;39361:64;:::i;:::-;39351:74;;39307:128;39474:2;39500:64;39556:7;39547:6;39536:9;39532:22;39500:64;:::i;:::-;39490:74;;39445:129;39613:2;39639:64;39695:7;39686:6;39675:9;39671:22;39639:64;:::i;:::-;39629:74;;39584:129;39057:663;;;;;:::o

Swarm Source

ipfs://d68e3a9378529d97bc69f1e8c7056e659ccd8c02fc7e513c4da64823a1f4c1d8
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.