ETH Price: $3,409.64 (+0.74%)
Gas: 3 Gwei

Contract

0x5BDEe27dB32e24f364089B7f6843166f68Be288E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve202010532024-06-30 0:54:1117 hrs ago1719708851IN
0x5BDEe27d...f68Be288E
0 ETH0.000042361.56640991
Approve201902132024-06-28 12:33:592 days ago1719578039IN
0x5BDEe27d...f68Be288E
0 ETH0.000221074.70911411
Approve201902092024-06-28 12:33:112 days ago1719577991IN
0x5BDEe27d...f68Be288E
0 ETH0.000235015.00605701
Approve201901192024-06-28 12:15:112 days ago1719576911IN
0x5BDEe27d...f68Be288E
0 ETH0.000121214.48169365
Approve201884092024-06-28 6:31:472 days ago1719556307IN
0x5BDEe27d...f68Be288E
0 ETH0.000169183.58817056
Approve201867242024-06-28 0:52:472 days ago1719535967IN
0x5BDEe27d...f68Be288E
0 ETH0.000163436.04295184
Approve201866782024-06-28 0:43:232 days ago1719535403IN
0x5BDEe27d...f68Be288E
0 ETH0.000229994.89919675
Approve201866702024-06-28 0:41:472 days ago1719535307IN
0x5BDEe27d...f68Be288E
0 ETH0.000120654.46106397
Approve201858072024-06-27 21:47:472 days ago1719524867IN
0x5BDEe27d...f68Be288E
0 ETH0.000292916.21235539
Renounce Ownersh...201857992024-06-27 21:46:112 days ago1719524771IN
0x5BDEe27d...f68Be288E
0 ETH0.000132145.64859157
Approve201857982024-06-27 21:45:592 days ago1719524759IN
0x5BDEe27d...f68Be288E
0 ETH0.0004799910.16715724
Approve201857652024-06-27 21:39:232 days ago1719524363IN
0x5BDEe27d...f68Be288E
0 ETH0.00040248.52380992
Approve201857592024-06-27 21:38:112 days ago1719524291IN
0x5BDEe27d...f68Be288E
0 ETH0.000404788.57415561
Approve201856702024-06-27 21:20:232 days ago1719523223IN
0x5BDEe27d...f68Be288E
0 ETH0.0004919910.42139286
Approve201856682024-06-27 21:19:592 days ago1719523199IN
0x5BDEe27d...f68Be288E
0 ETH0.0018164538.47602356
Approve201856682024-06-27 21:19:592 days ago1719523199IN
0x5BDEe27d...f68Be288E
0 ETH0.0018164538.47602356
Approve201856672024-06-27 21:19:472 days ago1719523187IN
0x5BDEe27d...f68Be288E
0 ETH0.000385778.17152906
Approve201856672024-06-27 21:19:472 days ago1719523187IN
0x5BDEe27d...f68Be288E
0 ETH0.0004801910.17152906
Approve201856652024-06-27 21:19:112 days ago1719523151IN
0x5BDEe27d...f68Be288E
0 ETH0.0007571516.03805068
Approve201856602024-06-27 21:18:112 days ago1719523091IN
0x5BDEe27d...f68Be288E
0 ETH0.0004861710.29809018
Approve201856402024-06-27 21:14:112 days ago1719522851IN
0x5BDEe27d...f68Be288E
0 ETH0.00018646.8922731
Approve201856352024-06-27 21:12:592 days ago1719522779IN
0x5BDEe27d...f68Be288E
0 ETH0.000396588.40038424
Approve201856342024-06-27 21:12:472 days ago1719522767IN
0x5BDEe27d...f68Be288E
0 ETH0.000400778.48927639
Approve201856312024-06-27 21:12:112 days ago1719522731IN
0x5BDEe27d...f68Be288E
0 ETH0.000409378.6712853
Approve201856312024-06-27 21:12:112 days ago1719522731IN
0x5BDEe27d...f68Be288E
0 ETH0.000409378.6712853
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
201886292024-06-28 7:15:472 days ago1719558947
0x5BDEe27d...f68Be288E
0.00799076 ETH
201886292024-06-28 7:15:472 days ago1719558947
0x5BDEe27d...f68Be288E
0.00799076 ETH
201858252024-06-27 21:51:232 days ago1719525083
0x5BDEe27d...f68Be288E
0.02355551 ETH
201858252024-06-27 21:51:232 days ago1719525083
0x5BDEe27d...f68Be288E
0.02355551 ETH
201857042024-06-27 21:27:112 days ago1719523631
0x5BDEe27d...f68Be288E
0.03591361 ETH
201857042024-06-27 21:27:112 days ago1719523631
0x5BDEe27d...f68Be288E
0.03591361 ETH
201856612024-06-27 21:18:232 days ago1719523103
0x5BDEe27d...f68Be288E
0.0703349 ETH
201856612024-06-27 21:18:232 days ago1719523103
0x5BDEe27d...f68Be288E
0.0703349 ETH
201855992024-06-27 21:05:472 days ago1719522347
0x5BDEe27d...f68Be288E
0.09389691 ETH
201855992024-06-27 21:05:472 days ago1719522347
0x5BDEe27d...f68Be288E
0.09389691 ETH
201855952024-06-27 21:04:592 days ago1719522299
0x5BDEe27d...f68Be288E
0.08437066 ETH
201855952024-06-27 21:04:592 days ago1719522299
0x5BDEe27d...f68Be288E
0.08437066 ETH
201855952024-06-27 21:04:592 days ago1719522299
0x5BDEe27d...f68Be288E
0.08945409 ETH
201855952024-06-27 21:04:592 days ago1719522299
0x5BDEe27d...f68Be288E
0.08945409 ETH
201855872024-06-27 21:03:232 days ago1719522203
0x5BDEe27d...f68Be288E
0.06420031 ETH
201855872024-06-27 21:03:232 days ago1719522203
0x5BDEe27d...f68Be288E
0.06420031 ETH
201855832024-06-27 21:02:352 days ago1719522155
0x5BDEe27d...f68Be288E
0.05987416 ETH
201855832024-06-27 21:02:352 days ago1719522155
0x5BDEe27d...f68Be288E
0.05987416 ETH
201855822024-06-27 21:02:232 days ago1719522143
0x5BDEe27d...f68Be288E
0.06643575 ETH
201855822024-06-27 21:02:232 days ago1719522143
0x5BDEe27d...f68Be288E
0.06643575 ETH
201855802024-06-27 21:01:592 days ago1719522119
0x5BDEe27d...f68Be288E
0.05294387 ETH
201855802024-06-27 21:01:592 days ago1719522119
0x5BDEe27d...f68Be288E
0.05294387 ETH
201855762024-06-27 21:01:112 days ago1719522071
0x5BDEe27d...f68Be288E
0.05664764 ETH
201855762024-06-27 21:01:112 days ago1719522071
0x5BDEe27d...f68Be288E
0.05664764 ETH
201855742024-06-27 21:00:472 days ago1719522047
0x5BDEe27d...f68Be288E
0.06116106 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WORM

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/**
The WORM inside RFK Jr's brain came back to life as a memecoin! We are the first community coin supporting RFK Jr. Listen to the WORM.
Website: https://www.rfkworm.com
Telegram: https://t.me/ListenToTheWorm
Twitter: https://x.com/listentotheworm
*/

