ETH Price: $2,615.35 (-0.15%)

Contract

0xaC3c826C9E21319b42C85A0049e1C7d49afb9471
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve146443022022-04-24 0:33:35907 days ago1650760415IN
0xaC3c826C...49afb9471
0 ETH0.0011646324.65405904
Approve143468352022-03-08 15:00:47953 days ago1646751647IN
0xaC3c826C...49afb9471
0 ETH0.0010543442.24980755
Manualsend143407272022-03-07 16:15:52954 days ago1646669752IN
0xaC3c826C...49afb9471
0 ETH0.0009749431.87545991
Manualswap143407192022-03-07 16:14:41954 days ago1646669681IN
0xaC3c826C...49afb9471
0 ETH0.0066034635.49430828
Approve143407102022-03-07 16:12:34954 days ago1646669554IN
0xaC3c826C...49afb9471
0 ETH0.0015676133.18476226
Approve143406652022-03-07 16:02:01954 days ago1646668921IN
0xaC3c826C...49afb9471
0 ETH0.0020362543.10533495
Transfer143405892022-03-07 15:43:34954 days ago1646667814IN
0xaC3c826C...49afb9471
0 ETH0.0030866925.23558831
Approve143405832022-03-07 15:42:44954 days ago1646667764IN
0xaC3c826C...49afb9471
0 ETH0.0014298130.26765981
Approve143405802022-03-07 15:42:11954 days ago1646667731IN
0xaC3c826C...49afb9471
0 ETH0.0013195527.9335591
Approve143405372022-03-07 15:33:20954 days ago1646667200IN
0xaC3c826C...49afb9471
0 ETH0.0009603735.12842904
Approve143404802022-03-07 15:20:35954 days ago1646666435IN
0xaC3c826C...49afb9471
0 ETH0.0017246936.50993407
Set Ref Fee143404742022-03-07 15:19:16954 days ago1646666356IN
0xaC3c826C...49afb9471
0 ETH0.0009743936.45060191
Set Tax Fee143404742022-03-07 15:19:16954 days ago1646666356IN
0xaC3c826C...49afb9471
0 ETH0.0009759636.45060191
Set Burn Fee143404742022-03-07 15:19:16954 days ago1646666356IN
0xaC3c826C...49afb9471
0 ETH0.0008792636.45060191
Approve143404022022-03-07 15:03:34954 days ago1646665414IN
0xaC3c826C...49afb9471
0 ETH0.001367728.95282823
Approve143402992022-03-07 14:41:51954 days ago1646664111IN
0xaC3c826C...49afb9471
0 ETH0.0012813527.12496787
Approve143402232022-03-07 14:24:55954 days ago1646663095IN
0xaC3c826C...49afb9471
0 ETH0.0009720535.55570051
Approve143402212022-03-07 14:24:10954 days ago1646663050IN
0xaC3c826C...49afb9471
0 ETH0.0015099631.96430236
Approve143402052022-03-07 14:20:51954 days ago1646662851IN
0xaC3c826C...49afb9471
0 ETH0.0016695135.34190098
Approve143401922022-03-07 14:17:33954 days ago1646662653IN
0xaC3c826C...49afb9471
0 ETH0.0014592530.89087689
Approve143401392022-03-07 14:06:20954 days ago1646661980IN
0xaC3c826C...49afb9471
0 ETH0.0016165534.22071677
Renounce Ownersh...143401172022-03-07 14:00:41954 days ago1646661641IN
0xaC3c826C...49afb9471
0 ETH0.0006132726.11035046
Approve143400652022-03-07 13:50:37954 days ago1646661037IN
0xaC3c826C...49afb9471
0 ETH0.0013178227.89689548
Approve143400402022-03-07 13:46:10954 days ago1646660770IN
0xaC3c826C...49afb9471
0 ETH0.0016184734.26139516
Manualswap143400292022-03-07 13:43:44954 days ago1646660624IN
0xaC3c826C...49afb9471
0 ETH0.0059166331.81069633
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
143753722022-03-13 1:12:28949 days ago1647133948
0xaC3c826C...49afb9471
0.00109037 ETH
143753722022-03-13 1:12:28949 days ago1647133948
0xaC3c826C...49afb9471
0.00109037 ETH
143459462022-03-08 11:34:19953 days ago1646739259
0xaC3c826C...49afb9471
0.00174727 ETH
143459462022-03-08 11:34:19953 days ago1646739259
0xaC3c826C...49afb9471
0.00174727 ETH
143425442022-03-07 22:56:11954 days ago1646693771
0xaC3c826C...49afb9471
0.00220631 ETH
143425442022-03-07 22:56:11954 days ago1646693771
0xaC3c826C...49afb9471
0.00220631 ETH
143407272022-03-07 16:15:52954 days ago1646669752
0xaC3c826C...49afb9471
1.46956794 ETH
143407192022-03-07 16:14:41954 days ago1646669681
0xaC3c826C...49afb9471
1.46956794 ETH
143405852022-03-07 15:42:53954 days ago1646667773
0xaC3c826C...49afb9471
0.01225128 ETH
143405852022-03-07 15:42:53954 days ago1646667773
0xaC3c826C...49afb9471
0.01225128 ETH
143405372022-03-07 15:33:20954 days ago1646667200
0xaC3c826C...49afb9471
0.01066062 ETH
143405372022-03-07 15:33:20954 days ago1646667200
0xaC3c826C...49afb9471
0.01066062 ETH
143404642022-03-07 15:16:55954 days ago1646666215
0xaC3c826C...49afb9471
0.0080316 ETH
143404642022-03-07 15:16:55954 days ago1646666215
0xaC3c826C...49afb9471
0.0080316 ETH
143404582022-03-07 15:15:04954 days ago1646666104
0xaC3c826C...49afb9471
0.02159066 ETH
143404582022-03-07 15:15:04954 days ago1646666104
0xaC3c826C...49afb9471
0.02159066 ETH
143403582022-03-07 14:55:46954 days ago1646664946
0xaC3c826C...49afb9471
0.02472029 ETH
143403582022-03-07 14:55:46954 days ago1646664946
0xaC3c826C...49afb9471
0.02472029 ETH
143402912022-03-07 14:40:45954 days ago1646664045
0xaC3c826C...49afb9471
0.01474625 ETH
143402912022-03-07 14:40:45954 days ago1646664045
0xaC3c826C...49afb9471
0.01474625 ETH
143402402022-03-07 14:29:42954 days ago1646663382
0xaC3c826C...49afb9471
0.02768822 ETH
143402402022-03-07 14:29:42954 days ago1646663382
0xaC3c826C...49afb9471
0.02768822 ETH
143402272022-03-07 14:26:29954 days ago1646663189
0xaC3c826C...49afb9471
0.01937696 ETH
143402272022-03-07 14:26:29954 days ago1646663189
0xaC3c826C...49afb9471
0.01937696 ETH
143402262022-03-07 14:25:55954 days ago1646663155
0xaC3c826C...49afb9471
0.02851855 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SHIDOKI

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-07
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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 SHIDOKI is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "SHIDOKI INU";
    string private constant _symbol = "SHIDOKI";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    mapping(address => bool) private _isSniper;
    address[] private _confirmedSnipers;
    uint256 public launchTime;

    // Jeets out Fee
    uint256 private _redisFeeJeets = 5;
    uint256 private _taxFeeJeets = 20;

    // Buy Fee
    uint256 private _redisFeeOnBuy = 2;
    uint256 private _taxFeeOnBuy = 12;
    
    // Sell Fee
    uint256 private _redisFeeOnSell = 2;
    uint256 private _taxFeeOnSell = 12;
    
    // Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _burnFee = 1;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 private _previousburnFee = _burnFee;

    mapping(address => uint256) private cooldown;
    
    address payable private _developmentAddress = payable(0xDF9A8E91522E26da8F9B3B063e055D98f6Ab84F1);
    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public timeJeets = 2 hours;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 1e10 * 10**9; //1% - 10000000000
    uint256 public _maxWalletSize = 3e10 * 10**9; //3%
    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[_developmentAddress] = true;
        _isExcludedFromFee[deadAddress] = 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 developmentWallet() public view returns (address) {
        return _developmentAddress;
    }

    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 && _burnFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _previousburnFee = _burnFee;
        
        _redisFee = 0;
        _taxFee = 0;
        _burnFee = 0;
    }

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

    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");
        require(!_isSniper[to], 'Stop sniping!');
        require(!_isSniper[from], 'Stop sniping!');
        require(!_isSniper[_msgSender()], 'Stop sniping!');

        if (from != owner() && to != owner()) {
            
            // Trade start check
            if (!tradingOpen) {
                revert("Trading not yet enabled!");            
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (to != address(this) && from != address(this) && to != _developmentAddress && from != _developmentAddress) {
                    require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                }
            }

            if (to != uniswapV2Pair && to != _developmentAddress && to != address(this) && to != deadAddress) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _swapTokensAtAmount;
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 burntAmount = 0;
                if (_burnFee > 0) {
                    burntAmount = contractTokenBalance.mul(_burnFee).div(10**2);
                    burnTokens(burntAmount);
                }
                swapTokensForEth(contractTokenBalance - burntAmount);
                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)) {
                    _buyMap[to] = block.timestamp;
                    _redisFee = _redisFeeOnBuy;
                    _taxFee = _taxFeeOnBuy;
                    // antibot
                    if (block.timestamp == launchTime) {
                        _isSniper[to] = true;
                        _confirmedSnipers.push(to);
                    }
            }
    
            // Set Fee for Sells
            // TAX SELLERS 25% WHO SELL WITHIN 48 HOURS (13% development + 12% holders redistribution)
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (_buyMap[from] != 0 && (_buyMap[from] + timeJeets >= block.timestamp)) {
                    _redisFee = _redisFeeJeets;
                    _taxFee = _taxFeeJeets;
                } else {
                    _redisFee = _redisFeeOnSell;
                    _taxFee = _taxFeeOnSell;
                }
            }
        }

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

    function burnTokens(uint256 burntAmount) private {
        _transfer(address(this), deadAddress, burntAmount);
    }

    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
        );
    }
    
    // Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) external {
        require(_msgSender() == _developmentAddress);
        _swapTokensAtAmount = swapTokensAtAmount;
    }

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

    // Set trading on/off
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
        launchTime = block.timestamp;
    }

    function manualswap(uint256 amount) external {
        require(_msgSender() == _developmentAddress);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function addSniper(address sniper) external {
        require(_msgSender() == _developmentAddress);
        _isSniper[sniper] = true;
        _confirmedSnipers.push(sniper);
    }

    function isSniper(address sniper) external view returns (bool){
        return _isSniper[sniper];
    }

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

    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 toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    function setMaxTxnAmount(uint256 maxTxAmount) external {
        require(_msgSender() == _developmentAddress);
        require(maxTxAmount >= 1e9 * 10**9, "Maximum transaction amount must be greater than 0.1%");
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) external {
        require(_msgSender() == _developmentAddress);
        _maxWalletSize = maxWalletSize;
    }

    function setTaxFee(uint256 amountBuy, uint256 amountSell) external {
        require(_msgSender() == _developmentAddress);
        require(amountBuy >= 0 && amountBuy <= 30);
        require(amountSell >= 0 && amountSell <= 30);
        _taxFeeOnBuy = amountBuy;
        _taxFeeOnSell = amountSell;
    }

    function setJeetsFee(uint256 amountRedisJeets, uint256 amountTaxJeets) external {
        require(_msgSender() == _developmentAddress);
        require(amountRedisJeets >= 0 && amountRedisJeets <= 30);
        require(amountTaxJeets >= 0 && amountTaxJeets <= 30);
        _redisFeeJeets = amountRedisJeets;
        _taxFeeJeets = amountTaxJeets;
    }
    
    function setBurnFee(uint256 amount) external {
        require(_msgSender() == _developmentAddress);
        require(amount >= 0 && amount <= 30);
        _burnFee = amount;
    }

     function setTimeJeets(uint256 hoursTime) external {
        require(_msgSender() == _developmentAddress);
        require(hoursTime >= 0 && hoursTime <= 200);
        timeJeets = hoursTime * 1 hours;
    }

    function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external {
        require(_msgSender() == _developmentAddress);
        require(amountRefBuy >= 0 && amountRefBuy <= 30);
        require(amountRefSell >= 0 && amountRefSell <= 30);
        _redisFeeOnBuy = amountRefBuy;
        _redisFeeOnSell = amountRefSell;
    }
}

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":[],"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":"sniper","type":"address"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"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":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRedisJeets","type":"uint256"},{"internalType":"uint256","name":"amountTaxJeets","type":"uint256"}],"name":"setJeetsFee","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":[{"internalType":"uint256","name":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"hoursTime","type":"uint256"}],"name":"setTimeJeets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeJeets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"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"}]

