ETH Price: $3,318.64 (+2.12%)
Gas: 3 Gwei

Contract

0x6D5d01f42e87b8523fd203c0E1277431B313BAc6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve202976912024-07-13 12:49:2314 days ago1720874963IN
0x6D5d01f4...1B313BAc6
0 ETH0.000116772.47546705
Approve200582752024-06-10 1:53:5947 days ago1717984439IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582742024-06-10 1:53:4747 days ago1717984427IN
0x6D5d01f4...1B313BAc6
0 ETH0.000422189
Approve200582732024-06-10 1:53:3547 days ago1717984415IN
0x6D5d01f4...1B313BAc6
0 ETH0.000422189
Approve200582722024-06-10 1:53:2347 days ago1717984403IN
0x6D5d01f4...1B313BAc6
0 ETH0.000422189
Approve200582712024-06-10 1:53:1147 days ago1717984391IN
0x6D5d01f4...1B313BAc6
0 ETH0.000422189
Approve200582702024-06-10 1:52:5947 days ago1717984379IN
0x6D5d01f4...1B313BAc6
0 ETH0.000422189
Approve200582692024-06-10 1:52:4747 days ago1717984367IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582682024-06-10 1:52:3547 days ago1717984355IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582672024-06-10 1:52:2347 days ago1717984343IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582662024-06-10 1:52:1147 days ago1717984331IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582652024-06-10 1:51:5947 days ago1717984319IN
0x6D5d01f4...1B313BAc6
0 ETH0.000422189
Approve200582132024-06-10 1:41:3547 days ago1717983695IN
0x6D5d01f4...1B313BAc6
0 ETH0.000328367
Approve200582122024-06-10 1:41:2347 days ago1717983683IN
0x6D5d01f4...1B313BAc6
0 ETH0.000328367
Approve200582112024-06-10 1:41:1147 days ago1717983671IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582102024-06-10 1:40:5947 days ago1717983659IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582092024-06-10 1:40:4747 days ago1717983647IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582082024-06-10 1:40:3547 days ago1717983635IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582072024-06-10 1:40:2347 days ago1717983623IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200582052024-06-10 1:39:5947 days ago1717983599IN
0x6D5d01f4...1B313BAc6
0 ETH0.000375278
Approve200354332024-06-06 21:20:5950 days ago1717708859IN
0x6D5d01f4...1B313BAc6
0 ETH0.0007197315.25734496
Approve200349382024-06-06 19:41:2350 days ago1717702883IN
0x6D5d01f4...1B313BAc6
0 ETH0.0015288432.40923369
Approve200349342024-06-06 19:40:3550 days ago1717702835IN
0x6D5d01f4...1B313BAc6
0 ETH0.0014851431.48298042
Approve200333572024-06-06 14:23:2350 days ago1717683803IN
0x6D5d01f4...1B313BAc6
0 ETH0.0007992226.85484317
Transfer200333532024-06-06 14:22:3550 days ago1717683755IN
0x6D5d01f4...1B313BAc6
0 ETH0.0019140923.76369418
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
203659782024-07-23 1:34:234 days ago1721698463
0x6D5d01f4...1B313BAc6
0.00112677 ETH
203659782024-07-23 1:34:234 days ago1721698463
0x6D5d01f4...1B313BAc6
0.00112677 ETH
202976932024-07-13 12:49:4714 days ago1720874987
0x6D5d01f4...1B313BAc6
0.00037195 ETH
202976932024-07-13 12:49:4714 days ago1720874987
0x6D5d01f4...1B313BAc6
0.00037195 ETH
202757762024-07-10 11:23:3517 days ago1720610615
0x6D5d01f4...1B313BAc6
0.0017305 ETH
202757762024-07-10 11:23:3517 days ago1720610615
0x6D5d01f4...1B313BAc6
0.0017305 ETH
202654782024-07-09 0:52:4718 days ago1720486367
0x6D5d01f4...1B313BAc6
0.00131388 ETH
202654782024-07-09 0:52:4718 days ago1720486367
0x6D5d01f4...1B313BAc6
0.00131388 ETH
200583002024-06-10 1:58:5947 days ago1717984739
0x6D5d01f4...1B313BAc6
0.00132351 ETH
200583002024-06-10 1:58:5947 days ago1717984739
0x6D5d01f4...1B313BAc6
0.00132351 ETH
200583002024-06-10 1:58:5947 days ago1717984739
0x6D5d01f4...1B313BAc6
0.00134343 ETH
200583002024-06-10 1:58:5947 days ago1717984739
0x6D5d01f4...1B313BAc6
0.00134343 ETH
200582992024-06-10 1:58:4747 days ago1717984727
0x6D5d01f4...1B313BAc6
0.00136381 ETH
200582992024-06-10 1:58:4747 days ago1717984727
0x6D5d01f4...1B313BAc6
0.00136381 ETH
200582992024-06-10 1:58:4747 days ago1717984727
0x6D5d01f4...1B313BAc6
0.00122239 ETH
200582992024-06-10 1:58:4747 days ago1717984727
0x6D5d01f4...1B313BAc6
0.00122239 ETH
200582762024-06-10 1:54:1147 days ago1717984451
0x6D5d01f4...1B313BAc6
0.00147924 ETH
200582762024-06-10 1:54:1147 days ago1717984451
0x6D5d01f4...1B313BAc6
0.00147924 ETH
200582752024-06-10 1:53:5947 days ago1717984439
0x6D5d01f4...1B313BAc6
0.00150956 ETH
200582752024-06-10 1:53:5947 days ago1717984439
0x6D5d01f4...1B313BAc6
0.00150956 ETH
200582742024-06-10 1:53:4747 days ago1717984427
0x6D5d01f4...1B313BAc6
0.0015349 ETH
200582742024-06-10 1:53:4747 days ago1717984427
0x6D5d01f4...1B313BAc6
0.0015349 ETH
200582722024-06-10 1:53:2347 days ago1717984403
0x6D5d01f4...1B313BAc6
0.00156089 ETH
200582722024-06-10 1:53:2347 days ago1717984403
0x6D5d01f4...1B313BAc6
0.00156089 ETH
200582712024-06-10 1:53:1147 days ago1717984391
0x6D5d01f4...1B313BAc6
0.00158754 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FixedAI

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-05
*/

