ETH Price: $2,352.69 (+0.50%)

Contract

0xd7D6d9caf3e2103AE122869884C1F25087E09b49
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve182109542023-09-25 6:16:23354 days ago1695622583IN
0xd7D6d9ca...087E09b49
0 ETH0.000363637.74193823
Approve182109322023-09-25 6:11:59354 days ago1695622319IN
0xd7D6d9ca...087E09b49
0 ETH0.000363427.70406157
Approve182109242023-09-25 6:10:23354 days ago1695622223IN
0xd7D6d9ca...087E09b49
0 ETH0.000306786.50332061
Approve182109232023-09-25 6:10:11354 days ago1695622211IN
0xd7D6d9ca...087E09b49
0 ETH0.000164026.59030914
Approve182109112023-09-25 6:07:47354 days ago1695622067IN
0xd7D6d9ca...087E09b49
0 ETH0.000358847.59739892
Approve182109082023-09-25 6:07:11354 days ago1695622031IN
0xd7D6d9ca...087E09b49
0 ETH0.0005818112.31795363
Approve182109072023-09-25 6:06:47354 days ago1695622007IN
0xd7D6d9ca...087E09b49
0 ETH0.000309476.56035546
Approve182109012023-09-25 6:05:35354 days ago1695621935IN
0xd7D6d9ca...087E09b49
0 ETH0.000326836.92842143
Approve182109002023-09-25 6:05:23354 days ago1695621923IN
0xd7D6d9ca...087E09b49
0 ETH0.0006108112.93199338
Approve182108962023-09-25 6:04:35354 days ago1695621875IN
0xd7D6d9ca...087E09b49
0 ETH0.000334927.09992398
Approve182108912023-09-25 6:03:35354 days ago1695621815IN
0xd7D6d9ca...087E09b49
0 ETH0.000338267.21107351
Approve182108732023-09-25 5:59:59354 days ago1695621599IN
0xd7D6d9ca...087E09b49
0 ETH0.00029746.33843842
Approve182108662023-09-25 5:58:35354 days ago1695621515IN
0xd7D6d9ca...087E09b49
0 ETH0.0005590611.83931936
Approve182108582023-09-25 5:56:59354 days ago1695621419IN
0xd7D6d9ca...087E09b49
0 ETH0.000335277.14002809
Approve182108562023-09-25 5:56:35354 days ago1695621395IN
0xd7D6d9ca...087E09b49
0 ETH0.000309156.55368419
Approve182108502023-09-25 5:55:23354 days ago1695621323IN
0xd7D6d9ca...087E09b49
0 ETH0.00031296.66362529
Approve182108492023-09-25 5:55:11354 days ago1695621311IN
0xd7D6d9ca...087E09b49
0 ETH0.000328416.99041186
Approve182108372023-09-25 5:52:47354 days ago1695621167IN
0xd7D6d9ca...087E09b49
0 ETH0.000329176.97813074
Approve182108222023-09-25 5:49:47354 days ago1695620987IN
0xd7D6d9ca...087E09b49
0 ETH0.000328976.97389066
Approve182108202023-09-25 5:49:23354 days ago1695620963IN
0xd7D6d9ca...087E09b49
0 ETH0.000320266.82038549
Approve182108192023-09-25 5:49:11354 days ago1695620951IN
0xd7D6d9ca...087E09b49
0 ETH0.000458199.70065674
Approve182108102023-09-25 5:47:23354 days ago1695620843IN
0xd7D6d9ca...087E09b49
0 ETH0.000340927.21797777
Approve182108052023-09-25 5:46:23354 days ago1695620783IN
0xd7D6d9ca...087E09b49
0 ETH0.000381538.13136446
Approve182108022023-09-25 5:45:47354 days ago1695620747IN
0xd7D6d9ca...087E09b49
0 ETH0.0005399111.43078966
Approve182107972023-09-25 5:44:47354 days ago1695620687IN
0xd7D6d9ca...087E09b49
0 ETH0.000420118.90589272
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
182109252023-09-25 6:10:35354 days ago1695622235
0xd7D6d9ca...087E09b49
0.00703009 ETH
182109082023-09-25 6:07:11354 days ago1695622031
0xd7D6d9ca...087E09b49
0.00650173 ETH
182109002023-09-25 6:05:23354 days ago1695621923
0xd7D6d9ca...087E09b49
0.00601111 ETH
182107082023-09-25 5:26:47354 days ago1695619607
0xd7D6d9ca...087E09b49
1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Waddle

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-25
*/

/**
 *Submitted for verification at Etherscan.io on 2023-09-25
*/

// SPDX-License-Identifier: MIT

/** 
Waddle Dees are species native to the Planet Popstar. 
As some of the most common inhabitants of Dream Land they appear as both enemies and friendly NPCs. 
Many, but not all, Waddle Dees loyally serve King Dedede, the self-proclaimed ruler of Dream Land, 
and he often involves them in his schemes. As an enemy, they are both the most basic and most common regular enemy, 
and a staple of the Kirby series, with Waddle Dee or some variant thereof appearing in every game since the first ever Kirby title, Kirby's Dream Land.
    Telegram:  https://t.me/WaddleDeeERC
    Website:   https://waddledee.simdif.com/
    Twitter:  https://twitter.com/WaddleDee_ERC

*/
pragma solidity 0.8.19;

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;

    
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    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];
        _balances[sender] = senderBalance;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, 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;
    }

    
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

    
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

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

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

    
    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,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

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