pragma solidity 0.8.20;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "ZERO ADDRESS");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract WORM is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isSniper;
    
    uint8 private constant _decimals = 18;
    bool public antiBotPeriod = true;
    bool private inSwap = false;
    bool private feeSwapEnabled = false;
    address payable private _taxWallet;

    uint256 private constant _tTotal = 47_000_000 * 10**_decimals;
    uint256 private _taxFee = 1;
    uint256 private _antiBotTaxFee = 20;
    uint256 public _maxTxAmount = 470_000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 117_500 * 10**_decimals;
    
    string private constant _name = "RFK WORM";
    string private constant _symbol = "WORM";

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _balances[_msgSender()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        _taxWallet = payable(_msgSender());
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

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

        uint256 taxAmount = 0;
        
        if (from != owner() && to != owner()) {
            if (antiBotPeriod && !isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount");
            }
            
            // if buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                taxAmount = amount.mul(antiBotPeriod ? _antiBotTaxFee : _taxFee).div(100);
            }
    
            // if sell
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                taxAmount = amount.mul(antiBotPeriod ? _antiBotTaxFee : _taxFee).div(100);
            }
            
            // if excluded from fee or non-trading tx
            if ((isExcludedFromFee[from] || isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && feeSwapEnabled && contractTokenBalance > _taxSwapThreshold) {
                swapTokensForEth(_taxSwapThreshold);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        // execute the tx
        if(taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
 
    function changeFeeType(bool _feeSwapEnabled) public onlyOwner {
        feeSwapEnabled = _feeSwapEnabled;
    }

    function removeLimits() public onlyOwner {
        antiBotPeriod = false;
        feeSwapEnabled = true;
    }

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

    function changeTaxWallet (address _newTaxWallet) public onlyOwner {
        _taxWallet = payable(_newTaxWallet);
    }

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

    function rescueTokens() external onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));
        _balances[address(this)] = _balances[address(this)].sub(contractTokenBalance);
        _balances[_taxWallet] = _balances[_taxWallet].add(contractTokenBalance);
    }

    function rescueETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "0 eth");
        _taxWallet.transfer(contractETHBalance);
    }

    function manualSwap() external onlyOwner {
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0) {
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0) {
          sendETHToFee(ethBalance);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBotPeriod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_feeSwapEnabled","type":"bool"}],"name":"changeFeeType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTaxWallet","type":"address"}],"name":"changeTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"bool_","type":"bool"}],"name":"updateSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff0219169083151502179055505f600660016101000a81548160ff0219169083151502179055505f600660026101000a81548160ff021916908315150217905550600160075560146008556012600a6200006c91906200079f565b62072bf06200007c9190620007ef565b6009556012600a6200008f91906200079f565b6201cafc6200009f9190620007ef565b600a55348015620000ae575f80fd5b505f620000c0620005df60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506012600a6200016c91906200079f565b6302cd29c06200017d9190620007ef565b60025f62000190620005df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d905080600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029591906200089e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032191906200089e565b6040518363ffffffff1660e01b815260040162000340929190620008df565b6020604051808303815f875af11580156200035d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200038391906200089e565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003d2620005df60201b60201c565b600660036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f62000427620005e660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000552620005df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620005b091906200079f565b6302cd29c0620005c19190620007ef565b604051620005d091906200091b565b60405180910390a35062000936565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000697578086048111156200066f576200066e6200060d565b5b60018516156200067f5780820291505b80810290506200068f856200063a565b94506200064f565b94509492505050565b5f82620006b1576001905062000783565b81620006c0575f905062000783565b8160018114620006d95760028114620006e4576200071a565b600191505062000783565b60ff841115620006f957620006f86200060d565b5b8360020a9150848211156200071357620007126200060d565b5b5062000783565b5060208310610133831016604e8410600b8410161715620007545782820a9050838111156200074e576200074d6200060d565b5b62000783565b62000763848484600162000646565b925090508184048111156200077d576200077c6200060d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007ab826200078a565b9150620007b88362000793565b9250620007e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006a0565b905092915050565b5f620007fb826200078a565b915062000808836200078a565b925082820262000818816200078a565b915082820484148315176200083257620008316200060d565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000868826200083d565b9050919050565b6200087a816200085c565b811462000885575f80fd5b50565b5f8151905062000898816200086f565b92915050565b5f60208284031215620008b657620008b562000839565b5b5f620008c58482850162000888565b91505092915050565b620008d9816200085c565b82525050565b5f604082019050620008f45f830185620008ce565b620009036020830184620008ce565b9392505050565b62000915816200078a565b82525050565b5f602082019050620009305f8301846200090a565b92915050565b6134ff80620009445f395ff3fe60806040526004361061019f575f3560e01c8063715018a6116100eb578063a9059cbb11610089578063cb71159511610063578063cb71159514610586578063dd62ed3e146105ae578063dd8c2e0f146105ea578063f2fde38b14610600576101a6565b8063a9059cbb146104f8578063ad29ffde14610534578063bf474bed1461055c576101a6565b80638da5cb5b116100c55780638da5cb5b1461045257806395d89b411461047c5780639a8b73da146104a65780639bbdae4f146104d0576101a6565b8063715018a6146103fc578063751039fc146104125780637d1db4a514610428576101a6565b806320800a001161015857806349bd5a5e1161013257806349bd5a5e1461034457806351bc3c851461036e5780635342acb41461038457806370a08231146103c0576101a6565b806320800a00146102c857806323b872dd146102de578063313ce5671461031a576101a6565b806306b8769b146101aa57806306fdde03146101d2578063095ea7b3146101fc5780630f3a325f146102385780631694505e1461027457806318160ddd1461029e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101d060048036038101906101cb91906125d4565b610628565b005b3480156101dd575f80fd5b506101e66106d9565b6040516101f39190612689565b60405180910390f35b348015610207575f80fd5b50610222600480360381019061021d9190612736565b610716565b60405161022f9190612783565b60405180910390f35b348015610243575f80fd5b5061025e6004803603810190610259919061279c565b610733565b60405161026b9190612783565b60405180910390f35b34801561027f575f80fd5b50610288610750565b6040516102959190612822565b60405180910390f35b3480156102a9575f80fd5b506102b2610775565b6040516102bf919061284a565b60405180910390f35b3480156102d3575f80fd5b506102dc610798565b005b3480156102e9575f80fd5b5061030460048036038101906102ff9190612863565b6108db565b6040516103119190612783565b60405180910390f35b348015610325575f80fd5b5061032e6109af565b60405161033b91906128ce565b60405180910390f35b34801561034f575f80fd5b506103586109b7565b60405161036591906128f6565b60405180910390f35b348015610379575f80fd5b506103826109dc565b005b34801561038f575f80fd5b506103aa60048036038101906103a5919061279c565b610aa8565b6040516103b79190612783565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e1919061279c565b610ac5565b6040516103f3919061284a565b60405180910390f35b348015610407575f80fd5b50610410610b0b565b005b34801561041d575f80fd5b50610426610c59565b005b348015610433575f80fd5b5061043c610d23565b604051610449919061284a565b60405180910390f35b34801561045d575f80fd5b50610466610d29565b60405161047391906128f6565b60405180910390f35b348015610487575f80fd5b50610490610d50565b60405161049d9190612689565b60405180910390f35b3480156104b1575f80fd5b506104ba610d8d565b6040516104c79190612783565b60405180910390f35b3480156104db575f80fd5b506104f660048036038101906104f19190612970565b610d9f565b005b348015610503575f80fd5b5061051e60048036038101906105199190612736565b610ed4565b60405161052b9190612783565b60405180910390f35b34801561053f575f80fd5b5061055a60048036038101906105559190612970565b610ef1565b005b348015610567575f80fd5b50610570611026565b60405161057d919061284a565b60405180910390f35b348015610591575f80fd5b506105ac60048036038101906105a7919061279c565b61102c565b005b3480156105b9575f80fd5b506105d460048036038101906105cf91906129cd565b611104565b6040516105e1919061284a565b60405180910390f35b3480156105f5575f80fd5b506105fe611186565b005b34801561060b575f80fd5b506106266004803603810190610621919061279c565b61138f565b005b61063061154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390612a55565b60405180910390fd5b80600660026101000a81548160ff02191690831515021790555050565b60606040518060400160405280600881526020017f52464b20574f524d000000000000000000000000000000000000000000000000815250905090565b5f61072961072261154c565b8484611553565b6001905092915050565b6005602052805f5260405f205f915054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012600a6107849190612bcf565b6302cd29c06107939190612c19565b905090565b6107a061154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082390612a55565b60405180910390fd5b5f4790505f8111610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990612ca4565b60405180910390fd5b600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156108d7573d5f803e3d5ffd5b5050565b5f6108e7848484611716565b6109a4846108f361154c565b61099f856040518060600160405280602881526020016134a26028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61095661154c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209a9092919063ffffffff16565b611553565b600190509392505050565b5f6012905090565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e461154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790612a55565b60405180910390fd5b5f610a7a30610ac5565b90505f811115610a8e57610a8d816120fc565b5b5f4790505f811115610aa457610aa381612367565b5b5050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b1361154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c6161154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612a55565b60405180910390fd5b5f60065f6101000a81548160ff0219169083151502179055506001600660026101000a81548160ff021916908315150217905550565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f574f524d00000000000000000000000000000000000000000000000000000000815250905090565b60065f9054906101000a900460ff1681565b610da761154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a90612a55565b60405180910390fd5b5f5b83839050811015610ece578160055f868685818110610e5757610e56612cc2565b5b9050602002016020810190610e6c919061279c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ec690612cef565b915050610e35565b50505050565b5f610ee7610ee061154c565b8484611716565b6001905092915050565b610ef961154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c90612a55565b60405180910390fd5b5f5b83839050811015611020578160045f868685818110610fa957610fa8612cc2565b5b9050602002016020810190610fbe919061279c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061101890612cef565b915050610f87565b50505050565b600a5481565b61103461154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790612a55565b60405180910390fd5b80600660036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61118e61154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190612a55565b60405180910390fd5b5f61122430610ac5565b90506112768160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d090919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506113298160025f600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461241990919063ffffffff16565b60025f600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b61139761154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890612d80565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612e0e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690612e9c565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611709919061284a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b90612f2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990612fb8565b60405180910390fd5b5f8111611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90613046565b60405180910390fd5b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b5906130ae565b60405180910390fd5b5f6118c7610d29565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119355750611905610d29565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dea5760065f9054906101000a900460ff16801561199c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119e7576009548211156119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90613116565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a905750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611adc57611ad96064611acb60065f9054906101000a900460ff16611ab857600754611abc565b6008545b8561247690919063ffffffff16565b6124ed90919063ffffffff16565b90505b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b855750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bd157611bce6064611bc060065f9054906101000a900460ff16611bad57600754611bb1565b6008545b8561247690919063ffffffff16565b6124ed90919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611c6c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611d1d5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d1c5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d26575f90505b5f611d3030610ac5565b9050600660019054906101000a900460ff16158015611d9b5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611db35750600660029054906101000a900460ff165b8015611dc05750600a5481115b15611de857611dd0600a546120fc565b5f4790505f811115611de657611de547612367565b5b505b505b5f811115611ee957611e428160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461241990919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee0919061284a565b60405180910390a35b611f398260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d090919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fdc611f9082846123d090919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461241990919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61207f84866123d090919063ffffffff16565b60405161208c919061284a565b60405180910390a350505050565b5f8383111582906120e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d89190612689565b60405180910390fd5b505f83856120ef9190613134565b9050809150509392505050565b6001600660016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561213357612132613167565b5b6040519080825280602002602001820160405280156121615781602001602082028036833780820191505090505b50905030815f8151811061217857612177612cc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561221c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224091906131a8565b8160018151811061225457612253612cc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122ba30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611553565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161231c9594939291906132c3565b5f604051808303815f87803b158015612333575f80fd5b505af1158015612345573d5f803e3d5ffd5b50505050505f600660016101000a81548160ff02191690831515021790555050565b600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123cc573d5f803e3d5ffd5b5050565b5f61241183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209a565b905092915050565b5f808284612427919061331b565b90508381101561246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246390613398565b60405180910390fd5b8091505092915050565b5f808303612486575f90506124e7565b5f82846124939190612c19565b90508284826124a291906133e3565b146124e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d990613483565b60405180910390fd5b809150505b92915050565b5f61252e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612536565b905092915050565b5f808311829061257c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125739190612689565b60405180910390fd5b505f838561258a91906133e3565b9050809150509392505050565b5f80fd5b5f80fd5b5f8115159050919050565b6125b38161259f565b81146125bd575f80fd5b50565b5f813590506125ce816125aa565b92915050565b5f602082840312156125e9576125e8612597565b5b5f6125f6848285016125c0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561263657808201518184015260208101905061261b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61265b826125ff565b6126658185612609565b9350612675818560208601612619565b61267e81612641565b840191505092915050565b5f6020820190508181035f8301526126a18184612651565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126d2826126a9565b9050919050565b6126e2816126c8565b81146126ec575f80fd5b50565b5f813590506126fd816126d9565b92915050565b5f819050919050565b61271581612703565b811461271f575f80fd5b50565b5f813590506127308161270c565b92915050565b5f806040838503121561274c5761274b612597565b5b5f612759858286016126ef565b925050602061276a85828601612722565b9150509250929050565b61277d8161259f565b82525050565b5f6020820190506127965f830184612774565b92915050565b5f602082840312156127b1576127b0612597565b5b5f6127be848285016126ef565b91505092915050565b5f819050919050565b5f6127ea6127e56127e0846126a9565b6127c7565b6126a9565b9050919050565b5f6127fb826127d0565b9050919050565b5f61280c826127f1565b9050919050565b61281c81612802565b82525050565b5f6020820190506128355f830184612813565b92915050565b61284481612703565b82525050565b5f60208201905061285d5f83018461283b565b92915050565b5f805f6060848603121561287a57612879612597565b5b5f612887868287016126ef565b9350506020612898868287016126ef565b92505060406128a986828701612722565b9150509250925092565b5f60ff82169050919050565b6128c8816128b3565b82525050565b5f6020820190506128e15f8301846128bf565b92915050565b6128f0816126c8565b82525050565b5f6020820190506129095f8301846128e7565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126129305761292f61290f565b5b8235905067ffffffffffffffff81111561294d5761294c612913565b5b60208301915083602082028301111561296957612968612917565b5b9250929050565b5f805f6040848603121561298757612986612597565b5b5f84013567ffffffffffffffff8111156129a4576129a361259b565b5b6129b08682870161291b565b935093505060206129c3868287016125c0565b9150509250925092565b5f80604083850312156129e3576129e2612597565b5b5f6129f0858286016126ef565b9250506020612a01858286016126ef565b9150509250929050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f612a3f601783612609565b9150612a4a82612a0b565b602082019050919050565b5f6020820190508181035f830152612a6c81612a33565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612af557808604811115612ad157612ad0612a73565b5b6001851615612ae05780820291505b8081029050612aee85612aa0565b9450612ab5565b94509492505050565b5f82612b0d5760019050612bc8565b81612b1a575f9050612bc8565b8160018114612b305760028114612b3a57612b69565b6001915050612bc8565b60ff841115612b4c57612b4b612a73565b5b8360020a915084821115612b6357612b62612a73565b5b50612bc8565b5060208310610133831016604e8410600b8410161715612b9e5782820a905083811115612b9957612b98612a73565b5b612bc8565b612bab8484846001612aac565b92509050818404811115612bc257612bc1612a73565b5b81810290505b9392505050565b5f612bd982612703565b9150612be4836128b3565b9250612c117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612afe565b905092915050565b5f612c2382612703565b9150612c2e83612703565b9250828202612c3c81612703565b91508282048414831517612c5357612c52612a73565b5b5092915050565b7f30206574680000000000000000000000000000000000000000000000000000005f82015250565b5f612c8e600583612609565b9150612c9982612c5a565b602082019050919050565b5f6020820190508181035f830152612cbb81612c82565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612cf982612703565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d2b57612d2a612a73565b5b600182019050919050565b7f5a45524f204144445245535300000000000000000000000000000000000000005f82015250565b5f612d6a600c83612609565b9150612d7582612d36565b602082019050919050565b5f6020820190508181035f830152612d9781612d5e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612df8602483612609565b9150612e0382612d9e565b604082019050919050565b5f6020820190508181035f830152612e2581612dec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e86602283612609565b9150612e9182612e2c565b604082019050919050565b5f6020820190508181035f830152612eb381612e7a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f14602583612609565b9150612f1f82612eba565b604082019050919050565b5f6020820190508181035f830152612f4181612f08565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fa2602383612609565b9150612fad82612f48565b604082019050919050565b5f6020820190508181035f830152612fcf81612f96565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613030602983612609565b915061303b82612fd6565b604082019050919050565b5f6020820190508181035f83015261305d81613024565b9050919050565b7f6620736e697065727300000000000000000000000000000000000000000000005f82015250565b5f613098600983612609565b91506130a382613064565b602082019050919050565b5f6020820190508181035f8301526130c58161308c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e7400000000000000005f82015250565b5f613100601883612609565b915061310b826130cc565b602082019050919050565b5f6020820190508181035f83015261312d816130f4565b9050919050565b5f61313e82612703565b915061314983612703565b925082820390508181111561316157613160612a73565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506131a2816126d9565b92915050565b5f602082840312156131bd576131bc612597565b5b5f6131ca84828501613194565b91505092915050565b5f819050919050565b5f6131f66131f16131ec846131d3565b6127c7565b612703565b9050919050565b613206816131dc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61323e816126c8565b82525050565b5f61324f8383613235565b60208301905092915050565b5f602082019050919050565b5f6132718261320c565b61327b8185613216565b935061328683613226565b805f5b838110156132b657815161329d8882613244565b97506132a88361325b565b925050600181019050613289565b5085935050505092915050565b5f60a0820190506132d65f83018861283b565b6132e360208301876131fd565b81810360408301526132f58186613267565b905061330460608301856128e7565b613311608083018461283b565b9695505050505050565b5f61332582612703565b915061333083612703565b925082820190508082111561334857613347612a73565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613382601b83612609565b915061338d8261334e565b602082019050919050565b5f6020820190508181035f8301526133af81613376565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133ed82612703565b91506133f883612703565b925082613408576134076133b6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61346d602183612609565b915061347882613413565b604082019050919050565b5f6020820190508181035f83015261349a81613461565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122006bc35767a22a4aaee6713c193c389a9667da897dd757fad0038d92f349bd78264736f6c63430008140033

