ETH Price: $2,525.00 (+0.29%)

Contract

0xa9aF28497fb3dCFB313cf64F00391e96F4cf1755
 

Overview

ETH Balance

0.101632485455308017 ETH

Eth Value

$256.62 (@ $2,525.00/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve195356672024-03-28 23:02:47155 days ago1711666967IN
0xa9aF2849...6F4cf1755
0 ETH0.0008428933.95193815
Approve177019832023-07-15 23:21:59412 days ago1689463319IN
0xa9aF2849...6F4cf1755
0 ETH0.0003188512.84348283
Approve171140742023-04-24 5:29:11495 days ago1682314151IN
0xa9aF2849...6F4cf1755
0 ETH0.0011320645.6
Approve168893262023-03-23 9:23:11527 days ago1679563391IN
0xa9aF2849...6F4cf1755
0 ETH0.0003259313.12870761
Approve160757482022-11-29 12:48:23640 days ago1669726103IN
0xa9aF2849...6F4cf1755
0 ETH0.0007349115.6
Approve158778552022-11-01 21:26:59668 days ago1667338019IN
0xa9aF2849...6F4cf1755
0 ETH0.0002873611.57535516
Approve158648112022-10-31 1:39:23670 days ago1667180363IN
0xa9aF2849...6F4cf1755
0 ETH0.000345767.33953719
Approve158557022022-10-29 19:08:59671 days ago1667070539IN
0xa9aF2849...6F4cf1755
0 ETH0.0008479818
Approve158305412022-10-26 6:45:47675 days ago1666766747IN
0xa9aF2849...6F4cf1755
0 ETH0.0005567111.81725371
Approve158178592022-10-24 12:07:11676 days ago1666613231IN
0xa9aF2849...6F4cf1755
0 ETH0.0006192713.14529949
Approve158082302022-10-23 3:50:11678 days ago1666497011IN
0xa9aF2849...6F4cf1755
0 ETH0.0005575211.83443313
Approve158075992022-10-23 1:43:35678 days ago1666489415IN
0xa9aF2849...6F4cf1755
0 ETH0.0005771912.25201769
Approve158075462022-10-23 1:32:59678 days ago1666488779IN
0xa9aF2849...6F4cf1755
0 ETH0.0006865214.572885
Approve158063542022-10-22 21:32:59678 days ago1666474379IN
0xa9aF2849...6F4cf1755
0 ETH0.0011326224.04206712
Approve158037552022-10-22 12:49:47678 days ago1666442987IN
0xa9aF2849...6F4cf1755
0 ETH0.0005294421.32633324
Approve158022412022-10-22 7:46:23679 days ago1666424783IN
0xa9aF2849...6F4cf1755
0 ETH0.0007388115.68281314
Approve158017302022-10-22 6:03:59679 days ago1666418639IN
0xa9aF2849...6F4cf1755
0 ETH0.0009332319.80974152
Approve158015982022-10-22 5:37:23679 days ago1666417043IN
0xa9aF2849...6F4cf1755
0 ETH0.0004174316.81422764
Approve158011212022-10-22 4:01:35679 days ago1666411295IN
0xa9aF2849...6F4cf1755
0 ETH0.0008240617.49244862
Approve158009492022-10-22 3:27:11679 days ago1666409231IN
0xa9aF2849...6F4cf1755
0 ETH0.0008479818
Approve158001742022-10-22 0:51:23679 days ago1666399883IN
0xa9aF2849...6F4cf1755
0 ETH0.0007810616.57969153
Approve157997552022-10-21 23:26:47679 days ago1666394807IN
0xa9aF2849...6F4cf1755
0 ETH0.0010574722.44694571
Approve157983132022-10-21 18:36:59679 days ago1666377419IN
0xa9aF2849...6F4cf1755
0 ETH0.002113944.87166157
Approve157983062022-10-21 18:35:35679 days ago1666377335IN
0xa9aF2849...6F4cf1755
0 ETH0.0022373547.4921191
Approve157982982022-10-21 18:33:59679 days ago1666377239IN
0xa9aF2849...6F4cf1755
0 ETH0.002271948.225588
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
158006632022-10-22 2:29:35679 days ago1666405775
0xa9aF2849...6F4cf1755
0.01580267 ETH
157981802022-10-21 18:10:11679 days ago1666375811
0xa9aF2849...6F4cf1755
0.03941393 ETH
157981712022-10-21 18:08:23679 days ago1666375703
0xa9aF2849...6F4cf1755
0.03724267 ETH
157981692022-10-21 18:07:59679 days ago1666375679
0xa9aF2849...6F4cf1755
0.03724267 ETH
157980712022-10-21 17:48:23679 days ago1666374503
0xa9aF2849...6F4cf1755
0.04641587 ETH
157980142022-10-21 17:36:59679 days ago1666373819
0xa9aF2849...6F4cf1755
0.28448132 ETH
157980142022-10-21 17:36:59679 days ago1666373819
0xa9aF2849...6F4cf1755
0.08979296 ETH
157980132022-10-21 17:36:47679 days ago1666373807
0xa9aF2849...6F4cf1755
0.28448132 ETH
157980132022-10-21 17:36:47679 days ago1666373807
0xa9aF2849...6F4cf1755
0.08979296 ETH
157980132022-10-21 17:36:47679 days ago1666373807
0xa9aF2849...6F4cf1755
0.28448132 ETH
157980132022-10-21 17:36:47679 days ago1666373807
0xa9aF2849...6F4cf1755
0.08979296 ETH
157980132022-10-21 17:36:47679 days ago1666373807
0xa9aF2849...6F4cf1755
0.28301171 ETH
157980132022-10-21 17:36:47679 days ago1666373807
0xa9aF2849...6F4cf1755
0.08832335 ETH
157980132022-10-21 17:36:47679 days ago1666373807
0xa9aF2849...6F4cf1755
0.07779261 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.27248097 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.07779261 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.27248097 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.07779261 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.27248097 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.07779261 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.27248097 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.07779261 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.27248097 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.07779261 ETH
157980122022-10-21 17:36:35679 days ago1666373795
0xa9aF2849...6F4cf1755
0.27248097 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
X

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-21
*/

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

/**


Tweet:  https://twitter.com/VitalikButerin/status/1583508425132355584

You guys should now i am always deploying low tax and locking for long time. I just doing for you its a communtiy driven.
Now, we got the potential of a bullish tweet instead of a random one. Let's send this.

If you make TG  please send on via Etherscan.






/**


*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract X is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; //UNISWAP
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "X Protocol";
    string constant _symbol = "$X";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = _totalSupply * 2 / 100;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping(address => bool) public isBot;

    uint256 marketingFee = 5;
    uint256 sellMarketingFee = 5;

    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = msg.sender;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 50; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[DEAD] = true;

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        require(!isBot[sender], "Bot Address");

        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived =  amount;
        if(shouldTakeFee(sender)){
            if(sender == pair){
                amountReceived = takeFee(sender, amount,false);
            }else{
                amountReceived = takeFee(sender, amount,true);
            } 
        }


        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        uint feeAmount = isSell ? amount.mul(sellMarketingFee).div(feeDenominator) : amount.mul(marketingFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = _balances[address(this)];
        if (amountToSwap >= (swapThreshold*2)){
            amountToSwap = swapThreshold*2;
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        if (address(this).balance >= 200000000000000000){
            payable(marketingFeeReceiver).transfer(address(this).balance);
        }
      
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function manualSend() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function swapStatus (bool status) external onlyOwner {
        swapEnabled = status;
    }

    function isBots(address botAddress, bool status) external onlyOwner {      
        isBot[botAddress] = status;
    }

   function areBots(address[] memory bots_, bool status) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            isBot[bots_[i]] = status;
        }
    }

    function setFees(uint256 _MarketingFee, uint256 _sellMarketingFee) external onlyOwner {
         marketingFee = _MarketingFee;
         sellMarketingFee = _sellMarketingFee;
         require(marketingFee <= 10 && sellMarketingFee <= 10, "Must keep fees at 10% or less");
    }

    function setThreshold(uint256 _treshold) external onlyOwner {
         swapThreshold = _treshold;
    }

    function setFeeReceivers(address _marketingFeeReceiver) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
    }
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"areBots","outputs":[],"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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"setThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000870565b633b9aca00620000bd9190620008c1565b60035560646002600354620000d39190620008c1565b620000df919062000951565b6004556005600a556005600b556064600c5533600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff021916908315150217905550603261271060035462000161919062000951565b6200016d9190620008c1565b6010553480156200017d57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b79190620009f3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000340573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003669190620009f3565b306040518363ffffffff1660e01b81526004016200038692919062000a36565b6020604051808303816000875af1158015620003a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cc9190620009f3565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006c7919062000a74565b60405180910390a35062000a91565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000764578086048111156200073c576200073b620006d6565b5b60018516156200074c5780820291505b80810290506200075c8562000705565b94506200071c565b94509492505050565b6000826200077f576001905062000852565b816200078f576000905062000852565b8160018114620007a85760028114620007b357620007e9565b600191505062000852565b60ff841115620007c857620007c7620006d6565b5b8360020a915084821115620007e257620007e1620006d6565b5b5062000852565b5060208310610133831016604e8410600b8410161715620008235782820a9050838111156200081d576200081c620006d6565b5b62000852565b62000832848484600162000712565b925090508184048111156200084c576200084b620006d6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200087d8262000859565b91506200088a8362000863565b9250620008b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200076d565b905092915050565b6000620008ce8262000859565b9150620008db8362000859565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009175762000916620006d6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200095e8262000859565b91506200096b8362000859565b9250826200097e576200097d62000922565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009bb826200098e565b9050919050565b620009cd81620009ae565b8114620009d957600080fd5b50565b600081519050620009ed81620009c2565b92915050565b60006020828403121562000a0c5762000a0b62000989565b5b600062000a1c84828501620009dc565b91505092915050565b62000a3081620009ae565b82525050565b600060408201905062000a4d600083018562000a25565b62000a5c602083018462000a25565b9392505050565b62000a6e8162000859565b82525050565b600060208201905062000a8b600083018462000a63565b92915050565b612d1a8062000aa16000396000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec578063d05b5a001161008a578063e96fada211610064578063e96fada21461063f578063f1d5f5171461066a578063f429389014610693578063f887ea40146106aa576101c2565b8063d05b5a00146105b0578063dd62ed3e146105d9578063e01bb68814610616576101c2565b806395d89b41116100c657806395d89b41146104f4578063960bfe041461051f578063a8aa1b3114610548578063a9059cbb14610573576101c2565b8063715018a6146104895780637e26d19f146104a0578063893d20e8146104c9576101c2565b80632f54bf6e11610159578063571ac8b011610133578063571ac8b0146103b95780636c0a24eb146103f65780636ddd17131461042157806370a082311461044c576101c2565b80632f54bf6e14610314578063313ce567146103515780633bbac5791461037c576101c2565b80630b78f9c0116101955780630b78f9c01461025a578063144eef071461028357806318160ddd146102ac57806323b872dd146102d7576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106d5565b6040516101e99190612061565b60405180910390f35b3480156101fe57600080fd5b506102076106db565b6040516102149190612115565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906121d5565b610718565b6040516102519190612230565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061224b565b61080a565b005b34801561028f57600080fd5b506102aa60048036038101906102a591906123ff565b6108b8565b005b3480156102b857600080fd5b506102c1610995565b6040516102ce9190612061565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061245b565b61099f565b60405161030b9190612230565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906124ae565b610b9f565b6040516103489190612230565b60405180910390f35b34801561035d57600080fd5b50610366610bf8565b60405161037391906124f7565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906124ae565b610c01565b6040516103b09190612230565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906124ae565b610c21565b6040516103ed9190612230565b60405180910390f35b34801561040257600080fd5b5061040b610c54565b6040516104189190612061565b60405180910390f35b34801561042d57600080fd5b50610436610c5a565b6040516104439190612230565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906124ae565b610c6d565b6040516104809190612061565b60405180910390f35b34801561049557600080fd5b5061049e610cb6565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190612512565b610d79565b005b3480156104d557600080fd5b506104de610dde565b6040516104eb919061254e565b60405180910390f35b34801561050057600080fd5b50610509610e07565b6040516105169190612115565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190612569565b610e44565b005b34801561055457600080fd5b5061055d610e96565b60405161056a919061254e565b60405180910390f35b34801561057f57600080fd5b5061059a600480360381019061059591906121d5565b610ebc565b6040516105a79190612230565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190612596565b610ed1565b005b3480156105e557600080fd5b5061060060048036038101906105fb91906125d6565b610f74565b60405161060d9190612061565b60405180910390f35b34801561062257600080fd5b5061063d600480360381019061063891906124ae565b610ffb565b005b34801561064b57600080fd5b50610654611087565b604051610661919061254e565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c9190612569565b6110ad565b005b34801561069f57600080fd5b506106a8611119565b005b3480156106b657600080fd5b506106bf611184565b6040516106cc9190612675565b60405180910390f35b60105481565b60606040518060400160405280600a81526020017f582050726f746f636f6c00000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f89190612061565b60405180910390a36001905092915050565b61081333610b9f565b610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906126dc565b60405180910390fd5b81600a8190555080600b81905550600a8054111580156108755750600a600b5411155b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612748565b60405180910390fd5b5050565b6108c133610b9f565b610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f7906126dc565b60405180910390fd5b60005b825181101561099057816009600085848151811061092457610923612768565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610988906127c6565b915050610903565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b8b57610b0a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b9684848461120e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610c4d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610718565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbf33610b9f565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906126dc565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d6f919061254e565b60405180910390a1565b610d8233610b9f565b610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906126dc565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f2458000000000000000000000000000000000000000000000000000000000000815250905090565b610e4d33610b9f565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906126dc565b60405180910390fd5b8060108190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ec933848461120e565b905092915050565b610eda33610b9f565b610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906126dc565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100433610b9f565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906126dc565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110b633610b9f565b6110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906126dc565b60405180910390fd5b6103e881600354611106919061280f565b6111109190612898565b60048190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611181573d6000803e3d6000fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e99190612115565b60405180910390fd5b506000838561120191906128c9565b9050809150509392505050565b6000601160009054906101000a900460ff1615611237576112308484846116ce565b90506116c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112e35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cc57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138991906128fd565b11155b6113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906129c5565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090612a31565b60405180910390fd5b6114616118a1565b1561146f5761146e611978565b5b6114f8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061154985611ca8565b156115c757600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156115b7576115b085846000611cff565b90506115c6565b6115c385846001611cff565b90505b5b61161981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b99190612061565b60405180910390a360019150505b9392505050565b6000611759826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188e9190612061565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190e5750601160009054906101000a900460ff16155b80156119265750600f60149054906101000a900460ff165b80156119735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026010546119e6919061280f565b81106119fe5760026010546119fb919061280f565b90505b6000600267ffffffffffffffff811115611a1b57611a1a612290565b5b604051908082528060200260200182016040528015611a495781602001602082028036833780820191505090505b5090503081600081518110611a6157611a60612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c9190612a66565b81600181518110611b4057611b3f612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bde959493929190612b8c565b600060405180830381600087803b158015611bf857600080fd5b505af1158015611c0c573d6000803e3d6000fd5b505050506702c68af0bb1400004710611c8957600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c87573d6000803e3d6000fd5b505b50506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082611d3557611d30600c54611d22600a5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b611d5f565b611d5e600c54611d50600b5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b5b9050611db381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e539190612061565b60405180910390a3611e6e8185611f9b90919063ffffffff16565b9150509392505050565b6000808284611e8791906128fd565b905083811015611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec390612c32565b60405180910390fd5b8091505092915050565b600080831415611ee95760009050611f4b565b60008284611ef7919061280f565b9050828482611f069190612898565b14611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90612cc4565b60405180910390fd5b809150505b92915050565b6000611f9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe5565b905092915050565b6000611fdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111aa565b905092915050565b6000808311829061202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120239190612115565b60405180910390fd5b506000838561203b9190612898565b9050809150509392505050565b6000819050919050565b61205b81612048565b82525050565b60006020820190506120766000830184612052565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b657808201518184015260208101905061209b565b838111156120c5576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e78261207c565b6120f18185612087565b9350612101818560208601612098565b61210a816120cb565b840191505092915050565b6000602082019050818103600083015261212f81846120dc565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121768261214b565b9050919050565b6121868161216b565b811461219157600080fd5b50565b6000813590506121a38161217d565b92915050565b6121b281612048565b81146121bd57600080fd5b50565b6000813590506121cf816121a9565b92915050565b600080604083850312156121ec576121eb612141565b5b60006121fa85828601612194565b925050602061220b858286016121c0565b9150509250929050565b60008115159050919050565b61222a81612215565b82525050565b60006020820190506122456000830184612221565b92915050565b6000806040838503121561226257612261612141565b5b6000612270858286016121c0565b9250506020612281858286016121c0565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122c8826120cb565b810181811067ffffffffffffffff821117156122e7576122e6612290565b5b80604052505050565b60006122fa612137565b905061230682826122bf565b919050565b600067ffffffffffffffff82111561232657612325612290565b5b602082029050602081019050919050565b600080fd5b600061234f61234a8461230b565b6122f0565b9050808382526020820190506020840283018581111561237257612371612337565b5b835b8181101561239b57806123878882612194565b845260208401935050602081019050612374565b5050509392505050565b600082601f8301126123ba576123b961228b565b5b81356123ca84826020860161233c565b91505092915050565b6123dc81612215565b81146123e757600080fd5b50565b6000813590506123f9816123d3565b92915050565b6000806040838503121561241657612415612141565b5b600083013567ffffffffffffffff81111561243457612433612146565b5b612440858286016123a5565b9250506020612451858286016123ea565b9150509250929050565b60008060006060848603121561247457612473612141565b5b600061248286828701612194565b935050602061249386828701612194565b92505060406124a4868287016121c0565b9150509250925092565b6000602082840312156124c4576124c3612141565b5b60006124d284828501612194565b91505092915050565b600060ff82169050919050565b6124f1816124db565b82525050565b600060208201905061250c60008301846124e8565b92915050565b60006020828403121561252857612527612141565b5b6000612536848285016123ea565b91505092915050565b6125488161216b565b82525050565b6000602082019050612563600083018461253f565b92915050565b60006020828403121561257f5761257e612141565b5b600061258d848285016121c0565b91505092915050565b600080604083850312156125ad576125ac612141565b5b60006125bb85828601612194565b92505060206125cc858286016123ea565b9150509250929050565b600080604083850312156125ed576125ec612141565b5b60006125fb85828601612194565b925050602061260c85828601612194565b9150509250929050565b6000819050919050565b600061263b6126366126318461214b565b612616565b61214b565b9050919050565b600061264d82612620565b9050919050565b600061265f82612642565b9050919050565b61266f81612654565b82525050565b600060208201905061268a6000830184612666565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006126c6600683612087565b91506126d182612690565b602082019050919050565b600060208201905081810360008301526126f5816126b9565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000612732601d83612087565b915061273d826126fc565b602082019050919050565b6000602082019050818103600083015261276181612725565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127d182612048565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561280457612803612797565b5b600182019050919050565b600061281a82612048565b915061282583612048565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285e5761285d612797565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128a382612048565b91506128ae83612048565b9250826128be576128bd612869565b5b828204905092915050565b60006128d482612048565b91506128df83612048565b9250828210156128f2576128f1612797565b5b828203905092915050565b600061290882612048565b915061291383612048565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294857612947612797565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006129af602583612087565b91506129ba82612953565b604082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612a1b600b83612087565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b600081519050612a608161217d565b92915050565b600060208284031215612a7c57612a7b612141565b5b6000612a8a84828501612a51565b91505092915050565b6000819050919050565b6000612ab8612ab3612aae84612a93565b612616565b612048565b9050919050565b612ac881612a9d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b038161216b565b82525050565b6000612b158383612afa565b60208301905092915050565b6000602082019050919050565b6000612b3982612ace565b612b438185612ad9565b9350612b4e83612aea565b8060005b83811015612b7f578151612b668882612b09565b9750612b7183612b21565b925050600181019050612b52565b5085935050505092915050565b600060a082019050612ba16000830188612052565b612bae6020830187612abf565b8181036040830152612bc08186612b2e565b9050612bcf606083018561253f565b612bdc6080830184612052565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c1c601b83612087565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cae602183612087565b9150612cb982612c52565b604082019050919050565b60006020820190508181036000830152612cdd81612ca1565b905091905056fea2646970667358221220e9296fd83a5e073461d26ccb5b0c32611eff9fe1352b4acd5be50deb2a4dd03b64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063d05b5a001161008a578063e96fada211610064578063e96fada21461063f578063f1d5f5171461066a578063f429389014610693578063f887ea40146106aa576101c2565b8063d05b5a00146105b0578063dd62ed3e146105d9578063e01bb68814610616576101c2565b806395d89b41116100c657806395d89b41146104f4578063960bfe041461051f578063a8aa1b3114610548578063a9059cbb14610573576101c2565b8063715018a6146104895780637e26d19f146104a0578063893d20e8146104c9576101c2565b80632f54bf6e11610159578063571ac8b011610133578063571ac8b0146103b95780636c0a24eb146103f65780636ddd17131461042157806370a082311461044c576101c2565b80632f54bf6e14610314578063313ce567146103515780633bbac5791461037c576101c2565b80630b78f9c0116101955780630b78f9c01461025a578063144eef071461028357806318160ddd146102ac57806323b872dd146102d7576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106d5565b6040516101e99190612061565b60405180910390f35b3480156101fe57600080fd5b506102076106db565b6040516102149190612115565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906121d5565b610718565b6040516102519190612230565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c919061224b565b61080a565b005b34801561028f57600080fd5b506102aa60048036038101906102a591906123ff565b6108b8565b005b3480156102b857600080fd5b506102c1610995565b6040516102ce9190612061565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061245b565b61099f565b60405161030b9190612230565b60405180910390f35b34801561032057600080fd5b5061033b600480360381019061033691906124ae565b610b9f565b6040516103489190612230565b60405180910390f35b34801561035d57600080fd5b50610366610bf8565b60405161037391906124f7565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e91906124ae565b610c01565b6040516103b09190612230565b60405180910390f35b3480156103c557600080fd5b506103e060048036038101906103db91906124ae565b610c21565b6040516103ed9190612230565b60405180910390f35b34801561040257600080fd5b5061040b610c54565b6040516104189190612061565b60405180910390f35b34801561042d57600080fd5b50610436610c5a565b6040516104439190612230565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906124ae565b610c6d565b6040516104809190612061565b60405180910390f35b34801561049557600080fd5b5061049e610cb6565b005b3480156104ac57600080fd5b506104c760048036038101906104c29190612512565b610d79565b005b3480156104d557600080fd5b506104de610dde565b6040516104eb919061254e565b60405180910390f35b34801561050057600080fd5b50610509610e07565b6040516105169190612115565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190612569565b610e44565b005b34801561055457600080fd5b5061055d610e96565b60405161056a919061254e565b60405180910390f35b34801561057f57600080fd5b5061059a600480360381019061059591906121d5565b610ebc565b6040516105a79190612230565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d29190612596565b610ed1565b005b3480156105e557600080fd5b5061060060048036038101906105fb91906125d6565b610f74565b60405161060d9190612061565b60405180910390f35b34801561062257600080fd5b5061063d600480360381019061063891906124ae565b610ffb565b005b34801561064b57600080fd5b50610654611087565b604051610661919061254e565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c9190612569565b6110ad565b005b34801561069f57600080fd5b506106a8611119565b005b3480156106b657600080fd5b506106bf611184565b6040516106cc9190612675565b60405180910390f35b60105481565b60606040518060400160405280600a81526020017f582050726f746f636f6c00000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107f89190612061565b60405180910390a36001905092915050565b61081333610b9f565b610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906126dc565b60405180910390fd5b81600a8190555080600b81905550600a8054111580156108755750600a600b5411155b6108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90612748565b60405180910390fd5b5050565b6108c133610b9f565b610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f7906126dc565b60405180910390fd5b60005b825181101561099057816009600085848151811061092457610923612768565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610988906127c6565b915050610903565b505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b8b57610b0a826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b9684848461120e565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610c4d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610718565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cbf33610b9f565b610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf5906126dc565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610d6f919061254e565b60405180910390a1565b610d8233610b9f565b610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db8906126dc565b60405180910390fd5b80600f60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f2458000000000000000000000000000000000000000000000000000000000000815250905090565b610e4d33610b9f565b610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e83906126dc565b60405180910390fd5b8060108190555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ec933848461120e565b905092915050565b610eda33610b9f565b610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f10906126dc565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61100433610b9f565b611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a906126dc565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110b633610b9f565b6110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec906126dc565b60405180910390fd5b6103e881600354611106919061280f565b6111109190612898565b60048190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611181573d6000803e3d6000fd5b50565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e99190612115565b60405180910390fd5b506000838561120191906128c9565b9050809150509392505050565b6000601160009054906101000a900460ff1615611237576112308484846116ce565b90506116c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112e35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113cc57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061138c575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138991906128fd565b11155b6113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906129c5565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145090612a31565b60405180910390fd5b6114616118a1565b1561146f5761146e611978565b5b6114f8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082905061154985611ca8565b156115c757600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156115b7576115b085846000611cff565b90506115c6565b6115c385846001611cff565b90505b5b61161981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b99190612061565b60405180910390a360019150505b9392505050565b6000611759826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111aa9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161188e9190612061565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561190e5750601160009054906101000a900460ff16155b80156119265750600f60149054906101000a900460ff165b80156119735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060026010546119e6919061280f565b81106119fe5760026010546119fb919061280f565b90505b6000600267ffffffffffffffff811115611a1b57611a1a612290565b5b604051908082528060200260200182016040528015611a495781602001602082028036833780820191505090505b5090503081600081518110611a6157611a60612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2c9190612a66565b81600181518110611b4057611b3f612768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bde959493929190612b8c565b600060405180830381600087803b158015611bf857600080fd5b505af1158015611c0c573d6000803e3d6000fd5b505050506702c68af0bb1400004710611c8957600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c87573d6000803e3d6000fd5b505b50506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008082611d3557611d30600c54611d22600a5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b611d5f565b611d5e600c54611d50600b5487611ed690919063ffffffff16565b611f5190919063ffffffff16565b5b9050611db381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7890919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e539190612061565b60405180910390a3611e6e8185611f9b90919063ffffffff16565b9150509392505050565b6000808284611e8791906128fd565b905083811015611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec390612c32565b60405180910390fd5b8091505092915050565b600080831415611ee95760009050611f4b565b60008284611ef7919061280f565b9050828482611f069190612898565b14611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90612cc4565b60405180910390fd5b809150505b92915050565b6000611f9383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fe5565b905092915050565b6000611fdd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111aa565b905092915050565b6000808311829061202c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120239190612115565b60405180910390fd5b506000838561203b9190612898565b9050809150509392505050565b6000819050919050565b61205b81612048565b82525050565b60006020820190506120766000830184612052565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b657808201518184015260208101905061209b565b838111156120c5576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e78261207c565b6120f18185612087565b9350612101818560208601612098565b61210a816120cb565b840191505092915050565b6000602082019050818103600083015261212f81846120dc565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121768261214b565b9050919050565b6121868161216b565b811461219157600080fd5b50565b6000813590506121a38161217d565b92915050565b6121b281612048565b81146121bd57600080fd5b50565b6000813590506121cf816121a9565b92915050565b600080604083850312156121ec576121eb612141565b5b60006121fa85828601612194565b925050602061220b858286016121c0565b9150509250929050565b60008115159050919050565b61222a81612215565b82525050565b60006020820190506122456000830184612221565b92915050565b6000806040838503121561226257612261612141565b5b6000612270858286016121c0565b9250506020612281858286016121c0565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6122c8826120cb565b810181811067ffffffffffffffff821117156122e7576122e6612290565b5b80604052505050565b60006122fa612137565b905061230682826122bf565b919050565b600067ffffffffffffffff82111561232657612325612290565b5b602082029050602081019050919050565b600080fd5b600061234f61234a8461230b565b6122f0565b9050808382526020820190506020840283018581111561237257612371612337565b5b835b8181101561239b57806123878882612194565b845260208401935050602081019050612374565b5050509392505050565b600082601f8301126123ba576123b961228b565b5b81356123ca84826020860161233c565b91505092915050565b6123dc81612215565b81146123e757600080fd5b50565b6000813590506123f9816123d3565b92915050565b6000806040838503121561241657612415612141565b5b600083013567ffffffffffffffff81111561243457612433612146565b5b612440858286016123a5565b9250506020612451858286016123ea565b9150509250929050565b60008060006060848603121561247457612473612141565b5b600061248286828701612194565b935050602061249386828701612194565b92505060406124a4868287016121c0565b9150509250925092565b6000602082840312156124c4576124c3612141565b5b60006124d284828501612194565b91505092915050565b600060ff82169050919050565b6124f1816124db565b82525050565b600060208201905061250c60008301846124e8565b92915050565b60006020828403121561252857612527612141565b5b6000612536848285016123ea565b91505092915050565b6125488161216b565b82525050565b6000602082019050612563600083018461253f565b92915050565b60006020828403121561257f5761257e612141565b5b600061258d848285016121c0565b91505092915050565b600080604083850312156125ad576125ac612141565b5b60006125bb85828601612194565b92505060206125cc858286016123ea565b9150509250929050565b600080604083850312156125ed576125ec612141565b5b60006125fb85828601612194565b925050602061260c85828601612194565b9150509250929050565b6000819050919050565b600061263b6126366126318461214b565b612616565b61214b565b9050919050565b600061264d82612620565b9050919050565b600061265f82612642565b9050919050565b61266f81612654565b82525050565b600060208201905061268a6000830184612666565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006126c6600683612087565b91506126d182612690565b602082019050919050565b600060208201905081810360008301526126f5816126b9565b9050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000612732601d83612087565b915061273d826126fc565b602082019050919050565b6000602082019050818103600083015261276181612725565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127d182612048565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561280457612803612797565b5b600182019050919050565b600061281a82612048565b915061282583612048565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285e5761285d612797565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128a382612048565b91506128ae83612048565b9250826128be576128bd612869565b5b828204905092915050565b60006128d482612048565b91506128df83612048565b9250828210156128f2576128f1612797565b5b828203905092915050565b600061290882612048565b915061291383612048565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561294857612947612797565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006129af602583612087565b91506129ba82612953565b604082019050919050565b600060208201905081810360008301526129de816129a2565b9050919050565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b6000612a1b600b83612087565b9150612a26826129e5565b602082019050919050565b60006020820190508181036000830152612a4a81612a0e565b9050919050565b600081519050612a608161217d565b92915050565b600060208284031215612a7c57612a7b612141565b5b6000612a8a84828501612a51565b91505092915050565b6000819050919050565b6000612ab8612ab3612aae84612a93565b612616565b612048565b9050919050565b612ac881612a9d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b038161216b565b82525050565b6000612b158383612afa565b60208301905092915050565b6000602082019050919050565b6000612b3982612ace565b612b438185612ad9565b9350612b4e83612aea565b8060005b83811015612b7f578151612b668882612b09565b9750612b7183612b21565b925050600181019050612b52565b5085935050505092915050565b600060a082019050612ba16000830188612052565b612bae6020830187612abf565b8181036040830152612bc08186612b2e565b9050612bcf606083018561253f565b612bdc6080830184612052565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c1c601b83612087565b9150612c2782612be6565b602082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cae602183612087565b9150612cb982612c52565b604082019050919050565b60006020820190508181036000830152612cdd81612ca1565b905091905056fea2646970667358221220e9296fd83a5e073461d26ccb5b0c32611eff9fe1352b4acd5be50deb2a4dd03b64736f6c634300080b0033

Deployed Bytecode Sourcemap

4521:7756:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5494:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6461:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6883:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11667:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11476:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6191:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7401:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2759:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6285:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7107:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4918:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5457:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6631:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2868:131;;;;;;;;;;;;;:::i;:::-;;11250:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6547:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6371:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11955:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5429:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7237:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11350:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6742:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12068:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5341:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11100:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10981:111;;;;;;;;;;;;;:::i;:::-;;5398:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5494:56;;;;:::o;6461:80::-;6509:13;6533:5;;;;;;;;;;;;;;;;;6526:12;;6461:80;:::o;6883:216::-;6958:4;7010:6;6975:11;:23;6987:10;6975:23;;;;;;;;;;;;;;;:32;6999:7;6975:32;;;;;;;;;;;;;;;:41;;;;7053:7;7032:37;;7041:10;7032:37;;;7062:6;7032:37;;;;;;:::i;:::-;;;;;;;;7087:4;7080:11;;6883:216;;;;:::o;11667:280::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11780:13:::1;11765:12;:28;;;;11824:17;11805:16;:36;;;;11877:2;11861:12:::0;::::1;:18;;:44;;;;;11903:2;11883:16;;:22;;11861:44;11853:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;11667:280:::0;;:::o;11476:183::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11563:9:::1;11558:94;11582:5;:12;11578:1;:16;11558:94;;;11634:6;11616:5;:15;11622:5;11628:1;11622:8;;;;;;;;:::i;:::-;;;;;;;;11616:15;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11596:3;;;;;:::i;:::-;;;;11558:94;;;;11476:183:::0;;:::o;6191:88::-;6246:7;6264:12;;6257:19;;6191:88;:::o;7401:370::-;7501:4;7556:17;7521:11;:19;7533:6;7521:19;;;;;;;;;;;;;;;:31;7541:10;7521:31;;;;;;;;;;;;;;;;:52;7518:186;;7623:69;7659:6;7623:69;;;;;;;;;;;;;;;;;:11;:19;7635:6;7623:19;;;;;;;;;;;;;;;:31;7643:10;7623:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7589:11;:19;7601:6;7589:19;;;;;;;;;;;;;;;:31;7609:10;7589:31;;;;;;;;;;;;;;;:103;;;;7518:186;7723:40;7737:6;7745:9;7756:6;7723:13;:40::i;:::-;7716:47;;7401:370;;;;;:::o;2759:103::-;2814:4;2849:5;;;;;;;;;;;2838:16;;:7;:16;;;2831:23;;2759:103;;;:::o;6285:80::-;6337:5;4845:1;6346:16;;6285:80;:::o;5190:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;7107:122::-;7162:4;7186:35;7194:7;7203:17;7186:7;:35::i;:::-;7179:42;;7107:122;;;:::o;4918:56::-;;;;:::o;5457:30::-;;;;;;;;;;;;;:::o;6631:105::-;6697:7;6715:9;:18;6725:7;6715:18;;;;;;;;;;;;;;;;6708:25;;6631:105;;;:::o;2868:131::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2941:1:::1;2925:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2959:32;2988:1;2959:32;;;;;;:::i;:::-;;;;;;;;2868:131::o:0;11250:92::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11328:6:::1;11314:11;;:20;;;;;;;;;;;;;;;;;;11250:92:::0;:::o;6547:78::-;6599:7;6617:5;;;;;;;;;;;6610:12;;6547:78;:::o;6371:84::-;6421:13;6445:7;;;;;;;;;;;;;;;;;6438:14;;6371:84;:::o;11955:105::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12043:9:::1;12027:13;:25;;;;11955:105:::0;:::o;5429:19::-;;;;;;;;;;;;;:::o;7237:156::-;7317:4;7341:44;7355:10;7367:9;7378:6;7341:13;:44::i;:::-;7334:51;;7237:156;;;;:::o;11350:119::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11455:6:::1;11435:5;:17;11441:10;11435:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11350:119:::0;;:::o;6742:133::-;6826:7;6844:11;:19;6856:6;6844:19;;;;;;;;;;;;;;;:28;6864:7;6844:28;;;;;;;;;;;;;;;;6837:35;;6742:133;;;;:::o;12068:138::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12177:21:::1;12154:20;;:44;;;;;;;;;;;;;;;;;;12068:138:::0;:::o;5341:48::-;;;;;;;;;;;;;:::o;11100:142::-;2712:19;2720:10;2712:7;:19::i;:::-;2704:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11230:4:::1;11212:13;11197:12;;:28;;;;:::i;:::-;11196:38;;;;:::i;:::-;11177:16;:57;;;;11100:142:::0;:::o;10981:111::-;11031:20;;;;;;;;;;;11023:38;;:61;11062:21;11023:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10981:111::o;5398:24::-;;;;;;;;;;;;;:::o;848:190::-;934:7;967:1;962;:6;;970:12;954:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;994:9;1010:1;1006;:5;;;;:::i;:::-;994:17;;1029:1;1022:8;;;848:190;;;;;:::o;7779:1043::-;7871:4;7891:6;;;;;;;;;;;7888:63;;;7907:41;7922:6;7930:9;7941:6;7907:14;:41::i;:::-;7900:48;;;;7888:63;7988:4;;;;;;;;;;;7975:17;;:9;:17;;;;:38;;;;;8009:4;;;;;;;;;;;7996:17;;:9;:17;;;;7975:38;7971:200;;;8038:15;:26;8054:9;8038:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;8101:16;;8091:6;8068:9;:20;8078:9;8068:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;8038:79;8030:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7971:200;8200:5;:13;8206:6;8200:13;;;;;;;;;;;;;;;;;;;;;;;;;8199:14;8191:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8245:16;:14;:16::i;:::-;8242:35;;;8264:10;:8;:10::i;:::-;8242:35;8310:53;8332:6;8310:53;;;;;;;;;;;;;;;;;:9;:17;8320:6;8310:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8290:9;:17;8300:6;8290:17;;;;;;;;;;;;;;;:73;;;;8376:22;8402:6;8376:32;;8422:21;8436:6;8422:13;:21::i;:::-;8419:235;;;8472:4;;;;;;;;;;;8462:14;;:6;:14;;;8459:183;;;8513:29;8521:6;8529;8536:5;8513:7;:29::i;:::-;8496:46;;8459:183;;;8598:28;8606:6;8614;8621:4;8598:7;:28::i;:::-;8581:45;;8459:183;8419:235;8691:40;8716:14;8691:9;:20;8701:9;8691:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8668:9;:20;8678:9;8668:20;;;;;;;;;;;;;;;:63;;;;8766:9;8749:43;;8758:6;8749:43;;;8777:14;8749:43;;;;;;:::i;:::-;;;;;;;;8810:4;8803:11;;;7779:1043;;;;;;:::o;8834:330::-;8927:4;8964:53;8986:6;8964:53;;;;;;;;;;;;;;;;;:9;:17;8974:6;8964:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8944:9;:17;8954:6;8944:17;;;;;;;;;;;;;;;:73;;;;9051:32;9076:6;9051:9;:20;9061:9;9051:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9028:9;:20;9038:9;9028:20;;;;;;;;;;;;;;;:55;;;;9116:9;9099:35;;9108:6;9099:35;;;9127:6;9099:35;;;;;;:::i;:::-;;;;;;;;9152:4;9145:11;;8834:330;;;;;:::o;9705:197::-;9754:4;9792;;;;;;;;;;;9778:18;;:10;:18;;;;:38;;;;;9810:6;;;;;;;;;;;9809:7;9778:38;:62;;;;;9829:11;;;;;;;;;;;9778:62;:116;;;;;9881:13;;9853:9;:24;9871:4;9853:24;;;;;;;;;;;;;;;;:41;;9778:116;9771:123;;9705:197;:::o;9910:685::-;5607:4;5598:6;;:13;;;;;;;;;;;;;;;;;;9959:20:::1;9982:9;:24;10000:4;9982:24;;;;;;;;;;;;;;;;9959:47;;10052:1;10038:13;;:15;;;;:::i;:::-;10021:12;:33;10017:95;;10099:1;10085:13;;:15;;;;:::i;:::-;10070:30;;10017:95;10122:21;10160:1;10146:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10122:40;;10191:4;10173;10178:1;10173:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10217:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10207:4;10212:1;10207:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10243:6;;;;;;;;;;;:57;;;10315:12;10342:1;10358:4;10385;10405:15;10243:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10473:18;10448:21;:43;10444:136;;10515:20;;;;;;;;;;;10507:38;;:61;10546:21;10507:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10444:136;9948:647;;5625:5:::0;5616:6;;:14;;;;;;;;;;;;;;;;;;9910:685::o;9172:114::-;9234:4;9259:11;:19;9271:6;9259:19;;;;;;;;;;;;;;;;;;;;;;;;;9258:20;9251:27;;9172:114;;;:::o;9294:403::-;9374:7;9394:14;9411:6;:104;;9471:44;9500:14;;9471:24;9482:12;;9471:6;:10;;:24;;;;:::i;:::-;:28;;:44;;;;:::i;:::-;9411:104;;;9420:48;9453:14;;9420:28;9431:16;;9420:6;:10;;:28;;;;:::i;:::-;:32;;:48;;;;:::i;:::-;9411:104;9394:121;;9553:39;9582:9;9553;:24;9571:4;9553:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9526:9;:24;9544:4;9526:24;;;;;;;;;;;;;;;:66;;;;9633:4;9608:42;;9617:6;9608:42;;;9640:9;9608:42;;;;;;:::i;:::-;;;;;;;;9668:21;9679:9;9668:6;:10;;:21;;;;:::i;:::-;9661:28;;;9294:403;;;;;:::o;521:179::-;579:7;599:9;615:1;611;:5;;;;:::i;:::-;599:17;;640:1;635;:6;;627:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;691:1;684:8;;;521:179;;;;:::o;1044:246::-;1102:7;1131:1;1126;:6;1122:47;;;1156:1;1149:8;;;;1122:47;1179:9;1195:1;1191;:5;;;;:::i;:::-;1179:17;;1224:1;1219;1215;:5;;;;:::i;:::-;:10;1207:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1281:1;1274:8;;;1044:246;;;;;:::o;1296:132::-;1354:7;1381:39;1385:1;1388;1381:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1374:46;;1296:132;;;;:::o;706:136::-;764:7;791:43;795:1;798;791:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;784:50;;706:136;;;;:::o;1434:189::-;1520:7;1552:1;1548;:5;1555:12;1540:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1579:9;1595:1;1591;:5;;;;:::i;:::-;1579:17;;1614:1;1607:8;;;1434:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:117::-;4435:1;4432;4425:12;4449:180;4497:77;4494:1;4487:88;4594:4;4591:1;4584:15;4618:4;4615:1;4608:15;4635:281;4718:27;4740:4;4718:27;:::i;:::-;4710:6;4706:40;4848:6;4836:10;4833:22;4812:18;4800:10;4797:34;4794:62;4791:88;;;4859:18;;:::i;:::-;4791:88;4899:10;4895:2;4888:22;4678:238;4635:281;;:::o;4922:129::-;4956:6;4983:20;;:::i;:::-;4973:30;;5012:33;5040:4;5032:6;5012:33;:::i;:::-;4922:129;;;:::o;5057:311::-;5134:4;5224:18;5216:6;5213:30;5210:56;;;5246:18;;:::i;:::-;5210:56;5296:4;5288:6;5284:17;5276:25;;5356:4;5350;5346:15;5338:23;;5057:311;;;:::o;5374:117::-;5483:1;5480;5473:12;5514:710;5610:5;5635:81;5651:64;5708:6;5651:64;:::i;:::-;5635:81;:::i;:::-;5626:90;;5736:5;5765:6;5758:5;5751:21;5799:4;5792:5;5788:16;5781:23;;5852:4;5844:6;5840:17;5832:6;5828:30;5881:3;5873:6;5870:15;5867:122;;;5900:79;;:::i;:::-;5867:122;6015:6;5998:220;6032:6;6027:3;6024:15;5998:220;;;6107:3;6136:37;6169:3;6157:10;6136:37;:::i;:::-;6131:3;6124:50;6203:4;6198:3;6194:14;6187:21;;6074:144;6058:4;6053:3;6049:14;6042:21;;5998:220;;;6002:21;5616:608;;5514:710;;;;;:::o;6247:370::-;6318:5;6367:3;6360:4;6352:6;6348:17;6344:27;6334:122;;6375:79;;:::i;:::-;6334:122;6492:6;6479:20;6517:94;6607:3;6599:6;6592:4;6584:6;6580:17;6517:94;:::i;:::-;6508:103;;6324:293;6247:370;;;;:::o;6623:116::-;6693:21;6708:5;6693:21;:::i;:::-;6686:5;6683:32;6673:60;;6729:1;6726;6719:12;6673:60;6623:116;:::o;6745:133::-;6788:5;6826:6;6813:20;6804:29;;6842:30;6866:5;6842:30;:::i;:::-;6745:133;;;;:::o;6884:678::-;6974:6;6982;7031:2;7019:9;7010:7;7006:23;7002:32;6999:119;;;7037:79;;:::i;:::-;6999:119;7185:1;7174:9;7170:17;7157:31;7215:18;7207:6;7204:30;7201:117;;;7237:79;;:::i;:::-;7201:117;7342:78;7412:7;7403:6;7392:9;7388:22;7342:78;:::i;:::-;7332:88;;7128:302;7469:2;7495:50;7537:7;7528:6;7517:9;7513:22;7495:50;:::i;:::-;7485:60;;7440:115;6884:678;;;;;:::o;7568:619::-;7645:6;7653;7661;7710:2;7698:9;7689:7;7685:23;7681:32;7678:119;;;7716:79;;:::i;:::-;7678:119;7836:1;7861:53;7906:7;7897:6;7886:9;7882:22;7861:53;:::i;:::-;7851:63;;7807:117;7963:2;7989:53;8034:7;8025:6;8014:9;8010:22;7989:53;:::i;:::-;7979:63;;7934:118;8091:2;8117:53;8162:7;8153:6;8142:9;8138:22;8117:53;:::i;:::-;8107:63;;8062:118;7568:619;;;;;:::o;8193:329::-;8252:6;8301:2;8289:9;8280:7;8276:23;8272:32;8269:119;;;8307:79;;:::i;:::-;8269:119;8427:1;8452:53;8497:7;8488:6;8477:9;8473:22;8452:53;:::i;:::-;8442:63;;8398:117;8193:329;;;;:::o;8528:86::-;8563:7;8603:4;8596:5;8592:16;8581:27;;8528:86;;;:::o;8620:112::-;8703:22;8719:5;8703:22;:::i;:::-;8698:3;8691:35;8620:112;;:::o;8738:214::-;8827:4;8865:2;8854:9;8850:18;8842:26;;8878:67;8942:1;8931:9;8927:17;8918:6;8878:67;:::i;:::-;8738:214;;;;:::o;8958:323::-;9014:6;9063:2;9051:9;9042:7;9038:23;9034:32;9031:119;;;9069:79;;:::i;:::-;9031:119;9189:1;9214:50;9256:7;9247:6;9236:9;9232:22;9214:50;:::i;:::-;9204:60;;9160:114;8958:323;;;;:::o;9287:118::-;9374:24;9392:5;9374:24;:::i;:::-;9369:3;9362:37;9287:118;;:::o;9411:222::-;9504:4;9542:2;9531:9;9527:18;9519:26;;9555:71;9623:1;9612:9;9608:17;9599:6;9555:71;:::i;:::-;9411:222;;;;:::o;9639:329::-;9698:6;9747:2;9735:9;9726:7;9722:23;9718:32;9715:119;;;9753:79;;:::i;:::-;9715:119;9873:1;9898:53;9943:7;9934:6;9923:9;9919:22;9898:53;:::i;:::-;9888:63;;9844:117;9639:329;;;;:::o;9974:468::-;10039:6;10047;10096:2;10084:9;10075:7;10071:23;10067:32;10064:119;;;10102:79;;:::i;:::-;10064:119;10222:1;10247:53;10292:7;10283:6;10272:9;10268:22;10247:53;:::i;:::-;10237:63;;10193:117;10349:2;10375:50;10417:7;10408:6;10397:9;10393:22;10375:50;:::i;:::-;10365:60;;10320:115;9974:468;;;;;:::o;10448:474::-;10516:6;10524;10573:2;10561:9;10552:7;10548:23;10544:32;10541:119;;;10579:79;;:::i;:::-;10541:119;10699:1;10724:53;10769:7;10760:6;10749:9;10745:22;10724:53;:::i;:::-;10714:63;;10670:117;10826:2;10852:53;10897:7;10888:6;10877:9;10873:22;10852:53;:::i;:::-;10842:63;;10797:118;10448:474;;;;;:::o;10928:60::-;10956:3;10977:5;10970:12;;10928:60;;;:::o;10994:142::-;11044:9;11077:53;11095:34;11104:24;11122:5;11104:24;:::i;:::-;11095:34;:::i;:::-;11077:53;:::i;:::-;11064:66;;10994:142;;;:::o;11142:126::-;11192:9;11225:37;11256:5;11225:37;:::i;:::-;11212:50;;11142:126;;;:::o;11274:144::-;11342:9;11375:37;11406:5;11375:37;:::i;:::-;11362:50;;11274:144;;;:::o;11424:167::-;11529:55;11578:5;11529:55;:::i;:::-;11524:3;11517:68;11424:167;;:::o;11597:258::-;11708:4;11746:2;11735:9;11731:18;11723:26;;11759:89;11845:1;11834:9;11830:17;11821:6;11759:89;:::i;:::-;11597:258;;;;:::o;11861:156::-;12001:8;11997:1;11989:6;11985:14;11978:32;11861:156;:::o;12023:365::-;12165:3;12186:66;12250:1;12245:3;12186:66;:::i;:::-;12179:73;;12261:93;12350:3;12261:93;:::i;:::-;12379:2;12374:3;12370:12;12363:19;;12023:365;;;:::o;12394:419::-;12560:4;12598:2;12587:9;12583:18;12575:26;;12647:9;12641:4;12637:20;12633:1;12622:9;12618:17;12611:47;12675:131;12801:4;12675:131;:::i;:::-;12667:139;;12394:419;;;:::o;12819:179::-;12959:31;12955:1;12947:6;12943:14;12936:55;12819:179;:::o;13004:366::-;13146:3;13167:67;13231:2;13226:3;13167:67;:::i;:::-;13160:74;;13243:93;13332:3;13243:93;:::i;:::-;13361:2;13356:3;13352:12;13345:19;;13004:366;;;:::o;13376:419::-;13542:4;13580:2;13569:9;13565:18;13557:26;;13629:9;13623:4;13619:20;13615:1;13604:9;13600:17;13593:47;13657:131;13783:4;13657:131;:::i;:::-;13649:139;;13376:419;;;:::o;13801:180::-;13849:77;13846:1;13839:88;13946:4;13943:1;13936:15;13970:4;13967:1;13960:15;13987:180;14035:77;14032:1;14025:88;14132:4;14129:1;14122:15;14156:4;14153:1;14146:15;14173:233;14212:3;14235:24;14253:5;14235:24;:::i;:::-;14226:33;;14281:66;14274:5;14271:77;14268:103;;;14351:18;;:::i;:::-;14268:103;14398:1;14391:5;14387:13;14380:20;;14173:233;;;:::o;14412:348::-;14452:7;14475:20;14493:1;14475:20;:::i;:::-;14470:25;;14509:20;14527:1;14509:20;:::i;:::-;14504:25;;14697:1;14629:66;14625:74;14622:1;14619:81;14614:1;14607:9;14600:17;14596:105;14593:131;;;14704:18;;:::i;:::-;14593:131;14752:1;14749;14745:9;14734:20;;14412:348;;;;:::o;14766:180::-;14814:77;14811:1;14804:88;14911:4;14908:1;14901:15;14935:4;14932:1;14925:15;14952:185;14992:1;15009:20;15027:1;15009:20;:::i;:::-;15004:25;;15043:20;15061:1;15043:20;:::i;:::-;15038:25;;15082:1;15072:35;;15087:18;;:::i;:::-;15072:35;15129:1;15126;15122:9;15117:14;;14952:185;;;;:::o;15143:191::-;15183:4;15203:20;15221:1;15203:20;:::i;:::-;15198:25;;15237:20;15255:1;15237:20;:::i;:::-;15232:25;;15276:1;15273;15270:8;15267:34;;;15281:18;;:::i;:::-;15267:34;15326:1;15323;15319:9;15311:17;;15143:191;;;;:::o;15340:305::-;15380:3;15399:20;15417:1;15399:20;:::i;:::-;15394:25;;15433:20;15451:1;15433:20;:::i;:::-;15428:25;;15587:1;15519:66;15515:74;15512:1;15509:81;15506:107;;;15593:18;;:::i;:::-;15506:107;15637:1;15634;15630:9;15623:16;;15340:305;;;;:::o;15651:224::-;15791:34;15787:1;15779:6;15775:14;15768:58;15860:7;15855:2;15847:6;15843:15;15836:32;15651:224;:::o;15881:366::-;16023:3;16044:67;16108:2;16103:3;16044:67;:::i;:::-;16037:74;;16120:93;16209:3;16120:93;:::i;:::-;16238:2;16233:3;16229:12;16222:19;;15881:366;;;:::o;16253:419::-;16419:4;16457:2;16446:9;16442:18;16434:26;;16506:9;16500:4;16496:20;16492:1;16481:9;16477:17;16470:47;16534:131;16660:4;16534:131;:::i;:::-;16526:139;;16253:419;;;:::o;16678:161::-;16818:13;16814:1;16806:6;16802:14;16795:37;16678:161;:::o;16845:366::-;16987:3;17008:67;17072:2;17067:3;17008:67;:::i;:::-;17001:74;;17084:93;17173:3;17084:93;:::i;:::-;17202:2;17197:3;17193:12;17186:19;;16845:366;;;:::o;17217:419::-;17383:4;17421:2;17410:9;17406:18;17398:26;;17470:9;17464:4;17460:20;17456:1;17445:9;17441:17;17434:47;17498:131;17624:4;17498:131;:::i;:::-;17490:139;;17217:419;;;:::o;17642:143::-;17699:5;17730:6;17724:13;17715:22;;17746:33;17773:5;17746:33;:::i;:::-;17642:143;;;;:::o;17791:351::-;17861:6;17910:2;17898:9;17889:7;17885:23;17881:32;17878:119;;;17916:79;;:::i;:::-;17878:119;18036:1;18061:64;18117:7;18108:6;18097:9;18093:22;18061:64;:::i;:::-;18051:74;;18007:128;17791:351;;;;:::o;18148:85::-;18193:7;18222:5;18211:16;;18148:85;;;:::o;18239:158::-;18297:9;18330:61;18348:42;18357:32;18383:5;18357:32;:::i;:::-;18348:42;:::i;:::-;18330:61;:::i;:::-;18317:74;;18239:158;;;:::o;18403:147::-;18498:45;18537:5;18498:45;:::i;:::-;18493:3;18486:58;18403:147;;:::o;18556:114::-;18623:6;18657:5;18651:12;18641:22;;18556:114;;;:::o;18676:184::-;18775:11;18809:6;18804:3;18797:19;18849:4;18844:3;18840:14;18825:29;;18676:184;;;;:::o;18866:132::-;18933:4;18956:3;18948:11;;18986:4;18981:3;18977:14;18969:22;;18866:132;;;:::o;19004:108::-;19081:24;19099:5;19081:24;:::i;:::-;19076:3;19069:37;19004:108;;:::o;19118:179::-;19187:10;19208:46;19250:3;19242:6;19208:46;:::i;:::-;19286:4;19281:3;19277:14;19263:28;;19118:179;;;;:::o;19303:113::-;19373:4;19405;19400:3;19396:14;19388:22;;19303:113;;;:::o;19452:732::-;19571:3;19600:54;19648:5;19600:54;:::i;:::-;19670:86;19749:6;19744:3;19670:86;:::i;:::-;19663:93;;19780:56;19830:5;19780:56;:::i;:::-;19859:7;19890:1;19875:284;19900:6;19897:1;19894:13;19875:284;;;19976:6;19970:13;20003:63;20062:3;20047:13;20003:63;:::i;:::-;19996:70;;20089:60;20142:6;20089:60;:::i;:::-;20079:70;;19935:224;19922:1;19919;19915:9;19910:14;;19875:284;;;19879:14;20175:3;20168:10;;19576:608;;;19452:732;;;;:::o;20190:831::-;20453:4;20491:3;20480:9;20476:19;20468:27;;20505:71;20573:1;20562:9;20558:17;20549:6;20505:71;:::i;:::-;20586:80;20662:2;20651:9;20647:18;20638:6;20586:80;:::i;:::-;20713:9;20707:4;20703:20;20698:2;20687:9;20683:18;20676:48;20741:108;20844:4;20835:6;20741:108;:::i;:::-;20733:116;;20859:72;20927:2;20916:9;20912:18;20903:6;20859:72;:::i;:::-;20941:73;21009:3;20998:9;20994:19;20985:6;20941:73;:::i;:::-;20190:831;;;;;;;;:::o;21027:177::-;21167:29;21163:1;21155:6;21151:14;21144:53;21027:177;:::o;21210:366::-;21352:3;21373:67;21437:2;21432:3;21373:67;:::i;:::-;21366:74;;21449:93;21538:3;21449:93;:::i;:::-;21567:2;21562:3;21558:12;21551:19;;21210:366;;;:::o;21582:419::-;21748:4;21786:2;21775:9;21771:18;21763:26;;21835:9;21829:4;21825:20;21821:1;21810:9;21806:17;21799:47;21863:131;21989:4;21863:131;:::i;:::-;21855:139;;21582:419;;;:::o;22007:220::-;22147:34;22143:1;22135:6;22131:14;22124:58;22216:3;22211:2;22203:6;22199:15;22192:28;22007:220;:::o;22233:366::-;22375:3;22396:67;22460:2;22455:3;22396:67;:::i;:::-;22389:74;;22472:93;22561:3;22472:93;:::i;:::-;22590:2;22585:3;22581:12;22574:19;;22233:366;;;:::o;22605:419::-;22771:4;22809:2;22798:9;22794:18;22786:26;;22858:9;22852:4;22848:20;22844:1;22833:9;22829:17;22822:47;22886:131;23012:4;22886:131;:::i;:::-;22878:139;;22605:419;;;:::o

Swarm Source

ipfs://e9296fd83a5e073461d26ccb5b0c32611eff9fe1352b4acd5be50deb2a4dd03b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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