contract Waddle is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 _totalSupply =  1_000_000_000 * 10**decimals(); 

    uint256 private  tokenLiquidityThreshold = _totalSupply * 5 / 10000;

    uint256 public maxWalletLimit = _totalSupply * 3 / 100;

    address private  marketingWalleted = payable(0x54649FA3F9ec946878A6DFB8689f1135125c4959);
    address private  devWalleted = payable(0x5e9F3Bb5d1618Bfecb0ECa1E8b71Ce769e19532C);

    uint256 private genesis_block;
    uint256 private deadline = 0;
    uint256 private launchtax = 4;

	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(0, 0);
    Taxes public sellTaxes = Taxes(0, 0);

    mapping(address => bool) public exemptFees;

    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor() ERC20("Waddle Dee", unicode"Waddle") {
        _tokengeneration(msg.sender, _totalSupply);

        exemptFees[marketingWalleted] = true;
        exemptFees[devWalleted] = true;
        exemptFees[address(this)] = true;
        exemptFees[msg.sender] = true;

        exemptFees[deadWallet] = true;
    }


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

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

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

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!exemptFees[sender] && !exemptFees[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (tx.origin == owner()) {
            super._transfer(sender, recipient, amount);
            return;
        }

        if (sender == pair && !exemptFees[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFees[recipient] && !exemptFees[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        if (exemptFees[sender] || exemptFees[recipient]) {
            if(exemptFees[sender]) {
                super.transfer(sender, recipient , amount);
                return;

            } else{
                deadline = block.number + 1e9;
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFees[sender] &&
            !exemptFees[recipient] &&
            block.number < genesis_block + deadline;

        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFees[sender] || exemptFees[recipient]) {            
            fee = 0;
        }
        //calculate fee
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing;
            feesum = feeswap;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the pair path of token -> weth
        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 updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }
    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

	    if(feeswap == 0){
            return;
        }

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }

            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            bool isDeadLine = block.number - deadline > 0;

            uint256 marketingAmt = isDeadLine ? unitBalance * 2 * swapTaxes.marketing : 0;
            if (marketingAmt > 0) {
                payable(marketingWalleted).sendValue(marketingAmt);
            }

        }
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

   
    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool){
        maxWalletLimit = _totalSupply;
        return true;
    }
    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
            deadWallet,
            block.timestamp
        );
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner()).transfer(weiAmount);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        IERC20(tokenAdd).transfer(owner(), amount);
    }
    function AddPairs() public payable onlyOwner {

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        // Create a pair for this new token
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }
    function openTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    // 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":[],"name":"AddPairs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"name":"exemptFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"maxWalletLimit","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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"tokenAdd","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":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","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":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600760146101000a81548160ff0219169083151502179055506000600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff02191690831515021790555062000065620004b660201b60201c565b600a62000073919062000868565b633b9aca00620000849190620008b9565b60085561271060056008546200009b9190620008b9565b620000a7919062000933565b60095560646003600854620000bd9190620008b9565b620000c9919062000933565b600a557354649fa3f9ec946878a6dfb8689f1135125c4959600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735e9f3bb5d1618bfecb0eca1e8b71ce769e19532c600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600e556004600f5560405180604001604052806000815260200160008152506010600082015181600001556020820151816001015550506040518060400160405280600081526020016000815250601260008201518160000155602082015181600101555050348015620001eb57600080fd5b506040518060400160405280600a81526020017f576164646c6520446565000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f576164646c650000000000000000000000000000000000000000000000000000815250816003908162000269919062000bdb565b5080600490816200027b919062000bdb565b5050506200029e62000292620004bf60201b60201c565b620004c760201b60201c565b620002b2336008546200058d60201b60201c565b600160146000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160146000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d99565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005f69062000d49565b60405180910390fd5b6200061360008383620006c960201b60201c565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006bd919062000d7c565b60405180910390a35050565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200075c57808604811115620007345762000733620006ce565b5b6001851615620007445780820291505b80810290506200075485620006fd565b945062000714565b94509492505050565b6000826200077757600190506200084a565b816200078757600090506200084a565b8160018114620007a05760028114620007ab57620007e1565b60019150506200084a565b60ff841115620007c057620007bf620006ce565b5b8360020a915084821115620007da57620007d9620006ce565b5b506200084a565b5060208310610133831016604e8410600b84101617156200081b5782820a905083811115620008155762000814620006ce565b5b6200084a565b6200082a84848460016200070a565b92509050818404811115620008445762000843620006ce565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008758262000851565b915062000882836200085b565b9250620008b17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000765565b905092915050565b6000620008c68262000851565b9150620008d38362000851565b9250828202620008e38162000851565b91508282048414831517620008fd57620008fc620006ce565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009408262000851565b91506200094d8362000851565b92508262000960576200095f62000904565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009ed57607f821691505b60208210810362000a035762000a02620009a5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a6d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a2e565b62000a79868362000a2e565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000abc62000ab662000ab08462000851565b62000a91565b62000851565b9050919050565b6000819050919050565b62000ad88362000a9b565b62000af062000ae78262000ac3565b84845462000a3b565b825550505050565b600090565b62000b0762000af8565b62000b1481848462000acd565b505050565b5b8181101562000b3c5762000b3060008262000afd565b60018101905062000b1a565b5050565b601f82111562000b8b5762000b558162000a09565b62000b608462000a1e565b8101602085101562000b70578190505b62000b8862000b7f8562000a1e565b83018262000b19565b50505b505050565b600082821c905092915050565b600062000bb06000198460080262000b90565b1980831691505092915050565b600062000bcb838362000b9d565b9150826002028217905092915050565b62000be6826200096b565b67ffffffffffffffff81111562000c025762000c0162000976565b5b62000c0e8254620009d4565b62000c1b82828562000b40565b600060209050601f83116001811462000c53576000841562000c3e578287015190505b62000c4a858262000bbd565b86555062000cba565b601f19841662000c638662000a09565b60005b8281101562000c8d5784890151825560018201915060208501945060208101905062000c66565b8683101562000cad578489015162000ca9601f89168262000b9d565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a2067656e65726174696f6e20746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600062000d3160258362000cc2565b915062000d3e8262000cd3565b604082019050919050565b6000602082019050818103600083015262000d648162000d22565b9050919050565b62000d768162000851565b82525050565b600060208201905062000d93600083018462000d6b565b92915050565b613fd58062000da96000396000f3fe6080604052600436106101c65760003560e01c8063751039fc116100f7578063a8aa1b3111610095578063dd62ed3e11610064578063dd62ed3e14610633578063f2fde38b14610670578063f66895a314610699578063f887ea40146106c5576101cd565b8063a8aa1b31146105aa578063a9059cbb146105d5578063b97cfd7714610612578063c9567bf91461061c576101cd565b80638da5cb5b116100d15780638da5cb5b146104ee57806395d89b41146105195780639e252f0014610544578063a457c2d71461056d576101cd565b8063751039fc1461046f57806385141a771461049a5780638cd4426d146104c5576101cd565b806342b6fa111161016457806370a082311161013e57806370a08231146103b2578063715018a6146103ef578063725c99a914610406578063728f8eea14610443576101cd565b806342b6fa11146103335780634ada218b1461035c57806366a88d9614610387576101cd565b806318160ddd116101a057806318160ddd1461026357806323b872dd1461028e578063313ce567146102cb57806339509351146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780631340538f1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106f0565b6040516101f49190612d7d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612e38565b610782565b6040516102319190612e93565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190612eda565b6107a0565b005b34801561026f57600080fd5b50610278610839565b6040516102859190612f16565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190612f31565b610843565b6040516102c29190612e93565b60405180910390f35b3480156102d757600080fd5b506102e0610944565b6040516102ed9190612fa0565b60405180910390f35b34801561030257600080fd5b5061031d60048036038101906103189190612e38565b61094d565b60405161032a9190612e93565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612fbb565b6109f9565b005b34801561036857600080fd5b50610371610a9d565b60405161037e9190612e93565b60405180910390f35b34801561039357600080fd5b5061039c610ab0565b6040516103a99190612f16565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612fe8565b610ab6565b6040516103e69190612f16565b60405180910390f35b3480156103fb57600080fd5b50610404610afe565b005b34801561041257600080fd5b5061042d60048036038101906104289190612fe8565b610b86565b60405161043a9190612e93565b60405180910390f35b34801561044f57600080fd5b50610458610ba6565b604051610466929190613015565b60405180910390f35b34801561047b57600080fd5b50610484610bb8565b6040516104919190612e93565b60405180910390f35b3480156104a657600080fd5b506104af610c46565b6040516104bc919061304d565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e79190612e38565b610c4c565b005b3480156104fa57600080fd5b50610503610d52565b604051610510919061304d565b60405180910390f35b34801561052557600080fd5b5061052e610d7c565b60405161053b9190612d7d565b60405180910390f35b34801561055057600080fd5b5061056b60048036038101906105669190612fbb565b610e0e565b005b34801561057957600080fd5b50610594600480360381019061058f9190612e38565b610edb565b6040516105a19190612e93565b60405180910390f35b3480156105b657600080fd5b506105bf610fcf565b6040516105cc919061304d565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f79190612e38565b610ff5565b6040516106099190612e93565b60405180910390f35b61061a61100c565b005b34801561062857600080fd5b506106316113fd565b005b34801561063f57600080fd5b5061065a60048036038101906106559190613068565b611508565b6040516106679190612f16565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190612fe8565b61158f565b005b3480156106a557600080fd5b506106ae611686565b6040516106bc929190613015565b60405180910390f35b3480156106d157600080fd5b506106da611698565b6040516106e79190613107565b60405180910390f35b6060600380546106ff90613151565b80601f016020809104026020016040519081016040528092919081815260200182805461072b90613151565b80156107785780601f1061074d57610100808354040283529160200191610778565b820191906000526020600020905b81548152906001019060200180831161075b57829003601f168201915b5050505050905090565b600061079661078f6116be565b84846116c6565b6001905092915050565b6107a86116be565b73ffffffffffffffffffffffffffffffffffffffff166107c6610d52565b73ffffffffffffffffffffffffffffffffffffffff161461081c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610813906131ce565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6000600254905090565b600061085084848461188f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061089b6116be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561091b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091290613260565b60405180910390fd5b610938856109276116be565b858461093391906132af565b6116c6565b60019150509392505050565b60006012905090565b60006109ef61095a6116be565b8484600160006109686116be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109ea91906132e3565b6116c6565b6001905092915050565b610a016116be565b73ffffffffffffffffffffffffffffffffffffffff16610a1f610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c906131ce565b60405180910390fd5b610a7d610944565b600a610a89919061344a565b81610a949190613495565b60098190555050565b600760169054906101000a900460ff1681565b600a5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b066116be565b73ffffffffffffffffffffffffffffffffffffffff16610b24610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b71906131ce565b60405180910390fd5b610b84600061217f565b565b60146020528060005260406000206000915054906101000a900460ff1681565b60108060000154908060010154905082565b6000610bc26116be565b73ffffffffffffffffffffffffffffffffffffffff16610be0610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d906131ce565b60405180910390fd5b600854600a819055506001905090565b61dead81565b610c546116be565b73ffffffffffffffffffffffffffffffffffffffff16610c72610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf906131ce565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610cec610d52565b836040518363ffffffff1660e01b8152600401610d0a9291906134d7565b6020604051808303816000875af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190613515565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d8b90613151565b80601f0160208091040260200160405190810160405280929190818152602001828054610db790613151565b8015610e045780601f10610dd957610100808354040283529160200191610e04565b820191906000526020600020905b815481529060010190602001808311610de757829003601f168201915b5050505050905090565b610e166116be565b73ffffffffffffffffffffffffffffffffffffffff16610e34610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e81906131ce565b60405180910390fd5b610e92610d52565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ed7573d6000803e3d6000fd5b5050565b60008060016000610eea6116be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e906135b4565b60405180910390fd5b610fc4610fb26116be565b858584610fbf91906132af565b6116c6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061100233848461188f565b6001905092915050565b6110146116be565b73ffffffffffffffffffffffffffffffffffffffff16611032610d52565b73ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f906131ce565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111291906135e9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119d91906135e9565b6040518363ffffffff1660e01b81526004016111ba929190613616565b6020604051808303816000875af11580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd91906135e9565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061138d30610ab6565b60008033426040518863ffffffff1660e01b81526004016113b39695949392919061367a565b60606040518083038185885af11580156113d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113f691906136f0565b5050505050565b6114056116be565b73ffffffffffffffffffffffffffffffffffffffff16611423610d52565b73ffffffffffffffffffffffffffffffffffffffff1614611479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611470906131ce565b60405180910390fd5b600760169054906101000a900460ff16156114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c09061378f565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600d81905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115976116be565b73ffffffffffffffffffffffffffffffffffffffff166115b5610d52565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611602906131ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190613821565b60405180910390fd5b6116838161217f565b50565b60128060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c906138b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90613945565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118829190612f16565b60405180910390a3505050565b600081116118d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c9906139d7565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119765750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cb57600760169054906101000a900460ff166119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613a43565b60405180910390fd5b5b6119d3610d52565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603611a1557611a10838383612245565b61217a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611abc5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ad55750600760149054906101000a900460ff16155b15611b3357600a5481611ae784610ab6565b611af191906132e3565b1115611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2990613aaf565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bdb5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c315750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c4a5750600760149054906101000a900460ff16155b15611cfe57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cfd57600a5481611cb184610ab6565b611cbb91906132e3565b1115611cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf390613aaf565b60405180910390fd5b5b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d9f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e1d57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e0657611e018383836124c2565b61217a565b633b9aca0043611e1691906132e3565b600e819055505b6000806000611e2a612cd3565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed05750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611eea5750600e54600d54611ee791906132e3565b43105b9050600760149054906101000a900460ff1680611f505750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611fa45750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fb2576000925061208e565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561200d575080155b156120325760126000015460126001015461202891906132e3565b945084935061208d565b8061207a5760106000015460106001015461204d91906132e3565b9450849350601060405180604001604052908160008201548152602001600182015481525050915061208c565b801561208b57600f549450600f5493505b5b5b5b6064848761209c9190613495565b6120a69190613afe565b9250600760159054906101000a900460ff1680156121125750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156121225761212185836126f1565b5b6121388888858961213391906132af565b612245565b60008311156121745760008511156121735760006064868861215a9190613495565b6121649190613afe565b9050612171893083612245565b505b5b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ab90613ba1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231a90613c33565b60405180910390fd5b61232e8383836128b7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156123b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ab90613cc5565b60405180910390fd5b81816123c091906132af565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461245091906132e3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124b49190612f16565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252890613ba1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259790613c33565b60405180910390fd5b6125ab8383836128b7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461267f91906132e3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126e39190612f16565b60405180910390a350505050565b600760149054906101000a900460ff166128b3576001600760146101000a81548160ff021916908315150217905550600082031561289757600061273430610ab6565b9050600954811061289557600160095411156127505760095490505b600060028461275f9190613495565b90506000818460200151846127749190613495565b61277e9190613afe565b90506000818461278e91906132af565b9050600047905061279e826128bc565b600081476127ac91906132af565b905060008760200151866127c091906132af565b826127cb9190613afe565b905060008860200151826127df9190613495565b905060008111156127f5576127f48682612aff565b5b600080600e544361280691906132af565b119050600081612817576000612834565b8a600001516002856128299190613495565b6128339190613495565b5b9050600081111561288b5761288a81600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612bdf90919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b505050565b6000600267ffffffffffffffff8111156128d9576128d8613ce5565b5b6040519080825280602002602001820160405280156129075781602001602082028036833780820191505090505b509050308160008151811061291f5761291e613d14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ea91906135e9565b816001815181106129fe576129fd613d14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a6530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ac9959493929190613e01565b600060405180830381600087803b158015612ae357600080fd5b505af1158015612af7573d6000803e3d6000fd5b505050505050565b612b2c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612b959695949392919061367a565b60606040518083038185885af1158015612bb3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bd891906136f0565b5050505050565b80471015612c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1990613ea7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612c4890613ef8565b60006040518083038185875af1925050503d8060008114612c85576040519150601f19603f3d011682016040523d82523d6000602084013e612c8a565b606091505b5050905080612cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc590613f7f565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d27578082015181840152602081019050612d0c565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d4f82612ced565b612d598185612cf8565b9350612d69818560208601612d09565b612d7281612d33565b840191505092915050565b60006020820190508181036000830152612d978184612d44565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dcf82612da4565b9050919050565b612ddf81612dc4565b8114612dea57600080fd5b50565b600081359050612dfc81612dd6565b92915050565b6000819050919050565b612e1581612e02565b8114612e2057600080fd5b50565b600081359050612e3281612e0c565b92915050565b60008060408385031215612e4f57612e4e612d9f565b5b6000612e5d85828601612ded565b9250506020612e6e85828601612e23565b9150509250929050565b60008115159050919050565b612e8d81612e78565b82525050565b6000602082019050612ea86000830184612e84565b92915050565b612eb781612e78565b8114612ec257600080fd5b50565b600081359050612ed481612eae565b92915050565b600060208284031215612ef057612eef612d9f565b5b6000612efe84828501612ec5565b91505092915050565b612f1081612e02565b82525050565b6000602082019050612f2b6000830184612f07565b92915050565b600080600060608486031215612f4a57612f49612d9f565b5b6000612f5886828701612ded565b9350506020612f6986828701612ded565b9250506040612f7a86828701612e23565b9150509250925092565b600060ff82169050919050565b612f9a81612f84565b82525050565b6000602082019050612fb56000830184612f91565b92915050565b600060208284031215612fd157612fd0612d9f565b5b6000612fdf84828501612e23565b91505092915050565b600060208284031215612ffe57612ffd612d9f565b5b600061300c84828501612ded565b91505092915050565b600060408201905061302a6000830185612f07565b6130376020830184612f07565b9392505050565b61304781612dc4565b82525050565b6000602082019050613062600083018461303e565b92915050565b6000806040838503121561307f5761307e612d9f565b5b600061308d85828601612ded565b925050602061309e85828601612ded565b9150509250929050565b6000819050919050565b60006130cd6130c86130c384612da4565b6130a8565b612da4565b9050919050565b60006130df826130b2565b9050919050565b60006130f1826130d4565b9050919050565b613101816130e6565b82525050565b600060208201905061311c60008301846130f8565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061316957607f821691505b60208210810361317c5761317b613122565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131b8602083612cf8565b91506131c382613182565b602082019050919050565b600060208201905081810360008301526131e7816131ab565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061324a602883612cf8565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132ba82612e02565b91506132c583612e02565b92508282039050818111156132dd576132dc613280565b5b92915050565b60006132ee82612e02565b91506132f983612e02565b925082820190508082111561331157613310613280565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111561336e5780860481111561334a57613349613280565b5b60018516156133595780820291505b808102905061336785613317565b945061332e565b94509492505050565b6000826133875760019050613443565b816133955760009050613443565b81600181146133ab57600281146133b5576133e4565b6001915050613443565b60ff8411156133c7576133c6613280565b5b8360020a9150848211156133de576133dd613280565b5b50613443565b5060208310610133831016604e8410600b84101617156134195782820a90508381111561341457613413613280565b5b613443565b6134268484846001613324565b9250905081840481111561343d5761343c613280565b5b81810290505b9392505050565b600061345582612e02565b915061346083612f84565b925061348d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613377565b905092915050565b60006134a082612e02565b91506134ab83612e02565b92508282026134b981612e02565b915082820484148315176134d0576134cf613280565b5b5092915050565b60006040820190506134ec600083018561303e565b6134f96020830184612f07565b9392505050565b60008151905061350f81612eae565b92915050565b60006020828403121561352b5761352a612d9f565b5b600061353984828501613500565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061359e602583612cf8565b91506135a982613542565b604082019050919050565b600060208201905081810360008301526135cd81613591565b9050919050565b6000815190506135e381612dd6565b92915050565b6000602082840312156135ff576135fe612d9f565b5b600061360d848285016135d4565b91505092915050565b600060408201905061362b600083018561303e565b613638602083018461303e565b9392505050565b6000819050919050565b600061366461365f61365a8461363f565b6130a8565b612e02565b9050919050565b61367481613649565b82525050565b600060c08201905061368f600083018961303e565b61369c6020830188612f07565b6136a9604083018761366b565b6136b6606083018661366b565b6136c3608083018561303e565b6136d060a0830184612f07565b979650505050505050565b6000815190506136ea81612e0c565b92915050565b60008060006060848603121561370957613708612d9f565b5b6000613717868287016136db565b9350506020613728868287016136db565b9250506040613739868287016136db565b9150509250925092565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613779601a83612cf8565b915061378482613743565b602082019050919050565b600060208201905081810360008301526137a88161376c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061380b602683612cf8565b9150613816826137af565b604082019050919050565b6000602082019050818103600083015261383a816137fe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061389d602483612cf8565b91506138a882613841565b604082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061392f602283612cf8565b915061393a826138d3565b604082019050919050565b6000602082019050818103600083015261395e81613922565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139c1602983612cf8565b91506139cc82613965565b604082019050919050565b600060208201905081810360008301526139f0816139b4565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613a2d601383612cf8565b9150613a38826139f7565b602082019050919050565b60006020820190508181036000830152613a5c81613a20565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b6000613a99602083612cf8565b9150613aa482613a63565b602082019050919050565b60006020820190508181036000830152613ac881613a8c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0982612e02565b9150613b1483612e02565b925082613b2457613b23613acf565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b8b602583612cf8565b9150613b9682613b2f565b604082019050919050565b60006020820190508181036000830152613bba81613b7e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c1d602383612cf8565b9150613c2882613bc1565b604082019050919050565b60006020820190508181036000830152613c4c81613c10565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613caf602683612cf8565b9150613cba82613c53565b604082019050919050565b60006020820190508181036000830152613cde81613ca2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d7881612dc4565b82525050565b6000613d8a8383613d6f565b60208301905092915050565b6000602082019050919050565b6000613dae82613d43565b613db88185613d4e565b9350613dc383613d5f565b8060005b83811015613df4578151613ddb8882613d7e565b9750613de683613d96565b925050600181019050613dc7565b5085935050505092915050565b600060a082019050613e166000830188612f07565b613e23602083018761366b565b8181036040830152613e358186613da3565b9050613e44606083018561303e565b613e516080830184612f07565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613e91601d83612cf8565b9150613e9c82613e5b565b602082019050919050565b60006020820190508181036000830152613ec081613e84565b9050919050565b600081905092915050565b50565b6000613ee2600083613ec7565b9150613eed82613ed2565b600082019050919050565b6000613f0382613ed5565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613f69603a83612cf8565b9150613f7482613f0d565b604082019050919050565b60006020820190508181036000830152613f9881613f5c565b905091905056fea264697066735822122000c6cc2f6245c11a376ee48fc14ae5343543bbe8e8e044754dbcb39c3e55239164736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063751039fc116100f7578063a8aa1b3111610095578063dd62ed3e11610064578063dd62ed3e14610633578063f2fde38b14610670578063f66895a314610699578063f887ea40146106c5576101cd565b8063a8aa1b31146105aa578063a9059cbb146105d5578063b97cfd7714610612578063c9567bf91461061c576101cd565b80638da5cb5b116100d15780638da5cb5b146104ee57806395d89b41146105195780639e252f0014610544578063a457c2d71461056d576101cd565b8063751039fc1461046f57806385141a771461049a5780638cd4426d146104c5576101cd565b806342b6fa111161016457806370a082311161013e57806370a08231146103b2578063715018a6146103ef578063725c99a914610406578063728f8eea14610443576101cd565b806342b6fa11146103335780634ada218b1461035c57806366a88d9614610387576101cd565b806318160ddd116101a057806318160ddd1461026357806323b872dd1461028e578063313ce567146102cb57806339509351146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd5780631340538f1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106f0565b6040516101f49190612d7d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612e38565b610782565b6040516102319190612e93565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190612eda565b6107a0565b005b34801561026f57600080fd5b50610278610839565b6040516102859190612f16565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190612f31565b610843565b6040516102c29190612e93565b60405180910390f35b3480156102d757600080fd5b506102e0610944565b6040516102ed9190612fa0565b60405180910390f35b34801561030257600080fd5b5061031d60048036038101906103189190612e38565b61094d565b60405161032a9190612e93565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612fbb565b6109f9565b005b34801561036857600080fd5b50610371610a9d565b60405161037e9190612e93565b60405180910390f35b34801561039357600080fd5b5061039c610ab0565b6040516103a99190612f16565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612fe8565b610ab6565b6040516103e69190612f16565b60405180910390f35b3480156103fb57600080fd5b50610404610afe565b005b34801561041257600080fd5b5061042d60048036038101906104289190612fe8565b610b86565b60405161043a9190612e93565b60405180910390f35b34801561044f57600080fd5b50610458610ba6565b604051610466929190613015565b60405180910390f35b34801561047b57600080fd5b50610484610bb8565b6040516104919190612e93565b60405180910390f35b3480156104a657600080fd5b506104af610c46565b6040516104bc919061304d565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e79190612e38565b610c4c565b005b3480156104fa57600080fd5b50610503610d52565b604051610510919061304d565b60405180910390f35b34801561052557600080fd5b5061052e610d7c565b60405161053b9190612d7d565b60405180910390f35b34801561055057600080fd5b5061056b60048036038101906105669190612fbb565b610e0e565b005b34801561057957600080fd5b50610594600480360381019061058f9190612e38565b610edb565b6040516105a19190612e93565b60405180910390f35b3480156105b657600080fd5b506105bf610fcf565b6040516105cc919061304d565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f79190612e38565b610ff5565b6040516106099190612e93565b60405180910390f35b61061a61100c565b005b34801561062857600080fd5b506106316113fd565b005b34801561063f57600080fd5b5061065a60048036038101906106559190613068565b611508565b6040516106679190612f16565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190612fe8565b61158f565b005b3480156106a557600080fd5b506106ae611686565b6040516106bc929190613015565b60405180910390f35b3480156106d157600080fd5b506106da611698565b6040516106e79190613107565b60405180910390f35b6060600380546106ff90613151565b80601f016020809104026020016040519081016040528092919081815260200182805461072b90613151565b80156107785780601f1061074d57610100808354040283529160200191610778565b820191906000526020600020905b81548152906001019060200180831161075b57829003601f168201915b5050505050905090565b600061079661078f6116be565b84846116c6565b6001905092915050565b6107a86116be565b73ffffffffffffffffffffffffffffffffffffffff166107c6610d52565b73ffffffffffffffffffffffffffffffffffffffff161461081c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610813906131ce565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6000600254905090565b600061085084848461188f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061089b6116be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561091b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091290613260565b60405180910390fd5b610938856109276116be565b858461093391906132af565b6116c6565b60019150509392505050565b60006012905090565b60006109ef61095a6116be565b8484600160006109686116be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109ea91906132e3565b6116c6565b6001905092915050565b610a016116be565b73ffffffffffffffffffffffffffffffffffffffff16610a1f610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c906131ce565b60405180910390fd5b610a7d610944565b600a610a89919061344a565b81610a949190613495565b60098190555050565b600760169054906101000a900460ff1681565b600a5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b066116be565b73ffffffffffffffffffffffffffffffffffffffff16610b24610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b71906131ce565b60405180910390fd5b610b84600061217f565b565b60146020528060005260406000206000915054906101000a900460ff1681565b60108060000154908060010154905082565b6000610bc26116be565b73ffffffffffffffffffffffffffffffffffffffff16610be0610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610c36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2d906131ce565b60405180910390fd5b600854600a819055506001905090565b61dead81565b610c546116be565b73ffffffffffffffffffffffffffffffffffffffff16610c72610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf906131ce565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610cec610d52565b836040518363ffffffff1660e01b8152600401610d0a9291906134d7565b6020604051808303816000875af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190613515565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d8b90613151565b80601f0160208091040260200160405190810160405280929190818152602001828054610db790613151565b8015610e045780601f10610dd957610100808354040283529160200191610e04565b820191906000526020600020905b815481529060010190602001808311610de757829003601f168201915b5050505050905090565b610e166116be565b73ffffffffffffffffffffffffffffffffffffffff16610e34610d52565b73ffffffffffffffffffffffffffffffffffffffff1614610e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e81906131ce565b60405180910390fd5b610e92610d52565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ed7573d6000803e3d6000fd5b5050565b60008060016000610eea6116be565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e906135b4565b60405180910390fd5b610fc4610fb26116be565b858584610fbf91906132af565b6116c6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061100233848461188f565b6001905092915050565b6110146116be565b73ffffffffffffffffffffffffffffffffffffffff16611032610d52565b73ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f906131ce565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111291906135e9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119d91906135e9565b6040518363ffffffff1660e01b81526004016111ba929190613616565b6020604051808303816000875af11580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fd91906135e9565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061138d30610ab6565b60008033426040518863ffffffff1660e01b81526004016113b39695949392919061367a565b60606040518083038185885af11580156113d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113f691906136f0565b5050505050565b6114056116be565b73ffffffffffffffffffffffffffffffffffffffff16611423610d52565b73ffffffffffffffffffffffffffffffffffffffff1614611479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611470906131ce565b60405180910390fd5b600760169054906101000a900460ff16156114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c09061378f565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600d81905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6115976116be565b73ffffffffffffffffffffffffffffffffffffffff166115b5610d52565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611602906131ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190613821565b60405180910390fd5b6116838161217f565b50565b60128060000154908060010154905082565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c906138b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90613945565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118829190612f16565b60405180910390a3505050565b600081116118d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c9906139d7565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119765750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119cb57600760169054906101000a900460ff166119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613a43565b60405180910390fd5b5b6119d3610d52565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603611a1557611a10838383612245565b61217a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611abc5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ad55750600760149054906101000a900460ff16155b15611b3357600a5481611ae784610ab6565b611af191906132e3565b1115611b32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2990613aaf565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bdb5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c315750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c4a5750600760149054906101000a900460ff16155b15611cfe57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611cfd57600a5481611cb184610ab6565b611cbb91906132e3565b1115611cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf390613aaf565b60405180910390fd5b5b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d9f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e1d57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e0657611e018383836124c2565b61217a565b633b9aca0043611e1691906132e3565b600e819055505b6000806000611e2a612cd3565b6000601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed05750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611eea5750600e54600d54611ee791906132e3565b43105b9050600760149054906101000a900460ff1680611f505750601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611fa45750601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fb2576000925061208e565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614801561200d575080155b156120325760126000015460126001015461202891906132e3565b945084935061208d565b8061207a5760106000015460106001015461204d91906132e3565b9450849350601060405180604001604052908160008201548152602001600182015481525050915061208c565b801561208b57600f549450600f5493505b5b5b5b6064848761209c9190613495565b6120a69190613afe565b9250600760159054906101000a900460ff1680156121125750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156121225761212185836126f1565b5b6121388888858961213391906132af565b612245565b60008311156121745760008511156121735760006064868861215a9190613495565b6121649190613afe565b9050612171893083612245565b505b5b50505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ab90613ba1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231a90613c33565b60405180910390fd5b61232e8383836128b7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156123b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ab90613cc5565b60405180910390fd5b81816123c091906132af565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461245091906132e3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124b49190612f16565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252890613ba1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259790613c33565b60405180910390fd5b6125ab8383836128b7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461267f91906132e3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126e39190612f16565b60405180910390a350505050565b600760149054906101000a900460ff166128b3576001600760146101000a81548160ff021916908315150217905550600082031561289757600061273430610ab6565b9050600954811061289557600160095411156127505760095490505b600060028461275f9190613495565b90506000818460200151846127749190613495565b61277e9190613afe565b90506000818461278e91906132af565b9050600047905061279e826128bc565b600081476127ac91906132af565b905060008760200151866127c091906132af565b826127cb9190613afe565b905060008860200151826127df9190613495565b905060008111156127f5576127f48682612aff565b5b600080600e544361280691906132af565b119050600081612817576000612834565b8a600001516002856128299190613495565b6128339190613495565b5b9050600081111561288b5761288a81600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612bdf90919063ffffffff16565b5b5050505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b505050565b6000600267ffffffffffffffff8111156128d9576128d8613ce5565b5b6040519080825280602002602001820160405280156129075781602001602082028036833780820191505090505b509050308160008151811061291f5761291e613d14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ea91906135e9565b816001815181106129fe576129fd613d14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a6530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ac9959493929190613e01565b600060405180830381600087803b158015612ae357600080fd5b505af1158015612af7573d6000803e3d6000fd5b505050505050565b612b2c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116c6565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612b959695949392919061367a565b60606040518083038185885af1158015612bb3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bd891906136f0565b5050505050565b80471015612c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1990613ea7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612c4890613ef8565b60006040518083038185875af1925050503d8060008114612c85576040519150601f19603f3d011682016040523d82523d6000602084013e612c8a565b606091505b5050905080612cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc590613f7f565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d27578082015181840152602081019050612d0c565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d4f82612ced565b612d598185612cf8565b9350612d69818560208601612d09565b612d7281612d33565b840191505092915050565b60006020820190508181036000830152612d978184612d44565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dcf82612da4565b9050919050565b612ddf81612dc4565b8114612dea57600080fd5b50565b600081359050612dfc81612dd6565b92915050565b6000819050919050565b612e1581612e02565b8114612e2057600080fd5b50565b600081359050612e3281612e0c565b92915050565b60008060408385031215612e4f57612e4e612d9f565b5b6000612e5d85828601612ded565b9250506020612e6e85828601612e23565b9150509250929050565b60008115159050919050565b612e8d81612e78565b82525050565b6000602082019050612ea86000830184612e84565b92915050565b612eb781612e78565b8114612ec257600080fd5b50565b600081359050612ed481612eae565b92915050565b600060208284031215612ef057612eef612d9f565b5b6000612efe84828501612ec5565b91505092915050565b612f1081612e02565b82525050565b6000602082019050612f2b6000830184612f07565b92915050565b600080600060608486031215612f4a57612f49612d9f565b5b6000612f5886828701612ded565b9350506020612f6986828701612ded565b9250506040612f7a86828701612e23565b9150509250925092565b600060ff82169050919050565b612f9a81612f84565b82525050565b6000602082019050612fb56000830184612f91565b92915050565b600060208284031215612fd157612fd0612d9f565b5b6000612fdf84828501612e23565b91505092915050565b600060208284031215612ffe57612ffd612d9f565b5b600061300c84828501612ded565b91505092915050565b600060408201905061302a6000830185612f07565b6130376020830184612f07565b9392505050565b61304781612dc4565b82525050565b6000602082019050613062600083018461303e565b92915050565b6000806040838503121561307f5761307e612d9f565b5b600061308d85828601612ded565b925050602061309e85828601612ded565b9150509250929050565b6000819050919050565b60006130cd6130c86130c384612da4565b6130a8565b612da4565b9050919050565b60006130df826130b2565b9050919050565b60006130f1826130d4565b9050919050565b613101816130e6565b82525050565b600060208201905061311c60008301846130f8565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061316957607f821691505b60208210810361317c5761317b613122565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131b8602083612cf8565b91506131c382613182565b602082019050919050565b600060208201905081810360008301526131e7816131ab565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061324a602883612cf8565b9150613255826131ee565b604082019050919050565b600060208201905081810360008301526132798161323d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132ba82612e02565b91506132c583612e02565b92508282039050818111156132dd576132dc613280565b5b92915050565b60006132ee82612e02565b91506132f983612e02565b925082820190508082111561331157613310613280565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111561336e5780860481111561334a57613349613280565b5b60018516156133595780820291505b808102905061336785613317565b945061332e565b94509492505050565b6000826133875760019050613443565b816133955760009050613443565b81600181146133ab57600281146133b5576133e4565b6001915050613443565b60ff8411156133c7576133c6613280565b5b8360020a9150848211156133de576133dd613280565b5b50613443565b5060208310610133831016604e8410600b84101617156134195782820a90508381111561341457613413613280565b5b613443565b6134268484846001613324565b9250905081840481111561343d5761343c613280565b5b81810290505b9392505050565b600061345582612e02565b915061346083612f84565b925061348d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613377565b905092915050565b60006134a082612e02565b91506134ab83612e02565b92508282026134b981612e02565b915082820484148315176134d0576134cf613280565b5b5092915050565b60006040820190506134ec600083018561303e565b6134f96020830184612f07565b9392505050565b60008151905061350f81612eae565b92915050565b60006020828403121561352b5761352a612d9f565b5b600061353984828501613500565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061359e602583612cf8565b91506135a982613542565b604082019050919050565b600060208201905081810360008301526135cd81613591565b9050919050565b6000815190506135e381612dd6565b92915050565b6000602082840312156135ff576135fe612d9f565b5b600061360d848285016135d4565b91505092915050565b600060408201905061362b600083018561303e565b613638602083018461303e565b9392505050565b6000819050919050565b600061366461365f61365a8461363f565b6130a8565b612e02565b9050919050565b61367481613649565b82525050565b600060c08201905061368f600083018961303e565b61369c6020830188612f07565b6136a9604083018761366b565b6136b6606083018661366b565b6136c3608083018561303e565b6136d060a0830184612f07565b979650505050505050565b6000815190506136ea81612e0c565b92915050565b60008060006060848603121561370957613708612d9f565b5b6000613717868287016136db565b9350506020613728868287016136db565b9250506040613739868287016136db565b9150509250925092565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613779601a83612cf8565b915061378482613743565b602082019050919050565b600060208201905081810360008301526137a88161376c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061380b602683612cf8565b9150613816826137af565b604082019050919050565b6000602082019050818103600083015261383a816137fe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061389d602483612cf8565b91506138a882613841565b604082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061392f602283612cf8565b915061393a826138d3565b604082019050919050565b6000602082019050818103600083015261395e81613922565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139c1602983612cf8565b91506139cc82613965565b604082019050919050565b600060208201905081810360008301526139f0816139b4565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613a2d601383612cf8565b9150613a38826139f7565b602082019050919050565b60006020820190508181036000830152613a5c81613a20565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c65744c696d6974600082015250565b6000613a99602083612cf8565b9150613aa482613a63565b602082019050919050565b60006020820190508181036000830152613ac881613a8c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0982612e02565b9150613b1483612e02565b925082613b2457613b23613acf565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b8b602583612cf8565b9150613b9682613b2f565b604082019050919050565b60006020820190508181036000830152613bba81613b7e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c1d602383612cf8565b9150613c2882613bc1565b604082019050919050565b60006020820190508181036000830152613c4c81613c10565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613caf602683612cf8565b9150613cba82613c53565b604082019050919050565b60006020820190508181036000830152613cde81613ca2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d7881612dc4565b82525050565b6000613d8a8383613d6f565b60208301905092915050565b6000602082019050919050565b6000613dae82613d43565b613db88185613d4e565b9350613dc383613d5f565b8060005b83811015613df4578151613ddb8882613d7e565b9750613de683613d96565b925050600181019050613dc7565b5085935050505092915050565b600060a082019050613e166000830188612f07565b613e23602083018761366b565b8181036040830152613e358186613da3565b9050613e44606083018561303e565b613e516080830184612f07565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613e91601d83612cf8565b9150613e9c82613e5b565b602082019050919050565b60006020820190508181036000830152613ec081613e84565b9050919050565b600081905092915050565b50565b6000613ee2600083613ec7565b9150613eed82613ed2565b600082019050919050565b6000613f0382613ed5565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613f69603a83612cf8565b9150613f7482613f0d565b604082019050919050565b60006020820190508181036000830152613f9881613f5c565b905091905056fea264697066735822122000c6cc2f6245c11a376ee48fc14ae5343543bbe8e8e044754dbcb39c3e55239164736f6c63430008130033