/**

Fixed AI is an AI-powered bot for secure and seamless cryptocurrency trading and mixing. It aggregates top services, allowing users to trade multiple coins across different blockchains via Telegram, without registration or KYC. 

                                           &&&&&&&&&&&&&&&&&&&&&&&&             
                                    %        *&&&&&&&&&&&&&&&&&&&&&             
                                  &&&&&        *&&&&&&&&&&&&&&&&&&&             
                               &&&&&&&&      &&&&&&&&&&&&&&&&&&&&&&             
               &&            &&&&&&&      *&&&&&&&&&&&&&&&&&&&&&&&&             
              &&&&&       &&&&&&&&      &&&&&&&&&&&&&&&&&&&&&&&&&&&             
              &&&&&&&&  &&&&&&&      *&&&&&&&&&&&&&&&&&&&&&&&&&&&&&             
              &&&&&&&&&&&&&&&      &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&             
              &&&&&&&&&&&&      *&&&&&&&&&&&&&&&&&&&&&&&&&%    &&&&             
              &&&&&   &&          (&&&&&&&&&&&&&&&&&&&&&         ,&             
              &&&&&                  &&&&&&&&&&&&&&&&%                          
              &&&&&                    (&&&&&&&&&&&                             
              &&&&&                       &&&&&&%                               
              &&&&&                 &&&     (&                                  
              &&&&&               &&&&&&&&                                      
              &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&                                    
              &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&                                  
                                                                                
https://fixedai.io   
https://t.me/fixedaieth
https://x.com/FixedAIeth                                 

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract FixedAI is Context, IERC20, Ownable {
    string private constant _name = "Fixed AI";
    string private constant _symbol = "FIXED";

    using SafeMath for uint256;

    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _marketingAddress = payable(0xCe5069b2E28ceAd77791E57d0B83e286c9851982);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 100000 * 10**9;
    uint256 public _maxWalletSize = 100000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

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

    function setTrading() public onlyOwner {
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052662386f26fc100005f196100189190610612565b5f19610024919061066f565b6006555f60085560056009555f600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573ce5069b2e28cead77791e57d0b83e286c985198260125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6014806101000a81548160ff0219169083151502179055505f601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550655af3107a4000601555655af3107a400060165564e8d4a5100060175534801561011b575f80fd5b505f61012b6105ae60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f6101db6105ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102dd9190610700565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610342573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103669190610700565b6040518363ffffffff1660e01b815260040161038392919061073a565b6020604051808303815f875af115801561039f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c39190610700565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f6104156105b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061053d6105ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516105a09190610770565b60405180910390a350610789565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61061c826105dc565b9150610627836105dc565b925082610637576106366105e5565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610679826105dc565b9150610684836105dc565b925082820390508181111561069c5761069b610642565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106cf826106a6565b9050919050565b6106df816106c5565b81146106e9575f80fd5b50565b5f815190506106fa816106d6565b92915050565b5f60208284031215610715576107146106a2565b5b5f610722848285016106ec565b91505092915050565b610734816106c5565b82525050565b5f60408201905061074d5f83018561072b565b61075a602083018461072b565b9392505050565b61076a816105dc565b82525050565b5f6020820190506107835f830184610761565b92915050565b613adb806107965f395ff3fe6080604052600436106101cf575f3560e01c80637c519ffb116100f6578063a2a957bb11610094578063c492f04611610063578063c492f0461461062e578063dd62ed3e14610656578063ea1644d514610692578063f2fde38b146106ba576101d6565b8063a2a957bb14610578578063a9059cbb146105a0578063bfd79284146105dc578063c3c8cd8014610618576101d6565b80638da5cb5b116100d05780638da5cb5b146104d25780638f9a55c0146104fc57806395d89b411461052657806398a5c31514610550576101d6565b80637c519ffb146104565780637d1db4a51461046c5780637f2feddc14610496576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612b90565b6106e2565b005b34801561020d575f80fd5b50610216610801565b6040516102239190612c37565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612c8a565b61083e565b60405161025f9190612ce2565b60405180910390f35b348015610273575f80fd5b5061027c61085b565b6040516102899190612d56565b60405180910390f35b34801561029d575f80fd5b506102a6610880565b6040516102b39190612d7e565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612d97565b61088e565b6040516102ef9190612ce2565b60405180910390f35b348015610303575f80fd5b5061030c610962565b6040516103199190612d7e565b60405180910390f35b34801561032d575f80fd5b50610336610968565b6040516103439190612e02565b60405180910390f35b348015610357575f80fd5b50610360610970565b60405161036d9190612e2a565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612e43565b610995565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190612e98565b610a80565b005b3480156103d1575f80fd5b506103da610b31565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190612e43565b610ba0565b60405161040f9190612d7e565b60405180910390f35b348015610423575f80fd5b5061042c610bee565b005b348015610439575f80fd5b50610454600480360381019061044f9190612ec3565b610d3c565b005b348015610461575f80fd5b5061046a610dda565b005b348015610477575f80fd5b50610480610e8a565b60405161048d9190612d7e565b60405180910390f35b3480156104a1575f80fd5b506104bc60048036038101906104b79190612e43565b610e90565b6040516104c99190612d7e565b60405180910390f35b3480156104dd575f80fd5b506104e6610ea5565b6040516104f39190612e2a565b60405180910390f35b348015610507575f80fd5b50610510610ecc565b60405161051d9190612d7e565b60405180910390f35b348015610531575f80fd5b5061053a610ed2565b6040516105479190612c37565b60405180910390f35b34801561055b575f80fd5b5061057660048036038101906105719190612ec3565b610f0f565b005b348015610583575f80fd5b5061059e60048036038101906105999190612eee565b610fad565b005b3480156105ab575f80fd5b506105c660048036038101906105c19190612c8a565b611063565b6040516105d39190612ce2565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd9190612e43565b611080565b60405161060f9190612ce2565b60405180910390f35b348015610623575f80fd5b5061062c61109d565b005b348015610639575f80fd5b50610654600480360381019061064f9190612fab565b611114565b005b348015610661575f80fd5b5061067c60048036038101906106779190613008565b611243565b6040516106899190612d7e565b60405180910390f35b34801561069d575f80fd5b506106b860048036038101906106b39190612ec3565b6112c5565b005b3480156106c5575f80fd5b506106e060048036038101906106db9190612e43565b611363565b005b6106ea611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076d90613090565b60405180910390fd5b5f5b81518110156107fd57600160105f848481518110610799576107986130ae565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610778565b5050565b60606040518060400160405280600881526020017f4669786564204149000000000000000000000000000000000000000000000000815250905090565b5f61085161084a611520565b8484611527565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f662386f26fc10000905090565b5f61089a8484846116ea565b610957846108a6611520565b61095285604051806060016040528060288152602001613a7e6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610909611520565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4a9092919063ffffffff16565b611527565b600190509392505050565b60175481565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61099d611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090613090565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a88611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b90613090565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b71611520565b73ffffffffffffffffffffffffffffffffffffffff1614610b90575f80fd5b5f479050610b9d81611fac565b50565b5f610be760025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612014565b9050919050565b610bf6611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7990613090565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d44611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790613090565b60405180910390fd5b8060158190555050565b610de2611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613090565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b60155481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600581526020017f4649584544000000000000000000000000000000000000000000000000000000815250905090565b610f17611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a90613090565b60405180910390fd5b8060178190555050565b610fb5611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103890613090565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f61107661106f611520565b84846116ea565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dd611520565b73ffffffffffffffffffffffffffffffffffffffff16146110fc575f80fd5b5f61110630610ba0565b905061111181612080565b50565b61111c611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90613090565b60405180910390fd5b5f5b8383905081101561123d578160055f8686858181106111cc576111cb6130ae565b5b90506020020160208101906111e19190612e43565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506111aa565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112cd611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090613090565b60405180910390fd5b8060168190555050565b61136b611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90613090565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145c9061314b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158c906131d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa90613267565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116dd9190612d7e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f906132f5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd90613383565b60405180910390fd5b5f8111611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff90613411565b60405180910390fd5b611810610ea5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561187e575061184e610ea5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c575760148054906101000a900460ff1661190b5761189d610ea5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461190a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119019061349f565b60405180910390fd5b5b601554811115611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790613507565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119ee575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2490613595565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ad95760165481611a8e84610ba0565b611a9891906135e0565b10611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613683565b60405180910390fd5b5b5f611ae330610ba0565b90505f60175482101590506015548210611afd5760155491505b808015611b175750601460159054906101000a900460ff16155b8015611b70575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b885750601460169054906101000a900460ff165b8015611bdb575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c2e575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c5457611c3c82612080565b5f4790505f811115611c5257611c5147611fac565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611cf7575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611da8575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611da7575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611db5575f9050611f38565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e5e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e7657600854600c81905550600954600d819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f1f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f3757600a54600c81905550600b54600d819055505b5b611f44848484846122eb565b50505050565b5f838311158290611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f889190612c37565b60405180910390fd5b505f8385611f9f91906136a1565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612010573d5f803e3d5ffd5b5050565b5f60065482111561205a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205190613744565b60405180910390fd5b5f612063612318565b9050612078818461234190919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156120b7576120b66129fa565b5b6040519080825280602002602001820160405280156120e55781602001602082028036833780820191505090505b50905030815f815181106120fc576120fb6130ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121c49190613776565b816001815181106121d8576121d76130ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061223e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611527565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122a0959493929190613891565b5f604051808303815f87803b1580156122b7575f80fd5b505af11580156122c9573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b806122f9576122f861238a565b5b6123048484846123c3565b8061231257612311612583565b5b50505050565b5f805f612323612597565b9150915061233a818361234190919063ffffffff16565b9250505090565b5f61238283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125f0565b905092915050565b5f600c5414801561239c57505f600d54145b6123c157600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f806123d287612651565b95509550955095509550955061242e8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126b190919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506124bf8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fa90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061250981612757565b612513848361280e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125709190612d7e565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f662386f26fc1000090506125c6662386f26fc1000060065461234190919063ffffffff16565b8210156125e357600654662386f26fc100009350935050506125ec565b81819350935050505b9091565b5f8083118290612636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262d9190612c37565b60405180910390fd5b505f83856126449190613916565b9050809150509392505050565b5f805f805f805f805f6126698a600c54600d54612848565b9250925092505f612678612318565b90505f805f6126898e8787876128da565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f6126f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f4a565b905092915050565b5f80828461270891906135e0565b90508381101561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274490613990565b60405180910390fd5b8091505092915050565b5f612760612318565b90505f612776828461295e90919063ffffffff16565b90506127c88160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fa90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612823826006546126b190919063ffffffff16565b60068190555061283e816007546126fa90919063ffffffff16565b6007819055505050565b5f805f806128726064612864888a61295e90919063ffffffff16565b61234190919063ffffffff16565b90505f61289b606461288d888b61295e90919063ffffffff16565b61234190919063ffffffff16565b90505f6128c3826128b5858c6126b190919063ffffffff16565b6126b190919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f806128f1858961295e90919063ffffffff16565b90505f612907868961295e90919063ffffffff16565b90505f61291d878961295e90919063ffffffff16565b90505f6129458261293785876126b190919063ffffffff16565b6126b190919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f80830361296e575f90506129cf565b5f828461297b91906139ae565b905082848261298a9190613916565b146129ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c190613a5f565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a30826129ea565b810181811067ffffffffffffffff82111715612a4f57612a4e6129fa565b5b80604052505050565b5f612a616129d5565b9050612a6d8282612a27565b919050565b5f67ffffffffffffffff821115612a8c57612a8b6129fa565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612aca82612aa1565b9050919050565b612ada81612ac0565b8114612ae4575f80fd5b50565b5f81359050612af581612ad1565b92915050565b5f612b0d612b0884612a72565b612a58565b90508083825260208201905060208402830185811115612b3057612b2f612a9d565b5b835b81811015612b595780612b458882612ae7565b845260208401935050602081019050612b32565b5050509392505050565b5f82601f830112612b7757612b766129e6565b5b8135612b87848260208601612afb565b91505092915050565b5f60208284031215612ba557612ba46129de565b5b5f82013567ffffffffffffffff811115612bc257612bc16129e2565b5b612bce84828501612b63565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612c0982612bd7565b612c138185612be1565b9350612c23818560208601612bf1565b612c2c816129ea565b840191505092915050565b5f6020820190508181035f830152612c4f8184612bff565b905092915050565b5f819050919050565b612c6981612c57565b8114612c73575f80fd5b50565b5f81359050612c8481612c60565b92915050565b5f8060408385031215612ca057612c9f6129de565b5b5f612cad85828601612ae7565b9250506020612cbe85828601612c76565b9150509250929050565b5f8115159050919050565b612cdc81612cc8565b82525050565b5f602082019050612cf55f830184612cd3565b92915050565b5f819050919050565b5f612d1e612d19612d1484612aa1565b612cfb565b612aa1565b9050919050565b5f612d2f82612d04565b9050919050565b5f612d4082612d25565b9050919050565b612d5081612d36565b82525050565b5f602082019050612d695f830184612d47565b92915050565b612d7881612c57565b82525050565b5f602082019050612d915f830184612d6f565b92915050565b5f805f60608486031215612dae57612dad6129de565b5b5f612dbb86828701612ae7565b9350506020612dcc86828701612ae7565b9250506040612ddd86828701612c76565b9150509250925092565b5f60ff82169050919050565b612dfc81612de7565b82525050565b5f602082019050612e155f830184612df3565b92915050565b612e2481612ac0565b82525050565b5f602082019050612e3d5f830184612e1b565b92915050565b5f60208284031215612e5857612e576129de565b5b5f612e6584828501612ae7565b91505092915050565b612e7781612cc8565b8114612e81575f80fd5b50565b5f81359050612e9281612e6e565b92915050565b5f60208284031215612ead57612eac6129de565b5b5f612eba84828501612e84565b91505092915050565b5f60208284031215612ed857612ed76129de565b5b5f612ee584828501612c76565b91505092915050565b5f805f8060808587031215612f0657612f056129de565b5b5f612f1387828801612c76565b9450506020612f2487828801612c76565b9350506040612f3587828801612c76565b9250506060612f4687828801612c76565b91505092959194509250565b5f80fd5b5f8083601f840112612f6b57612f6a6129e6565b5b8235905067ffffffffffffffff811115612f8857612f87612f52565b5b602083019150836020820283011115612fa457612fa3612a9d565b5b9250929050565b5f805f60408486031215612fc257612fc16129de565b5b5f84013567ffffffffffffffff811115612fdf57612fde6129e2565b5b612feb86828701612f56565b93509350506020612ffe86828701612e84565b9150509250925092565b5f806040838503121561301e5761301d6129de565b5b5f61302b85828601612ae7565b925050602061303c85828601612ae7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61307a602083612be1565b915061308582613046565b602082019050919050565b5f6020820190508181035f8301526130a78161306e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613135602683612be1565b9150613140826130db565b604082019050919050565b5f6020820190508181035f83015261316281613129565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131c3602483612be1565b91506131ce82613169565b604082019050919050565b5f6020820190508181035f8301526131f0816131b7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613251602283612be1565b915061325c826131f7565b604082019050919050565b5f6020820190508181035f83015261327e81613245565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132df602583612be1565b91506132ea82613285565b604082019050919050565b5f6020820190508181035f83015261330c816132d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61336d602383612be1565b915061337882613313565b604082019050919050565b5f6020820190508181035f83015261339a81613361565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6133fb602983612be1565b9150613406826133a1565b604082019050919050565b5f6020820190508181035f830152613428816133ef565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613489603f83612be1565b91506134948261342f565b604082019050919050565b5f6020820190508181035f8301526134b68161347d565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6134f1601c83612be1565b91506134fc826134bd565b602082019050919050565b5f6020820190508181035f83015261351e816134e5565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f61357f602383612be1565b915061358a82613525565b604082019050919050565b5f6020820190508181035f8301526135ac81613573565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6135ea82612c57565b91506135f583612c57565b925082820190508082111561360d5761360c6135b3565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f61366d602383612be1565b915061367882613613565b604082019050919050565b5f6020820190508181035f83015261369a81613661565b9050919050565b5f6136ab82612c57565b91506136b683612c57565b92508282039050818111156136ce576136cd6135b3565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f61372e602a83612be1565b9150613739826136d4565b604082019050919050565b5f6020820190508181035f83015261375b81613722565b9050919050565b5f8151905061377081612ad1565b92915050565b5f6020828403121561378b5761378a6129de565b5b5f61379884828501613762565b91505092915050565b5f819050919050565b5f6137c46137bf6137ba846137a1565b612cfb565b612c57565b9050919050565b6137d4816137aa565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61380c81612ac0565b82525050565b5f61381d8383613803565b60208301905092915050565b5f602082019050919050565b5f61383f826137da565b61384981856137e4565b9350613854836137f4565b805f5b8381101561388457815161386b8882613812565b975061387683613829565b925050600181019050613857565b5085935050505092915050565b5f60a0820190506138a45f830188612d6f565b6138b160208301876137cb565b81810360408301526138c38186613835565b90506138d26060830185612e1b565b6138df6080830184612d6f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61392082612c57565b915061392b83612c57565b92508261393b5761393a6138e9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61397a601b83612be1565b915061398582613946565b602082019050919050565b5f6020820190508181035f8301526139a78161396e565b9050919050565b5f6139b882612c57565b91506139c383612c57565b92508282026139d181612c57565b915082820484148315176139e8576139e76135b3565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a49602183612be1565b9150613a54826139ef565b604082019050919050565b5f6020820190508181035f830152613a7681613a3d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209ab7f4c734957da675ce738912df2e41b365d9938198f164ab2ea086683be06264736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101cf575f3560e01c80637c519ffb116100f6578063a2a957bb11610094578063c492f04611610063578063c492f0461461062e578063dd62ed3e14610656578063ea1644d514610692578063f2fde38b146106ba576101d6565b8063a2a957bb14610578578063a9059cbb146105a0578063bfd79284146105dc578063c3c8cd8014610618576101d6565b80638da5cb5b116100d05780638da5cb5b146104d25780638f9a55c0146104fc57806395d89b411461052657806398a5c31514610550576101d6565b80637c519ffb146104565780637d1db4a51461046c5780637f2feddc14610496576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612b90565b6106e2565b005b34801561020d575f80fd5b50610216610801565b6040516102239190612c37565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612c8a565b61083e565b60405161025f9190612ce2565b60405180910390f35b348015610273575f80fd5b5061027c61085b565b6040516102899190612d56565b60405180910390f35b34801561029d575f80fd5b506102a6610880565b6040516102b39190612d7e565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612d97565b61088e565b6040516102ef9190612ce2565b60405180910390f35b348015610303575f80fd5b5061030c610962565b6040516103199190612d7e565b60405180910390f35b34801561032d575f80fd5b50610336610968565b6040516103439190612e02565b60405180910390f35b348015610357575f80fd5b50610360610970565b60405161036d9190612e2a565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612e43565b610995565b005b3480156103a9575f80fd5b506103c460048036038101906103bf9190612e98565b610a80565b005b3480156103d1575f80fd5b506103da610b31565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190612e43565b610ba0565b60405161040f9190612d7e565b60405180910390f35b348015610423575f80fd5b5061042c610bee565b005b348015610439575f80fd5b50610454600480360381019061044f9190612ec3565b610d3c565b005b348015610461575f80fd5b5061046a610dda565b005b348015610477575f80fd5b50610480610e8a565b60405161048d9190612d7e565b60405180910390f35b3480156104a1575f80fd5b506104bc60048036038101906104b79190612e43565b610e90565b6040516104c99190612d7e565b60405180910390f35b3480156104dd575f80fd5b506104e6610ea5565b6040516104f39190612e2a565b60405180910390f35b348015610507575f80fd5b50610510610ecc565b60405161051d9190612d7e565b60405180910390f35b348015610531575f80fd5b5061053a610ed2565b6040516105479190612c37565b60405180910390f35b34801561055b575f80fd5b5061057660048036038101906105719190612ec3565b610f0f565b005b348015610583575f80fd5b5061059e60048036038101906105999190612eee565b610fad565b005b3480156105ab575f80fd5b506105c660048036038101906105c19190612c8a565b611063565b6040516105d39190612ce2565b60405180910390f35b3480156105e7575f80fd5b5061060260048036038101906105fd9190612e43565b611080565b60405161060f9190612ce2565b60405180910390f35b348015610623575f80fd5b5061062c61109d565b005b348015610639575f80fd5b50610654600480360381019061064f9190612fab565b611114565b005b348015610661575f80fd5b5061067c60048036038101906106779190613008565b611243565b6040516106899190612d7e565b60405180910390f35b34801561069d575f80fd5b506106b860048036038101906106b39190612ec3565b6112c5565b005b3480156106c5575f80fd5b506106e060048036038101906106db9190612e43565b611363565b005b6106ea611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076d90613090565b60405180910390fd5b5f5b81518110156107fd57600160105f848481518110610799576107986130ae565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610778565b5050565b60606040518060400160405280600881526020017f4669786564204149000000000000000000000000000000000000000000000000815250905090565b5f61085161084a611520565b8484611527565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f662386f26fc10000905090565b5f61089a8484846116ea565b610957846108a6611520565b61095285604051806060016040528060288152602001613a7e6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610909611520565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4a9092919063ffffffff16565b611527565b600190509392505050565b60175481565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61099d611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090613090565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a88611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b90613090565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b71611520565b73ffffffffffffffffffffffffffffffffffffffff1614610b90575f80fd5b5f479050610b9d81611fac565b50565b5f610be760025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612014565b9050919050565b610bf6611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7990613090565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d44611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790613090565b60405180910390fd5b8060158190555050565b610de2611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6590613090565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b60155481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600581526020017f4649584544000000000000000000000000000000000000000000000000000000815250905090565b610f17611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9a90613090565b60405180910390fd5b8060178190555050565b610fb5611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103890613090565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f61107661106f611520565b84846116ea565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dd611520565b73ffffffffffffffffffffffffffffffffffffffff16146110fc575f80fd5b5f61110630610ba0565b905061111181612080565b50565b61111c611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90613090565b60405180910390fd5b5f5b8383905081101561123d578160055f8686858181106111cc576111cb6130ae565b5b90506020020160208101906111e19190612e43565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506111aa565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112cd611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090613090565b60405180910390fd5b8060168190555050565b61136b611520565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90613090565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145c9061314b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158c906131d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa90613267565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116dd9190612d7e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f906132f5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd90613383565b60405180910390fd5b5f8111611808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ff90613411565b60405180910390fd5b611810610ea5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561187e575061184e610ea5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c575760148054906101000a900460ff1661190b5761189d610ea5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461190a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119019061349f565b60405180910390fd5b5b601554811115611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790613507565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119ee575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2490613595565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ad95760165481611a8e84610ba0565b611a9891906135e0565b10611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613683565b60405180910390fd5b5b5f611ae330610ba0565b90505f60175482101590506015548210611afd5760155491505b808015611b175750601460159054906101000a900460ff16155b8015611b70575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b885750601460169054906101000a900460ff165b8015611bdb575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c2e575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c5457611c3c82612080565b5f4790505f811115611c5257611c5147611fac565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611cf7575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611da8575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611da7575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611db5575f9050611f38565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e5e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e7657600854600c81905550600954600d819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f1f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f3757600a54600c81905550600b54600d819055505b5b611f44848484846122eb565b50505050565b5f838311158290611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f889190612c37565b60405180910390fd5b505f8385611f9f91906136a1565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612010573d5f803e3d5ffd5b5050565b5f60065482111561205a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205190613744565b60405180910390fd5b5f612063612318565b9050612078818461234190919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156120b7576120b66129fa565b5b6040519080825280602002602001820160405280156120e55781602001602082028036833780820191505090505b50905030815f815181106120fc576120fb6130ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121c49190613776565b816001815181106121d8576121d76130ae565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061223e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611527565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122a0959493929190613891565b5f604051808303815f87803b1580156122b7575f80fd5b505af11580156122c9573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b806122f9576122f861238a565b5b6123048484846123c3565b8061231257612311612583565b5b50505050565b5f805f612323612597565b9150915061233a818361234190919063ffffffff16565b9250505090565b5f61238283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125f0565b905092915050565b5f600c5414801561239c57505f600d54145b6123c157600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f806123d287612651565b95509550955095509550955061242e8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126b190919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506124bf8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fa90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061250981612757565b612513848361280e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125709190612d7e565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f662386f26fc1000090506125c6662386f26fc1000060065461234190919063ffffffff16565b8210156125e357600654662386f26fc100009350935050506125ec565b81819350935050505b9091565b5f8083118290612636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262d9190612c37565b60405180910390fd5b505f83856126449190613916565b9050809150509392505050565b5f805f805f805f805f6126698a600c54600d54612848565b9250925092505f612678612318565b90505f805f6126898e8787876128da565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f6126f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f4a565b905092915050565b5f80828461270891906135e0565b90508381101561274d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274490613990565b60405180910390fd5b8091505092915050565b5f612760612318565b90505f612776828461295e90919063ffffffff16565b90506127c88160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126fa90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612823826006546126b190919063ffffffff16565b60068190555061283e816007546126fa90919063ffffffff16565b6007819055505050565b5f805f806128726064612864888a61295e90919063ffffffff16565b61234190919063ffffffff16565b90505f61289b606461288d888b61295e90919063ffffffff16565b61234190919063ffffffff16565b90505f6128c3826128b5858c6126b190919063ffffffff16565b6126b190919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f806128f1858961295e90919063ffffffff16565b90505f612907868961295e90919063ffffffff16565b90505f61291d878961295e90919063ffffffff16565b90505f6129458261293785876126b190919063ffffffff16565b6126b190919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f80830361296e575f90506129cf565b5f828461297b91906139ae565b905082848261298a9190613916565b146129ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c190613a5f565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a30826129ea565b810181811067ffffffffffffffff82111715612a4f57612a4e6129fa565b5b80604052505050565b5f612a616129d5565b9050612a6d8282612a27565b919050565b5f67ffffffffffffffff821115612a8c57612a8b6129fa565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612aca82612aa1565b9050919050565b612ada81612ac0565b8114612ae4575f80fd5b50565b5f81359050612af581612ad1565b92915050565b5f612b0d612b0884612a72565b612a58565b90508083825260208201905060208402830185811115612b3057612b2f612a9d565b5b835b81811015612b595780612b458882612ae7565b845260208401935050602081019050612b32565b5050509392505050565b5f82601f830112612b7757612b766129e6565b5b8135612b87848260208601612afb565b91505092915050565b5f60208284031215612ba557612ba46129de565b5b5f82013567ffffffffffffffff811115612bc257612bc16129e2565b5b612bce84828501612b63565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612c0982612bd7565b612c138185612be1565b9350612c23818560208601612bf1565b612c2c816129ea565b840191505092915050565b5f6020820190508181035f830152612c4f8184612bff565b905092915050565b5f819050919050565b612c6981612c57565b8114612c73575f80fd5b50565b5f81359050612c8481612c60565b92915050565b5f8060408385031215612ca057612c9f6129de565b5b5f612cad85828601612ae7565b9250506020612cbe85828601612c76565b9150509250929050565b5f8115159050919050565b612cdc81612cc8565b82525050565b5f602082019050612cf55f830184612cd3565b92915050565b5f819050919050565b5f612d1e612d19612d1484612aa1565b612cfb565b612aa1565b9050919050565b5f612d2f82612d04565b9050919050565b5f612d4082612d25565b9050919050565b612d5081612d36565b82525050565b5f602082019050612d695f830184612d47565b92915050565b612d7881612c57565b82525050565b5f602082019050612d915f830184612d6f565b92915050565b5f805f60608486031215612dae57612dad6129de565b5b5f612dbb86828701612ae7565b9350506020612dcc86828701612ae7565b9250506040612ddd86828701612c76565b9150509250925092565b5f60ff82169050919050565b612dfc81612de7565b82525050565b5f602082019050612e155f830184612df3565b92915050565b612e2481612ac0565b82525050565b5f602082019050612e3d5f830184612e1b565b92915050565b5f60208284031215612e5857612e576129de565b5b5f612e6584828501612ae7565b91505092915050565b612e7781612cc8565b8114612e81575f80fd5b50565b5f81359050612e9281612e6e565b92915050565b5f60208284031215612ead57612eac6129de565b5b5f612eba84828501612e84565b91505092915050565b5f60208284031215612ed857612ed76129de565b5b5f612ee584828501612c76565b91505092915050565b5f805f8060808587031215612f0657612f056129de565b5b5f612f1387828801612c76565b9450506020612f2487828801612c76565b9350506040612f3587828801612c76565b9250506060612f4687828801612c76565b91505092959194509250565b5f80fd5b5f8083601f840112612f6b57612f6a6129e6565b5b8235905067ffffffffffffffff811115612f8857612f87612f52565b5b602083019150836020820283011115612fa457612fa3612a9d565b5b9250929050565b5f805f60408486031215612fc257612fc16129de565b5b5f84013567ffffffffffffffff811115612fdf57612fde6129e2565b5b612feb86828701612f56565b93509350506020612ffe86828701612e84565b9150509250925092565b5f806040838503121561301e5761301d6129de565b5b5f61302b85828601612ae7565b925050602061303c85828601612ae7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61307a602083612be1565b915061308582613046565b602082019050919050565b5f6020820190508181035f8301526130a78161306e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613135602683612be1565b9150613140826130db565b604082019050919050565b5f6020820190508181035f83015261316281613129565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131c3602483612be1565b91506131ce82613169565b604082019050919050565b5f6020820190508181035f8301526131f0816131b7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613251602283612be1565b915061325c826131f7565b604082019050919050565b5f6020820190508181035f83015261327e81613245565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6132df602583612be1565b91506132ea82613285565b604082019050919050565b5f6020820190508181035f83015261330c816132d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61336d602383612be1565b915061337882613313565b604082019050919050565b5f6020820190508181035f83015261339a81613361565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6133fb602983612be1565b9150613406826133a1565b604082019050919050565b5f6020820190508181035f830152613428816133ef565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613489603f83612be1565b91506134948261342f565b604082019050919050565b5f6020820190508181035f8301526134b68161347d565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6134f1601c83612be1565b91506134fc826134bd565b602082019050919050565b5f6020820190508181035f83015261351e816134e5565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f61357f602383612be1565b915061358a82613525565b604082019050919050565b5f6020820190508181035f8301526135ac81613573565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6135ea82612c57565b91506135f583612c57565b925082820190508082111561360d5761360c6135b3565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f61366d602383612be1565b915061367882613613565b604082019050919050565b5f6020820190508181035f83015261369a81613661565b9050919050565b5f6136ab82612c57565b91506136b683612c57565b92508282039050818111156136ce576136cd6135b3565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f61372e602a83612be1565b9150613739826136d4565b604082019050919050565b5f6020820190508181035f83015261375b81613722565b9050919050565b5f8151905061377081612ad1565b92915050565b5f6020828403121561378b5761378a6129de565b5b5f61379884828501613762565b91505092915050565b5f819050919050565b5f6137c46137bf6137ba846137a1565b612cfb565b612c57565b9050919050565b6137d4816137aa565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61380c81612ac0565b82525050565b5f61381d8383613803565b60208301905092915050565b5f602082019050919050565b5f61383f826137da565b61384981856137e4565b9350613854836137f4565b805f5b8381101561388457815161386b8882613812565b975061387683613829565b925050600181019050613857565b5085935050505092915050565b5f60a0820190506138a45f830188612d6f565b6138b160208301876137cb565b81810360408301526138c38186613835565b90506138d26060830185612e1b565b6138df6080830184612d6f565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61392082612c57565b915061392b83612c57565b92508261393b5761393a6138e9565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61397a601b83612be1565b915061398582613946565b602082019050919050565b5f6020820190508181035f8301526139a78161396e565b9050919050565b5f6139b882612c57565b91506139c383612c57565b92508282026139d181612c57565b915082820484148315176139e8576139e76135b3565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a49602183612be1565b9150613a54826139ef565b604082019050919050565b5f6020820190508181035f830152613a7681613a3d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209ab7f4c734957da675ce738912df2e41b365d9938198f164ab2ea086683be06264736f6c634300081a0033

Deployed Bytecode Sourcemap

5898:13207:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14278:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8209:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9134:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7113:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8486:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9335:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7415:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8395:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7161:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14455:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18487:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14074:196;;;;;;;;;;;;;:::i;:::-;;8589:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3385:148;;;;;;;;;;;;;:::i;:::-;;18627:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13785:76;;;;;;;;;;;;;:::i;:::-;;7311:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6959:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3171:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7362:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8300:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18296:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17953:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8735:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6921:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13869:197;;;;;;;;;;;;;:::i;:::-;;18866:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8942:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18743:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3541:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14278:169;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14354:9:::1;14349:91;14373:5;:12;14369:1;:16;14349:91;;;14424:4;14407;:14;14412:5;14418:1;14412:8;;;;;;;;:::i;:::-;;;;;;;;14407:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14387:3;;;;;;;14349:91;;;;14278:169:::0;:::o;8209:83::-;8246:13;8279:5;;;;;;;;;;;;;;;;;8272:12;;8209:83;:::o;9134:193::-;9236:4;9258:39;9267:12;:10;:12::i;:::-;9281:7;9290:6;9258:8;:39::i;:::-;9315:4;9308:11;;9134:193;;;;:::o;7113:41::-;;;;;;;;;;;;;:::o;8486:95::-;8539:7;6445:16;8559:14;;8486:95;:::o;9335:446::-;9467:4;9484:36;9494:6;9502:9;9513:6;9484:9;:36::i;:::-;9531:220;9554:6;9575:12;:10;:12::i;:::-;9602:138;9658:6;9602:138;;;;;;;;;;;;;;;;;:11;:19;9614:6;9602:19;;;;;;;;;;;;;;;:33;9622:12;:10;:12::i;:::-;9602:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9531:8;:220::i;:::-;9769:4;9762:11;;9335:446;;;;;:::o;7415:49::-;;;;:::o;8395:83::-;8436:5;6119:1;8454:16;;8395:83;:::o;7161:28::-;;;;;;;;;;;;;:::o;14455:92::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14534:5:::1;14519:4;:12;14524:6;14519:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14455:92:::0;:::o;18487:101::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18568:12:::1;18554:11;;:26;;;;;;;;;;;;;;;;;;18487:101:::0;:::o;14074:196::-;14140:17;;;;;;;;;;;14124:33;;:12;:10;:12::i;:::-;:33;;;14116:42;;;;;;14169:26;14198:21;14169:50;;14230:32;14243:18;14230:12;:32::i;:::-;14105:165;14074:196::o;8589:138::-;8655:7;8682:37;8702:7;:16;8710:7;8702:16;;;;;;;;;;;;;;;;8682:19;:37::i;:::-;8675:44;;8589:138;;;:::o;3385:148::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3492:1:::1;3455:40;;3476:6;::::0;::::1;;;;;;;;3455:40;;;;;;;;;;;;3523:1;3506:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3385:148::o:0;18627:108::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18716:11:::1;18701:12;:26;;;;18627:108:::0;:::o;13785:76::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13849:4:::1;13835:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;13785:76::o:0;7311:44::-;;;;:::o;6959:43::-;;;;;;;;;;;;;;;;;:::o;3171:79::-;3209:7;3236:6;;;;;;;;;;;3229:13;;3171:79;:::o;7362:46::-;;;;:::o;8300:87::-;8339:13;8372:7;;;;;;;;;;;;;;;;;8365:14;;8300:87;:::o;18296:139::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18409:18:::1;18387:19;:40;;;;18296:139:::0;:::o;17953:291::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18104:13:::1;18087:14;:30;;;;18146:14;18128:15;:32;;;;18186:11;18171:12;:26;;;;18224:12;18208:13;:28;;;;17953:291:::0;;;;:::o;8735:199::-;8840:4;8862:42;8872:12;:10;:12::i;:::-;8886:9;8897:6;8862:9;:42::i;:::-;8922:4;8915:11;;8735:199;;;;:::o;6921:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13869:197::-;13935:17;;;;;;;;;;;13919:33;;:12;:10;:12::i;:::-;:33;;;13911:42;;;;;;13964:23;13990:24;14008:4;13990:9;:24::i;:::-;13964:50;;14025:33;14042:15;14025:16;:33::i;:::-;13900:166;13869:197::o;18866:234::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18983:9:::1;18979:114;19002:8;;:15;;18998:1;:19;18979:114;;;19073:8;19039:18;:31;19058:8;;19067:1;19058:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19039:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19019:3;;;;;;;18979:114;;;;18866:234:::0;;;:::o;8942:184::-;9059:7;9091:11;:18;9103:5;9091:18;;;;;;;;;;;;;;;:27;9110:7;9091:27;;;;;;;;;;;;;;;;9084:34;;8942:184;;;;:::o;18743:115::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18837:13:::1;18820:14;:30;;;;18743:115:::0;:::o;3541:244::-;3308:12;:10;:12::i;:::-;3298:22;;:6;;;;;;;;;;:22;;;3290:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3650:1:::1;3630:22;;:8;:22;;::::0;3622:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3740:8;3711:38;;3732:6;::::0;::::1;;;;;;;;3711:38;;;;;;;;;;;;3769:8;3760:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3541:244:::0;:::o;1930:98::-;1983:7;2010:10;2003:17;;1930:98;:::o;10472:369::-;10616:1;10599:19;;:5;:19;;;10591:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10697:1;10678:21;;:7;:21;;;10670:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10779:6;10749:11;:18;10761:5;10749:18;;;;;;;;;;;;;;;:27;10768:7;10749:27;;;;;;;;;;;;;;;:36;;;;10817:7;10801:32;;10810:5;10801:32;;;10826:6;10801:32;;;;;;:::i;:::-;;;;;;;;10472:369;;;:::o;10849:2330::-;10987:1;10971:18;;:4;:18;;;10963:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11064:1;11050:16;;:2;:16;;;11042:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11134:1;11125:6;:10;11117:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11206:7;:5;:7::i;:::-;11198:15;;:4;:15;;;;:32;;;;;11223:7;:5;:7::i;:::-;11217:13;;:2;:13;;;;11198:32;11194:1259;;;11287:11;;;;;;;;;;11282:144;;11335:7;:5;:7::i;:::-;11327:15;;:4;:15;;;11319:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11282:144;11460:12;;11450:6;:22;;11442:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11529:4;:10;11534:4;11529:10;;;;;;;;;;;;;;;;;;;;;;;;;11528:11;:24;;;;;11544:4;:8;11549:2;11544:8;;;;;;;;;;;;;;;;;;;;;;;;;11543:9;11528:24;11520:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11618:13;;;;;;;;;;;11612:19;;:2;:19;;;11609:146;;11685:14;;11676:6;11660:13;11670:2;11660:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11652:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11609:146;11771:28;11802:24;11820:4;11802:9;:24::i;:::-;11771:55;;11841:12;11880:19;;11856:20;:43;;11841:58;;11943:12;;11919:20;:36;11916:124;;12012:12;;11989:35;;11916:124;12060:7;:18;;;;;12072:6;;;;;;;;;;;12071:7;12060:18;:43;;;;;12090:13;;;;;;;;;;;12082:21;;:4;:21;;;;12060:43;:58;;;;;12107:11;;;;;;;;;;;12060:58;:87;;;;;12123:18;:24;12142:4;12123:24;;;;;;;;;;;;;;;;;;;;;;;;;12122:25;12060:87;:114;;;;;12152:18;:22;12171:2;12152:22;;;;;;;;;;;;;;;;;;;;;;;;;12151:23;12060:114;12056:386;;;12195:38;12212:20;12195:16;:38::i;:::-;12252:26;12281:21;12252:50;;12346:1;12325:18;:22;12321:106;;;12372:35;12385:21;12372:12;:35::i;:::-;12321:106;12176:266;12056:386;11232:1221;;11194:1259;12465:12;12480:4;12465:19;;12529:18;:24;12548:4;12529:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12557:18;:22;12576:2;12557:22;;;;;;;;;;;;;;;;;;;;;;;;;12529:50;12528:102;;;;12593:13;;;;;;;;;;;12585:21;;:4;:21;;;;:44;;;;;12616:13;;;;;;;;;;;12610:19;;:2;:19;;;;12585:44;12528:102;12524:594;;;12657:5;12647:15;;12524:594;;;12740:13;;;;;;;;;;;12732:21;;:4;:21;;;:55;;;;;12771:15;;;;;;;;;;;12757:30;;:2;:30;;;;12732:55;12729:162;;;12820:14;;12808:9;:26;;;;12863:12;;12853:7;:22;;;;12729:162;12950:13;;;;;;;;;;;12944:19;;:2;:19;;;:55;;;;;12983:15;;;;;;;;;;;12967:32;;:4;:32;;;;12944:55;12940:165;;;13032:15;;13020:9;:27;;;;13076:13;;13066:7;:23;;;;12940:165;12524:594;13130:41;13145:4;13151:2;13155:6;13163:7;13130:14;:41::i;:::-;10952:2227;10849:2330;;;:::o;4149:224::-;4269:7;4302:1;4297;:6;;4305:12;4289:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4329:9;4345:1;4341;:5;;;;:::i;:::-;4329:17;;4364:1;4357:8;;;4149:224;;;;;:::o;13678:99::-;13735:17;;;;;;;;;;;:26;;:34;13762:6;13735:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13678:99;:::o;9789:323::-;9884:7;9942;;9931;:18;;9909:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10030:19;10052:10;:8;:10::i;:::-;10030:32;;10080:24;10092:11;10080:7;:11;;:24;;;;:::i;:::-;10073:31;;;9789:323;;;:::o;13187:483::-;7567:4;7558:6;;:13;;;;;;;;;;;;;;;;;;13265:21:::1;13303:1;13289:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13265:40;;13334:4;13316;13321:1;13316:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13360:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13350:4;13355:1;13350:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13393:62;13410:4;13425:15;;;;;;;;;;;13443:11;13393:8;:62::i;:::-;13466:15;;;;;;;;;;;:66;;;13547:11;13573:1;13589:4;13616;13636:15;13466:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13254:416;7603:5:::0;7594:6;;:14;;;;;;;;;;;;;;;;;;13187:483;:::o;14555:282::-;14711:7;14706:28;;14720:14;:12;:14::i;:::-;14706:28;14745:44;14763:6;14771:9;14782:6;14745:17;:44::i;:::-;14805:7;14800:29;;14814:15;:13;:15::i;:::-;14800:29;14555:282;;;;:::o;17516:164::-;17558:7;17579:15;17596;17615:19;:17;:19::i;:::-;17578:56;;;;17652:20;17664:7;17652;:11;;:20;;;;:::i;:::-;17645:27;;;;17516:164;:::o;4635:132::-;4693:7;4720:39;4724:1;4727;4720:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4713:46;;4635:132;;;;:::o;10120:219::-;10180:1;10167:9;;:14;:30;;;;;10196:1;10185:7;;:12;10167:30;10199:7;10163:43;10238:9;;10218:17;:29;;;;10276:7;;10258:15;:25;;;;10308:1;10296:9;:13;;;;10330:1;10320:7;:11;;;;10120:219;:::o;14845:610::-;14992:15;15022:23;15060:12;15087:23;15125:12;15152:13;15179:19;15190:7;15179:10;:19::i;:::-;14977:221;;;;;;;;;;;;15227:28;15247:7;15227;:15;15235:6;15227:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15209:7;:15;15217:6;15209:15;;;;;;;;;;;;;;;:46;;;;15287:39;15310:15;15287:7;:18;15295:9;15287:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15266:7;:18;15274:9;15266:18;;;;;;;;;;;;;;;:60;;;;15337:16;15347:5;15337:9;:16::i;:::-;15364:23;15376:4;15382;15364:11;:23::i;:::-;15420:9;15403:44;;15412:6;15403:44;;;15431:15;15403:44;;;;;;:::i;:::-;;;;;;;;14966:489;;;;;;14845:610;;;:::o;10347:117::-;10403:17;;10391:9;:29;;;;10441:15;;10431:7;:25;;;;10347:117::o;17688:257::-;17739:7;17748;17768:15;17786:7;;17768:25;;17804:15;6445:16;17804:25;;17854:20;6445:16;17854:7;;:11;;:20;;;;:::i;:::-;17844:7;:30;17840:61;;;17884:7;;6445:16;17876:25;;;;;;;;17840:61;17920:7;17929;17912:25;;;;;;17688:257;;;:::o;4775:223::-;4895:7;4927:1;4923;:5;4930:12;4915:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4954:9;4970:1;4966;:5;;;;:::i;:::-;4954:17;;4989:1;4982:8;;;4775:223;;;;;:::o;15874:615::-;15974:7;15996;16018;16040;16062;16084;16120:23;16145:12;16159:13;16189:40;16201:7;16210:9;;16221:7;;16189:11;:40::i;:::-;16119:110;;;;;;16240:19;16262:10;:8;:10::i;:::-;16240:32;;16284:15;16301:23;16326:12;16355:46;16367:7;16376:4;16382:5;16389:11;16355;:46::i;:::-;16283:118;;;;;;16420:7;16429:15;16446:4;16452:15;16469:4;16475:5;16412:69;;;;;;;;;;;;;;;;;;;15874:615;;;;;;;:::o;4005:136::-;4063:7;4090:43;4094:1;4097;4090:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4083:50;;4005:136;;;;:::o;3818:179::-;3876:7;3896:9;3912:1;3908;:5;;;;:::i;:::-;3896:17;;3937:1;3932;:6;;3924:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3988:1;3981:8;;;3818:179;;;;:::o;15463:211::-;15516:19;15538:10;:8;:10::i;:::-;15516:32;;15559:13;15575:22;15585:11;15575:5;:9;;:22;;;;:::i;:::-;15559:38;;15633:33;15660:5;15633:7;:22;15649:4;15633:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15608:7;:22;15624:4;15608:22;;;;;;;;;;;;;;;:58;;;;15505:169;;15463:211;:::o;15682:147::-;15760:17;15772:4;15760:7;;:11;;:17;;;;:::i;:::-;15750:7;:27;;;;15801:20;15816:4;15801:10;;:14;;:20;;;;:::i;:::-;15788:10;:33;;;;15682:147;;:::o;16497:469::-;16666:7;16688;16710;16745:12;16760:30;16786:3;16760:21;16772:8;16760:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16745:45;;16801:13;16817:28;16841:3;16817:19;16829:6;16817:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16801:44;;16856:23;16882:28;16904:5;16882:17;16894:4;16882:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16856:54;;16929:15;16946:4;16952:5;16921:37;;;;;;;;;16497:469;;;;;;;:::o;16974:534::-;17168:7;17190;17212;17247:15;17265:24;17277:11;17265:7;:11;;:24;;;;:::i;:::-;17247:42;;17300:12;17315:21;17324:11;17315:4;:8;;:21;;;;:::i;:::-;17300:36;;17347:13;17363:22;17373:11;17363:5;:9;;:22;;;;:::i;:::-;17347:38;;17396:23;17422:28;17444:5;17422:17;17434:4;17422:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17396:54;;17469:7;17478:15;17495:4;17461:39;;;;;;;;;;16974:534;;;;;;;;:::o;4381:246::-;4439:7;4468:1;4463;:6;4459:47;;4493:1;4486:8;;;;4459:47;4516:9;4532:1;4528;:5;;;;:::i;:::-;4516:17;;4561:1;4556;4552;:5;;;;:::i;:::-;:10;4544:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4618:1;4611:8;;;4381:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:139::-;4160:6;4155:3;4150;4144:23;4201:1;4192:6;4187:3;4183:16;4176:27;4071:139;;;:::o;4216:377::-;4304:3;4332:39;4365:5;4332:39;:::i;:::-;4387:71;4451:6;4446:3;4387:71;:::i;:::-;4380:78;;4467:65;4525:6;4520:3;4513:4;4506:5;4502:16;4467:65;:::i;:::-;4557:29;4579:6;4557:29;:::i;:::-;4552:3;4548:39;4541:46;;4308:285;4216:377;;;;:::o;4599:313::-;4712:4;4750:2;4739:9;4735:18;4727:26;;4799:9;4793:4;4789:20;4785:1;4774:9;4770:17;4763:47;4827:78;4900:4;4891:6;4827:78;:::i;:::-;4819:86;;4599:313;;;;:::o;4918:77::-;4955:7;4984:5;4973:16;;4918:77;;;:::o;5001:122::-;5074:24;5092:5;5074:24;:::i;:::-;5067:5;5064:35;5054:63;;5113:1;5110;5103:12;5054:63;5001:122;:::o;5129:139::-;5175:5;5213:6;5200:20;5191:29;;5229:33;5256:5;5229:33;:::i;:::-;5129:139;;;;:::o;5274:474::-;5342:6;5350;5399:2;5387:9;5378:7;5374:23;5370:32;5367:119;;;5405:79;;:::i;:::-;5367:119;5525:1;5550:53;5595:7;5586:6;5575:9;5571:22;5550:53;:::i;:::-;5540:63;;5496:117;5652:2;5678:53;5723:7;5714:6;5703:9;5699:22;5678:53;:::i;:::-;5668:63;;5623:118;5274:474;;;;;:::o;5754:90::-;5788:7;5831:5;5824:13;5817:21;5806:32;;5754:90;;;:::o;5850:109::-;5931:21;5946:5;5931:21;:::i;:::-;5926:3;5919:34;5850:109;;:::o;5965:210::-;6052:4;6090:2;6079:9;6075:18;6067:26;;6103:65;6165:1;6154:9;6150:17;6141:6;6103:65;:::i;:::-;5965:210;;;;:::o;6181:60::-;6209:3;6230:5;6223:12;;6181:60;;;:::o;6247:142::-;6297:9;6330:53;6348:34;6357:24;6375:5;6357:24;:::i;:::-;6348:34;:::i;:::-;6330:53;:::i;:::-;6317:66;;6247:142;;;:::o;6395:126::-;6445:9;6478:37;6509:5;6478:37;:::i;:::-;6465:50;;6395:126;;;:::o;6527:152::-;6603:9;6636:37;6667:5;6636:37;:::i;:::-;6623:50;;6527:152;;;:::o;6685:183::-;6798:63;6855:5;6798:63;:::i;:::-;6793:3;6786:76;6685:183;;:::o;6874:274::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7044:97;7138:1;7127:9;7123:17;7114:6;7044:97;:::i;:::-;6874:274;;;;:::o;7154:118::-;7241:24;7259:5;7241:24;:::i;:::-;7236:3;7229:37;7154:118;;:::o;7278:222::-;7371:4;7409:2;7398:9;7394:18;7386:26;;7422:71;7490:1;7479:9;7475:17;7466:6;7422:71;:::i;:::-;7278:222;;;;:::o;7506:619::-;7583:6;7591;7599;7648:2;7636:9;7627:7;7623:23;7619:32;7616:119;;;7654:79;;:::i;:::-;7616:119;7774:1;7799:53;7844:7;7835:6;7824:9;7820:22;7799:53;:::i;:::-;7789:63;;7745:117;7901:2;7927:53;7972:7;7963:6;7952:9;7948:22;7927:53;:::i;:::-;7917:63;;7872:118;8029:2;8055:53;8100:7;8091:6;8080:9;8076:22;8055:53;:::i;:::-;8045:63;;8000:118;7506:619;;;;;:::o;8131:86::-;8166:7;8206:4;8199:5;8195:16;8184:27;;8131:86;;;:::o;8223:112::-;8306:22;8322:5;8306:22;:::i;:::-;8301:3;8294:35;8223:112;;:::o;8341:214::-;8430:4;8468:2;8457:9;8453:18;8445:26;;8481:67;8545:1;8534:9;8530:17;8521:6;8481:67;:::i;:::-;8341:214;;;;:::o;8561:118::-;8648:24;8666:5;8648:24;:::i;:::-;8643:3;8636:37;8561:118;;:::o;8685:222::-;8778:4;8816:2;8805:9;8801:18;8793:26;;8829:71;8897:1;8886:9;8882:17;8873:6;8829:71;:::i;:::-;8685:222;;;;:::o;8913:329::-;8972:6;9021:2;9009:9;9000:7;8996:23;8992:32;8989:119;;;9027:79;;:::i;:::-;8989:119;9147:1;9172:53;9217:7;9208:6;9197:9;9193:22;9172:53;:::i;:::-;9162:63;;9118:117;8913:329;;;;:::o;9248:116::-;9318:21;9333:5;9318:21;:::i;:::-;9311:5;9308:32;9298:60;;9354:1;9351;9344:12;9298:60;9248:116;:::o;9370:133::-;9413:5;9451:6;9438:20;9429:29;;9467:30;9491:5;9467:30;:::i;:::-;9370:133;;;;:::o;9509:323::-;9565:6;9614:2;9602:9;9593:7;9589:23;9585:32;9582:119;;;9620:79;;:::i;:::-;9582:119;9740:1;9765:50;9807:7;9798:6;9787:9;9783:22;9765:50;:::i;:::-;9755:60;;9711:114;9509:323;;;;:::o;9838:329::-;9897:6;9946:2;9934:9;9925:7;9921:23;9917:32;9914:119;;;9952:79;;:::i;:::-;9914:119;10072:1;10097:53;10142:7;10133:6;10122:9;10118:22;10097:53;:::i;:::-;10087:63;;10043:117;9838:329;;;;:::o;10173:765::-;10259:6;10267;10275;10283;10332:3;10320:9;10311:7;10307:23;10303:33;10300:120;;;10339:79;;:::i;:::-;10300:120;10459:1;10484:53;10529:7;10520:6;10509:9;10505:22;10484:53;:::i;:::-;10474:63;;10430:117;10586:2;10612:53;10657:7;10648:6;10637:9;10633:22;10612:53;:::i;:::-;10602:63;;10557:118;10714:2;10740:53;10785:7;10776:6;10765:9;10761:22;10740:53;:::i;:::-;10730:63;;10685:118;10842:2;10868:53;10913:7;10904:6;10893:9;10889:22;10868:53;:::i;:::-;10858:63;;10813:118;10173:765;;;;;;;:::o;10944:117::-;11053:1;11050;11043:12;11084:568;11157:8;11167:6;11217:3;11210:4;11202:6;11198:17;11194:27;11184:122;;11225:79;;:::i;:::-;11184:122;11338:6;11325:20;11315:30;;11368:18;11360:6;11357:30;11354:117;;;11390:79;;:::i;:::-;11354:117;11504:4;11496:6;11492:17;11480:29;;11558:3;11550:4;11542:6;11538:17;11528:8;11524:32;11521:41;11518:128;;;11565:79;;:::i;:::-;11518:128;11084:568;;;;;:::o;11658:698::-;11750:6;11758;11766;11815:2;11803:9;11794:7;11790:23;11786:32;11783:119;;;11821:79;;:::i;:::-;11783:119;11969:1;11958:9;11954:17;11941:31;11999:18;11991:6;11988:30;11985:117;;;12021:79;;:::i;:::-;11985:117;12134:80;12206:7;12197:6;12186:9;12182:22;12134:80;:::i;:::-;12116:98;;;;11912:312;12263:2;12289:50;12331:7;12322:6;12311:9;12307:22;12289:50;:::i;:::-;12279:60;;12234:115;11658:698;;;;;:::o;12362:474::-;12430:6;12438;12487:2;12475:9;12466:7;12462:23;12458:32;12455:119;;;12493:79;;:::i;:::-;12455:119;12613:1;12638:53;12683:7;12674:6;12663:9;12659:22;12638:53;:::i;:::-;12628:63;;12584:117;12740:2;12766:53;12811:7;12802:6;12791:9;12787:22;12766:53;:::i;:::-;12756:63;;12711:118;12362:474;;;;;:::o;12842:182::-;12982:34;12978:1;12970:6;12966:14;12959:58;12842:182;:::o;13030:366::-;13172:3;13193:67;13257:2;13252:3;13193:67;:::i;:::-;13186:74;;13269:93;13358:3;13269:93;:::i;:::-;13387:2;13382:3;13378:12;13371:19;;13030:366;;;:::o;13402:419::-;13568:4;13606:2;13595:9;13591:18;13583:26;;13655:9;13649:4;13645:20;13641:1;13630:9;13626:17;13619:47;13683:131;13809:4;13683:131;:::i;:::-;13675:139;;13402:419;;;:::o;13827:180::-;13875:77;13872:1;13865:88;13972:4;13969:1;13962:15;13996:4;13993:1;13986:15;14013:225;14153:34;14149:1;14141:6;14137:14;14130:58;14222:8;14217:2;14209:6;14205:15;14198:33;14013:225;:::o;14244:366::-;14386:3;14407:67;14471:2;14466:3;14407:67;:::i;:::-;14400:74;;14483:93;14572:3;14483:93;:::i;:::-;14601:2;14596:3;14592:12;14585:19;;14244:366;;;:::o;14616:419::-;14782:4;14820:2;14809:9;14805:18;14797:26;;14869:9;14863:4;14859:20;14855:1;14844:9;14840:17;14833:47;14897:131;15023:4;14897:131;:::i;:::-;14889:139;;14616:419;;;:::o;15041:223::-;15181:34;15177:1;15169:6;15165:14;15158:58;15250:6;15245:2;15237:6;15233:15;15226:31;15041:223;:::o;15270:366::-;15412:3;15433:67;15497:2;15492:3;15433:67;:::i;:::-;15426:74;;15509:93;15598:3;15509:93;:::i;:::-;15627:2;15622:3;15618:12;15611:19;;15270:366;;;:::o;15642:419::-;15808:4;15846:2;15835:9;15831:18;15823:26;;15895:9;15889:4;15885:20;15881:1;15870:9;15866:17;15859:47;15923:131;16049:4;15923:131;:::i;:::-;15915:139;;15642:419;;;:::o;16067:221::-;16207:34;16203:1;16195:6;16191:14;16184:58;16276:4;16271:2;16263:6;16259:15;16252:29;16067:221;:::o;16294:366::-;16436:3;16457:67;16521:2;16516:3;16457:67;:::i;:::-;16450:74;;16533:93;16622:3;16533:93;:::i;:::-;16651:2;16646:3;16642:12;16635:19;;16294:366;;;:::o;16666:419::-;16832:4;16870:2;16859:9;16855:18;16847:26;;16919:9;16913:4;16909:20;16905:1;16894:9;16890:17;16883:47;16947:131;17073:4;16947:131;:::i;:::-;16939:139;;16666:419;;;:::o;17091:224::-;17231:34;17227:1;17219:6;17215:14;17208:58;17300:7;17295:2;17287:6;17283:15;17276:32;17091:224;:::o;17321:366::-;17463:3;17484:67;17548:2;17543:3;17484:67;:::i;:::-;17477:74;;17560:93;17649:3;17560:93;:::i;:::-;17678:2;17673:3;17669:12;17662:19;;17321:366;;;:::o;17693:419::-;17859:4;17897:2;17886:9;17882:18;17874:26;;17946:9;17940:4;17936:20;17932:1;17921:9;17917:17;17910:47;17974:131;18100:4;17974:131;:::i;:::-;17966:139;;17693:419;;;:::o;18118:222::-;18258:34;18254:1;18246:6;18242:14;18235:58;18327:5;18322:2;18314:6;18310:15;18303:30;18118:222;:::o;18346:366::-;18488:3;18509:67;18573:2;18568:3;18509:67;:::i;:::-;18502:74;;18585:93;18674:3;18585:93;:::i;:::-;18703:2;18698:3;18694:12;18687:19;;18346:366;;;:::o;18718:419::-;18884:4;18922:2;18911:9;18907:18;18899:26;;18971:9;18965:4;18961:20;18957:1;18946:9;18942:17;18935:47;18999:131;19125:4;18999:131;:::i;:::-;18991:139;;18718:419;;;:::o;19143:228::-;19283:34;19279:1;19271:6;19267:14;19260:58;19352:11;19347:2;19339:6;19335:15;19328:36;19143:228;:::o;19377:366::-;19519:3;19540:67;19604:2;19599:3;19540:67;:::i;:::-;19533:74;;19616:93;19705:3;19616:93;:::i;:::-;19734:2;19729:3;19725:12;19718:19;;19377:366;;;:::o;19749:419::-;19915:4;19953:2;19942:9;19938:18;19930:26;;20002:9;19996:4;19992:20;19988:1;19977:9;19973:17;19966:47;20030:131;20156:4;20030:131;:::i;:::-;20022:139;;19749:419;;;:::o;20174:250::-;20314:34;20310:1;20302:6;20298:14;20291:58;20383:33;20378:2;20370:6;20366:15;20359:58;20174:250;:::o;20430:366::-;20572:3;20593:67;20657:2;20652:3;20593:67;:::i;:::-;20586:74;;20669:93;20758:3;20669:93;:::i;:::-;20787:2;20782:3;20778:12;20771:19;;20430:366;;;:::o;20802:419::-;20968:4;21006:2;20995:9;20991:18;20983:26;;21055:9;21049:4;21045:20;21041:1;21030:9;21026:17;21019:47;21083:131;21209:4;21083:131;:::i;:::-;21075:139;;20802:419;;;:::o;21227:178::-;21367:30;21363:1;21355:6;21351:14;21344:54;21227:178;:::o;21411:366::-;21553:3;21574:67;21638:2;21633:3;21574:67;:::i;:::-;21567:74;;21650:93;21739:3;21650:93;:::i;:::-;21768:2;21763:3;21759:12;21752:19;;21411:366;;;:::o;21783:419::-;21949:4;21987:2;21976:9;21972:18;21964:26;;22036:9;22030:4;22026:20;22022:1;22011:9;22007:17;22000:47;22064:131;22190:4;22064:131;:::i;:::-;22056:139;;21783:419;;;:::o;22208:222::-;22348:34;22344:1;22336:6;22332:14;22325:58;22417:5;22412:2;22404:6;22400:15;22393:30;22208:222;:::o;22436:366::-;22578:3;22599:67;22663:2;22658:3;22599:67;:::i;:::-;22592:74;;22675:93;22764:3;22675:93;:::i;:::-;22793:2;22788:3;22784:12;22777:19;;22436:366;;;:::o;22808:419::-;22974:4;23012:2;23001:9;22997:18;22989:26;;23061:9;23055:4;23051:20;23047:1;23036:9;23032:17;23025:47;23089:131;23215:4;23089:131;:::i;:::-;23081:139;;22808:419;;;:::o;23233:180::-;23281:77;23278:1;23271:88;23378:4;23375:1;23368:15;23402:4;23399:1;23392:15;23419:191;23459:3;23478:20;23496:1;23478:20;:::i;:::-;23473:25;;23512:20;23530:1;23512:20;:::i;:::-;23507:25;;23555:1;23552;23548:9;23541:16;;23576:3;23573:1;23570:10;23567:36;;;23583:18;;:::i;:::-;23567:36;23419:191;;;;:::o;23616:222::-;23756:34;23752:1;23744:6;23740:14;23733:58;23825:5;23820:2;23812:6;23808:15;23801:30;23616:222;:::o;23844:366::-;23986:3;24007:67;24071:2;24066:3;24007:67;:::i;:::-;24000:74;;24083:93;24172:3;24083:93;:::i;:::-;24201:2;24196:3;24192:12;24185:19;;23844:366;;;:::o;24216:419::-;24382:4;24420:2;24409:9;24405:18;24397:26;;24469:9;24463:4;24459:20;24455:1;24444:9;24440:17;24433:47;24497:131;24623:4;24497:131;:::i;:::-;24489:139;;24216:419;;;:::o;24641:194::-;24681:4;24701:20;24719:1;24701:20;:::i;:::-;24696:25;;24735:20;24753:1;24735:20;:::i;:::-;24730:25;;24779:1;24776;24772:9;24764:17;;24803:1;24797:4;24794:11;24791:37;;;24808:18;;:::i;:::-;24791:37;24641:194;;;;:::o;24841:229::-;24981:34;24977:1;24969:6;24965:14;24958:58;25050:12;25045:2;25037:6;25033:15;25026:37;24841:229;:::o;25076:366::-;25218:3;25239:67;25303:2;25298:3;25239:67;:::i;:::-;25232:74;;25315:93;25404:3;25315:93;:::i;:::-;25433:2;25428:3;25424:12;25417:19;;25076:366;;;:::o;25448:419::-;25614:4;25652:2;25641:9;25637:18;25629:26;;25701:9;25695:4;25691:20;25687:1;25676:9;25672:17;25665:47;25729:131;25855:4;25729:131;:::i;:::-;25721:139;;25448:419;;;:::o;25873:143::-;25930:5;25961:6;25955:13;25946:22;;25977:33;26004:5;25977:33;:::i;:::-;25873:143;;;;:::o;26022:351::-;26092:6;26141:2;26129:9;26120:7;26116:23;26112:32;26109:119;;;26147:79;;:::i;:::-;26109:119;26267:1;26292:64;26348:7;26339:6;26328:9;26324:22;26292:64;:::i;:::-;26282:74;;26238:128;26022:351;;;;:::o;26379:85::-;26424:7;26453:5;26442:16;;26379:85;;;:::o;26470:158::-;26528:9;26561:61;26579:42;26588:32;26614:5;26588:32;:::i;:::-;26579:42;:::i;:::-;26561:61;:::i;:::-;26548:74;;26470:158;;;:::o;26634:147::-;26729:45;26768:5;26729:45;:::i;:::-;26724:3;26717:58;26634:147;;:::o;26787:114::-;26854:6;26888:5;26882:12;26872:22;;26787:114;;;:::o;26907:184::-;27006:11;27040:6;27035:3;27028:19;27080:4;27075:3;27071:14;27056:29;;26907:184;;;;:::o;27097:132::-;27164:4;27187:3;27179:11;;27217:4;27212:3;27208:14;27200:22;;27097:132;;;:::o;27235:108::-;27312:24;27330:5;27312:24;:::i;:::-;27307:3;27300:37;27235:108;;:::o;27349:179::-;27418:10;27439:46;27481:3;27473:6;27439:46;:::i;:::-;27517:4;27512:3;27508:14;27494:28;;27349:179;;;;:::o;27534:113::-;27604:4;27636;27631:3;27627:14;27619:22;;27534:113;;;:::o;27683:732::-;27802:3;27831:54;27879:5;27831:54;:::i;:::-;27901:86;27980:6;27975:3;27901:86;:::i;:::-;27894:93;;28011:56;28061:5;28011:56;:::i;:::-;28090:7;28121:1;28106:284;28131:6;28128:1;28125:13;28106:284;;;28207:6;28201:13;28234:63;28293:3;28278:13;28234:63;:::i;:::-;28227:70;;28320:60;28373:6;28320:60;:::i;:::-;28310:70;;28166:224;28153:1;28150;28146:9;28141:14;;28106:284;;;28110:14;28406:3;28399:10;;27807:608;;;27683:732;;;;:::o;28421:831::-;28684:4;28722:3;28711:9;28707:19;28699:27;;28736:71;28804:1;28793:9;28789:17;28780:6;28736:71;:::i;:::-;28817:80;28893:2;28882:9;28878:18;28869:6;28817:80;:::i;:::-;28944:9;28938:4;28934:20;28929:2;28918:9;28914:18;28907:48;28972:108;29075:4;29066:6;28972:108;:::i;:::-;28964:116;;29090:72;29158:2;29147:9;29143:18;29134:6;29090:72;:::i;:::-;29172:73;29240:3;29229:9;29225:19;29216:6;29172:73;:::i;:::-;28421:831;;;;;;;;:::o;29258:180::-;29306:77;29303:1;29296:88;29403:4;29400:1;29393:15;29427:4;29424:1;29417:15;29444:185;29484:1;29501:20;29519:1;29501:20;:::i;:::-;29496:25;;29535:20;29553:1;29535:20;:::i;:::-;29530:25;;29574:1;29564:35;;29579:18;;:::i;:::-;29564:35;29621:1;29618;29614:9;29609:14;;29444:185;;;;:::o;29635:177::-;29775:29;29771:1;29763:6;29759:14;29752:53;29635:177;:::o;29818:366::-;29960:3;29981:67;30045:2;30040:3;29981:67;:::i;:::-;29974:74;;30057:93;30146:3;30057:93;:::i;:::-;30175:2;30170:3;30166:12;30159:19;;29818:366;;;:::o;30190:419::-;30356:4;30394:2;30383:9;30379:18;30371:26;;30443:9;30437:4;30433:20;30429:1;30418:9;30414:17;30407:47;30471:131;30597:4;30471:131;:::i;:::-;30463:139;;30190:419;;;:::o;30615:410::-;30655:7;30678:20;30696:1;30678:20;:::i;:::-;30673:25;;30712:20;30730:1;30712:20;:::i;:::-;30707:25;;30767:1;30764;30760:9;30789:30;30807:11;30789:30;:::i;:::-;30778:41;;30968:1;30959:7;30955:15;30952:1;30949:22;30929:1;30922:9;30902:83;30879:139;;30998:18;;:::i;:::-;30879:139;30663:362;30615:410;;;;:::o;31031:220::-;31171:34;31167:1;31159:6;31155:14;31148:58;31240:3;31235:2;31227:6;31223:15;31216:28;31031:220;:::o;31257:366::-;31399:3;31420:67;31484:2;31479:3;31420:67;:::i;:::-;31413:74;;31496:93;31585:3;31496:93;:::i;:::-;31614:2;31609:3;31605:12;31598:19;;31257:366;;;:::o;31629:419::-;31795:4;31833:2;31822:9;31818:18;31810:26;;31882:9;31876:4;31872:20;31868:1;31857:9;31853:17;31846:47;31910:131;32036:4;31910:131;:::i;:::-;31902:139;;31629:419;;;:::o

Swarm Source

ipfs://9ab7f4c734957da675ce738912df2e41b365d9938198f164ab2ea086683be062

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.