6080604052683635c9adc5dea000006000196200001d9190620007de565b6000196200002c919062000765565b6007556005600c556014600d556002600e55600c600f556002601055600c601155601054601255601154601355600160145560125460155560135460165560145460175573df9a8e91522e26da8f9b3b063e055d98f6ab84f1601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c20601a556000601c60156101000a81548160ff0219169083151502179055506001601c60166101000a81548160ff021916908315150217905550678ac7230489e80000601d556801a055690d9db80000601e5564e8d4a51000601f553480156200013057600080fd5b506000620001436200067f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620001f86200067f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d757600080fd5b505afa158015620002ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003129190620006c7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037557600080fd5b505afa1580156200038a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b09190620006c7565b6040518363ffffffff1660e01b8152600401620003cf9291906200071b565b602060405180830381600087803b158015620003ea57600080fd5b505af1158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004259190620006c7565b601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660006200047b6200068760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006086200067f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea0000060405162000670919062000748565b60405180910390a35062000893565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006c18162000879565b92915050565b600060208284031215620006e057620006df62000874565b5b6000620006f084828501620006b0565b91505092915050565b6200070481620007a0565b82525050565b6200071581620007d4565b82525050565b6000604082019050620007326000830185620006f9565b620007416020830184620006f9565b9392505050565b60006020820190506200075f60008301846200070a565b92915050565b60006200077282620007d4565b91506200077f83620007d4565b92508282101562000795576200079462000816565b5b828203905092915050565b6000620007ad82620007b4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620007eb82620007d4565b9150620007f883620007d4565b9250826200080b576200080a62000845565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6200088481620007a0565b81146200089057600080fd5b50565b61420180620008a36000396000f3fe6080604052600436106102085760003560e01c806374010ece116101185780639ec350ed116100a0578063dd62ed3e1161006f578063dd62ed3e1461073c578063e0f9f6a014610779578063ea1644d5146107a2578063f2fde38b146107cb578063fe72c3c1146107f45761020f565b80639ec350ed14610682578063a9059cbb146106ab578063c04a5414146106e8578063c5528490146107135761020f565b80638da5cb5b116100e75780638da5cb5b146105af5780638f70ccf7146105da5780638f9a55c01461060357806395d89b411461062e57806398a5c315146106595761020f565b806374010ece14610507578063790ca413146105305780637d1db4a51461055b578063881dce60146105865761020f565b8063313ce5671161019b5780634bf2c7c91161016a5780634bf2c7c91461044a5780636d8aa8f8146104735780636fc3eaec1461049c57806370a08231146104b3578063715018a6146104f05761020f565b8063313ce567146103a257806338eea22d146103cd5780633e3e9598146103f657806349bd5a5e1461041f5761020f565b806318160ddd116101d757806318160ddd146102e457806323b872dd1461030f57806327c8f8351461034c5780632fd689e3146103775761020f565b806306fdde0314610214578063095ea7b31461023f5780630f3a325f1461027c5780631694505e146102b95761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961081f565b6040516102369190613794565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613321565b61085c565b604051610273919061375e565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190613234565b61087a565b6040516102b0919061375e565b60405180910390f35b3480156102c557600080fd5b506102ce6108d0565b6040516102db9190613779565b60405180910390f35b3480156102f057600080fd5b506102f96108f6565b60405161030691906139b6565b60405180910390f35b34801561031b57600080fd5b50610336600480360381019061033191906132ce565b610907565b604051610343919061375e565b60405180910390f35b34801561035857600080fd5b506103616109e0565b60405161036e9190613743565b60405180910390f35b34801561038357600080fd5b5061038c6109e6565b60405161039991906139b6565b60405180910390f35b3480156103ae57600080fd5b506103b76109ec565b6040516103c49190613a2b565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef91906133bb565b6109f5565b005b34801561040257600080fd5b5061041d60048036038101906104189190613234565b610a9e565b005b34801561042b57600080fd5b50610434610bbd565b6040516104419190613743565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c919061338e565b610be3565b005b34801561047f57600080fd5b5061049a60048036038101906104959190613361565b610c69565b005b3480156104a857600080fd5b506104b1610d1b565b005b3480156104bf57600080fd5b506104da60048036038101906104d59190613234565b610d8d565b6040516104e791906139b6565b60405180910390f35b3480156104fc57600080fd5b50610505610dde565b005b34801561051357600080fd5b5061052e6004803603810190610529919061338e565b610f31565b005b34801561053c57600080fd5b50610545610fe7565b60405161055291906139b6565b60405180910390f35b34801561056757600080fd5b50610570610fed565b60405161057d91906139b6565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a8919061338e565b610ff3565b005b3480156105bb57600080fd5b506105c46110b7565b6040516105d19190613743565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190613361565b6110e0565b005b34801561060f57600080fd5b50610618611199565b60405161062591906139b6565b60405180910390f35b34801561063a57600080fd5b5061064361119f565b6040516106509190613794565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b919061338e565b6111dc565b005b34801561068e57600080fd5b506106a960048036038101906106a491906133bb565b611247565b005b3480156106b757600080fd5b506106d260048036038101906106cd9190613321565b6112f0565b6040516106df919061375e565b60405180910390f35b3480156106f457600080fd5b506106fd61130e565b60405161070a9190613743565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906133bb565b611338565b005b34801561074857600080fd5b50610763600480360381019061075e919061328e565b6113e1565b60405161077091906139b6565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b919061338e565b611468565b005b3480156107ae57600080fd5b506107c960048036038101906107c4919061338e565b6114fb565b005b3480156107d757600080fd5b506107f260048036038101906107ed9190613234565b611566565b005b34801561080057600080fd5b50610809611728565b60405161081691906139b6565b60405180910390f35b60606040518060400160405280600b81526020017f534849444f4b4920494e55000000000000000000000000000000000000000000815250905090565b600061087061086961172e565b8484611736565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610914848484611901565b6109d58461092061172e565b6109d0856040518060600160405280602881526020016141a460289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098661172e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b89092919063ffffffff16565b611736565b600190509392505050565b61dead81565b601f5481565b60006009905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a3661172e565b73ffffffffffffffffffffffffffffffffffffffff1614610a5657600080fd5b60008210158015610a685750601e8211155b610a7157600080fd5b60008110158015610a835750601e8111155b610a8c57600080fd5b81600e81905550806010819055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610adf61172e565b73ffffffffffffffffffffffffffffffffffffffff1614610aff57600080fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c2461172e565b73ffffffffffffffffffffffffffffffffffffffff1614610c4457600080fd5b60008110158015610c565750601e8111155b610c5f57600080fd5b8060148190555050565b610c7161172e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906138d6565b60405180910390fd5b80601c60166101000a81548160ff02191690831515021790555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d5c61172e565b73ffffffffffffffffffffffffffffffffffffffff1614610d7c57600080fd5b6000479050610d8a8161271c565b50565b6000610dd7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612788565b9050919050565b610de661172e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6a906138d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7261172e565b73ffffffffffffffffffffffffffffffffffffffff1614610f9257600080fd5b670de0b6b3a7640000811015610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490613896565b60405180910390fd5b80601d8190555050565b600b5481565b601d5481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103461172e565b73ffffffffffffffffffffffffffffffffffffffff161461105457600080fd5b61105d30610d8d565b811115801561106c5750600081115b6110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290613996565b60405180910390fd5b6110b4816127f6565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110e861172e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c906138d6565b60405180910390fd5b80601c60146101000a81548160ff02191690831515021790555042600b8190555050565b601e5481565b60606040518060400160405280600781526020017f534849444f4b4900000000000000000000000000000000000000000000000000815250905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661121d61172e565b73ffffffffffffffffffffffffffffffffffffffff161461123d57600080fd5b80601f8190555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128861172e565b73ffffffffffffffffffffffffffffffffffffffff16146112a857600080fd5b600082101580156112ba5750601e8211155b6112c357600080fd5b600081101580156112d55750601e8111155b6112de57600080fd5b81600c8190555080600d819055505050565b60006113046112fd61172e565b8484611901565b6001905092915050565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661137961172e565b73ffffffffffffffffffffffffffffffffffffffff161461139957600080fd5b600082101580156113ab5750601e8211155b6113b457600080fd5b600081101580156113c65750601e8111155b6113cf57600080fd5b81600f81905550806011819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a961172e565b73ffffffffffffffffffffffffffffffffffffffff16146114c957600080fd5b600081101580156114db575060c88111155b6114e457600080fd5b610e10816114f29190613b22565b601a8190555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661153c61172e565b73ffffffffffffffffffffffffffffffffffffffff161461155c57600080fd5b80601e8190555050565b61156e61172e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f2906138d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561166b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166290613836565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90613976565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d90613856565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118f491906139b6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196890613916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d8906137b6565b60405180910390fd5b60008111611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b906138f6565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa890613956565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3590613956565b60405180910390fd5b60096000611b4a61172e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc990613956565b60405180910390fd5b611bda6110b7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c485750611c186110b7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121f457601c60149054906101000a900460ff16611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c93906137d6565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611d475750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb4573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611db457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e0e5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e685750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb357601d54811115611eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea990613816565b60405180910390fd5b5b5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f605750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561202f57601e5481611fe484610d8d565b611fee9190613a9b565b1061202e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202590613936565b60405180910390fd5b5b600061203a30610d8d565b90506000601f548211905080801561205f5750601c60159054906101000a900460ff16155b80156120b95750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120d15750601c60169054906101000a900460ff165b80156121275750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561217d5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121f15760008060145411156121c2576121b660646121a860145486612a7e90919063ffffffff16565b612af990919063ffffffff16565b90506121c181612b43565b5b6121d681846121d19190613b7c565b6127f6565b600047905060008111156121ee576121ed4761271c565b5b50505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061229b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061234e5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561234d5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561235c57600090506126a6565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124075750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125295742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e54601281905550600f54601381905550600b54421415612528576001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156125d45750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126a5576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015612675575042601a54600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126729190613a9b565b10155b1561269157600c54601281905550600d546013819055506126a4565b6010546012819055506011546013819055505b5b5b6126b284848484612b53565b50505050565b6000838311158290612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f79190613794565b60405180910390fd5b506000838561270f9190613b7c565b9050809150509392505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612784573d6000803e3d6000fd5b5050565b60006007548211156127cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c6906137f6565b60405180910390fd5b60006127d9612b80565b90506127ee8184612af990919063ffffffff16565b915050919050565b6001601c60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561282e5761282d613d0d565b5b60405190808252806020026020018201604052801561285c5781602001602082028036833780820191505090505b509050308160008151811061287457612873613cde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561291657600080fd5b505afa15801561292a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294e9190613261565b8160018151811061296257612961613cde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129c930601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611736565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a2d9594939291906139d1565b600060405180830381600087803b158015612a4757600080fd5b505af1158015612a5b573d6000803e3d6000fd5b50505050506000601c60156101000a81548160ff02191690831515021790555050565b600080831415612a915760009050612af3565b60008284612a9f9190613b22565b9050828482612aae9190613af1565b14612aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae5906138b6565b60405180910390fd5b809150505b92915050565b6000612b3b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bab565b905092915050565b612b503061dead83611901565b50565b80612b6157612b60612c0e565b5b612b6c848484612c70565b80612b7a57612b79612e3b565b5b50505050565b6000806000612b8d612e58565b91509150612ba48183612af990919063ffffffff16565b9250505090565b60008083118290612bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be99190613794565b60405180910390fd5b5060008385612c019190613af1565b9050809150509392505050565b6000601254148015612c2257506000601354145b8015612c3057506000601454145b15612c3a57612c6e565b6012546015819055506013546016819055506014546017819055506000601281905550600060138190555060006014819055505b565b600080600080600080612c8287612eba565b955095509550955095509550612ce086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f2290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d7585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dc181612fca565b612dcb8483613087565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612e2891906139b6565b60405180910390a3505050505050505050565b601554601281905550601654601381905550601754601481905550565b600080600060075490506000683635c9adc5dea000009050612e8e683635c9adc5dea00000600754612af990919063ffffffff16565b821015612ead57600754683635c9adc5dea00000935093505050612eb6565b81819350935050505b9091565b6000806000806000806000806000612ed78a6012546013546130c1565b9250925092506000612ee7612b80565b90506000806000612efa8e878787613157565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612f6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126b8565b905092915050565b6000808284612f7b9190613a9b565b905083811015612fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb790613876565b60405180910390fd5b8091505092915050565b6000612fd4612b80565b90506000612feb8284612a7e90919063ffffffff16565b905061303f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61309c82600754612f2290919063ffffffff16565b6007819055506130b781600854612f6c90919063ffffffff16565b6008819055505050565b6000806000806130ed60646130df888a612a7e90919063ffffffff16565b612af990919063ffffffff16565b905060006131176064613109888b612a7e90919063ffffffff16565b612af990919063ffffffff16565b9050600061314082613132858c612f2290919063ffffffff16565b612f2290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806131708589612a7e90919063ffffffff16565b905060006131878689612a7e90919063ffffffff16565b9050600061319e8789612a7e90919063ffffffff16565b905060006131c7826131b98587612f2290919063ffffffff16565b612f2290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506131ef8161415e565b92915050565b6000815190506132048161415e565b92915050565b60008135905061321981614175565b92915050565b60008135905061322e8161418c565b92915050565b60006020828403121561324a57613249613d3c565b5b6000613258848285016131e0565b91505092915050565b60006020828403121561327757613276613d3c565b5b6000613285848285016131f5565b91505092915050565b600080604083850312156132a5576132a4613d3c565b5b60006132b3858286016131e0565b92505060206132c4858286016131e0565b9150509250929050565b6000806000606084860312156132e7576132e6613d3c565b5b60006132f5868287016131e0565b9350506020613306868287016131e0565b92505060406133178682870161321f565b9150509250925092565b6000806040838503121561333857613337613d3c565b5b6000613346858286016131e0565b92505060206133578582860161321f565b9150509250929050565b60006020828403121561337757613376613d3c565b5b60006133858482850161320a565b91505092915050565b6000602082840312156133a4576133a3613d3c565b5b60006133b28482850161321f565b91505092915050565b600080604083850312156133d2576133d1613d3c565b5b60006133e08582860161321f565b92505060206133f18582860161321f565b9150509250929050565b60006134078383613413565b60208301905092915050565b61341c81613bb0565b82525050565b61342b81613bb0565b82525050565b600061343c82613a56565b6134468185613a79565b935061345183613a46565b8060005b8381101561348257815161346988826133fb565b975061347483613a6c565b925050600181019050613455565b5085935050505092915050565b61349881613bc2565b82525050565b6134a781613c05565b82525050565b6134b681613c17565b82525050565b60006134c782613a61565b6134d18185613a8a565b93506134e1818560208601613c4d565b6134ea81613d41565b840191505092915050565b6000613502602383613a8a565b915061350d82613d52565b604082019050919050565b6000613525601883613a8a565b915061353082613da1565b602082019050919050565b6000613548602a83613a8a565b915061355382613dca565b604082019050919050565b600061356b601c83613a8a565b915061357682613e19565b602082019050919050565b600061358e602683613a8a565b915061359982613e42565b604082019050919050565b60006135b1602283613a8a565b91506135bc82613e91565b604082019050919050565b60006135d4601b83613a8a565b91506135df82613ee0565b602082019050919050565b60006135f7603483613a8a565b915061360282613f09565b604082019050919050565b600061361a602183613a8a565b915061362582613f58565b604082019050919050565b600061363d602083613a8a565b915061364882613fa7565b602082019050919050565b6000613660602983613a8a565b915061366b82613fd0565b604082019050919050565b6000613683602583613a8a565b915061368e8261401f565b604082019050919050565b60006136a6602383613a8a565b91506136b18261406e565b604082019050919050565b60006136c9600d83613a8a565b91506136d4826140bd565b602082019050919050565b60006136ec602483613a8a565b91506136f7826140e6565b604082019050919050565b600061370f600c83613a8a565b915061371a82614135565b602082019050919050565b61372e81613bee565b82525050565b61373d81613bf8565b82525050565b60006020820190506137586000830184613422565b92915050565b6000602082019050613773600083018461348f565b92915050565b600060208201905061378e600083018461349e565b92915050565b600060208201905081810360008301526137ae81846134bc565b905092915050565b600060208201905081810360008301526137cf816134f5565b9050919050565b600060208201905081810360008301526137ef81613518565b9050919050565b6000602082019050818103600083015261380f8161353b565b9050919050565b6000602082019050818103600083015261382f8161355e565b9050919050565b6000602082019050818103600083015261384f81613581565b9050919050565b6000602082019050818103600083015261386f816135a4565b9050919050565b6000602082019050818103600083015261388f816135c7565b9050919050565b600060208201905081810360008301526138af816135ea565b9050919050565b600060208201905081810360008301526138cf8161360d565b9050919050565b600060208201905081810360008301526138ef81613630565b9050919050565b6000602082019050818103600083015261390f81613653565b9050919050565b6000602082019050818103600083015261392f81613676565b9050919050565b6000602082019050818103600083015261394f81613699565b9050919050565b6000602082019050818103600083015261396f816136bc565b9050919050565b6000602082019050818103600083015261398f816136df565b9050919050565b600060208201905081810360008301526139af81613702565b9050919050565b60006020820190506139cb6000830184613725565b92915050565b600060a0820190506139e66000830188613725565b6139f360208301876134ad565b8181036040830152613a058186613431565b9050613a146060830185613422565b613a216080830184613725565b9695505050505050565b6000602082019050613a406000830184613734565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613aa682613bee565b9150613ab183613bee565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ae657613ae5613c80565b5b828201905092915050565b6000613afc82613bee565b9150613b0783613bee565b925082613b1757613b16613caf565b5b828204905092915050565b6000613b2d82613bee565b9150613b3883613bee565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b7157613b70613c80565b5b828202905092915050565b6000613b8782613bee565b9150613b9283613bee565b925082821015613ba557613ba4613c80565b5b828203905092915050565b6000613bbb82613bce565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c1082613c29565b9050919050565b6000613c2282613bee565b9050919050565b6000613c3482613c3b565b9050919050565b6000613c4682613bce565b9050919050565b60005b83811015613c6b578082015181840152602081019050613c50565b83811115613c7a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d6178696d756d207472616e73616374696f6e20616d6f756e74206d7573742060008201527f62652067726561746572207468616e20302e3125000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53746f7020736e6970696e672100000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b61416781613bb0565b811461417257600080fd5b50565b61417e81613bc2565b811461418957600080fd5b50565b61419581613bee565b81146141a057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f6685dc1a9c4267f8eafd48342cff75d6473c6f38c809df1f55b59be2f71d8f664736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806374010ece116101185780639ec350ed116100a0578063dd62ed3e1161006f578063dd62ed3e1461073c578063e0f9f6a014610779578063ea1644d5146107a2578063f2fde38b146107cb578063fe72c3c1146107f45761020f565b80639ec350ed14610682578063a9059cbb146106ab578063c04a5414146106e8578063c5528490146107135761020f565b80638da5cb5b116100e75780638da5cb5b146105af5780638f70ccf7146105da5780638f9a55c01461060357806395d89b411461062e57806398a5c315146106595761020f565b806374010ece14610507578063790ca413146105305780637d1db4a51461055b578063881dce60146105865761020f565b8063313ce5671161019b5780634bf2c7c91161016a5780634bf2c7c91461044a5780636d8aa8f8146104735780636fc3eaec1461049c57806370a08231146104b3578063715018a6146104f05761020f565b8063313ce567146103a257806338eea22d146103cd5780633e3e9598146103f657806349bd5a5e1461041f5761020f565b806318160ddd116101d757806318160ddd146102e457806323b872dd1461030f57806327c8f8351461034c5780632fd689e3146103775761020f565b806306fdde0314610214578063095ea7b31461023f5780630f3a325f1461027c5780631694505e146102b95761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961081f565b6040516102369190613794565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190613321565b61085c565b604051610273919061375e565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190613234565b61087a565b6040516102b0919061375e565b60405180910390f35b3480156102c557600080fd5b506102ce6108d0565b6040516102db9190613779565b60405180910390f35b3480156102f057600080fd5b506102f96108f6565b60405161030691906139b6565b60405180910390f35b34801561031b57600080fd5b50610336600480360381019061033191906132ce565b610907565b604051610343919061375e565b60405180910390f35b34801561035857600080fd5b506103616109e0565b60405161036e9190613743565b60405180910390f35b34801561038357600080fd5b5061038c6109e6565b60405161039991906139b6565b60405180910390f35b3480156103ae57600080fd5b506103b76109ec565b6040516103c49190613a2b565b60405180910390f35b3480156103d957600080fd5b506103f460048036038101906103ef91906133bb565b6109f5565b005b34801561040257600080fd5b5061041d60048036038101906104189190613234565b610a9e565b005b34801561042b57600080fd5b50610434610bbd565b6040516104419190613743565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c919061338e565b610be3565b005b34801561047f57600080fd5b5061049a60048036038101906104959190613361565b610c69565b005b3480156104a857600080fd5b506104b1610d1b565b005b3480156104bf57600080fd5b506104da60048036038101906104d59190613234565b610d8d565b6040516104e791906139b6565b60405180910390f35b3480156104fc57600080fd5b50610505610dde565b005b34801561051357600080fd5b5061052e6004803603810190610529919061338e565b610f31565b005b34801561053c57600080fd5b50610545610fe7565b60405161055291906139b6565b60405180910390f35b34801561056757600080fd5b50610570610fed565b60405161057d91906139b6565b60405180910390f35b34801561059257600080fd5b506105ad60048036038101906105a8919061338e565b610ff3565b005b3480156105bb57600080fd5b506105c46110b7565b6040516105d19190613743565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190613361565b6110e0565b005b34801561060f57600080fd5b50610618611199565b60405161062591906139b6565b60405180910390f35b34801561063a57600080fd5b5061064361119f565b6040516106509190613794565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b919061338e565b6111dc565b005b34801561068e57600080fd5b506106a960048036038101906106a491906133bb565b611247565b005b3480156106b757600080fd5b506106d260048036038101906106cd9190613321565b6112f0565b6040516106df919061375e565b60405180910390f35b3480156106f457600080fd5b506106fd61130e565b60405161070a9190613743565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906133bb565b611338565b005b34801561074857600080fd5b50610763600480360381019061075e919061328e565b6113e1565b60405161077091906139b6565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b919061338e565b611468565b005b3480156107ae57600080fd5b506107c960048036038101906107c4919061338e565b6114fb565b005b3480156107d757600080fd5b506107f260048036038101906107ed9190613234565b611566565b005b34801561080057600080fd5b50610809611728565b60405161081691906139b6565b60405180910390f35b60606040518060400160405280600b81526020017f534849444f4b4920494e55000000000000000000000000000000000000000000815250905090565b600061087061086961172e565b8484611736565b6001905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610914848484611901565b6109d58461092061172e565b6109d0856040518060600160405280602881526020016141a460289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098661172e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b89092919063ffffffff16565b611736565b600190509392505050565b61dead81565b601f5481565b60006009905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a3661172e565b73ffffffffffffffffffffffffffffffffffffffff1614610a5657600080fd5b60008210158015610a685750601e8211155b610a7157600080fd5b60008110158015610a835750601e8111155b610a8c57600080fd5b81600e81905550806010819055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610adf61172e565b73ffffffffffffffffffffffffffffffffffffffff1614610aff57600080fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c2461172e565b73ffffffffffffffffffffffffffffffffffffffff1614610c4457600080fd5b60008110158015610c565750601e8111155b610c5f57600080fd5b8060148190555050565b610c7161172e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906138d6565b60405180910390fd5b80601c60166101000a81548160ff02191690831515021790555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d5c61172e565b73ffffffffffffffffffffffffffffffffffffffff1614610d7c57600080fd5b6000479050610d8a8161271c565b50565b6000610dd7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612788565b9050919050565b610de661172e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6a906138d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7261172e565b73ffffffffffffffffffffffffffffffffffffffff1614610f9257600080fd5b670de0b6b3a7640000811015610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490613896565b60405180910390fd5b80601d8190555050565b600b5481565b601d5481565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103461172e565b73ffffffffffffffffffffffffffffffffffffffff161461105457600080fd5b61105d30610d8d565b811115801561106c5750600081115b6110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290613996565b60405180910390fd5b6110b4816127f6565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110e861172e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c906138d6565b60405180910390fd5b80601c60146101000a81548160ff02191690831515021790555042600b8190555050565b601e5481565b60606040518060400160405280600781526020017f534849444f4b4900000000000000000000000000000000000000000000000000815250905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661121d61172e565b73ffffffffffffffffffffffffffffffffffffffff161461123d57600080fd5b80601f8190555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128861172e565b73ffffffffffffffffffffffffffffffffffffffff16146112a857600080fd5b600082101580156112ba5750601e8211155b6112c357600080fd5b600081101580156112d55750601e8111155b6112de57600080fd5b81600c8190555080600d819055505050565b60006113046112fd61172e565b8484611901565b6001905092915050565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661137961172e565b73ffffffffffffffffffffffffffffffffffffffff161461139957600080fd5b600082101580156113ab5750601e8211155b6113b457600080fd5b600081101580156113c65750601e8111155b6113cf57600080fd5b81600f81905550806011819055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114a961172e565b73ffffffffffffffffffffffffffffffffffffffff16146114c957600080fd5b600081101580156114db575060c88111155b6114e457600080fd5b610e10816114f29190613b22565b601a8190555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661153c61172e565b73ffffffffffffffffffffffffffffffffffffffff161461155c57600080fd5b80601e8190555050565b61156e61172e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f2906138d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561166b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166290613836565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90613976565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d90613856565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118f491906139b6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196890613916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d8906137b6565b60405180910390fd5b60008111611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b906138f6565b60405180910390fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa890613956565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3590613956565b60405180910390fd5b60096000611b4a61172e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc990613956565b60405180910390fd5b611bda6110b7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c485750611c186110b7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156121f457601c60149054906101000a900460ff16611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c93906137d6565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611d475750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb4573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611db457503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e0e5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e685750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb357601d54811115611eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea990613816565b60405180910390fd5b5b5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611f605750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd2575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561202f57601e5481611fe484610d8d565b611fee9190613a9b565b1061202e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202590613936565b60405180910390fd5b5b600061203a30610d8d565b90506000601f548211905080801561205f5750601c60159054906101000a900460ff16155b80156120b95750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120d15750601c60169054906101000a900460ff165b80156121275750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561217d5750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121f15760008060145411156121c2576121b660646121a860145486612a7e90919063ffffffff16565b612af990919063ffffffff16565b90506121c181612b43565b5b6121d681846121d19190613b7c565b6127f6565b600047905060008111156121ee576121ed4761271c565b5b50505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061229b5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061234e5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561234d5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561235c57600090506126a6565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156124075750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125295742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e54601281905550600f54601381905550600b54421415612528576001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156125d45750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126a5576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015612675575042601a54600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126729190613a9b565b10155b1561269157600c54601281905550600d546013819055506126a4565b6010546012819055506011546013819055505b5b5b6126b284848484612b53565b50505050565b6000838311158290612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f79190613794565b60405180910390fd5b506000838561270f9190613b7c565b9050809150509392505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612784573d6000803e3d6000fd5b5050565b60006007548211156127cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c6906137f6565b60405180910390fd5b60006127d9612b80565b90506127ee8184612af990919063ffffffff16565b915050919050565b6001601c60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561282e5761282d613d0d565b5b60405190808252806020026020018201604052801561285c5781602001602082028036833780820191505090505b509050308160008151811061287457612873613cde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561291657600080fd5b505afa15801561292a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294e9190613261565b8160018151811061296257612961613cde565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129c930601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611736565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a2d9594939291906139d1565b600060405180830381600087803b158015612a4757600080fd5b505af1158015612a5b573d6000803e3d6000fd5b50505050506000601c60156101000a81548160ff02191690831515021790555050565b600080831415612a915760009050612af3565b60008284612a9f9190613b22565b9050828482612aae9190613af1565b14612aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae5906138b6565b60405180910390fd5b809150505b92915050565b6000612b3b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bab565b905092915050565b612b503061dead83611901565b50565b80612b6157612b60612c0e565b5b612b6c848484612c70565b80612b7a57612b79612e3b565b5b50505050565b6000806000612b8d612e58565b91509150612ba48183612af990919063ffffffff16565b9250505090565b60008083118290612bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be99190613794565b60405180910390fd5b5060008385612c019190613af1565b9050809150509392505050565b6000601254148015612c2257506000601354145b8015612c3057506000601454145b15612c3a57612c6e565b6012546015819055506013546016819055506014546017819055506000601281905550600060138190555060006014819055505b565b600080600080600080612c8287612eba565b955095509550955095509550612ce086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f2290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d7585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dc181612fca565b612dcb8483613087565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612e2891906139b6565b60405180910390a3505050505050505050565b601554601281905550601654601381905550601754601481905550565b600080600060075490506000683635c9adc5dea000009050612e8e683635c9adc5dea00000600754612af990919063ffffffff16565b821015612ead57600754683635c9adc5dea00000935093505050612eb6565b81819350935050505b9091565b6000806000806000806000806000612ed78a6012546013546130c1565b9250925092506000612ee7612b80565b90506000806000612efa8e878787613157565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612f6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126b8565b905092915050565b6000808284612f7b9190613a9b565b905083811015612fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fb790613876565b60405180910390fd5b8091505092915050565b6000612fd4612b80565b90506000612feb8284612a7e90919063ffffffff16565b905061303f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61309c82600754612f2290919063ffffffff16565b6007819055506130b781600854612f6c90919063ffffffff16565b6008819055505050565b6000806000806130ed60646130df888a612a7e90919063ffffffff16565b612af990919063ffffffff16565b905060006131176064613109888b612a7e90919063ffffffff16565b612af990919063ffffffff16565b9050600061314082613132858c612f2290919063ffffffff16565b612f2290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806131708589612a7e90919063ffffffff16565b905060006131878689612a7e90919063ffffffff16565b9050600061319e8789612a7e90919063ffffffff16565b905060006131c7826131b98587612f2290919063ffffffff16565b612f2290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506131ef8161415e565b92915050565b6000815190506132048161415e565b92915050565b60008135905061321981614175565b92915050565b60008135905061322e8161418c565b92915050565b60006020828403121561324a57613249613d3c565b5b6000613258848285016131e0565b91505092915050565b60006020828403121561327757613276613d3c565b5b6000613285848285016131f5565b91505092915050565b600080604083850312156132a5576132a4613d3c565b5b60006132b3858286016131e0565b92505060206132c4858286016131e0565b9150509250929050565b6000806000606084860312156132e7576132e6613d3c565b5b60006132f5868287016131e0565b9350506020613306868287016131e0565b92505060406133178682870161321f565b9150509250925092565b6000806040838503121561333857613337613d3c565b5b6000613346858286016131e0565b92505060206133578582860161321f565b9150509250929050565b60006020828403121561337757613376613d3c565b5b60006133858482850161320a565b91505092915050565b6000602082840312156133a4576133a3613d3c565b5b60006133b28482850161321f565b91505092915050565b600080604083850312156133d2576133d1613d3c565b5b60006133e08582860161321f565b92505060206133f18582860161321f565b9150509250929050565b60006134078383613413565b60208301905092915050565b61341c81613bb0565b82525050565b61342b81613bb0565b82525050565b600061343c82613a56565b6134468185613a79565b935061345183613a46565b8060005b8381101561348257815161346988826133fb565b975061347483613a6c565b925050600181019050613455565b5085935050505092915050565b61349881613bc2565b82525050565b6134a781613c05565b82525050565b6134b681613c17565b82525050565b60006134c782613a61565b6134d18185613a8a565b93506134e1818560208601613c4d565b6134ea81613d41565b840191505092915050565b6000613502602383613a8a565b915061350d82613d52565b604082019050919050565b6000613525601883613a8a565b915061353082613da1565b602082019050919050565b6000613548602a83613a8a565b915061355382613dca565b604082019050919050565b600061356b601c83613a8a565b915061357682613e19565b602082019050919050565b600061358e602683613a8a565b915061359982613e42565b604082019050919050565b60006135b1602283613a8a565b91506135bc82613e91565b604082019050919050565b60006135d4601b83613a8a565b91506135df82613ee0565b602082019050919050565b60006135f7603483613a8a565b915061360282613f09565b604082019050919050565b600061361a602183613a8a565b915061362582613f58565b604082019050919050565b600061363d602083613a8a565b915061364882613fa7565b602082019050919050565b6000613660602983613a8a565b915061366b82613fd0565b604082019050919050565b6000613683602583613a8a565b915061368e8261401f565b604082019050919050565b60006136a6602383613a8a565b91506136b18261406e565b604082019050919050565b60006136c9600d83613a8a565b91506136d4826140bd565b602082019050919050565b60006136ec602483613a8a565b91506136f7826140e6565b604082019050919050565b600061370f600c83613a8a565b915061371a82614135565b602082019050919050565b61372e81613bee565b82525050565b61373d81613bf8565b82525050565b60006020820190506137586000830184613422565b92915050565b6000602082019050613773600083018461348f565b92915050565b600060208201905061378e600083018461349e565b92915050565b600060208201905081810360008301526137ae81846134bc565b905092915050565b600060208201905081810360008301526137cf816134f5565b9050919050565b600060208201905081810360008301526137ef81613518565b9050919050565b6000602082019050818103600083015261380f8161353b565b9050919050565b6000602082019050818103600083015261382f8161355e565b9050919050565b6000602082019050818103600083015261384f81613581565b9050919050565b6000602082019050818103600083015261386f816135a4565b9050919050565b6000602082019050818103600083015261388f816135c7565b9050919050565b600060208201905081810360008301526138af816135ea565b9050919050565b600060208201905081810360008301526138cf8161360d565b9050919050565b600060208201905081810360008301526138ef81613630565b9050919050565b6000602082019050818103600083015261390f81613653565b9050919050565b6000602082019050818103600083015261392f81613676565b9050919050565b6000602082019050818103600083015261394f81613699565b9050919050565b6000602082019050818103600083015261396f816136bc565b9050919050565b6000602082019050818103600083015261398f816136df565b9050919050565b600060208201905081810360008301526139af81613702565b9050919050565b60006020820190506139cb6000830184613725565b92915050565b600060a0820190506139e66000830188613725565b6139f360208301876134ad565b8181036040830152613a058186613431565b9050613a146060830185613422565b613a216080830184613725565b9695505050505050565b6000602082019050613a406000830184613734565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613aa682613bee565b9150613ab183613bee565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ae657613ae5613c80565b5b828201905092915050565b6000613afc82613bee565b9150613b0783613bee565b925082613b1757613b16613caf565b5b828204905092915050565b6000613b2d82613bee565b9150613b3883613bee565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b7157613b70613c80565b5b828202905092915050565b6000613b8782613bee565b9150613b9283613bee565b925082821015613ba557613ba4613c80565b5b828203905092915050565b6000613bbb82613bce565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c1082613c29565b9050919050565b6000613c2282613bee565b9050919050565b6000613c3482613c3b565b9050919050565b6000613c4682613bce565b9050919050565b60005b83811015613c6b578082015181840152602081019050613c50565b83811115613c7a576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4d6178696d756d207472616e73616374696f6e20616d6f756e74206d7573742060008201527f62652067726561746572207468616e20302e3125000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53746f7020736e6970696e672100000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b61416781613bb0565b811461417257600080fd5b50565b61417e81613bc2565b811461418957600080fd5b50565b61419581613bee565b81146141a057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f6685dc1a9c4267f8eafd48342cff75d6473c6f38c809df1f55b59be2f71d8f664736f6c63430008070033