Deployed Bytecode

0x60806040526004361061019f575f3560e01c8063715018a6116100eb578063a9059cbb11610089578063cb71159511610063578063cb71159514610586578063dd62ed3e146105ae578063dd8c2e0f146105ea578063f2fde38b14610600576101a6565b8063a9059cbb146104f8578063ad29ffde14610534578063bf474bed1461055c576101a6565b80638da5cb5b116100c55780638da5cb5b1461045257806395d89b411461047c5780639a8b73da146104a65780639bbdae4f146104d0576101a6565b8063715018a6146103fc578063751039fc146104125780637d1db4a514610428576101a6565b806320800a001161015857806349bd5a5e1161013257806349bd5a5e1461034457806351bc3c851461036e5780635342acb41461038457806370a08231146103c0576101a6565b806320800a00146102c857806323b872dd146102de578063313ce5671461031a576101a6565b806306b8769b146101aa57806306fdde03146101d2578063095ea7b3146101fc5780630f3a325f146102385780631694505e1461027457806318160ddd1461029e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101d060048036038101906101cb91906125d4565b610628565b005b3480156101dd575f80fd5b506101e66106d9565b6040516101f39190612689565b60405180910390f35b348015610207575f80fd5b50610222600480360381019061021d9190612736565b610716565b60405161022f9190612783565b60405180910390f35b348015610243575f80fd5b5061025e6004803603810190610259919061279c565b610733565b60405161026b9190612783565b60405180910390f35b34801561027f575f80fd5b50610288610750565b6040516102959190612822565b60405180910390f35b3480156102a9575f80fd5b506102b2610775565b6040516102bf919061284a565b60405180910390f35b3480156102d3575f80fd5b506102dc610798565b005b3480156102e9575f80fd5b5061030460048036038101906102ff9190612863565b6108db565b6040516103119190612783565b60405180910390f35b348015610325575f80fd5b5061032e6109af565b60405161033b91906128ce565b60405180910390f35b34801561034f575f80fd5b506103586109b7565b60405161036591906128f6565b60405180910390f35b348015610379575f80fd5b506103826109dc565b005b34801561038f575f80fd5b506103aa60048036038101906103a5919061279c565b610aa8565b6040516103b79190612783565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e1919061279c565b610ac5565b6040516103f3919061284a565b60405180910390f35b348015610407575f80fd5b50610410610b0b565b005b34801561041d575f80fd5b50610426610c59565b005b348015610433575f80fd5b5061043c610d23565b604051610449919061284a565b60405180910390f35b34801561045d575f80fd5b50610466610d29565b60405161047391906128f6565b60405180910390f35b348015610487575f80fd5b50610490610d50565b60405161049d9190612689565b60405180910390f35b3480156104b1575f80fd5b506104ba610d8d565b6040516104c79190612783565b60405180910390f35b3480156104db575f80fd5b506104f660048036038101906104f19190612970565b610d9f565b005b348015610503575f80fd5b5061051e60048036038101906105199190612736565b610ed4565b60405161052b9190612783565b60405180910390f35b34801561053f575f80fd5b5061055a60048036038101906105559190612970565b610ef1565b005b348015610567575f80fd5b50610570611026565b60405161057d919061284a565b60405180910390f35b348015610591575f80fd5b506105ac60048036038101906105a7919061279c565b61102c565b005b3480156105b9575f80fd5b506105d460048036038101906105cf91906129cd565b611104565b6040516105e1919061284a565b60405180910390f35b3480156105f5575f80fd5b506105fe611186565b005b34801561060b575f80fd5b506106266004803603810190610621919061279c565b61138f565b005b61063061154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390612a55565b60405180910390fd5b80600660026101000a81548160ff02191690831515021790555050565b60606040518060400160405280600881526020017f52464b20574f524d000000000000000000000000000000000000000000000000815250905090565b5f61072961072261154c565b8484611553565b6001905092915050565b6005602052805f5260405f205f915054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012600a6107849190612bcf565b6302cd29c06107939190612c19565b905090565b6107a061154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082390612a55565b60405180910390fd5b5f4790505f8111610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990612ca4565b60405180910390fd5b600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156108d7573d5f803e3d5ffd5b5050565b5f6108e7848484611716565b6109a4846108f361154c565b61099f856040518060600160405280602881526020016134a26028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61095661154c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461209a9092919063ffffffff16565b611553565b600190509392505050565b5f6012905090565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e461154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790612a55565b60405180910390fd5b5f610a7a30610ac5565b90505f811115610a8e57610a8d816120fc565b5b5f4790505f811115610aa457610aa381612367565b5b5050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b1361154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690612a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c6161154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612a55565b60405180910390fd5b5f60065f6101000a81548160ff0219169083151502179055506001600660026101000a81548160ff021916908315150217905550565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f574f524d00000000000000000000000000000000000000000000000000000000815250905090565b60065f9054906101000a900460ff1681565b610da761154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a90612a55565b60405180910390fd5b5f5b83839050811015610ece578160055f868685818110610e5757610e56612cc2565b5b9050602002016020810190610e6c919061279c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610ec690612cef565b915050610e35565b50505050565b5f610ee7610ee061154c565b8484611716565b6001905092915050565b610ef961154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c90612a55565b60405180910390fd5b5f5b83839050811015611020578160045f868685818110610fa957610fa8612cc2565b5b9050602002016020810190610fbe919061279c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061101890612cef565b915050610f87565b50505050565b600a5481565b61103461154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790612a55565b60405180910390fd5b80600660036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61118e61154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190612a55565b60405180910390fd5b5f61122430610ac5565b90506112768160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d090919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506113298160025f600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461241990919063ffffffff16565b60025f600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b61139761154c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612a55565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148890612d80565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612e0e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690612e9c565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611709919061284a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b90612f2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e990612fb8565b60405180910390fd5b5f8111611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90613046565b60405180910390fd5b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b5906130ae565b60405180910390fd5b5f6118c7610d29565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119355750611905610d29565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dea5760065f9054906101000a900460ff16801561199c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119e7576009548211156119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90613116565b60405180910390fd5b5b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a905750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611adc57611ad96064611acb60065f9054906101000a900460ff16611ab857600754611abc565b6008545b8561247690919063ffffffff16565b6124ed90919063ffffffff16565b90505b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b855750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bd157611bce6064611bc060065f9054906101000a900460ff16611bad57600754611bb1565b6008545b8561247690919063ffffffff16565b6124ed90919063ffffffff16565b90505b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611c6c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611d1d5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d1c5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d26575f90505b5f611d3030610ac5565b9050600660019054906101000a900460ff16158015611d9b5750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611db35750600660029054906101000a900460ff165b8015611dc05750600a5481115b15611de857611dd0600a546120fc565b5f4790505f811115611de657611de547612367565b5b505b505b5f811115611ee957611e428160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461241990919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ee0919061284a565b60405180910390a35b611f398260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123d090919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611fdc611f9082846123d090919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461241990919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61207f84866123d090919063ffffffff16565b60405161208c919061284a565b60405180910390a350505050565b5f8383111582906120e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d89190612689565b60405180910390fd5b505f83856120ef9190613134565b9050809150509392505050565b6001600660016101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561213357612132613167565b5b6040519080825280602002602001820160405280156121615781602001602082028036833780820191505090505b50905030815f8151811061217857612177612cc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561221c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224091906131a8565b8160018151811061225457612253612cc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122ba30600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611553565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161231c9594939291906132c3565b5f604051808303815f87803b158015612333575f80fd5b505af1158015612345573d5f803e3d5ffd5b50505050505f600660016101000a81548160ff02191690831515021790555050565b600660039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123cc573d5f803e3d5ffd5b5050565b5f61241183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209a565b905092915050565b5f808284612427919061331b565b90508381101561246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246390613398565b60405180910390fd5b8091505092915050565b5f808303612486575f90506124e7565b5f82846124939190612c19565b90508284826124a291906133e3565b146124e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d990613483565b60405180910390fd5b809150505b92915050565b5f61252e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612536565b905092915050565b5f808311829061257c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125739190612689565b60405180910390fd5b505f838561258a91906133e3565b9050809150509392505050565b5f80fd5b5f80fd5b5f8115159050919050565b6125b38161259f565b81146125bd575f80fd5b50565b5f813590506125ce816125aa565b92915050565b5f602082840312156125e9576125e8612597565b5b5f6125f6848285016125c0565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561263657808201518184015260208101905061261b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61265b826125ff565b6126658185612609565b9350612675818560208601612619565b61267e81612641565b840191505092915050565b5f6020820190508181035f8301526126a18184612651565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126d2826126a9565b9050919050565b6126e2816126c8565b81146126ec575f80fd5b50565b5f813590506126fd816126d9565b92915050565b5f819050919050565b61271581612703565b811461271f575f80fd5b50565b5f813590506127308161270c565b92915050565b5f806040838503121561274c5761274b612597565b5b5f612759858286016126ef565b925050602061276a85828601612722565b9150509250929050565b61277d8161259f565b82525050565b5f6020820190506127965f830184612774565b92915050565b5f602082840312156127b1576127b0612597565b5b5f6127be848285016126ef565b91505092915050565b5f819050919050565b5f6127ea6127e56127e0846126a9565b6127c7565b6126a9565b9050919050565b5f6127fb826127d0565b9050919050565b5f61280c826127f1565b9050919050565b61281c81612802565b82525050565b5f6020820190506128355f830184612813565b92915050565b61284481612703565b82525050565b5f60208201905061285d5f83018461283b565b92915050565b5f805f6060848603121561287a57612879612597565b5b5f612887868287016126ef565b9350506020612898868287016126ef565b92505060406128a986828701612722565b9150509250925092565b5f60ff82169050919050565b6128c8816128b3565b82525050565b5f6020820190506128e15f8301846128bf565b92915050565b6128f0816126c8565b82525050565b5f6020820190506129095f8301846128e7565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126129305761292f61290f565b5b8235905067ffffffffffffffff81111561294d5761294c612913565b5b60208301915083602082028301111561296957612968612917565b5b9250929050565b5f805f6040848603121561298757612986612597565b5b5f84013567ffffffffffffffff8111156129a4576129a361259b565b5b6129b08682870161291b565b935093505060206129c3868287016125c0565b9150509250925092565b5f80604083850312156129e3576129e2612597565b5b5f6129f0858286016126ef565b9250506020612a01858286016126ef565b9150509250929050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f612a3f601783612609565b9150612a4a82612a0b565b602082019050919050565b5f6020820190508181035f830152612a6c81612a33565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612af557808604811115612ad157612ad0612a73565b5b6001851615612ae05780820291505b8081029050612aee85612aa0565b9450612ab5565b94509492505050565b5f82612b0d5760019050612bc8565b81612b1a575f9050612bc8565b8160018114612b305760028114612b3a57612b69565b6001915050612bc8565b60ff841115612b4c57612b4b612a73565b5b8360020a915084821115612b6357612b62612a73565b5b50612bc8565b5060208310610133831016604e8410600b8410161715612b9e5782820a905083811115612b9957612b98612a73565b5b612bc8565b612bab8484846001612aac565b92509050818404811115612bc257612bc1612a73565b5b81810290505b9392505050565b5f612bd982612703565b9150612be4836128b3565b9250612c117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612afe565b905092915050565b5f612c2382612703565b9150612c2e83612703565b9250828202612c3c81612703565b91508282048414831517612c5357612c52612a73565b5b5092915050565b7f30206574680000000000000000000000000000000000000000000000000000005f82015250565b5f612c8e600583612609565b9150612c9982612c5a565b602082019050919050565b5f6020820190508181035f830152612cbb81612c82565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612cf982612703565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d2b57612d2a612a73565b5b600182019050919050565b7f5a45524f204144445245535300000000000000000000000000000000000000005f82015250565b5f612d6a600c83612609565b9150612d7582612d36565b602082019050919050565b5f6020820190508181035f830152612d9781612d5e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612df8602483612609565b9150612e0382612d9e565b604082019050919050565b5f6020820190508181035f830152612e2581612dec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e86602283612609565b9150612e9182612e2c565b604082019050919050565b5f6020820190508181035f830152612eb381612e7a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612f14602583612609565b9150612f1f82612eba565b604082019050919050565b5f6020820190508181035f830152612f4181612f08565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612fa2602383612609565b9150612fad82612f48565b604082019050919050565b5f6020820190508181035f830152612fcf81612f96565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613030602983612609565b915061303b82612fd6565b604082019050919050565b5f6020820190508181035f83015261305d81613024565b9050919050565b7f6620736e697065727300000000000000000000000000000000000000000000005f82015250565b5f613098600983612609565b91506130a382613064565b602082019050919050565b5f6020820190508181035f8301526130c58161308c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e7400000000000000005f82015250565b5f613100601883612609565b915061310b826130cc565b602082019050919050565b5f6020820190508181035f83015261312d816130f4565b9050919050565b5f61313e82612703565b915061314983612703565b925082820390508181111561316157613160612a73565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506131a2816126d9565b92915050565b5f602082840312156131bd576131bc612597565b5b5f6131ca84828501613194565b91505092915050565b5f819050919050565b5f6131f66131f16131ec846131d3565b6127c7565b612703565b9050919050565b613206816131dc565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61323e816126c8565b82525050565b5f61324f8383613235565b60208301905092915050565b5f602082019050919050565b5f6132718261320c565b61327b8185613216565b935061328683613226565b805f5b838110156132b657815161329d8882613244565b97506132a88361325b565b925050600181019050613289565b5085935050505092915050565b5f60a0820190506132d65f83018861283b565b6132e360208301876131fd565b81810360408301526132f58186613267565b905061330460608301856128e7565b613311608083018461283b565b9695505050505050565b5f61332582612703565b915061333083612703565b925082820190508082111561334857613347612a73565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613382601b83612609565b915061338d8261334e565b602082019050919050565b5f6020820190508181035f8301526133af81613376565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133ed82612703565b91506133f883612703565b925082613408576134076133b6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61346d602183612609565b915061347882613413565b604082019050919050565b5f6020820190508181035f83015261349a81613461565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122006bc35767a22a4aaee6713c193c389a9667da897dd757fad0038d92f349bd78264736f6c63430008140033