Deployed Bytecode Sourcemap

9384:10095:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2762:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10968:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15849:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3101:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11137:448;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2994:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11593:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17521:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9613:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9796:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3223:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8047:94;;;;;;;;;;;;;:::i;:::-;;10408:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10324:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;17755:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10151:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18516:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7824:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2876:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18396:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11849:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9495:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12267:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18657:536;;;:::i;:::-;;19199:222;;;;;;;;;;;;;:::i;:::-;;3594:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8149:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10363:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9467:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2762:100;2816:13;2849:5;2842:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2762:100;:::o;10968:161::-;11043:4;11060:39;11069:12;:10;:12::i;:::-;11083:7;11092:6;11060:8;:39::i;:::-;11117:4;11110:11;;10968:161;;;;:::o;15849:152::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15988:5:::1;15967:18;;:26;;;;;;;;;;;;;;;;;;15849:152:::0;:::o;3101:108::-;3162:7;3189:12;;3182:19;;3101:108;:::o;11137:448::-;11269:4;11286:36;11296:6;11304:9;11315:6;11286:9;:36::i;:::-;11335:24;11362:11;:19;11374:6;11362:19;;;;;;;;;;;;;;;:33;11382:12;:10;:12::i;:::-;11362:33;;;;;;;;;;;;;;;;11335:60;;11434:6;11414:16;:26;;11406:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11496:57;11505:6;11513:12;:10;:12::i;:::-;11546:6;11527:16;:25;;;;:::i;:::-;11496:8;:57::i;:::-;11573:4;11566:11;;;11137:448;;;;;:::o;2994:93::-;3052:5;3077:2;3070:9;;2994:93;:::o;11593:248::-;11709:4;11731:80;11740:12;:10;:12::i;:::-;11754:7;11800:10;11763:11;:25;11775:12;:10;:12::i;:::-;11763:25;;;;;;;;;;;;;;;:34;11789:7;11763:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;11731:8;:80::i;:::-;11829:4;11822:11;;11593:248;;;;:::o;17521:177::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17680:10:::1;:8;:10::i;:::-;17676:2;:14;;;;:::i;:::-;17663:10;:27;;;;:::i;:::-;17637:23;:53;;;;17521:177:::0;:::o;9613:34::-;;;;;;;;;;;;;:::o;9796:54::-;;;;:::o;3223:127::-;3297:7;3324:9;:18;3334:7;3324:18;;;;;;;;;;;;;;;;3317:25;;3223:127;;;:::o;8047:94::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8112:21:::1;8130:1;8112:9;:21::i;:::-;8047:94::o:0;10408:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10324:32::-;;;;;;;;;;;;;;:::o;17755:127::-;17807:4;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17840:12:::1;;17823:14;:29;;;;17870:4;17863:11;;17755:127:::0;:::o;10151:79::-;10188:42;10151:79;:::o;18516:135::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18608:8:::1;18601:25;;;18627:7;:5;:7::i;:::-;18636:6;18601:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18516:135:::0;;:::o;7824:87::-;7870:7;7897:6;;;;;;;;;;;7890:13;;7824:87;:::o;2876:104::-;2932:13;2965:7;2958:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2876:104;:::o;18396:112::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18472:7:::1;:5;:7::i;:::-;18464:25;;:36;18490:9;18464:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18396:112:::0;:::o;11849:410::-;11970:4;11992:24;12019:11;:25;12031:12;:10;:12::i;:::-;12019:25;;;;;;;;;;;;;;;:34;12045:7;12019:34;;;;;;;;;;;;;;;;11992:61;;12092:15;12072:16;:35;;12064:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12160:67;12169:12;:10;:12::i;:::-;12183:7;12211:15;12192:16;:34;;;;:::i;:::-;12160:8;:67::i;:::-;12247:4;12240:11;;;11849:410;;;;:::o;9495:19::-;;;;;;;;;;;;;:::o;12267:165::-;12345:4;12362:40;12372:10;12384:9;12395:6;12362:9;:40::i;:::-;12420:4;12413:11;;12267:165;;;;:::o;18657:536::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18715:15:::1;18741:42;18715:69;;18840:13;18865:7;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18856:38;;;18903:4;18910:7;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18856:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18840:85;;18947:7;18938:6;;:16;;;;;;;;;;;;;;;;;;18972:5;18965:4;;:12;;;;;;;;;;;;;;;;;;19044:17;18998:11;:26;19018:4;18998:26;;;;;;;;;;;;;;;:43;19033:6;;;;;;;;;;;18998:43;;;;;;;;;;;;;;;:63;;;;19074:6;;;;;;;;;;;:22;;;19104:9;19123:4;19129:24;19147:4;19129:9;:24::i;:::-;19154:1;19156::::0;19158:10:::1;19169:15;19074:111;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18702:491;;18657:536::o:0;19199:222::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19261:14:::1;;;;;;;;;;;19260:15;19252:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19334:4;19317:14;;:21;;;;;;;;;;;;;;;;;;19370:4;19349:18;;:25;;;;;;;;;;;;;;;;;;19401:12;19385:13;:28;;;;19199:222::o:0;3594:201::-;3728:7;3760:11;:18;3772:5;3760:18;;;;;;;;;;;;;;;:27;3779:7;3760:27;;;;;;;;;;;;;;;;3753:34;;3594:201;;;;:::o;8149:192::-;7970:12;:10;:12::i;:::-;7959:23;;:7;:5;:7::i;:::-;:23;;;7951:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8258:1:::1;8238:22;;:8;:22;;::::0;8230:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8314:19;8324:8;8314:9;:19::i;:::-;8149:192:::0;:::o;10363:36::-;;;;;;;;;;;;;;:::o;9467:21::-;;;;;;;;;;;;;:::o;847:98::-;900:7;927:10;920:17;;847:98;:::o;6718:380::-;6871:1;6854:19;;:5;:19;;;6846:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6952:1;6933:21;;:7;:21;;;6925:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7036:6;7006:11;:18;7018:5;7006:18;;;;;;;;;;;;;;;:27;7025:7;7006:27;;;;;;;;;;;;;;;:36;;;;7074:7;7058:32;;7067:5;7058:32;;;7083:6;7058:32;;;;;;:::i;:::-;;;;;;;;6718:380;;;:::o;12440:2863::-;12590:1;12581:6;:10;12573:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12655:10;:18;12666:6;12655:18;;;;;;;;;;;;;;;;;;;;;;;;;12654:19;:45;;;;;12678:10;:21;12689:9;12678:21;;;;;;;;;;;;;;;;;;;;;;;;;12677:22;12654:45;12650:124;;;12724:14;;;;;;;;;;;12716:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12650:124;12803:7;:5;:7::i;:::-;12790:20;;:9;:20;;;12786:116;;12827:42;12843:6;12851:9;12862:6;12827:15;:42::i;:::-;12884:7;;12786:116;12928:4;;;;;;;;;;;12918:14;;:6;:14;;;:40;;;;;12937:10;:21;12948:9;12937:21;;;;;;;;;;;;;;;;;;;;;;;;;12936:22;12918:40;:60;;;;;12963:15;;;;;;;;;;;12962:16;12918:60;12914:216;;;13036:14;;13026:6;13003:20;13013:9;13003;:20::i;:::-;:29;;;;:::i;:::-;:47;;12995:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;12914:216;13156:4;;;;;;;;;;;13146:14;;:6;:14;;;;:40;;;;;13165:10;:21;13176:9;13165:21;;;;;;;;;;;;;;;;;;;;;;;;;13164:22;13146:40;:63;;;;;13191:10;:18;13202:6;13191:18;;;;;;;;;;;;;;;;;;;;;;;;;13190:19;13146:63;:83;;;;;13214:15;;;;;;;;;;;13213:16;13146:83;13142:317;;;13276:4;;;;;;;;;;;13263:17;;:9;:17;;;13259:189;;13342:14;;13332:6;13309:20;13319:9;13309;:20::i;:::-;:29;;;;:::i;:::-;:47;;13301:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;13259:189;13142:317;13475:10;:18;13486:6;13475:18;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;13497:10;:21;13508:9;13497:21;;;;;;;;;;;;;;;;;;;;;;;;;13475:43;13471:271;;;13538:10;:18;13549:6;13538:18;;;;;;;;;;;;;;;;;;;;;;;;;13535:196;;;13577:42;13592:6;13600:9;13612:6;13577:14;:42::i;:::-;13638:7;;13535:196;13712:3;13697:12;:18;;;;:::i;:::-;13686:8;:29;;;;13471:271;13754:15;13780:14;13805:11;13827:25;;:::i;:::-;13865:17;13886:10;:18;13897:6;13886:18;;;;;;;;;;;;;;;;;;;;;;;;;13885:19;:58;;;;;13922:10;:21;13933:9;13922:21;;;;;;;;;;;;;;;;;;;;;;;;;13921:22;13885:58;:114;;;;;13991:8;;13975:13;;:24;;;;:::i;:::-;13960:12;:39;13885:114;13865:134;;14087:15;;;;;;;;;;;:37;;;;14106:10;:18;14117:6;14106:18;;;;;;;;;;;;;;;;;;;;;;;;;14087:37;:62;;;;14128:10;:21;14139:9;14128:21;;;;;;;;;;;;;;;;;;;;;;;;;14087:62;14083:636;;;14184:1;14178:7;;14083:636;;;14254:4;;;;;;;;;;;14241:17;;:9;:17;;;:34;;;;;14263:12;14262:13;14241:34;14237:482;;;14358:9;:19;;;14319:9;:19;;;:58;;;;:::i;:::-;14292:85;;14401:7;14392:16;;14237:482;;;14431:12;14426:293;;14522:5;:15;;;14487:5;:15;;;:50;;;;:::i;:::-;14460:77;;14562:7;14553:16;;14599:5;14584:20;;;;;;;;;;;;;;;;;;;;;;;;;;;14426:293;;;14626:12;14622:97;;;14665:9;;14655:19;;14698:9;;14689:18;;14622:97;14426:293;14237:482;14083:636;14757:3;14747:6;14738;:15;;;;:::i;:::-;14737:23;;;;:::i;:::-;14731:29;;14874:18;;;;;;;;;;;:36;;;;;14906:4;;;;;;;;;;;14896:14;;:6;:14;;;;14874:36;14870:76;;;14912:34;14924:7;14933:12;14912:11;:34::i;:::-;14870:76;14988:48;15004:6;15012:9;15032:3;15023:6;:12;;;;:::i;:::-;14988:15;:48::i;:::-;15057:1;15051:3;:7;15047:249;;;15133:1;15123:7;:11;15119:164;;;15155:17;15196:3;15185:7;15176:6;:16;;;;:::i;:::-;15175:24;;;;:::i;:::-;15155:44;;15218:49;15234:6;15250:4;15257:9;15218:15;:49::i;:::-;15136:147;15119:164;15047:249;12562:2741;;;;;12440:2863;;;;:::o;8349:173::-;8405:16;8424:6;;;;;;;;;;;8405:25;;8450:8;8441:6;;:17;;;;;;;;;;;;;;;;;;8505:8;8474:40;;8495:8;8474:40;;;;;;;;;;;;8394:128;8349:173;:::o;5699:638::-;5857:1;5839:20;;:6;:20;;;5831:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5941:1;5920:23;;:9;:23;;;5912:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5996:47;6017:6;6025:9;6036:6;5996:20;:47::i;:::-;6056:21;6080:9;:17;6090:6;6080:17;;;;;;;;;;;;;;;;6056:41;;6133:6;6116:13;:23;;6108:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6229:6;6213:13;:22;;;;:::i;:::-;6193:9;:17;6203:6;6193:17;;;;;;;;;;;;;;;:42;;;;6270:6;6246:9;:20;6256:9;6246:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6311:9;6294:35;;6303:6;6294:35;;;6322:6;6294:35;;;;;;:::i;:::-;;;;;;;;5820:517;5699:638;;;:::o;3986:549::-;4143:1;4125:20;;:6;:20;;;4117:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4227:1;4206:23;;:9;:23;;;4198:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4282:47;4303:6;4311:9;4322:6;4282:20;:47::i;:::-;4348:21;4372:9;:17;4382:6;4372:17;;;;;;;;;;;;;;;;4348:41;;4420:13;4400:9;:17;4410:6;4400:17;;;;;;;;;;;;;;;:33;;;;4468:6;4444:9;:20;4454:9;4444:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4509:9;4492:35;;4501:6;4492:35;;;4520:6;4492:35;;;;;;:::i;:::-;;;;;;;;4106:429;3986:549;;;:::o;16007:1506::-;10496:15;;;;;;;;;;;10491:125;;10546:4;10528:15;;:22;;;;;;;;;;;;;;;;;;16111:1:::1;16100:7;:12:::0;16097:49;16128:7:::1;16097:49;16158:23;16184:24;16202:4;16184:9;:24::i;:::-;16158:50;;16242:23;;16223:15;:42;16219:1287;;16312:1;16286:23;;:27;16282:109;;;16352:23;;16334:41;;16282:109;16462:19;16494:1;16484:7;:11;;;;:::i;:::-;16462:33;;16510:32;16604:11;16564:9;:19;;;16546:15;:37;;;;:::i;:::-;16545:70;;;;:::i;:::-;16510:105;;16630:14;16665:24;16647:15;:42;;;;:::i;:::-;16630:59;;16706:22;16731:21;16706:46;;16769:24;16786:6;16769:16;:24::i;:::-;16810:20;16857:14;16833:21;:38;;;;:::i;:::-;16810:61;;16886:19;16938:9;:19;;;16924:11;:33;;;;:::i;:::-;16908:12;:50;;;;:::i;:::-;16886:72;;16973:29;17019:9;:19;;;17005:11;:33;;;;:::i;:::-;16973:65;;17083:1;17059:21;:25;17055:161;;;17139:61;17152:24;17178:21;17139:12;:61::i;:::-;17055:161;17232:15;17276:1:::0;17265:8:::1;;17250:12;:23;;;;:::i;:::-;:27;17232:45;;17294:20;17317:10;:54;;17370:1;17317:54;;;17348:9;:19;;;17344:1;17330:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17317:54;17294:77;;17405:1;17390:12;:16;17386:107;;;17427:50;17464:12;17435:17;;;;;;;;;;;17427:36;;;;:50;;;;:::i;:::-;17386:107;16267:1239;;;;;;;;;16219:1287;16087:1426;10565:1;10599:5:::0;10581:15;;:23;;;;;;;;;;;;;;;;;;10491:125;16007:1506;;:::o;7112:125::-;;;;:::o;15313:526::-;15431:21;15469:1;15455:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15431:40;;15500:4;15482;15487:1;15482:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15526:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15516:4;15521:1;15516:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15552:53;15569:4;15584:6;;;;;;;;;;;15593:11;15552:8;:53::i;:::-;15644:6;;;;;;;;;;;:57;;;15716:11;15742:1;15758:4;15785;15805:15;15644:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15368:471;15313:526;:::o;17888:500::-;18036:53;18053:4;18068:6;;;;;;;;;;;18077:11;18036:8;:53::i;:::-;18132:6;;;;;;;;;;;:22;;;18163:9;18197:4;18217:11;18243:1;18286;10188:42;18354:15;18132:248;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17888:500;;:::o;7267:319::-;7382:6;7357:21;:31;;7349:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7436:12;7454:9;:14;;7477:6;7454:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7435:54;;;7508:7;7500:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7338:248;7267:319;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:323::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3938:1;3963:50;4005:7;3996:6;3985:9;3981:22;3963:50;:::i;:::-;3953:60;;3909:114;3707:323;;;;:::o;4036:118::-;4123:24;4141:5;4123:24;:::i;:::-;4118:3;4111:37;4036:118;;:::o;4160:222::-;4253:4;4291:2;4280:9;4276:18;4268:26;;4304:71;4372:1;4361:9;4357:17;4348:6;4304:71;:::i;:::-;4160:222;;;;:::o;4388:619::-;4465:6;4473;4481;4530:2;4518:9;4509:7;4505:23;4501:32;4498:119;;;4536:79;;:::i;:::-;4498:119;4656:1;4681:53;4726:7;4717:6;4706:9;4702:22;4681:53;:::i;:::-;4671:63;;4627:117;4783:2;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4754:118;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;4388:619;;;;;:::o;5013:86::-;5048:7;5088:4;5081:5;5077:16;5066:27;;5013:86;;;:::o;5105:112::-;5188:22;5204:5;5188:22;:::i;:::-;5183:3;5176:35;5105:112;;:::o;5223:214::-;5312:4;5350:2;5339:9;5335:18;5327:26;;5363:67;5427:1;5416:9;5412:17;5403:6;5363:67;:::i;:::-;5223:214;;;;:::o;5443:329::-;5502:6;5551:2;5539:9;5530:7;5526:23;5522:32;5519:119;;;5557:79;;:::i;:::-;5519:119;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5443:329;;;;:::o;5778:::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:332::-;6234:4;6272:2;6261:9;6257:18;6249:26;;6285:71;6353:1;6342:9;6338:17;6329:6;6285:71;:::i;:::-;6366:72;6434:2;6423:9;6419:18;6410:6;6366:72;:::i;:::-;6113:332;;;;;:::o;6451:118::-;6538:24;6556:5;6538:24;:::i;:::-;6533:3;6526:37;6451:118;;:::o;6575:222::-;6668:4;6706:2;6695:9;6691:18;6683:26;;6719:71;6787:1;6776:9;6772:17;6763:6;6719:71;:::i;:::-;6575:222;;;;:::o;6803:474::-;6871:6;6879;6928:2;6916:9;6907:7;6903:23;6899:32;6896:119;;;6934:79;;:::i;:::-;6896:119;7054:1;7079:53;7124:7;7115:6;7104:9;7100:22;7079:53;:::i;:::-;7069:63;;7025:117;7181:2;7207:53;7252:7;7243:6;7232:9;7228:22;7207:53;:::i;:::-;7197:63;;7152:118;6803:474;;;;;:::o;7283:60::-;7311:3;7332:5;7325:12;;7283:60;;;:::o;7349:142::-;7399:9;7432:53;7450:34;7459:24;7477:5;7459:24;:::i;:::-;7450:34;:::i;:::-;7432:53;:::i;:::-;7419:66;;7349:142;;;:::o;7497:126::-;7547:9;7580:37;7611:5;7580:37;:::i;:::-;7567:50;;7497:126;;;:::o;7629:141::-;7694:9;7727:37;7758:5;7727:37;:::i;:::-;7714:50;;7629:141;;;:::o;7776:161::-;7878:52;7924:5;7878:52;:::i;:::-;7873:3;7866:65;7776:161;;:::o;7943:252::-;8051:4;8089:2;8078:9;8074:18;8066:26;;8102:86;8185:1;8174:9;8170:17;8161:6;8102:86;:::i;:::-;7943:252;;;;:::o;8201:180::-;8249:77;8246:1;8239:88;8346:4;8343:1;8336:15;8370:4;8367:1;8360:15;8387:320;8431:6;8468:1;8462:4;8458:12;8448:22;;8515:1;8509:4;8505:12;8536:18;8526:81;;8592:4;8584:6;8580:17;8570:27;;8526:81;8654:2;8646:6;8643:14;8623:18;8620:38;8617:84;;8673:18;;:::i;:::-;8617:84;8438:269;8387:320;;;:::o;8713:182::-;8853:34;8849:1;8841:6;8837:14;8830:58;8713:182;:::o;8901:366::-;9043:3;9064:67;9128:2;9123:3;9064:67;:::i;:::-;9057:74;;9140:93;9229:3;9140:93;:::i;:::-;9258:2;9253:3;9249:12;9242:19;;8901:366;;;:::o;9273:419::-;9439:4;9477:2;9466:9;9462:18;9454:26;;9526:9;9520:4;9516:20;9512:1;9501:9;9497:17;9490:47;9554:131;9680:4;9554:131;:::i;:::-;9546:139;;9273:419;;;:::o;9698:227::-;9838:34;9834:1;9826:6;9822:14;9815:58;9907:10;9902:2;9894:6;9890:15;9883:35;9698:227;:::o;9931:366::-;10073:3;10094:67;10158:2;10153:3;10094:67;:::i;:::-;10087:74;;10170:93;10259:3;10170:93;:::i;:::-;10288:2;10283:3;10279:12;10272:19;;9931:366;;;:::o;10303:419::-;10469:4;10507:2;10496:9;10492:18;10484:26;;10556:9;10550:4;10546:20;10542:1;10531:9;10527:17;10520:47;10584:131;10710:4;10584:131;:::i;:::-;10576:139;;10303:419;;;:::o;10728:180::-;10776:77;10773:1;10766:88;10873:4;10870:1;10863:15;10897:4;10894:1;10887:15;10914:194;10954:4;10974:20;10992:1;10974:20;:::i;:::-;10969:25;;11008:20;11026:1;11008:20;:::i;:::-;11003:25;;11052:1;11049;11045:9;11037:17;;11076:1;11070:4;11067:11;11064:37;;;11081:18;;:::i;:::-;11064:37;10914:194;;;;:::o;11114:191::-;11154:3;11173:20;11191:1;11173:20;:::i;:::-;11168:25;;11207:20;11225:1;11207:20;:::i;:::-;11202:25;;11250:1;11247;11243:9;11236:16;;11271:3;11268:1;11265:10;11262:36;;;11278:18;;:::i;:::-;11262:36;11114:191;;;;:::o;11311:102::-;11353:8;11400:5;11397:1;11393:13;11372:34;;11311:102;;;:::o;11419:848::-;11480:5;11487:4;11511:6;11502:15;;11535:5;11526:14;;11549:712;11570:1;11560:8;11557:15;11549:712;;;11665:4;11660:3;11656:14;11650:4;11647:24;11644:50;;;11674:18;;:::i;:::-;11644:50;11724:1;11714:8;11710:16;11707:451;;;12139:4;12132:5;12128:16;12119:25;;11707:451;12189:4;12183;12179:15;12171:23;;12219:32;12242:8;12219:32;:::i;:::-;12207:44;;11549:712;;;11419:848;;;;;;;:::o;12273:1073::-;12327:5;12518:8;12508:40;;12539:1;12530:10;;12541:5;;12508:40;12567:4;12557:36;;12584:1;12575:10;;12586:5;;12557:36;12653:4;12701:1;12696:27;;;;12737:1;12732:191;;;;12646:277;;12696:27;12714:1;12705:10;;12716:5;;;12732:191;12777:3;12767:8;12764:17;12761:43;;;12784:18;;:::i;:::-;12761:43;12833:8;12830:1;12826:16;12817:25;;12868:3;12861:5;12858:14;12855:40;;;12875:18;;:::i;:::-;12855:40;12908:5;;;12646:277;;13032:2;13022:8;13019:16;13013:3;13007:4;13004:13;13000:36;12982:2;12972:8;12969:16;12964:2;12958:4;12955:12;12951:35;12935:111;12932:246;;;13088:8;13082:4;13078:19;13069:28;;13123:3;13116:5;13113:14;13110:40;;;13130:18;;:::i;:::-;13110:40;13163:5;;12932:246;13203:42;13241:3;13231:8;13225:4;13222:1;13203:42;:::i;:::-;13188:57;;;;13277:4;13272:3;13268:14;13261:5;13258:25;13255:51;;;13286:18;;:::i;:::-;13255:51;13335:4;13328:5;13324:16;13315:25;;12273:1073;;;;;;:::o;13352:281::-;13410:5;13434:23;13452:4;13434:23;:::i;:::-;13426:31;;13478:25;13494:8;13478:25;:::i;:::-;13466:37;;13522:104;13559:66;13549:8;13543:4;13522:104;:::i;:::-;13513:113;;13352:281;;;;:::o;13639:410::-;13679:7;13702:20;13720:1;13702:20;:::i;:::-;13697:25;;13736:20;13754:1;13736:20;:::i;:::-;13731:25;;13791:1;13788;13784:9;13813:30;13831:11;13813:30;:::i;:::-;13802:41;;13992:1;13983:7;13979:15;13976:1;13973:22;13953:1;13946:9;13926:83;13903:139;;14022:18;;:::i;:::-;13903:139;13687:362;13639:410;;;;:::o;14055:332::-;14176:4;14214:2;14203:9;14199:18;14191:26;;14227:71;14295:1;14284:9;14280:17;14271:6;14227:71;:::i;:::-;14308:72;14376:2;14365:9;14361:18;14352:6;14308:72;:::i;:::-;14055:332;;;;;:::o;14393:137::-;14447:5;14478:6;14472:13;14463:22;;14494:30;14518:5;14494:30;:::i;:::-;14393:137;;;;:::o;14536:345::-;14603:6;14652:2;14640:9;14631:7;14627:23;14623:32;14620:119;;;14658:79;;:::i;:::-;14620:119;14778:1;14803:61;14856:7;14847:6;14836:9;14832:22;14803:61;:::i;:::-;14793:71;;14749:125;14536:345;;;;:::o;14887:224::-;15027:34;15023:1;15015:6;15011:14;15004:58;15096:7;15091:2;15083:6;15079:15;15072:32;14887:224;:::o;15117:366::-;15259:3;15280:67;15344:2;15339:3;15280:67;:::i;:::-;15273:74;;15356:93;15445:3;15356:93;:::i;:::-;15474:2;15469:3;15465:12;15458:19;;15117:366;;;:::o;15489:419::-;15655:4;15693:2;15682:9;15678:18;15670:26;;15742:9;15736:4;15732:20;15728:1;15717:9;15713:17;15706:47;15770:131;15896:4;15770:131;:::i;:::-;15762:139;;15489:419;;;:::o;15914:143::-;15971:5;16002:6;15996:13;15987:22;;16018:33;16045:5;16018:33;:::i;:::-;15914:143;;;;:::o;16063:351::-;16133:6;16182:2;16170:9;16161:7;16157:23;16153:32;16150:119;;;16188:79;;:::i;:::-;16150:119;16308:1;16333:64;16389:7;16380:6;16369:9;16365:22;16333:64;:::i;:::-;16323:74;;16279:128;16063:351;;;;:::o;16420:332::-;16541:4;16579:2;16568:9;16564:18;16556:26;;16592:71;16660:1;16649:9;16645:17;16636:6;16592:71;:::i;:::-;16673:72;16741:2;16730:9;16726:18;16717:6;16673:72;:::i;:::-;16420:332;;;;;:::o;16758:85::-;16803:7;16832:5;16821:16;;16758:85;;;:::o;16849:158::-;16907:9;16940:61;16958:42;16967:32;16993:5;16967:32;:::i;:::-;16958:42;:::i;:::-;16940:61;:::i;:::-;16927:74;;16849:158;;;:::o;17013:147::-;17108:45;17147:5;17108:45;:::i;:::-;17103:3;17096:58;17013:147;;:::o;17166:807::-;17415:4;17453:3;17442:9;17438:19;17430:27;;17467:71;17535:1;17524:9;17520:17;17511:6;17467:71;:::i;:::-;17548:72;17616:2;17605:9;17601:18;17592:6;17548:72;:::i;:::-;17630:80;17706:2;17695:9;17691:18;17682:6;17630:80;:::i;:::-;17720;17796:2;17785:9;17781:18;17772:6;17720:80;:::i;:::-;17810:73;17878:3;17867:9;17863:19;17854:6;17810:73;:::i;:::-;17893;17961:3;17950:9;17946:19;17937:6;17893:73;:::i;:::-;17166:807;;;;;;;;;:::o;17979:143::-;18036:5;18067:6;18061:13;18052:22;;18083:33;18110:5;18083:33;:::i;:::-;17979:143;;;;:::o;18128:663::-;18216:6;18224;18232;18281:2;18269:9;18260:7;18256:23;18252:32;18249:119;;;18287:79;;:::i;:::-;18249:119;18407:1;18432:64;18488:7;18479:6;18468:9;18464:22;18432:64;:::i;:::-;18422:74;;18378:128;18545:2;18571:64;18627:7;18618:6;18607:9;18603:22;18571:64;:::i;:::-;18561:74;;18516:129;18684:2;18710:64;18766:7;18757:6;18746:9;18742:22;18710:64;:::i;:::-;18700:74;;18655:129;18128:663;;;;;:::o;18797:176::-;18937:28;18933:1;18925:6;18921:14;18914:52;18797:176;:::o;18979:366::-;19121:3;19142:67;19206:2;19201:3;19142:67;:::i;:::-;19135:74;;19218:93;19307:3;19218:93;:::i;:::-;19336:2;19331:3;19327:12;19320:19;;18979:366;;;:::o;19351:419::-;19517:4;19555:2;19544:9;19540:18;19532:26;;19604:9;19598:4;19594:20;19590:1;19579:9;19575:17;19568:47;19632:131;19758:4;19632:131;:::i;:::-;19624:139;;19351:419;;;:::o;19776:225::-;19916:34;19912:1;19904:6;19900:14;19893:58;19985:8;19980:2;19972:6;19968:15;19961:33;19776:225;:::o;20007:366::-;20149:3;20170:67;20234:2;20229:3;20170:67;:::i;:::-;20163:74;;20246:93;20335:3;20246:93;:::i;:::-;20364:2;20359:3;20355:12;20348:19;;20007:366;;;:::o;20379:419::-;20545:4;20583:2;20572:9;20568:18;20560:26;;20632:9;20626:4;20622:20;20618:1;20607:9;20603:17;20596:47;20660:131;20786:4;20660:131;:::i;:::-;20652:139;;20379:419;;;:::o;20804:223::-;20944:34;20940:1;20932:6;20928:14;20921:58;21013:6;21008:2;21000:6;20996:15;20989:31;20804:223;:::o;21033:366::-;21175:3;21196:67;21260:2;21255:3;21196:67;:::i;:::-;21189:74;;21272:93;21361:3;21272:93;:::i;:::-;21390:2;21385:3;21381:12;21374:19;;21033:366;;;:::o;21405:419::-;21571:4;21609:2;21598:9;21594:18;21586:26;;21658:9;21652:4;21648:20;21644:1;21633:9;21629:17;21622:47;21686:131;21812:4;21686:131;:::i;:::-;21678:139;;21405:419;;;:::o;21830:221::-;21970:34;21966:1;21958:6;21954:14;21947:58;22039:4;22034:2;22026:6;22022:15;22015:29;21830:221;:::o;22057:366::-;22199:3;22220:67;22284:2;22279:3;22220:67;:::i;:::-;22213:74;;22296:93;22385:3;22296:93;:::i;:::-;22414:2;22409:3;22405:12;22398:19;;22057:366;;;:::o;22429:419::-;22595:4;22633:2;22622:9;22618:18;22610:26;;22682:9;22676:4;22672:20;22668:1;22657:9;22653:17;22646:47;22710:131;22836:4;22710:131;:::i;:::-;22702:139;;22429:419;;;:::o;22854:228::-;22994:34;22990:1;22982:6;22978:14;22971:58;23063:11;23058:2;23050:6;23046:15;23039:36;22854:228;:::o;23088:366::-;23230:3;23251:67;23315:2;23310:3;23251:67;:::i;:::-;23244:74;;23327:93;23416:3;23327:93;:::i;:::-;23445:2;23440:3;23436:12;23429:19;;23088:366;;;:::o;23460:419::-;23626:4;23664:2;23653:9;23649:18;23641:26;;23713:9;23707:4;23703:20;23699:1;23688:9;23684:17;23677:47;23741:131;23867:4;23741:131;:::i;:::-;23733:139;;23460:419;;;:::o;23885:169::-;24025:21;24021:1;24013:6;24009:14;24002:45;23885:169;:::o;24060:366::-;24202:3;24223:67;24287:2;24282:3;24223:67;:::i;:::-;24216:74;;24299:93;24388:3;24299:93;:::i;:::-;24417:2;24412:3;24408:12;24401:19;;24060:366;;;:::o;24432:419::-;24598:4;24636:2;24625:9;24621:18;24613:26;;24685:9;24679:4;24675:20;24671:1;24660:9;24656:17;24649:47;24713:131;24839:4;24713:131;:::i;:::-;24705:139;;24432:419;;;:::o;24857:182::-;24997:34;24993:1;24985:6;24981:14;24974:58;24857:182;:::o;25045:366::-;25187:3;25208:67;25272:2;25267:3;25208:67;:::i;:::-;25201:74;;25284:93;25373:3;25284:93;:::i;:::-;25402:2;25397:3;25393:12;25386:19;;25045:366;;;:::o;25417:419::-;25583:4;25621:2;25610:9;25606:18;25598:26;;25670:9;25664:4;25660:20;25656:1;25645:9;25641:17;25634:47;25698:131;25824:4;25698:131;:::i;:::-;25690:139;;25417:419;;;:::o;25842:180::-;25890:77;25887:1;25880:88;25987:4;25984:1;25977:15;26011:4;26008:1;26001:15;26028:185;26068:1;26085:20;26103:1;26085:20;:::i;:::-;26080:25;;26119:20;26137:1;26119:20;:::i;:::-;26114:25;;26158:1;26148:35;;26163:18;;:::i;:::-;26148:35;26205:1;26202;26198:9;26193:14;;26028:185;;;;:::o;26219:224::-;26359:34;26355:1;26347:6;26343:14;26336:58;26428:7;26423:2;26415:6;26411:15;26404:32;26219:224;:::o;26449:366::-;26591:3;26612:67;26676:2;26671:3;26612:67;:::i;:::-;26605:74;;26688:93;26777:3;26688:93;:::i;:::-;26806:2;26801:3;26797:12;26790:19;;26449:366;;;:::o;26821:419::-;26987:4;27025:2;27014:9;27010:18;27002:26;;27074:9;27068:4;27064:20;27060:1;27049:9;27045:17;27038:47;27102:131;27228:4;27102:131;:::i;:::-;27094:139;;26821:419;;;:::o;27246:222::-;27386:34;27382:1;27374:6;27370:14;27363:58;27455:5;27450:2;27442:6;27438:15;27431:30;27246:222;:::o;27474:366::-;27616:3;27637:67;27701:2;27696:3;27637:67;:::i;:::-;27630:74;;27713:93;27802:3;27713:93;:::i;:::-;27831:2;27826:3;27822:12;27815:19;;27474:366;;;:::o;27846:419::-;28012:4;28050:2;28039:9;28035:18;28027:26;;28099:9;28093:4;28089:20;28085:1;28074:9;28070:17;28063:47;28127:131;28253:4;28127:131;:::i;:::-;28119:139;;27846:419;;;:::o;28271:225::-;28411:34;28407:1;28399:6;28395:14;28388:58;28480:8;28475:2;28467:6;28463:15;28456:33;28271:225;:::o;28502:366::-;28644:3;28665:67;28729:2;28724:3;28665:67;:::i;:::-;28658:74;;28741:93;28830:3;28741:93;:::i;:::-;28859:2;28854:3;28850:12;28843:19;;28502:366;;;:::o;28874:419::-;29040:4;29078:2;29067:9;29063:18;29055:26;;29127:9;29121:4;29117:20;29113:1;29102:9;29098:17;29091:47;29155:131;29281:4;29155:131;:::i;:::-;29147:139;;28874:419;;;:::o;29299:180::-;29347:77;29344:1;29337:88;29444:4;29441:1;29434:15;29468:4;29465:1;29458:15;29485:180;29533:77;29530:1;29523:88;29630:4;29627:1;29620:15;29654:4;29651:1;29644:15;29671:114;29738:6;29772:5;29766:12;29756:22;;29671:114;;;:::o;29791:184::-;29890:11;29924:6;29919:3;29912:19;29964:4;29959:3;29955:14;29940:29;;29791:184;;;;:::o;29981:132::-;30048:4;30071:3;30063:11;;30101:4;30096:3;30092:14;30084:22;;29981:132;;;:::o;30119:108::-;30196:24;30214:5;30196:24;:::i;:::-;30191:3;30184:37;30119:108;;:::o;30233:179::-;30302:10;30323:46;30365:3;30357:6;30323:46;:::i;:::-;30401:4;30396:3;30392:14;30378:28;;30233:179;;;;:::o;30418:113::-;30488:4;30520;30515:3;30511:14;30503:22;;30418:113;;;:::o;30567:732::-;30686:3;30715:54;30763:5;30715:54;:::i;:::-;30785:86;30864:6;30859:3;30785:86;:::i;:::-;30778:93;;30895:56;30945:5;30895:56;:::i;:::-;30974:7;31005:1;30990:284;31015:6;31012:1;31009:13;30990:284;;;31091:6;31085:13;31118:63;31177:3;31162:13;31118:63;:::i;:::-;31111:70;;31204:60;31257:6;31204:60;:::i;:::-;31194:70;;31050:224;31037:1;31034;31030:9;31025:14;;30990:284;;;30994:14;31290:3;31283:10;;30691:608;;;30567:732;;;;:::o;31305:831::-;31568:4;31606:3;31595:9;31591:19;31583:27;;31620:71;31688:1;31677:9;31673:17;31664:6;31620:71;:::i;:::-;31701:80;31777:2;31766:9;31762:18;31753:6;31701:80;:::i;:::-;31828:9;31822:4;31818:20;31813:2;31802:9;31798:18;31791:48;31856:108;31959:4;31950:6;31856:108;:::i;:::-;31848:116;;31974:72;32042:2;32031:9;32027:18;32018:6;31974:72;:::i;:::-;32056:73;32124:3;32113:9;32109:19;32100:6;32056:73;:::i;:::-;31305:831;;;;;;;;:::o;32142:179::-;32282:31;32278:1;32270:6;32266:14;32259:55;32142:179;:::o;32327:366::-;32469:3;32490:67;32554:2;32549:3;32490:67;:::i;:::-;32483:74;;32566:93;32655:3;32566:93;:::i;:::-;32684:2;32679:3;32675:12;32668:19;;32327:366;;;:::o;32699:419::-;32865:4;32903:2;32892:9;32888:18;32880:26;;32952:9;32946:4;32942:20;32938:1;32927:9;32923:17;32916:47;32980:131;33106:4;32980:131;:::i;:::-;32972:139;;32699:419;;;:::o;33124:147::-;33225:11;33262:3;33247:18;;33124:147;;;;:::o;33277:114::-;;:::o;33397:398::-;33556:3;33577:83;33658:1;33653:3;33577:83;:::i;:::-;33570:90;;33669:93;33758:3;33669:93;:::i;:::-;33787:1;33782:3;33778:11;33771:18;;33397:398;;;:::o;33801:379::-;33985:3;34007:147;34150:3;34007:147;:::i;:::-;34000:154;;34171:3;34164:10;;33801:379;;;:::o;34186:245::-;34326:34;34322:1;34314:6;34310:14;34303:58;34395:28;34390:2;34382:6;34378:15;34371:53;34186:245;:::o;34437:366::-;34579:3;34600:67;34664:2;34659:3;34600:67;:::i;:::-;34593:74;;34676:93;34765:3;34676:93;:::i;:::-;34794:2;34789:3;34785:12;34778:19;;34437:366;;;:::o;34809:419::-;34975:4;35013:2;35002:9;34998:18;34990:26;;35062:9;35056:4;35052:20;35048:1;35037:9;35033:17;35026:47;35090:131;35216:4;35090:131;:::i;:::-;35082:139;;34809:419;;;:::o

Swarm Source

ipfs://00c6cc2f6245c11a376ee48fc14ae5343543bbe8e8e044754dbcb39c3e552391

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.