Deployed Bytecode Sourcemap

4078:16591:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7023:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8060:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14941:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5833:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7300:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8261:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5703:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6155:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7209:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20328:338;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14750:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5881:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19919:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18680:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15054:198;;;;;;;;;;;;;:::i;:::-;;7403:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1557:148;;;;;;;;;;;;;:::i;:::-;;18793:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4884:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6031:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14515:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1343:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14367:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6099:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7114:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14037:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19550:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7661:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7549:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19232:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7868:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20111:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19062:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1717:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5792:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7023:83;7060:13;7093:5;;;;;;;;;;;;;;;;;7086:12;;7023:83;:::o;8060:193::-;8162:4;8184:39;8193:12;:10;:12::i;:::-;8207:7;8216:6;8184:8;:39::i;:::-;8241:4;8234:11;;8060:193;;;;:::o;14941:105::-;14998:4;15021:9;:17;15031:6;15021:17;;;;;;;;;;;;;;;;;;;;;;;;;15014:24;;14941:105;;;:::o;5833:41::-;;;;;;;;;;;;;:::o;7300:95::-;7353:7;4685:12;7373:14;;7300:95;:::o;8261:446::-;8393:4;8410:36;8420:6;8428:9;8439:6;8410:9;:36::i;:::-;8457:220;8480:6;8501:12;:10;:12::i;:::-;8528:138;8584:6;8528:138;;;;;;;;;;;;;;;;;:11;:19;8540:6;8528:19;;;;;;;;;;;;;;;:33;8548:12;:10;:12::i;:::-;8528:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8457:8;:220::i;:::-;8695:4;8688:11;;8261:446;;;;;:::o;5703:80::-;5741:42;5703:80;:::o;6155:49::-;;;;:::o;7209:83::-;7250:5;4308:1;7268:16;;7209:83;:::o;20328:338::-;20436:19;;;;;;;;;;;20420:35;;:12;:10;:12::i;:::-;:35;;;20412:44;;;;;;20491:1;20475:12;:17;;:39;;;;;20512:2;20496:12;:18;;20475:39;20467:48;;;;;;20551:1;20534:13;:18;;:41;;;;;20573:2;20556:13;:19;;20534:41;20526:50;;;;;;20604:12;20587:14;:29;;;;20645:13;20627:15;:31;;;;20328:338;;:::o;14750:183::-;14829:19;;;;;;;;;;;14813:35;;:12;:10;:12::i;:::-;:35;;;14805:44;;;;;;14880:4;14860:9;:17;14870:6;14860:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;14895:17;14918:6;14895:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14750:183;:::o;5881:28::-;;;;;;;;;;;;;:::o;19919:183::-;19999:19;;;;;;;;;;;19983:35;;:12;:10;:12::i;:::-;:35;;;19975:44;;;;;;20048:1;20038:6;:11;;:27;;;;;20063:2;20053:6;:12;;20038:27;20030:36;;;;;;20088:6;20077:8;:17;;;;19919:183;:::o;18680:101::-;1480:12;:10;:12::i;:::-;1470:22;;:6;;;;;;;;;;:22;;;1462:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18761:12:::1;18747:11;;:26;;;;;;;;;;;;;;;;;;18680:101:::0;:::o;15054:198::-;15120:19;;;;;;;;;;;15104:35;;:12;:10;:12::i;:::-;:35;;;15096:44;;;;;;15151:26;15180:21;15151:50;;15212:32;15225:18;15212:12;:32::i;:::-;15085:167;15054:198::o;7403:138::-;7469:7;7496:37;7516:7;:16;7524:7;7516:16;;;;;;;;;;;;;;;;7496:19;:37::i;:::-;7489:44;;7403:138;;;:::o;1557:148::-;1480:12;:10;:12::i;:::-;1470:22;;:6;;;;;;;;;;:22;;;1462:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1664:1:::1;1627:40;;1648:6;::::0;::::1;;;;;;;;1627:40;;;;;;;;;;;;1695:1;1678:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1557:148::o:0;18793:257::-;18883:19;;;;;;;;;;;18867:35;;:12;:10;:12::i;:::-;:35;;;18859:44;;;;;;18937:11;18922;:26;;18914:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;19031:11;19016:12;:26;;;;18793:257;:::o;4884:25::-;;;;:::o;6031:42::-;;;;:::o;14515:227::-;14595:19;;;;;;;;;;;14579:35;;:12;:10;:12::i;:::-;:35;;;14571:44;;;;;;14644:24;14662:4;14644:9;:24::i;:::-;14634:6;:34;;:48;;;;;14681:1;14672:6;:10;14634:48;14626:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14710:24;14727:6;14710:16;:24::i;:::-;14515:227;:::o;1343:79::-;1381:7;1408:6;;;;;;;;;;;1401:13;;1343:79;:::o;14367:140::-;1480:12;:10;:12::i;:::-;1470:22;;:6;;;;;;;;;;:22;;;1462:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14448:12:::1;14434:11;;:26;;;;;;;;;;;;;;;;;;14484:15;14471:10;:28;;;;14367:140:::0;:::o;6099:44::-;;;;:::o;7114:87::-;7153:13;7186:7;;;;;;;;;;;;;;;;;7179:14;;7114:87;:::o;14037:186::-;14144:19;;;;;;;;;;;14128:35;;:12;:10;:12::i;:::-;:35;;;14120:44;;;;;;14197:18;14175:19;:40;;;;14037:186;:::o;19550:357::-;19665:19;;;;;;;;;;;19649:35;;:12;:10;:12::i;:::-;:35;;;19641:44;;;;;;19724:1;19704:16;:21;;:47;;;;;19749:2;19729:16;:22;;19704:47;19696:56;;;;;;19789:1;19771:14;:19;;:43;;;;;19812:2;19794:14;:20;;19771:43;19763:52;;;;;;19843:16;19826:14;:33;;;;19885:14;19870:12;:29;;;;19550:357;;:::o;7661:199::-;7766:4;7788:42;7798:12;:10;:12::i;:::-;7812:9;7823:6;7788:9;:42::i;:::-;7848:4;7841:11;;7661:199;;;;:::o;7549:104::-;7599:7;7626:19;;;;;;;;;;;7619:26;;7549:104;:::o;19232:310::-;19334:19;;;;;;;;;;;19318:35;;:12;:10;:12::i;:::-;:35;;;19310:44;;;;;;19386:1;19373:9;:14;;:33;;;;;19404:2;19391:9;:15;;19373:33;19365:42;;;;;;19440:1;19426:10;:15;;:35;;;;;19459:2;19445:10;:16;;19426:35;19418:44;;;;;;19488:9;19473:12;:24;;;;19524:10;19508:13;:26;;;;19232:310;;:::o;7868:184::-;7985:7;8017:11;:18;8029:5;8017:18;;;;;;;;;;;;;;;:27;8036:7;8017:27;;;;;;;;;;;;;;;;8010:34;;7868:184;;;;:::o;20111:209::-;20196:19;;;;;;;;;;;20180:35;;:12;:10;:12::i;:::-;:35;;;20172:44;;;;;;20248:1;20235:9;:14;;:34;;;;;20266:3;20253:9;:16;;20235:34;20227:43;;;;;;20305:7;20293:9;:19;;;;:::i;:::-;20281:9;:31;;;;20111:209;:::o;19062:162::-;19155:19;;;;;;;;;;;19139:35;;:12;:10;:12::i;:::-;:35;;;19131:44;;;;;;19203:13;19186:14;:30;;;;19062:162;:::o;1717:244::-;1480:12;:10;:12::i;:::-;1470:22;;:6;;;;;;;;;;:22;;;1462:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1826:1:::1;1806:22;;:8;:22;;;;1798:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1916:8;1887:38;;1908:6;::::0;::::1;;;;;;;;1887:38;;;;;;;;;;;;1945:8;1936:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1717:244:::0;:::o;5792:34::-;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;9526:369::-;9670:1;9653:19;;:5;:19;;;;9645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9751:1;9732:21;;:7;:21;;;;9724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9833:6;9803:11;:18;9815:5;9803:18;;;;;;;;;;;;;;;:27;9822:7;9803:27;;;;;;;;;;;;;;;:36;;;;9871:7;9855:32;;9864:5;9855:32;;;9880:6;9855:32;;;;;;:::i;:::-;;;;;;;;9526:369;;;:::o;9903:3460::-;10041:1;10025:18;;:4;:18;;;;10017:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10118:1;10104:16;;:2;:16;;;;10096:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10188:1;10179:6;:10;10171:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10255:9;:13;10265:2;10255:13;;;;;;;;;;;;;;;;;;;;;;;;;10254:14;10246:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;10306:9;:15;10316:4;10306:15;;;;;;;;;;;;;;;;;;;;;;;;;10305:16;10297:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10359:9;:23;10369:12;:10;:12::i;:::-;10359:23;;;;;;;;;;;;;;;;;;;;;;;;;10358:24;10350:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10425:7;:5;:7::i;:::-;10417:15;;:4;:15;;;;:32;;;;;10442:7;:5;:7::i;:::-;10436:13;;:2;:13;;;;10417:32;10413:1596;;;10519:11;;;;;;;;;;;10514:99;;10551:34;;;;;;;;;;:::i;:::-;;;;;;;;10514:99;10651:13;;;;;;;;;;;10645:19;;:2;:19;;;:55;;;;;10684:15;;;;;;;;;;;10668:32;;:4;:32;;;;10645:55;10641:311;;;10739:4;10725:19;;:2;:19;;;;:44;;;;;10764:4;10748:21;;:4;:21;;;;10725:44;:73;;;;;10779:19;;;;;;;;;;;10773:25;;:2;:25;;;;10725:73;:104;;;;;10810:19;;;;;;;;;;;10802:27;;:4;:27;;;;10725:104;10721:216;;;10872:12;;10862:6;:22;;10854:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10721:216;10641:311;10978:13;;;;;;;;;;;10972:19;;:2;:19;;;;:48;;;;;11001:19;;;;;;;;;;;10995:25;;:2;:25;;;;10972:48;:71;;;;;11038:4;11024:19;;:2;:19;;;;10972:71;:92;;;;;5741:42;11047:17;;:2;:17;;;;10972:92;10968:220;;;11118:14;;11109:6;11093:13;11103:2;11093:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11085:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10968:220;11216:28;11247:24;11265:4;11247:9;:24::i;:::-;11216:55;;11286:12;11324:19;;11301:20;:42;11286:57;;11376:7;:18;;;;;11388:6;;;;;;;;;;;11387:7;11376:18;:43;;;;;11406:13;;;;;;;;;;;11398:21;;:4;:21;;;;11376:43;:58;;;;;11423:11;;;;;;;;;;;11376:58;:87;;;;;11439:18;:24;11458:4;11439:24;;;;;;;;;;;;;;;;;;;;;;;;;11438:25;11376:87;:114;;;;;11468:18;:22;11487:2;11468:22;;;;;;;;;;;;;;;;;;;;;;;;;11467:23;11376:114;11372:626;;;11511:19;11568:1;11557:8;;:12;11553:166;;;11608:45;11647:5;11608:34;11633:8;;11608:20;:24;;:34;;;;:::i;:::-;:38;;:45;;;;:::i;:::-;11594:59;;11676:23;11687:11;11676:10;:23::i;:::-;11553:166;11737:52;11777:11;11754:20;:34;;;;:::i;:::-;11737:16;:52::i;:::-;11808:26;11837:21;11808:50;;11902:1;11881:18;:22;11877:106;;;11928:35;11941:21;11928:12;:35::i;:::-;11877:106;11492:506;;11372:626;10451:1558;;10413:1596;12029:12;12044:4;12029:19;;12094:18;:24;12113:4;12094:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12122:18;:22;12141:2;12122:22;;;;;;;;;;;;;;;;;;;;;;;;;12094:50;12093:102;;;;12158:13;;;;;;;;;;;12150:21;;:4;:21;;;;:44;;;;;12181:13;;;;;;;;;;;12175:19;;:2;:19;;;;12150:44;12093:102;12089:1213;;;12222:5;12212:15;;12089:1213;;;12304:13;;;;;;;;;;;12296:21;;:4;:21;;;:55;;;;;12335:15;;;;;;;;;;;12321:30;;:2;:30;;;;12296:55;12293:435;;;12390:15;12376:7;:11;12384:2;12376:11;;;;;;;;;;;;;;;:29;;;;12440:14;;12428:9;:26;;;;12487:12;;12477:7;:22;;;;12577:10;;12558:15;:29;12554:159;;;12632:4;12616:9;:13;12626:2;12616:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12663:17;12686:2;12663:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12554:159;12293:435;12896:13;;;;;;;;;;;12890:19;;:2;:19;;;:55;;;;;12929:15;;;;;;;;;;;12913:32;;:4;:32;;;;12890:55;12886:405;;;12987:1;12970:7;:13;12978:4;12970:13;;;;;;;;;;;;;;;;:18;;:68;;;;;13022:15;13009:9;;12993:7;:13;13001:4;12993:13;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;12970:68;12966:310;;;13075:14;;13063:9;:26;;;;13122:12;;13112:7;:22;;;;12966:310;;;13195:15;;13183:9;:27;;;;13243:13;;13233:7;:23;;;;12966:310;12886:405;12089:1213;13314:41;13329:4;13335:2;13339:6;13347:7;13314:14;:41::i;:::-;10006:3357;9903:3460;;;:::o;2329:224::-;2449:7;2482:1;2477;:6;;2485:12;2469:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2509:9;2525:1;2521;:5;;;;:::i;:::-;2509:17;;2544:1;2537:8;;;2329:224;;;;;:::o;14231:101::-;14288:19;;;;;;;;;;;:28;;:36;14317:6;14288:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14231:101;:::o;8715:323::-;8810:7;8868;;8857;:18;;8835:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8956:19;8978:10;:8;:10::i;:::-;8956:32;;9006:24;9018:11;9006:7;:11;;:24;;;;:::i;:::-;8999:31;;;8715:323;;;:::o;13497:483::-;6308:4;6299:6;;:13;;;;;;;;;;;;;;;;;;13575:21:::1;13613:1;13599:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13575:40;;13644:4;13626;13631:1;13626:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13670:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13660:4;13665:1;13660:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13703:62;13720:4;13735:15;;;;;;;;;;;13753:11;13703:8;:62::i;:::-;13776:15;;;;;;;;;;;:66;;;13857:11;13883:1;13899:4;13926;13946:15;13776:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13564:416;6344:5:::0;6335:6;;:14;;;;;;;;;;;;;;;;;;13497:483;:::o;2561:246::-;2619:7;2648:1;2643;:6;2639:47;;;2673:1;2666:8;;;;2639:47;2696:9;2712:1;2708;:5;;;;:::i;:::-;2696:17;;2741:1;2736;2732;:5;;;;:::i;:::-;:10;2724:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2798:1;2791:8;;;2561:246;;;;;:::o;2815:132::-;2873:7;2900:39;2904:1;2907;2900:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2893:46;;2815:132;;;;:::o;13371:118::-;13431:50;13449:4;5741:42;13469:11;13431:9;:50::i;:::-;13371:118;:::o;15260:282::-;15416:7;15411:28;;15425:14;:12;:14::i;:::-;15411:28;15450:44;15468:6;15476:9;15487:6;15450:17;:44::i;:::-;15510:7;15505:29;;15519:15;:13;:15::i;:::-;15505:29;15260:282;;;;:::o;18235:166::-;18277:7;18298:15;18315;18334:19;:17;:19::i;:::-;18297:56;;;;18373:20;18385:7;18373;:11;;:20;;;;:::i;:::-;18366:27;;;;18235:166;:::o;2955:223::-;3075:7;3107:1;3103;:5;3110:12;3095:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3134:9;3150:1;3146;:5;;;;:::i;:::-;3134:17;;3169:1;3162:8;;;2955:223;;;;;:::o;9046:309::-;9106:1;9093:9;;:14;:30;;;;;9122:1;9111:7;;:12;9093:30;:47;;;;;9139:1;9127:8;;:13;9093:47;9089:60;;;9142:7;;9089:60;9185:9;;9165:17;:29;;;;9223:7;;9205:15;:25;;;;9260:8;;9241:16;:27;;;;9301:1;9289:9;:13;;;;9323:1;9313:7;:11;;;;9346:1;9335:8;:12;;;;9046:309;:::o;15550:610::-;15697:15;15727:23;15765:12;15792:23;15830:12;15857:13;15884:19;15895:7;15884:10;:19::i;:::-;15682:221;;;;;;;;;;;;15932:28;15952:7;15932;:15;15940:6;15932:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15914:7;:15;15922:6;15914:15;;;;;;;;;;;;;;;:46;;;;15992:39;16015:15;15992:7;:18;16000:9;15992:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15971:7;:18;15979:9;15971:18;;;;;;;;;;;;;;;:60;;;;16042:16;16052:5;16042:9;:16::i;:::-;16069:23;16081:4;16087;16069:11;:23::i;:::-;16125:9;16108:44;;16117:6;16108:44;;;16136:15;16108:44;;;;;;:::i;:::-;;;;;;;;15671:489;;;;;;15550:610;;;:::o;9363:155::-;9419:17;;9407:9;:29;;;;9457:15;;9447:7;:25;;;;9494:16;;9483:8;:27;;;;9363:155::o;18409:263::-;18460:7;18469;18489:15;18507:7;;18489:25;;18525:15;4685:12;18525:25;;18575:20;4685:12;18575:7;;:11;;:20;;;;:::i;:::-;18565:7;:30;18561:61;;;18605:7;;4685:12;18597:25;;;;;;;;18561:61;18647:7;18656;18639:25;;;;;;18409:263;;;:::o;16579:625::-;16679:7;16701;16723;16745;16767;16789;16825:23;16850:12;16864:13;16894:40;16906:7;16915:9;;16926:7;;16894:11;:40::i;:::-;16824:110;;;;;;16945:19;16967:10;:8;:10::i;:::-;16945:32;;16989:15;17006:23;17031:12;17060:46;17072:7;17081:4;17087:5;17094:11;17060;:46::i;:::-;16988:118;;;;;;17135:7;17144:15;17161:4;17167:15;17184:4;17190:5;17127:69;;;;;;;;;;;;;;;;;;;16579:625;;;;;;;:::o;2185:136::-;2243:7;2270:43;2274:1;2277;2270:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2263:50;;2185:136;;;;:::o;1998:179::-;2056:7;2076:9;2092:1;2088;:5;;;;:::i;:::-;2076:17;;2117:1;2112;:6;;2104:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2168:1;2161:8;;;1998:179;;;;:::o;16168:211::-;16221:19;16243:10;:8;:10::i;:::-;16221:32;;16264:13;16280:22;16290:11;16280:5;:9;;:22;;;;:::i;:::-;16264:38;;16338:33;16365:5;16338:7;:22;16354:4;16338:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16313:7;:22;16329:4;16313:22;;;;;;;;;;;;;;;:58;;;;16210:169;;16168:211;:::o;16387:147::-;16465:17;16477:4;16465:7;;:11;;:17;;;;:::i;:::-;16455:7;:27;;;;16506:20;16521:4;16506:10;;:14;;:20;;;;:::i;:::-;16493:10;:33;;;;16387:147;;:::o;17212:471::-;17381:7;17403;17425;17460:12;17475:30;17501:3;17475:21;17487:8;17475:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17460:45;;17516:13;17532:28;17556:3;17532:19;17544:6;17532:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17516:44;;17571:23;17597:28;17619:5;17597:17;17609:4;17597:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17571:54;;17646:15;17663:4;17669:5;17638:37;;;;;;;;;17212:471;;;;;;;:::o;17691:536::-;17885:7;17907;17929;17964:15;17982:24;17994:11;17982:7;:11;;:24;;;;:::i;:::-;17964:42;;18017:12;18032:21;18041:11;18032:4;:8;;:21;;;;:::i;:::-;18017:36;;18064:13;18080:22;18090:11;18080:5;:9;;:22;;;;:::i;:::-;18064:38;;18113:23;18139:28;18161:5;18139:17;18151:4;18139:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18113:54;;18188:7;18197:15;18214:4;18180:39;;;;;;;;;;17691:536;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:329::-;644:6;693:2;681:9;672:7;668:23;664:32;661:119;;;699:79;;:::i;:::-;661:119;819:1;844:53;889:7;880:6;869:9;865:22;844:53;:::i;:::-;834:63;;790:117;585:329;;;;:::o;920:351::-;990:6;1039:2;1027:9;1018:7;1014:23;1010:32;1007:119;;;1045:79;;:::i;:::-;1007:119;1165:1;1190:64;1246:7;1237:6;1226:9;1222:22;1190:64;:::i;:::-;1180:74;;1136:128;920:351;;;;:::o;1277:474::-;1345:6;1353;1402:2;1390:9;1381:7;1377:23;1373:32;1370:119;;;1408:79;;:::i;:::-;1370:119;1528:1;1553:53;1598:7;1589:6;1578:9;1574:22;1553:53;:::i;:::-;1543:63;;1499:117;1655:2;1681:53;1726:7;1717:6;1706:9;1702:22;1681:53;:::i;:::-;1671:63;;1626:118;1277:474;;;;;:::o;1757:619::-;1834:6;1842;1850;1899:2;1887:9;1878:7;1874:23;1870:32;1867:119;;;1905:79;;:::i;:::-;1867:119;2025:1;2050:53;2095:7;2086:6;2075:9;2071:22;2050:53;:::i;:::-;2040:63;;1996:117;2152:2;2178:53;2223:7;2214:6;2203:9;2199:22;2178:53;:::i;:::-;2168:63;;2123:118;2280:2;2306:53;2351:7;2342:6;2331:9;2327:22;2306:53;:::i;:::-;2296:63;;2251:118;1757:619;;;;;:::o;2382:474::-;2450:6;2458;2507:2;2495:9;2486:7;2482:23;2478:32;2475:119;;;2513:79;;:::i;:::-;2475:119;2633:1;2658:53;2703:7;2694:6;2683:9;2679:22;2658:53;:::i;:::-;2648:63;;2604:117;2760:2;2786:53;2831:7;2822:6;2811:9;2807:22;2786:53;:::i;:::-;2776:63;;2731:118;2382:474;;;;;:::o;2862:323::-;2918:6;2967:2;2955:9;2946:7;2942:23;2938:32;2935:119;;;2973:79;;:::i;:::-;2935:119;3093:1;3118:50;3160:7;3151:6;3140:9;3136:22;3118:50;:::i;:::-;3108:60;;3064:114;2862:323;;;;:::o;3191:329::-;3250:6;3299:2;3287:9;3278:7;3274:23;3270:32;3267:119;;;3305:79;;:::i;:::-;3267:119;3425:1;3450:53;3495:7;3486:6;3475:9;3471:22;3450:53;:::i;:::-;3440:63;;3396:117;3191:329;;;;:::o;3526:474::-;3594:6;3602;3651:2;3639:9;3630:7;3626:23;3622:32;3619:119;;;3657:79;;:::i;:::-;3619:119;3777:1;3802:53;3847:7;3838:6;3827:9;3823:22;3802:53;:::i;:::-;3792:63;;3748:117;3904:2;3930:53;3975:7;3966:6;3955:9;3951:22;3930:53;:::i;:::-;3920:63;;3875:118;3526:474;;;;;:::o;4006:179::-;4075:10;4096:46;4138:3;4130:6;4096:46;:::i;:::-;4174:4;4169:3;4165:14;4151:28;;4006:179;;;;:::o;4191:108::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4191:108;;:::o;4305:118::-;4392:24;4410:5;4392:24;:::i;:::-;4387:3;4380:37;4305:118;;:::o;4459:732::-;4578:3;4607:54;4655:5;4607:54;:::i;:::-;4677:86;4756:6;4751:3;4677:86;:::i;:::-;4670:93;;4787:56;4837:5;4787:56;:::i;:::-;4866:7;4897:1;4882:284;4907:6;4904:1;4901:13;4882:284;;;4983:6;4977:13;5010:63;5069:3;5054:13;5010:63;:::i;:::-;5003:70;;5096:60;5149:6;5096:60;:::i;:::-;5086:70;;4942:224;4929:1;4926;4922:9;4917:14;;4882:284;;;4886:14;5182:3;5175:10;;4583:608;;;4459:732;;;;:::o;5197:109::-;5278:21;5293:5;5278:21;:::i;:::-;5273:3;5266:34;5197:109;;:::o;5312:183::-;5425:63;5482:5;5425:63;:::i;:::-;5420:3;5413:76;5312:183;;:::o;5501:147::-;5596:45;5635:5;5596:45;:::i;:::-;5591:3;5584:58;5501:147;;:::o;5654:364::-;5742:3;5770:39;5803:5;5770:39;:::i;:::-;5825:71;5889:6;5884:3;5825:71;:::i;:::-;5818:78;;5905:52;5950:6;5945:3;5938:4;5931:5;5927:16;5905:52;:::i;:::-;5982:29;6004:6;5982:29;:::i;:::-;5977:3;5973:39;5966:46;;5746:272;5654:364;;;;:::o;6024:366::-;6166:3;6187:67;6251:2;6246:3;6187:67;:::i;:::-;6180:74;;6263:93;6352:3;6263:93;:::i;:::-;6381:2;6376:3;6372:12;6365:19;;6024:366;;;:::o;6396:::-;6538:3;6559:67;6623:2;6618:3;6559:67;:::i;:::-;6552:74;;6635:93;6724:3;6635:93;:::i;:::-;6753:2;6748:3;6744:12;6737:19;;6396:366;;;:::o;6768:::-;6910:3;6931:67;6995:2;6990:3;6931:67;:::i;:::-;6924:74;;7007:93;7096:3;7007:93;:::i;:::-;7125:2;7120:3;7116:12;7109:19;;6768:366;;;:::o;7140:::-;7282:3;7303:67;7367:2;7362:3;7303:67;:::i;:::-;7296:74;;7379:93;7468:3;7379:93;:::i;:::-;7497:2;7492:3;7488:12;7481:19;;7140:366;;;:::o;7512:::-;7654:3;7675:67;7739:2;7734:3;7675:67;:::i;:::-;7668:74;;7751:93;7840:3;7751:93;:::i;:::-;7869:2;7864:3;7860:12;7853:19;;7512:366;;;:::o;7884:::-;8026:3;8047:67;8111:2;8106:3;8047:67;:::i;:::-;8040:74;;8123:93;8212:3;8123:93;:::i;:::-;8241:2;8236:3;8232:12;8225:19;;7884:366;;;:::o;8256:::-;8398:3;8419:67;8483:2;8478:3;8419:67;:::i;:::-;8412:74;;8495:93;8584:3;8495:93;:::i;:::-;8613:2;8608:3;8604:12;8597:19;;8256:366;;;:::o;8628:::-;8770:3;8791:67;8855:2;8850:3;8791:67;:::i;:::-;8784:74;;8867:93;8956:3;8867:93;:::i;:::-;8985:2;8980:3;8976:12;8969:19;;8628:366;;;:::o;9000:::-;9142:3;9163:67;9227:2;9222:3;9163:67;:::i;:::-;9156:74;;9239:93;9328:3;9239:93;:::i;:::-;9357:2;9352:3;9348:12;9341:19;;9000:366;;;:::o;9372:::-;9514:3;9535:67;9599:2;9594:3;9535:67;:::i;:::-;9528:74;;9611:93;9700:3;9611:93;:::i;:::-;9729:2;9724:3;9720:12;9713:19;;9372:366;;;:::o;9744:::-;9886:3;9907:67;9971:2;9966:3;9907:67;:::i;:::-;9900:74;;9983:93;10072:3;9983:93;:::i;:::-;10101:2;10096:3;10092:12;10085:19;;9744:366;;;:::o;10116:::-;10258:3;10279:67;10343:2;10338:3;10279:67;:::i;:::-;10272:74;;10355:93;10444:3;10355:93;:::i;:::-;10473:2;10468:3;10464:12;10457:19;;10116:366;;;:::o;10488:::-;10630:3;10651:67;10715:2;10710:3;10651:67;:::i;:::-;10644:74;;10727:93;10816:3;10727:93;:::i;:::-;10845:2;10840:3;10836:12;10829:19;;10488:366;;;:::o;10860:::-;11002:3;11023:67;11087:2;11082:3;11023:67;:::i;:::-;11016:74;;11099:93;11188:3;11099:93;:::i;:::-;11217:2;11212:3;11208:12;11201:19;;10860:366;;;:::o;11232:::-;11374:3;11395:67;11459:2;11454:3;11395:67;:::i;:::-;11388:74;;11471:93;11560:3;11471:93;:::i;:::-;11589:2;11584:3;11580:12;11573:19;;11232:366;;;:::o;11604:::-;11746:3;11767:67;11831:2;11826:3;11767:67;:::i;:::-;11760:74;;11843:93;11932:3;11843:93;:::i;:::-;11961:2;11956:3;11952:12;11945:19;;11604:366;;;:::o;11976:118::-;12063:24;12081:5;12063:24;:::i;:::-;12058:3;12051:37;11976:118;;:::o;12100:112::-;12183:22;12199:5;12183:22;:::i;:::-;12178:3;12171:35;12100:112;;:::o;12218:222::-;12311:4;12349:2;12338:9;12334:18;12326:26;;12362:71;12430:1;12419:9;12415:17;12406:6;12362:71;:::i;:::-;12218:222;;;;:::o;12446:210::-;12533:4;12571:2;12560:9;12556:18;12548:26;;12584:65;12646:1;12635:9;12631:17;12622:6;12584:65;:::i;:::-;12446:210;;;;:::o;12662:274::-;12781:4;12819:2;12808:9;12804:18;12796:26;;12832:97;12926:1;12915:9;12911:17;12902:6;12832:97;:::i;:::-;12662:274;;;;:::o;12942:313::-;13055:4;13093:2;13082:9;13078:18;13070:26;;13142:9;13136:4;13132:20;13128:1;13117:9;13113:17;13106:47;13170:78;13243:4;13234:6;13170:78;:::i;:::-;13162:86;;12942:313;;;;:::o;13261:419::-;13427:4;13465:2;13454:9;13450:18;13442:26;;13514:9;13508:4;13504:20;13500:1;13489:9;13485:17;13478:47;13542:131;13668:4;13542:131;:::i;:::-;13534:139;;13261:419;;;:::o;13686:::-;13852:4;13890:2;13879:9;13875:18;13867:26;;13939:9;13933:4;13929:20;13925:1;13914:9;13910:17;13903:47;13967:131;14093:4;13967:131;:::i;:::-;13959:139;;13686:419;;;:::o;14111:::-;14277:4;14315:2;14304:9;14300:18;14292:26;;14364:9;14358:4;14354:20;14350:1;14339:9;14335:17;14328:47;14392:131;14518:4;14392:131;:::i;:::-;14384:139;;14111:419;;;:::o;14536:::-;14702:4;14740:2;14729:9;14725:18;14717:26;;14789:9;14783:4;14779:20;14775:1;14764:9;14760:17;14753:47;14817:131;14943:4;14817:131;:::i;:::-;14809:139;;14536:419;;;:::o;14961:::-;15127:4;15165:2;15154:9;15150:18;15142:26;;15214:9;15208:4;15204:20;15200:1;15189:9;15185:17;15178:47;15242:131;15368:4;15242:131;:::i;:::-;15234:139;;14961:419;;;:::o;15386:::-;15552:4;15590:2;15579:9;15575:18;15567:26;;15639:9;15633:4;15629:20;15625:1;15614:9;15610:17;15603:47;15667:131;15793:4;15667:131;:::i;:::-;15659:139;;15386:419;;;:::o;15811:::-;15977:4;16015:2;16004:9;16000:18;15992:26;;16064:9;16058:4;16054:20;16050:1;16039:9;16035:17;16028:47;16092:131;16218:4;16092:131;:::i;:::-;16084:139;;15811:419;;;:::o;16236:::-;16402:4;16440:2;16429:9;16425:18;16417:26;;16489:9;16483:4;16479:20;16475:1;16464:9;16460:17;16453:47;16517:131;16643:4;16517:131;:::i;:::-;16509:139;;16236:419;;;:::o;16661:::-;16827:4;16865:2;16854:9;16850:18;16842:26;;16914:9;16908:4;16904:20;16900:1;16889:9;16885:17;16878:47;16942:131;17068:4;16942:131;:::i;:::-;16934:139;;16661:419;;;:::o;17086:::-;17252:4;17290:2;17279:9;17275:18;17267:26;;17339:9;17333:4;17329:20;17325:1;17314:9;17310:17;17303:47;17367:131;17493:4;17367:131;:::i;:::-;17359:139;;17086:419;;;:::o;17511:::-;17677:4;17715:2;17704:9;17700:18;17692:26;;17764:9;17758:4;17754:20;17750:1;17739:9;17735:17;17728:47;17792:131;17918:4;17792:131;:::i;:::-;17784:139;;17511:419;;;:::o;17936:::-;18102:4;18140:2;18129:9;18125:18;18117:26;;18189:9;18183:4;18179:20;18175:1;18164:9;18160:17;18153:47;18217:131;18343:4;18217:131;:::i;:::-;18209:139;;17936:419;;;:::o;18361:::-;18527:4;18565:2;18554:9;18550:18;18542:26;;18614:9;18608:4;18604:20;18600:1;18589:9;18585:17;18578:47;18642:131;18768:4;18642:131;:::i;:::-;18634:139;;18361:419;;;:::o;18786:::-;18952:4;18990:2;18979:9;18975:18;18967:26;;19039:9;19033:4;19029:20;19025:1;19014:9;19010:17;19003:47;19067:131;19193:4;19067:131;:::i;:::-;19059:139;;18786:419;;;:::o;19211:::-;19377:4;19415:2;19404:9;19400:18;19392:26;;19464:9;19458:4;19454:20;19450:1;19439:9;19435:17;19428:47;19492:131;19618:4;19492:131;:::i;:::-;19484:139;;19211:419;;;:::o;19636:::-;19802:4;19840:2;19829:9;19825:18;19817:26;;19889:9;19883:4;19879:20;19875:1;19864:9;19860:17;19853:47;19917:131;20043:4;19917:131;:::i;:::-;19909:139;;19636:419;;;:::o;20061:222::-;20154:4;20192:2;20181:9;20177:18;20169:26;;20205:71;20273:1;20262:9;20258:17;20249:6;20205:71;:::i;:::-;20061:222;;;;:::o;20289:831::-;20552:4;20590:3;20579:9;20575:19;20567:27;;20604:71;20672:1;20661:9;20657:17;20648:6;20604:71;:::i;:::-;20685:80;20761:2;20750:9;20746:18;20737:6;20685:80;:::i;:::-;20812:9;20806:4;20802:20;20797:2;20786:9;20782:18;20775:48;20840:108;20943:4;20934:6;20840:108;:::i;:::-;20832:116;;20958:72;21026:2;21015:9;21011:18;21002:6;20958:72;:::i;:::-;21040:73;21108:3;21097:9;21093:19;21084:6;21040:73;:::i;:::-;20289:831;;;;;;;;:::o;21126:214::-;21215:4;21253:2;21242:9;21238:18;21230:26;;21266:67;21330:1;21319:9;21315:17;21306:6;21266:67;:::i;:::-;21126:214;;;;:::o;21427:132::-;21494:4;21517:3;21509:11;;21547:4;21542:3;21538:14;21530:22;;21427:132;;;:::o;21565:114::-;21632:6;21666:5;21660:12;21650:22;;21565:114;;;:::o;21685:99::-;21737:6;21771:5;21765:12;21755:22;;21685:99;;;:::o;21790:113::-;21860:4;21892;21887:3;21883:14;21875:22;;21790:113;;;:::o;21909:184::-;22008:11;22042:6;22037:3;22030:19;22082:4;22077:3;22073:14;22058:29;;21909:184;;;;:::o;22099:169::-;22183:11;22217:6;22212:3;22205:19;22257:4;22252:3;22248:14;22233:29;;22099:169;;;;:::o;22274:305::-;22314:3;22333:20;22351:1;22333:20;:::i;:::-;22328:25;;22367:20;22385:1;22367:20;:::i;:::-;22362:25;;22521:1;22453:66;22449:74;22446:1;22443:81;22440:107;;;22527:18;;:::i;:::-;22440:107;22571:1;22568;22564:9;22557:16;;22274:305;;;;:::o;22585:185::-;22625:1;22642:20;22660:1;22642:20;:::i;:::-;22637:25;;22676:20;22694:1;22676:20;:::i;:::-;22671:25;;22715:1;22705:35;;22720:18;;:::i;:::-;22705:35;22762:1;22759;22755:9;22750:14;;22585:185;;;;:::o;22776:348::-;22816:7;22839:20;22857:1;22839:20;:::i;:::-;22834:25;;22873:20;22891:1;22873:20;:::i;:::-;22868:25;;23061:1;22993:66;22989:74;22986:1;22983:81;22978:1;22971:9;22964:17;22960:105;22957:131;;;23068:18;;:::i;:::-;22957:131;23116:1;23113;23109:9;23098:20;;22776:348;;;;:::o;23130:191::-;23170:4;23190:20;23208:1;23190:20;:::i;:::-;23185:25;;23224:20;23242:1;23224:20;:::i;:::-;23219:25;;23263:1;23260;23257:8;23254:34;;;23268:18;;:::i;:::-;23254:34;23313:1;23310;23306:9;23298:17;;23130:191;;;;:::o;23327:96::-;23364:7;23393:24;23411:5;23393:24;:::i;:::-;23382:35;;23327:96;;;:::o;23429:90::-;23463:7;23506:5;23499:13;23492:21;23481:32;;23429:90;;;:::o;23525:126::-;23562:7;23602:42;23595:5;23591:54;23580:65;;23525:126;;;:::o;23657:77::-;23694:7;23723:5;23712:16;;23657:77;;;:::o;23740:86::-;23775:7;23815:4;23808:5;23804:16;23793:27;;23740:86;;;:::o;23832:152::-;23908:9;23941:37;23972:5;23941:37;:::i;:::-;23928:50;;23832:152;;;:::o;23990:121::-;24048:9;24081:24;24099:5;24081:24;:::i;:::-;24068:37;;23990:121;;;:::o;24117:126::-;24167:9;24200:37;24231:5;24200:37;:::i;:::-;24187:50;;24117:126;;;:::o;24249:113::-;24299:9;24332:24;24350:5;24332:24;:::i;:::-;24319:37;;24249:113;;;:::o;24368:307::-;24436:1;24446:113;24460:6;24457:1;24454:13;24446:113;;;24545:1;24540:3;24536:11;24530:18;24526:1;24521:3;24517:11;24510:39;24482:2;24479:1;24475:10;24470:15;;24446:113;;;24577:6;24574:1;24571:13;24568:101;;;24657:1;24648:6;24643:3;24639:16;24632:27;24568:101;24417:258;24368:307;;;:::o;24681:180::-;24729:77;24726:1;24719:88;24826:4;24823:1;24816:15;24850:4;24847:1;24840:15;24867:180;24915:77;24912:1;24905:88;25012:4;25009:1;25002:15;25036:4;25033:1;25026:15;25053:180;25101:77;25098:1;25091:88;25198:4;25195:1;25188:15;25222:4;25219:1;25212:15;25239:180;25287:77;25284:1;25277:88;25384:4;25381:1;25374:15;25408:4;25405:1;25398:15;25548:117;25657:1;25654;25647:12;25671:102;25712:6;25763:2;25759:7;25754:2;25747:5;25743:14;25739:28;25729:38;;25671:102;;;:::o;25779:222::-;25919:34;25915:1;25907:6;25903:14;25896:58;25988:5;25983:2;25975:6;25971:15;25964:30;25779:222;:::o;26007:174::-;26147:26;26143:1;26135:6;26131:14;26124:50;26007:174;:::o;26187:229::-;26327:34;26323:1;26315:6;26311:14;26304:58;26396:12;26391:2;26383:6;26379:15;26372:37;26187:229;:::o;26422:178::-;26562:30;26558:1;26550:6;26546:14;26539:54;26422:178;:::o;26606:225::-;26746:34;26742:1;26734:6;26730:14;26723:58;26815:8;26810:2;26802:6;26798:15;26791:33;26606:225;:::o;26837:221::-;26977:34;26973:1;26965:6;26961:14;26954:58;27046:4;27041:2;27033:6;27029:15;27022:29;26837:221;:::o;27064:177::-;27204:29;27200:1;27192:6;27188:14;27181:53;27064:177;:::o;27247:239::-;27387:34;27383:1;27375:6;27371:14;27364:58;27456:22;27451:2;27443:6;27439:15;27432:47;27247:239;:::o;27492:220::-;27632:34;27628:1;27620:6;27616:14;27609:58;27701:3;27696:2;27688:6;27684:15;27677:28;27492:220;:::o;27718:182::-;27858:34;27854:1;27846:6;27842:14;27835:58;27718:182;:::o;27906:228::-;28046:34;28042:1;28034:6;28030:14;28023:58;28115:11;28110:2;28102:6;28098:15;28091:36;27906:228;:::o;28140:224::-;28280:34;28276:1;28268:6;28264:14;28257:58;28349:7;28344:2;28336:6;28332:15;28325:32;28140:224;:::o;28370:222::-;28510:34;28506:1;28498:6;28494:14;28487:58;28579:5;28574:2;28566:6;28562:15;28555:30;28370:222;:::o;28598:163::-;28738:15;28734:1;28726:6;28722:14;28715:39;28598:163;:::o;28767:223::-;28907:34;28903:1;28895:6;28891:14;28884:58;28976:6;28971:2;28963:6;28959:15;28952:31;28767:223;:::o;28996:162::-;29136:14;29132:1;29124:6;29120:14;29113:38;28996:162;:::o;29164:122::-;29237:24;29255:5;29237:24;:::i;:::-;29230:5;29227:35;29217:63;;29276:1;29273;29266:12;29217:63;29164:122;:::o;29292:116::-;29362:21;29377:5;29362:21;:::i;:::-;29355:5;29352:32;29342:60;;29398:1;29395;29388:12;29342:60;29292:116;:::o;29414:122::-;29487:24;29505:5;29487:24;:::i;:::-;29480:5;29477:35;29467:63;;29526:1;29523;29516:12;29467:63;29414:122;:::o

Swarm Source

ipfs://f6685dc1a9c4267f8eafd48342cff75d6473c6f38c809df1f55b59be2f71d8f6

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.