Deployed Bytecode Sourcemap

3997:7806:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10124:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5732:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6565:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4265:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4893;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6009:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11221:210;;;;;;;;;;;;;:::i;:::-;;6734:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5918:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4941:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11439:324;;;;;;;;;;;;;:::i;:::-;;4208:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6112:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3522:148;;;;;;;;;;;;;:::i;:::-;;10245:113;;;;;;;;;;;;;:::i;:::-;;4665:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3317:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5823:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4363:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10719:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6239:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10366:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4725:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10591:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6414:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10926:287;;;;;;;;;;;;;:::i;:::-;;3772:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10124:113;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10214:15:::1;10197:14;;:32;;;;;;;;;;;;;;;;;;10124:113:::0;:::o;5732:83::-;5769:13;5802:5;;;;;;;;;;;;;;;;;5795:12;;5732:83;:::o;6565:161::-;6640:4;6657:39;6666:12;:10;:12::i;:::-;6680:7;6689:6;6657:8;:39::i;:::-;6714:4;6707:11;;6565:161;;;;:::o;4265:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;4893:::-;;;;;;;;;;;;;:::o;6009:95::-;6062:7;4354:2;4569;:13;;;;:::i;:::-;4556:10;:26;;;;:::i;:::-;6082:14;;6009:95;:::o;11221:210::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;11272:26:::1;11301:21;11272:50;;11362:1;11341:18;:22;11333:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;11384:10;;;;;;;;;;;:19;;:39;11404:18;11384:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11261:170;11221:210::o:0;6734:313::-;6832:4;6849:36;6859:6;6867:9;6878:6;6849:9;:36::i;:::-;6896:121;6905:6;6913:12;:10;:12::i;:::-;6927:89;6965:6;6927:89;;;;;;;;;;;;;;;;;:11;:19;6939:6;6927:19;;;;;;;;;;;;;;;:33;6947:12;:10;:12::i;:::-;6927:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6896:8;:121::i;:::-;7035:4;7028:11;;6734:313;;;;;:::o;5918:83::-;5959:5;4354:2;5977:16;;5918:83;:::o;4941:28::-;;;;;;;;;;;;;:::o;11439:324::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;11491:20:::1;11514:24;11532:4;11514:9;:24::i;:::-;11491:47;;11567:1;11552:12;:16;11549:76;;;11583:30;11600:12;11583:16;:30::i;:::-;11549:76;11635:18;11656:21;11635:42;;11704:1;11691:10;:14;11688:68;;;11720:24;11733:10;11720:12;:24::i;:::-;11688:68;11480:283;;11439:324::o:0;4208:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6112:119::-;6178:7;6205:9;:18;6215:7;6205:18;;;;;;;;;;;;;;;;6198:25;;6112:119;;;:::o;3522:148::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3629:1:::1;3592:40;;3613:6;::::0;::::1;;;;;;;;3592:40;;;;;;;;;;;;3660:1;3643:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3522:148::o:0;10245:113::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10313:5:::1;10297:13;;:21;;;;;;;;;;;;;;;;;;10346:4;10329:14;;:21;;;;;;;;;;;;;;;;;;10245:113::o:0;4665:53::-;;;;:::o;3317:79::-;3355:7;3382:6;;;;;;;;;;;3375:13;;3317:79;:::o;5823:87::-;5862:13;5895:7;;;;;;;;;;;;;;;;;5888:14;;5823:87;:::o;4363:32::-;;;;;;;;;;;;;:::o;10719:199::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10814:9:::1;10810:101;10833:8;;:15;;10829:1;:19;10810:101;;;10894:5;10870:8;:21;10879:8;;10888:1;10879:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10870:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;10850:3;;;;;:::i;:::-;;;;10810:101;;;;10719:199:::0;;;:::o;6239:167::-;6317:4;6334:42;6344:12;:10;:12::i;:::-;6358:9;6369:6;6334:9;:42::i;:::-;6394:4;6387:11;;6239:167;;;;:::o;10366:217::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10467:9:::1;10463:113;10486:8;;:15;;10482:1;:19;10463:113;;;10556:8;10523:17;:30;10541:8;;10550:1;10541:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10523:30;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;10503:3;;;;;:::i;:::-;;;;10463:113;;;;10366:217:::0;;;:::o;4725:57::-;;;;:::o;10591:120::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10689:13:::1;10668:10;;:35;;;;;;;;;;;;;;;;;;10591:120:::0;:::o;6414:143::-;6495:7;6522:11;:18;6534:5;6522:18;;;;;;;;;;;;;;;:27;6541:7;6522:27;;;;;;;;;;;;;;;;6515:34;;6414:143;;;;:::o;10926:287::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10980:28:::1;11011:24;11029:4;11011:9;:24::i;:::-;10980:55;;11073:50;11102:20;11073:9;:24;11091:4;11073:24;;;;;;;;;;;;;;;;:28;;:50;;;;:::i;:::-;11046:9;:24;11064:4;11046:24;;;;;;;;;;;;;;;:77;;;;11158:47;11184:20;11158:9;:21;11168:10;;;;;;;;;;;11158:21;;;;;;;;;;;;;;;;:25;;:47;;;;:::i;:::-;11134:9;:21;11144:10;;;;;;;;;;;11134:21;;;;;;;;;;;;;;;:71;;;;10969:244;10926:287::o:0;3772:218::-;3454:12;:10;:12::i;:::-;3444:22;;:6;;;;;;;;;;:22;;;3436:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;3881:1:::1;3861:22;;:8;:22;;::::0;3853:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3945:8;3916:38;;3937:6;::::0;::::1;;;;;;;;3916:38;;;;;;;;;;;;3974:8;3965:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3772:218:::0;:::o;1802:98::-;1855:7;1882:10;1875:17;;1802:98;:::o;7055:335::-;7165:1;7148:19;;:5;:19;;;7140:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7246:1;7227:21;;:7;:21;;;7219:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7328:6;7298:11;:18;7310:5;7298:18;;;;;;;;;;;;;;;:27;7317:7;7298:27;;;;;;;;;;;;;;;:36;;;;7366:7;7350:32;;7359:5;7350:32;;;7375:6;7350:32;;;;;;:::i;:::-;;;;;;;;7055:335;;;:::o;7398:2118::-;7502:1;7486:18;;:4;:18;;;7478:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7579:1;7565:16;;:2;:16;;;7557:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7649:1;7640:6;:10;7632:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7716:8;:14;7725:4;7716:14;;;;;;;;;;;;;;;;;;;;;;;;;7715:15;7707:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;7757:17;7811:7;:5;:7::i;:::-;7803:15;;:4;:15;;;;:32;;;;;7828:7;:5;:7::i;:::-;7822:13;;:2;:13;;;;7803:32;7799:1318;;;7856:13;;;;;;;;;;;:39;;;;;7874:17;:21;7892:2;7874:21;;;;;;;;;;;;;;;;;;;;;;;;;7873:22;7856:39;7852:139;;;7934:12;;7924:6;:22;;7916:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;7852:139;8053:13;;;;;;;;;;;8045:21;;:4;:21;;;:55;;;;;8084:15;;;;;;;;;;;8070:30;;:2;:30;;;;8045:55;8042:168;;;8133:61;8190:3;8133:52;8144:13;;;;;;;;;;;:40;;8177:7;;8144:40;;;8160:14;;8144:40;8133:6;:10;;:52;;;;:::i;:::-;:56;;:61;;;;:::i;:::-;8121:73;;8042:168;8264:13;;;;;;;;;;;8258:19;;:2;:19;;;:55;;;;;8297:15;;;;;;;;;;;8281:32;;:4;:32;;;;8258:55;8254:169;;;8346:61;8403:3;8346:52;8357:13;;;;;;;;;;;:40;;8390:7;;8357:40;;;8373:14;;8357:40;8346:6;:10;;:52;;;;:::i;:::-;:56;;:61;;;;:::i;:::-;8334:73;;8254:169;8511:17;:23;8529:4;8511:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;8538:17;:21;8556:2;8538:21;;;;;;;;;;;;;;;;;;;;;;;;;8511:48;8510:100;;;;8573:13;;;;;;;;;;;8565:21;;:4;:21;;;;:44;;;;;8596:13;;;;;;;;;;;8590:19;;:2;:19;;;;8565:44;8510:100;8506:154;;;8643:1;8631:13;;8506:154;8676:28;8707:24;8725:4;8707:9;:24::i;:::-;8676:55;;8751:6;;;;;;;;;;;8750:7;:30;;;;;8767:13;;;;;;;;;;;8761:19;;:2;:19;;;8750:30;:48;;;;;8784:14;;;;;;;;;;;8750:48;:92;;;;;8825:17;;8802:20;:40;8750:92;8746:360;;;8863:35;8880:17;;8863:16;:35::i;:::-;8917:26;8946:21;8917:50;;9010:1;8989:18;:22;8986:105;;;9036:35;9049:21;9036:12;:35::i;:::-;8986:105;8844:262;8746:360;7837:1280;7799:1318;9171:1;9159:9;:13;9156:171;;;9216:39;9245:9;9216;:24;9234:4;9216:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9189:9;:24;9207:4;9189:24;;;;;;;;;;;;;;;:66;;;;9298:4;9275:40;;9284:4;9275:40;;;9305:9;9275:40;;;;;;:::i;:::-;;;;;;;;9156:171;9357:27;9377:6;9357:9;:15;9367:4;9357:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9339:9;:15;9349:4;9339:15;;;;;;;;;;;;;;;:45;;;;9411:40;9429:21;9440:9;9429:6;:10;;:21;;;;:::i;:::-;9411:9;:13;9421:2;9411:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9395:9;:13;9405:2;9395:13;;;;;;;;;;;;;;;:56;;;;9482:2;9467:41;;9476:4;9467:41;;;9486:21;9497:9;9486:6;:10;;:21;;;;:::i;:::-;9467:41;;;;;;:::i;:::-;;;;;;;;7467:2049;7398:2118;;;:::o;2262:190::-;2348:7;2381:1;2376;:6;;2384:12;2368:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2408:9;2424:1;2420;:5;;;;:::i;:::-;2408:17;;2443:1;2436:8;;;2262:190;;;;;:::o;9524:483::-;5023:4;5014:6;;:13;;;;;;;;;;;;;;;;;;9602:21:::1;9640:1;9626:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9602:40;;9671:4;9653;9658:1;9653:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9697:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9687:4;9692:1;9687:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9730:62;9747:4;9762:15;;;;;;;;;;;9780:11;9730:8;:62::i;:::-;9803:15;;;;;;;;;;;:66;;;9884:11;9910:1;9926:4;9953;9973:15;9803:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9591:416;5059:5:::0;5050:6;;:14;;;;;;;;;;;;;;;;;;9524:483;:::o;10023:92::-;10080:10;;;;;;;;;;;:19;;:27;10100:6;10080:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10023:92;:::o;2118:136::-;2176:7;2203:43;2207:1;2210;2203:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2196:50;;2118:136;;;;:::o;1931:179::-;1989:7;2009:9;2025:1;2021;:5;;;;:::i;:::-;2009:17;;2050:1;2045;:6;;2037:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2101:1;2094:8;;;1931:179;;;;:::o;2460:246::-;2518:7;2547:1;2542;:6;2538:47;;2572:1;2565:8;;;;2538:47;2595:9;2611:1;2607;:5;;;;:::i;:::-;2595:17;;2640:1;2635;2631;:5;;;;:::i;:::-;:10;2623:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2697:1;2690:8;;;2460:246;;;;;:::o;2714:132::-;2772:7;2799:39;2803:1;2806;2799:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2792:46;;2714:132;;;;:::o;2854:189::-;2940:7;2972:1;2968;:5;2975:12;2960:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2999:9;3015:1;3011;:5;;;;:::i;:::-;2999:17;;3034:1;3027:8;;;2854:189;;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:323::-;747:6;796:2;784:9;775:7;771:23;767:32;764:119;;;802:79;;:::i;:::-;764:119;922:1;947:50;989:7;980:6;969:9;965:22;947:50;:::i;:::-;937:60;;893:114;691:323;;;;:::o;1020:99::-;1072:6;1106:5;1100:12;1090:22;;1020:99;;;:::o;1125:169::-;1209:11;1243:6;1238:3;1231:19;1283:4;1278:3;1274:14;1259:29;;1125:169;;;;:::o;1300:246::-;1381:1;1391:113;1405:6;1402:1;1399:13;1391:113;;;1490:1;1485:3;1481:11;1475:18;1471:1;1466:3;1462:11;1455:39;1427:2;1424:1;1420:10;1415:15;;1391:113;;;1538:1;1529:6;1524:3;1520:16;1513:27;1362:184;1300:246;;;:::o;1552:102::-;1593:6;1644:2;1640:7;1635:2;1628:5;1624:14;1620:28;1610:38;;1552:102;;;:::o;1660:377::-;1748:3;1776:39;1809:5;1776:39;:::i;:::-;1831:71;1895:6;1890:3;1831:71;:::i;:::-;1824:78;;1911:65;1969:6;1964:3;1957:4;1950:5;1946:16;1911:65;:::i;:::-;2001:29;2023:6;2001:29;:::i;:::-;1996:3;1992:39;1985:46;;1752:285;1660:377;;;;:::o;2043:313::-;2156:4;2194:2;2183:9;2179:18;2171:26;;2243:9;2237:4;2233:20;2229:1;2218:9;2214:17;2207:47;2271:78;2344:4;2335:6;2271:78;:::i;:::-;2263:86;;2043:313;;;;:::o;2362:126::-;2399:7;2439:42;2432:5;2428:54;2417:65;;2362:126;;;:::o;2494:96::-;2531:7;2560:24;2578:5;2560:24;:::i;:::-;2549:35;;2494:96;;;:::o;2596:122::-;2669:24;2687:5;2669:24;:::i;:::-;2662:5;2659:35;2649:63;;2708:1;2705;2698:12;2649:63;2596:122;:::o;2724:139::-;2770:5;2808:6;2795:20;2786:29;;2824:33;2851:5;2824:33;:::i;:::-;2724:139;;;;:::o;2869:77::-;2906:7;2935:5;2924:16;;2869:77;;;:::o;2952:122::-;3025:24;3043:5;3025:24;:::i;:::-;3018:5;3015:35;3005:63;;3064:1;3061;3054:12;3005:63;2952:122;:::o;3080:139::-;3126:5;3164:6;3151:20;3142:29;;3180:33;3207:5;3180:33;:::i;:::-;3080:139;;;;:::o;3225:474::-;3293:6;3301;3350:2;3338:9;3329:7;3325:23;3321:32;3318:119;;;3356:79;;:::i;:::-;3318:119;3476:1;3501:53;3546:7;3537:6;3526:9;3522:22;3501:53;:::i;:::-;3491:63;;3447:117;3603:2;3629:53;3674:7;3665:6;3654:9;3650:22;3629:53;:::i;:::-;3619:63;;3574:118;3225:474;;;;;:::o;3705:109::-;3786:21;3801:5;3786:21;:::i;:::-;3781:3;3774:34;3705:109;;:::o;3820:210::-;3907:4;3945:2;3934:9;3930:18;3922:26;;3958:65;4020:1;4009:9;4005:17;3996:6;3958:65;:::i;:::-;3820:210;;;;:::o;4036:329::-;4095:6;4144:2;4132:9;4123:7;4119:23;4115:32;4112:119;;;4150:79;;:::i;:::-;4112:119;4270:1;4295:53;4340:7;4331:6;4320:9;4316:22;4295:53;:::i;:::-;4285:63;;4241:117;4036:329;;;;:::o;4371:60::-;4399:3;4420:5;4413:12;;4371:60;;;:::o;4437:142::-;4487:9;4520:53;4538:34;4547:24;4565:5;4547:24;:::i;:::-;4538:34;:::i;:::-;4520:53;:::i;:::-;4507:66;;4437:142;;;:::o;4585:126::-;4635:9;4668:37;4699:5;4668:37;:::i;:::-;4655:50;;4585:126;;;:::o;4717:152::-;4793:9;4826:37;4857:5;4826:37;:::i;:::-;4813:50;;4717:152;;;:::o;4875:183::-;4988:63;5045:5;4988:63;:::i;:::-;4983:3;4976:76;4875:183;;:::o;5064:274::-;5183:4;5221:2;5210:9;5206:18;5198:26;;5234:97;5328:1;5317:9;5313:17;5304:6;5234:97;:::i;:::-;5064:274;;;;:::o;5344:118::-;5431:24;5449:5;5431:24;:::i;:::-;5426:3;5419:37;5344:118;;:::o;5468:222::-;5561:4;5599:2;5588:9;5584:18;5576:26;;5612:71;5680:1;5669:9;5665:17;5656:6;5612:71;:::i;:::-;5468:222;;;;:::o;5696:619::-;5773:6;5781;5789;5838:2;5826:9;5817:7;5813:23;5809:32;5806:119;;;5844:79;;:::i;:::-;5806:119;5964:1;5989:53;6034:7;6025:6;6014:9;6010:22;5989:53;:::i;:::-;5979:63;;5935:117;6091:2;6117:53;6162:7;6153:6;6142:9;6138:22;6117:53;:::i;:::-;6107:63;;6062:118;6219:2;6245:53;6290:7;6281:6;6270:9;6266:22;6245:53;:::i;:::-;6235:63;;6190:118;5696:619;;;;;:::o;6321:86::-;6356:7;6396:4;6389:5;6385:16;6374:27;;6321:86;;;:::o;6413:112::-;6496:22;6512:5;6496:22;:::i;:::-;6491:3;6484:35;6413:112;;:::o;6531:214::-;6620:4;6658:2;6647:9;6643:18;6635:26;;6671:67;6735:1;6724:9;6720:17;6711:6;6671:67;:::i;:::-;6531:214;;;;:::o;6751:118::-;6838:24;6856:5;6838:24;:::i;:::-;6833:3;6826:37;6751:118;;:::o;6875:222::-;6968:4;7006:2;6995:9;6991:18;6983:26;;7019:71;7087:1;7076:9;7072:17;7063:6;7019:71;:::i;:::-;6875:222;;;;:::o;7103:117::-;7212:1;7209;7202:12;7226:117;7335:1;7332;7325:12;7349:117;7458:1;7455;7448:12;7489:568;7562:8;7572:6;7622:3;7615:4;7607:6;7603:17;7599:27;7589:122;;7630:79;;:::i;:::-;7589:122;7743:6;7730:20;7720:30;;7773:18;7765:6;7762:30;7759:117;;;7795:79;;:::i;:::-;7759:117;7909:4;7901:6;7897:17;7885:29;;7963:3;7955:4;7947:6;7943:17;7933:8;7929:32;7926:41;7923:128;;;7970:79;;:::i;:::-;7923:128;7489:568;;;;;:::o;8063:698::-;8155:6;8163;8171;8220:2;8208:9;8199:7;8195:23;8191:32;8188:119;;;8226:79;;:::i;:::-;8188:119;8374:1;8363:9;8359:17;8346:31;8404:18;8396:6;8393:30;8390:117;;;8426:79;;:::i;:::-;8390:117;8539:80;8611:7;8602:6;8591:9;8587:22;8539:80;:::i;:::-;8521:98;;;;8317:312;8668:2;8694:50;8736:7;8727:6;8716:9;8712:22;8694:50;:::i;:::-;8684:60;;8639:115;8063:698;;;;;:::o;8767:474::-;8835:6;8843;8892:2;8880:9;8871:7;8867:23;8863:32;8860:119;;;8898:79;;:::i;:::-;8860:119;9018:1;9043:53;9088:7;9079:6;9068:9;9064:22;9043:53;:::i;:::-;9033:63;;8989:117;9145:2;9171:53;9216:7;9207:6;9196:9;9192:22;9171:53;:::i;:::-;9161:63;;9116:118;8767:474;;;;;:::o;9247:173::-;9387:25;9383:1;9375:6;9371:14;9364:49;9247:173;:::o;9426:366::-;9568:3;9589:67;9653:2;9648:3;9589:67;:::i;:::-;9582:74;;9665:93;9754:3;9665:93;:::i;:::-;9783:2;9778:3;9774:12;9767:19;;9426:366;;;:::o;9798:419::-;9964:4;10002:2;9991:9;9987:18;9979:26;;10051:9;10045:4;10041:20;10037:1;10026:9;10022:17;10015:47;10079:131;10205:4;10079:131;:::i;:::-;10071:139;;9798:419;;;:::o;10223:180::-;10271:77;10268:1;10261:88;10368:4;10365:1;10358:15;10392:4;10389:1;10382:15;10409:102;10451:8;10498:5;10495:1;10491:13;10470:34;;10409:102;;;:::o;10517:848::-;10578:5;10585:4;10609:6;10600:15;;10633:5;10624:14;;10647:712;10668:1;10658:8;10655:15;10647:712;;;10763:4;10758:3;10754:14;10748:4;10745:24;10742:50;;;10772:18;;:::i;:::-;10742:50;10822:1;10812:8;10808:16;10805:451;;;11237:4;11230:5;11226:16;11217:25;;10805:451;11287:4;11281;11277:15;11269:23;;11317:32;11340:8;11317:32;:::i;:::-;11305:44;;10647:712;;;10517:848;;;;;;;:::o;11371:1073::-;11425:5;11616:8;11606:40;;11637:1;11628:10;;11639:5;;11606:40;11665:4;11655:36;;11682:1;11673:10;;11684:5;;11655:36;11751:4;11799:1;11794:27;;;;11835:1;11830:191;;;;11744:277;;11794:27;11812:1;11803:10;;11814:5;;;11830:191;11875:3;11865:8;11862:17;11859:43;;;11882:18;;:::i;:::-;11859:43;11931:8;11928:1;11924:16;11915:25;;11966:3;11959:5;11956:14;11953:40;;;11973:18;;:::i;:::-;11953:40;12006:5;;;11744:277;;12130:2;12120:8;12117:16;12111:3;12105:4;12102:13;12098:36;12080:2;12070:8;12067:16;12062:2;12056:4;12053:12;12049:35;12033:111;12030:246;;;12186:8;12180:4;12176:19;12167:28;;12221:3;12214:5;12211:14;12208:40;;;12228:18;;:::i;:::-;12208:40;12261:5;;12030:246;12301:42;12339:3;12329:8;12323:4;12320:1;12301:42;:::i;:::-;12286:57;;;;12375:4;12370:3;12366:14;12359:5;12356:25;12353:51;;;12384:18;;:::i;:::-;12353:51;12433:4;12426:5;12422:16;12413:25;;11371:1073;;;;;;:::o;12450:281::-;12508:5;12532:23;12550:4;12532:23;:::i;:::-;12524:31;;12576:25;12592:8;12576:25;:::i;:::-;12564:37;;12620:104;12657:66;12647:8;12641:4;12620:104;:::i;:::-;12611:113;;12450:281;;;;:::o;12737:410::-;12777:7;12800:20;12818:1;12800:20;:::i;:::-;12795:25;;12834:20;12852:1;12834:20;:::i;:::-;12829:25;;12889:1;12886;12882:9;12911:30;12929:11;12911:30;:::i;:::-;12900:41;;13090:1;13081:7;13077:15;13074:1;13071:22;13051:1;13044:9;13024:83;13001:139;;13120:18;;:::i;:::-;13001:139;12785:362;12737:410;;;;:::o;13153:155::-;13293:7;13289:1;13281:6;13277:14;13270:31;13153:155;:::o;13314:365::-;13456:3;13477:66;13541:1;13536:3;13477:66;:::i;:::-;13470:73;;13552:93;13641:3;13552:93;:::i;:::-;13670:2;13665:3;13661:12;13654:19;;13314:365;;;:::o;13685:419::-;13851:4;13889:2;13878:9;13874:18;13866:26;;13938:9;13932:4;13928:20;13924:1;13913:9;13909:17;13902:47;13966:131;14092:4;13966:131;:::i;:::-;13958:139;;13685:419;;;:::o;14110:180::-;14158:77;14155:1;14148:88;14255:4;14252:1;14245:15;14279:4;14276:1;14269:15;14296:233;14335:3;14358:24;14376:5;14358:24;:::i;:::-;14349:33;;14404:66;14397:5;14394:77;14391:103;;14474:18;;:::i;:::-;14391:103;14521:1;14514:5;14510:13;14503:20;;14296:233;;;:::o;14535:162::-;14675:14;14671:1;14663:6;14659:14;14652:38;14535:162;:::o;14703:366::-;14845:3;14866:67;14930:2;14925:3;14866:67;:::i;:::-;14859:74;;14942:93;15031:3;14942:93;:::i;:::-;15060:2;15055:3;15051:12;15044:19;;14703:366;;;:::o;15075:419::-;15241:4;15279:2;15268:9;15264:18;15256:26;;15328:9;15322:4;15318:20;15314:1;15303:9;15299:17;15292:47;15356:131;15482:4;15356:131;:::i;:::-;15348:139;;15075:419;;;:::o;15500:223::-;15640:34;15636:1;15628:6;15624:14;15617:58;15709:6;15704:2;15696:6;15692:15;15685:31;15500:223;:::o;15729:366::-;15871:3;15892:67;15956:2;15951:3;15892:67;:::i;:::-;15885:74;;15968:93;16057:3;15968:93;:::i;:::-;16086:2;16081:3;16077:12;16070:19;;15729:366;;;:::o;16101:419::-;16267:4;16305:2;16294:9;16290:18;16282:26;;16354:9;16348:4;16344:20;16340:1;16329:9;16325:17;16318:47;16382:131;16508:4;16382:131;:::i;:::-;16374:139;;16101:419;;;:::o;16526:221::-;16666:34;16662:1;16654:6;16650:14;16643:58;16735:4;16730:2;16722:6;16718:15;16711:29;16526:221;:::o;16753:366::-;16895:3;16916:67;16980:2;16975:3;16916:67;:::i;:::-;16909:74;;16992:93;17081:3;16992:93;:::i;:::-;17110:2;17105:3;17101:12;17094:19;;16753:366;;;:::o;17125:419::-;17291:4;17329:2;17318:9;17314:18;17306:26;;17378:9;17372:4;17368:20;17364:1;17353:9;17349:17;17342:47;17406:131;17532:4;17406:131;:::i;:::-;17398:139;;17125:419;;;:::o;17550:224::-;17690:34;17686:1;17678:6;17674:14;17667:58;17759:7;17754:2;17746:6;17742:15;17735:32;17550:224;:::o;17780:366::-;17922:3;17943:67;18007:2;18002:3;17943:67;:::i;:::-;17936:74;;18019:93;18108:3;18019:93;:::i;:::-;18137:2;18132:3;18128:12;18121:19;;17780:366;;;:::o;18152:419::-;18318:4;18356:2;18345:9;18341:18;18333:26;;18405:9;18399:4;18395:20;18391:1;18380:9;18376:17;18369:47;18433:131;18559:4;18433:131;:::i;:::-;18425:139;;18152:419;;;:::o;18577:222::-;18717:34;18713:1;18705:6;18701:14;18694:58;18786:5;18781:2;18773:6;18769:15;18762:30;18577:222;:::o;18805:366::-;18947:3;18968:67;19032:2;19027:3;18968:67;:::i;:::-;18961:74;;19044:93;19133:3;19044:93;:::i;:::-;19162:2;19157:3;19153:12;19146:19;;18805:366;;;:::o;19177:419::-;19343:4;19381:2;19370:9;19366:18;19358:26;;19430:9;19424:4;19420:20;19416:1;19405:9;19401:17;19394:47;19458:131;19584:4;19458:131;:::i;:::-;19450:139;;19177:419;;;:::o;19602:228::-;19742:34;19738:1;19730:6;19726:14;19719:58;19811:11;19806:2;19798:6;19794:15;19787:36;19602:228;:::o;19836:366::-;19978:3;19999:67;20063:2;20058:3;19999:67;:::i;:::-;19992:74;;20075:93;20164:3;20075:93;:::i;:::-;20193:2;20188:3;20184:12;20177:19;;19836:366;;;:::o;20208:419::-;20374:4;20412:2;20401:9;20397:18;20389:26;;20461:9;20455:4;20451:20;20447:1;20436:9;20432:17;20425:47;20489:131;20615:4;20489:131;:::i;:::-;20481:139;;20208:419;;;:::o;20633:159::-;20773:11;20769:1;20761:6;20757:14;20750:35;20633:159;:::o;20798:365::-;20940:3;20961:66;21025:1;21020:3;20961:66;:::i;:::-;20954:73;;21036:93;21125:3;21036:93;:::i;:::-;21154:2;21149:3;21145:12;21138:19;;20798:365;;;:::o;21169:419::-;21335:4;21373:2;21362:9;21358:18;21350:26;;21422:9;21416:4;21412:20;21408:1;21397:9;21393:17;21386:47;21450:131;21576:4;21450:131;:::i;:::-;21442:139;;21169:419;;;:::o;21594:174::-;21734:26;21730:1;21722:6;21718:14;21711:50;21594:174;:::o;21774:366::-;21916:3;21937:67;22001:2;21996:3;21937:67;:::i;:::-;21930:74;;22013:93;22102:3;22013:93;:::i;:::-;22131:2;22126:3;22122:12;22115:19;;21774:366;;;:::o;22146:419::-;22312:4;22350:2;22339:9;22335:18;22327:26;;22399:9;22393:4;22389:20;22385:1;22374:9;22370:17;22363:47;22427:131;22553:4;22427:131;:::i;:::-;22419:139;;22146:419;;;:::o;22571:194::-;22611:4;22631:20;22649:1;22631:20;:::i;:::-;22626:25;;22665:20;22683:1;22665:20;:::i;:::-;22660:25;;22709:1;22706;22702:9;22694:17;;22733:1;22727:4;22724:11;22721:37;;;22738:18;;:::i;:::-;22721:37;22571:194;;;;:::o;22771:180::-;22819:77;22816:1;22809:88;22916:4;22913:1;22906:15;22940:4;22937:1;22930:15;22957:143;23014:5;23045:6;23039:13;23030:22;;23061:33;23088:5;23061:33;:::i;:::-;22957:143;;;;:::o;23106:351::-;23176:6;23225:2;23213:9;23204:7;23200:23;23196:32;23193:119;;;23231:79;;:::i;:::-;23193:119;23351:1;23376:64;23432:7;23423:6;23412:9;23408:22;23376:64;:::i;:::-;23366:74;;23322:128;23106:351;;;;:::o;23463:85::-;23508:7;23537:5;23526:16;;23463:85;;;:::o;23554:158::-;23612:9;23645:61;23663:42;23672:32;23698:5;23672:32;:::i;:::-;23663:42;:::i;:::-;23645:61;:::i;:::-;23632:74;;23554:158;;;:::o;23718:147::-;23813:45;23852:5;23813:45;:::i;:::-;23808:3;23801:58;23718:147;;:::o;23871:114::-;23938:6;23972:5;23966:12;23956:22;;23871:114;;;:::o;23991:184::-;24090:11;24124:6;24119:3;24112:19;24164:4;24159:3;24155:14;24140:29;;23991:184;;;;:::o;24181:132::-;24248:4;24271:3;24263:11;;24301:4;24296:3;24292:14;24284:22;;24181:132;;;:::o;24319:108::-;24396:24;24414:5;24396:24;:::i;:::-;24391:3;24384:37;24319:108;;:::o;24433:179::-;24502:10;24523:46;24565:3;24557:6;24523:46;:::i;:::-;24601:4;24596:3;24592:14;24578:28;;24433:179;;;;:::o;24618:113::-;24688:4;24720;24715:3;24711:14;24703:22;;24618:113;;;:::o;24767:732::-;24886:3;24915:54;24963:5;24915:54;:::i;:::-;24985:86;25064:6;25059:3;24985:86;:::i;:::-;24978:93;;25095:56;25145:5;25095:56;:::i;:::-;25174:7;25205:1;25190:284;25215:6;25212:1;25209:13;25190:284;;;25291:6;25285:13;25318:63;25377:3;25362:13;25318:63;:::i;:::-;25311:70;;25404:60;25457:6;25404:60;:::i;:::-;25394:70;;25250:224;25237:1;25234;25230:9;25225:14;;25190:284;;;25194:14;25490:3;25483:10;;24891:608;;;24767:732;;;;:::o;25505:831::-;25768:4;25806:3;25795:9;25791:19;25783:27;;25820:71;25888:1;25877:9;25873:17;25864:6;25820:71;:::i;:::-;25901:80;25977:2;25966:9;25962:18;25953:6;25901:80;:::i;:::-;26028:9;26022:4;26018:20;26013:2;26002:9;25998:18;25991:48;26056:108;26159:4;26150:6;26056:108;:::i;:::-;26048:116;;26174:72;26242:2;26231:9;26227:18;26218:6;26174:72;:::i;:::-;26256:73;26324:3;26313:9;26309:19;26300:6;26256:73;:::i;:::-;25505:831;;;;;;;;:::o;26342:191::-;26382:3;26401:20;26419:1;26401:20;:::i;:::-;26396:25;;26435:20;26453:1;26435:20;:::i;:::-;26430:25;;26478:1;26475;26471:9;26464:16;;26499:3;26496:1;26493:10;26490:36;;;26506:18;;:::i;:::-;26490:36;26342:191;;;;:::o;26539:177::-;26679:29;26675:1;26667:6;26663:14;26656:53;26539:177;:::o;26722:366::-;26864:3;26885:67;26949:2;26944:3;26885:67;:::i;:::-;26878:74;;26961:93;27050:3;26961:93;:::i;:::-;27079:2;27074:3;27070:12;27063:19;;26722:366;;;:::o;27094:419::-;27260:4;27298:2;27287:9;27283:18;27275:26;;27347:9;27341:4;27337:20;27333:1;27322:9;27318:17;27311:47;27375:131;27501:4;27375:131;:::i;:::-;27367:139;;27094:419;;;:::o;27519:180::-;27567:77;27564:1;27557:88;27664:4;27661:1;27654:15;27688:4;27685:1;27678:15;27705:185;27745:1;27762:20;27780:1;27762:20;:::i;:::-;27757:25;;27796:20;27814:1;27796:20;:::i;:::-;27791:25;;27835:1;27825:35;;27840:18;;:::i;:::-;27825:35;27882:1;27879;27875:9;27870:14;;27705:185;;;;:::o;27896:220::-;28036:34;28032:1;28024:6;28020:14;28013:58;28105:3;28100:2;28092:6;28088:15;28081:28;27896:220;:::o;28122:366::-;28264:3;28285:67;28349:2;28344:3;28285:67;:::i;:::-;28278:74;;28361:93;28450:3;28361:93;:::i;:::-;28479:2;28474:3;28470:12;28463:19;;28122:366;;;:::o;28494:419::-;28660:4;28698:2;28687:9;28683:18;28675:26;;28747:9;28741:4;28737:20;28733:1;28722:9;28718:17;28711:47;28775:131;28901:4;28775:131;:::i;:::-;28767:139;;28494:419;;;:::o

Swarm Source

ipfs://06bc35767a22a4aaee6713c193c389a9667da897dd757fad0038d92f349bd782

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.