ETH Price: $3,235.48 (+1.65%)

Contract

0x57942126b9b4fa372B6110D0e5f4BBdfc1c940eB
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Manualsend136282392021-11-16 18:43:001155 days ago1637088180IN
0x57942126...fc1c940eB
0 ETH0.00388969127.44727586
Approve134444512021-10-18 22:32:391184 days ago1634596359IN
0x57942126...fc1c940eB
0 ETH0.0039991984.7
Approve134433782021-10-18 18:22:571184 days ago1634581377IN
0x57942126...fc1c940eB
0 ETH0.00278504101.95654206
Approve134433762021-10-18 18:22:341184 days ago1634581354IN
0x57942126...fc1c940eB
0 ETH0.00514828109.0369286
Approve134416062021-10-18 11:40:551184 days ago1634557255IN
0x57942126...fc1c940eB
0 ETH0.0025449453.9
Approve134384262021-10-17 23:37:341185 days ago1634513854IN
0x57942126...fc1c940eB
0 ETH0.0038261981.03606191
Approve134354852021-10-17 12:38:091185 days ago1634474289IN
0x57942126...fc1c940eB
0 ETH0.0026488156.1
Approve134354852021-10-17 12:38:091185 days ago1634474289IN
0x57942126...fc1c940eB
0 ETH0.0026488156.1
Approve134354622021-10-17 12:32:421185 days ago1634473962IN
0x57942126...fc1c940eB
0 ETH0.0030123863.8
Renounce Ownersh...134354172021-10-17 12:23:311185 days ago1634473411IN
0x57942126...fc1c940eB
0 ETH0.0014199560.62481546
Approve134354042021-10-17 12:20:221185 days ago1634473222IN
0x57942126...fc1c940eB
0 ETH0.0022008846.61315086
Approve134354032021-10-17 12:20:141185 days ago1634473214IN
0x57942126...fc1c940eB
0 ETH0.0024410651.7
Approve134353742021-10-17 12:14:541185 days ago1634472894IN
0x57942126...fc1c940eB
0 ETH0.0025152753.27169913
Approve134353642021-10-17 12:13:101185 days ago1634472790IN
0x57942126...fc1c940eB
0 ETH0.0023097248.9181916
Approve134353632021-10-17 12:13:051185 days ago1634472785IN
0x57942126...fc1c940eB
0 ETH0.0020612443.65555031
Approve134353612021-10-17 12:12:331185 days ago1634472753IN
0x57942126...fc1c940eB
0 ETH0.0021167344.83092982
Approve134353602021-10-17 12:12:271185 days ago1634472747IN
0x57942126...fc1c940eB
0 ETH0.0022630947.93059396
Open Trading134353502021-10-17 12:10:501185 days ago1634472650IN
0x57942126...fc1c940eB
0 ETH0.1713800359.75745992
Transfer134353392021-10-17 12:08:401185 days ago1634472520IN
0x57942126...fc1c940eB
5 ETH0.0011459754.42770243
Transfer134352832021-10-17 11:56:451185 days ago1634471805IN
0x57942126...fc1c940eB
0 ETH0.0047246853.09528771
Transfer134352782021-10-17 11:55:551185 days ago1634471755IN
0x57942126...fc1c940eB
0 ETH0.0084406559.74544339

Latest 14 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
136282392021-11-16 18:43:001155 days ago1637088180
0x57942126...fc1c940eB
0.11533811 ETH
134738472021-10-23 12:48:251179 days ago1634993305
0x57942126...fc1c940eB
0.00170161 ETH
134541522021-10-20 10:44:541182 days ago1634726694
0x57942126...fc1c940eB
0.00186569 ETH
134433952021-10-18 18:28:301184 days ago1634581710
0x57942126...fc1c940eB
0.00300969 ETH
134416232021-10-18 11:43:491184 days ago1634557429
0x57942126...fc1c940eB
0.01436613 ETH
134376292021-10-17 20:38:051185 days ago1634503085
0x57942126...fc1c940eB
0.01413487 ETH
134357622021-10-17 13:44:301185 days ago1634478270
0x57942126...fc1c940eB
0.00968748 ETH
134354652021-10-17 12:33:491185 days ago1634474029
0x57942126...fc1c940eB
0.00870687 ETH
134354642021-10-17 12:33:431185 days ago1634474023
0x57942126...fc1c940eB
0.00882862 ETH
134354162021-10-17 12:22:561185 days ago1634473376
0x57942126...fc1c940eB
0.00684393 ETH
134354152021-10-17 12:22:051185 days ago1634473325
0x57942126...fc1c940eB
0.0530371 ETH
134353742021-10-17 12:14:541185 days ago1634472894
0x57942126...fc1c940eB
0.5438491 ETH
134353742021-10-17 12:14:541185 days ago1634472894
0x57942126...fc1c940eB
0.5438491 ETH
134353502021-10-17 12:10:501185 days ago1634472650
0x57942126...fc1c940eB
5 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BarbaraInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-17
*/

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

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

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

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;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

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

contract BarbaraInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000  * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _redistributionAddress;
    uint256 private _feeAddr2;
    address payable private _marketingAddress;
    
    string private constant _name = "Barbara Inu";
    string private constant _symbol = "BARBARA";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 public openTradingTime;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _marketingAddress = payable(0x053d0A4128C1f6Ebc72604D494B11bE97ca05109);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

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

    function _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(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from]);
        if (from != address(this)) {
            _redistributionAddress = 3;
            _feeAddr2 = 7;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                if (block.timestamp < openTradingTime + 15 minutes) {
                    require(amount <= _maxTxAmount);
                }
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 300000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 liftMaxTx() external onlyOwner{
        _maxTxAmount = _tTotal;
    }
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        openTradingTime = block.timestamp;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 1000000000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

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

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

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"liftMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTradingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000196200001e91906200045b565b6000196200002d919062000416565b6008556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff02191690831515021790555069d3c21bcecceda10000006010553480156200009c57600080fd5b506000620000af620003b760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073053d0a4128c1f6ebc72604d494b11be97ca05109600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001b9620003b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200020d620003bf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000340620003b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620003a99190620003f9565b60405180910390a3620004f1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003f38162000451565b82525050565b6000602082019050620004106000830184620003e8565b92915050565b6000620004238262000451565b9150620004308362000451565b92508282101562000446576200044562000493565b5b828203905092915050565b6000819050919050565b6000620004688262000451565b9150620004758362000451565b925082620004885762000487620004c2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612b6680620005016000396000f3fe6080604052600436106101025760003560e01c80636fc3eaec1161009557806395d89b411161006457806395d89b411461030a578063a9059cbb14610335578063c3c8cd8014610372578063c9567bf914610389578063dd62ed3e146103a057610109565b80636fc3eaec1461027457806370a082311461028b578063715018a6146102c85780638da5cb5b146102df57610109565b80632ab30838116100d15780632ab30838146101de578063313ce567146101f5578063325b3b18146102205780635932ead11461024b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103dd565b6040516101309190612435565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061203e565b61041a565b60405161016d919061241a565b60405180910390f35b34801561018257600080fd5b5061018b610438565b6040516101989190612557565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611feb565b61044a565b6040516101d5919061241a565b60405180910390f35b3480156101ea57600080fd5b506101f3610523565b005b34801561020157600080fd5b5061020a6105cb565b60405161021791906125cc565b60405180910390f35b34801561022c57600080fd5b506102356105d4565b6040516102429190612557565b60405180910390f35b34801561025757600080fd5b50610272600480360381019061026d919061207e565b6105da565b005b34801561028057600080fd5b5061028961068c565b005b34801561029757600080fd5b506102b260048036038101906102ad9190611f51565b6106fe565b6040516102bf9190612557565b60405180910390f35b3480156102d457600080fd5b506102dd61074f565b005b3480156102eb57600080fd5b506102f46108a2565b604051610301919061234c565b60405180910390f35b34801561031657600080fd5b5061031f6108cb565b60405161032c9190612435565b60405180910390f35b34801561034157600080fd5b5061035c6004803603810190610357919061203e565b610908565b604051610369919061241a565b60405180910390f35b34801561037e57600080fd5b50610387610926565b005b34801561039557600080fd5b5061039e6109a0565b005b3480156103ac57600080fd5b506103c760048036038101906103c29190611fab565b610f06565b6040516103d49190612557565b60405180910390f35b60606040518060400160405280600b81526020017f4261726261726120496e75000000000000000000000000000000000000000000815250905090565b600061042e610427610f8d565b8484610f95565b6001905092915050565b600069d3c21bcecceda1000000905090565b6000610457848484611160565b61051884610463610f8d565b61051385604051806060016040528060288152602001612b0960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c9610f8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114549092919063ffffffff16565b610f95565b600190509392505050565b61052b610f8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af906124d7565b60405180910390fd5b69d3c21bcecceda1000000601081905550565b60006009905090565b600f5481565b6105e2610f8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610666906124d7565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106cd610f8d565b73ffffffffffffffffffffffffffffffffffffffff16146106ed57600080fd5b60004790506106fb816114b8565b50565b6000610748600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611524565b9050919050565b610757610f8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4241524241524100000000000000000000000000000000000000000000000000815250905090565b600061091c610915610f8d565b8484611160565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610967610f8d565b73ffffffffffffffffffffffffffffffffffffffff161461098757600080fd5b6000610992306106fe565b905061099d81611592565b50565b6109a8610f8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c906124d7565b60405180910390fd5b600e60149054906101000a900460ff1615610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90612537565b60405180910390fd5b42600f819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b1d30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000610f95565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190611f7e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c359190611f7e565b6040518363ffffffff1660e01b8152600401610c52929190612367565b602060405180830381600087803b158015610c6c57600080fd5b505af1158015610c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca49190611f7e565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d2d306106fe565b600080610d386108a2565b426040518863ffffffff1660e01b8152600401610d5a969594939291906123b9565b6060604051808303818588803b158015610d7357600080fd5b505af1158015610d87573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dac91906120d8565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff02191690831515021790555069d3c21bcecceda10000006010819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610eb0929190612390565b602060405180830381600087803b158015610eca57600080fd5b505af1158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0291906120ab565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc90612517565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612477565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111539190612557565b60405180910390a3505050565b600081116111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906124f7565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111fa57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611444576003600a819055506007600b81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156112e85750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561133e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113565750600e60179054906101000a900460ff165b1561138357610384600f5461136b919061263c565b4210156113825760105481111561138157600080fd5b5b5b600061138e306106fe565b9050600e60159054906101000a900460ff161580156113fb5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156114135750600e60169054906101000a900460ff165b156114425761142181611592565b6000479050670429d069189e00008111156114405761143f476114b8565b5b505b505b61144f83838361181a565b505050565b600083831115829061149c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114939190612435565b60405180910390fd5b50600083856114ab919061271d565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611520573d6000803e3d6000fd5b5050565b600060085482111561156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290612457565b60405180910390fd5b600061157561182a565b905061158a818461185590919063ffffffff16565b915050919050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156115ca576115c9612878565b5b6040519080825280602002602001820160405280156115f85781602001602082028036833780820191505090505b50905030816000815181106116105761160f612849565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116b257600080fd5b505afa1580156116c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ea9190611f7e565b816001815181106116fe576116fd612849565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061176530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f95565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117c9959493929190612572565b600060405180830381600087803b1580156117e357600080fd5b505af11580156117f7573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b61182583838361189f565b505050565b6000806000611837611a6a565b9150915061184e818361185590919063ffffffff16565b9250505090565b600061189783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611acf565b905092915050565b6000806000806000806118b187611b32565b95509550955095509550955061190f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119f081611c42565b6119fa8483611cff565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a579190612557565b60405180910390a3505050505050505050565b60008060006008549050600069d3c21bcecceda10000009050611aa269d3c21bcecceda100000060085461185590919063ffffffff16565b821015611ac25760085469d3c21bcecceda1000000935093505050611acb565b81819350935050505b9091565b60008083118290611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d9190612435565b60405180910390fd5b5060008385611b259190612692565b9050809150509392505050565b6000806000806000806000806000611b4f8a600a54600b54611d39565b9250925092506000611b5f61182a565b90506000806000611b728e878787611dcf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611bdc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611454565b905092915050565b6000808284611bf3919061263c565b905083811015611c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2f90612497565b60405180910390fd5b8091505092915050565b6000611c4c61182a565b90506000611c638284611e5890919063ffffffff16565b9050611cb781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d1482600854611b9a90919063ffffffff16565b600881905550611d2f81600954611be490919063ffffffff16565b6009819055505050565b600080600080611d656064611d57888a611e5890919063ffffffff16565b61185590919063ffffffff16565b90506000611d8f6064611d81888b611e5890919063ffffffff16565b61185590919063ffffffff16565b90506000611db882611daa858c611b9a90919063ffffffff16565b611b9a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611de88589611e5890919063ffffffff16565b90506000611dff8689611e5890919063ffffffff16565b90506000611e168789611e5890919063ffffffff16565b90506000611e3f82611e318587611b9a90919063ffffffff16565b611b9a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611e6b5760009050611ecd565b60008284611e7991906126c3565b9050828482611e889190612692565b14611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf906124b7565b60405180910390fd5b809150505b92915050565b600081359050611ee281612ac3565b92915050565b600081519050611ef781612ac3565b92915050565b600081359050611f0c81612ada565b92915050565b600081519050611f2181612ada565b92915050565b600081359050611f3681612af1565b92915050565b600081519050611f4b81612af1565b92915050565b600060208284031215611f6757611f666128a7565b5b6000611f7584828501611ed3565b91505092915050565b600060208284031215611f9457611f936128a7565b5b6000611fa284828501611ee8565b91505092915050565b60008060408385031215611fc257611fc16128a7565b5b6000611fd085828601611ed3565b9250506020611fe185828601611ed3565b9150509250929050565b600080600060608486031215612004576120036128a7565b5b600061201286828701611ed3565b935050602061202386828701611ed3565b925050604061203486828701611f27565b9150509250925092565b60008060408385031215612055576120546128a7565b5b600061206385828601611ed3565b925050602061207485828601611f27565b9150509250929050565b600060208284031215612094576120936128a7565b5b60006120a284828501611efd565b91505092915050565b6000602082840312156120c1576120c06128a7565b5b60006120cf84828501611f12565b91505092915050565b6000806000606084860312156120f1576120f06128a7565b5b60006120ff86828701611f3c565b935050602061211086828701611f3c565b925050604061212186828701611f3c565b9150509250925092565b60006121378383612143565b60208301905092915050565b61214c81612751565b82525050565b61215b81612751565b82525050565b600061216c826125f7565b612176818561261a565b9350612181836125e7565b8060005b838110156121b2578151612199888261212b565b97506121a48361260d565b925050600181019050612185565b5085935050505092915050565b6121c881612763565b82525050565b6121d7816127a6565b82525050565b60006121e882612602565b6121f2818561262b565b93506122028185602086016127b8565b61220b816128ac565b840191505092915050565b6000612223602a8361262b565b915061222e826128bd565b604082019050919050565b600061224660228361262b565b91506122518261290c565b604082019050919050565b6000612269601b8361262b565b91506122748261295b565b602082019050919050565b600061228c60218361262b565b915061229782612984565b604082019050919050565b60006122af60208361262b565b91506122ba826129d3565b602082019050919050565b60006122d260298361262b565b91506122dd826129fc565b604082019050919050565b60006122f560248361262b565b915061230082612a4b565b604082019050919050565b600061231860178361262b565b915061232382612a9a565b602082019050919050565b6123378161278f565b82525050565b61234681612799565b82525050565b60006020820190506123616000830184612152565b92915050565b600060408201905061237c6000830185612152565b6123896020830184612152565b9392505050565b60006040820190506123a56000830185612152565b6123b2602083018461232e565b9392505050565b600060c0820190506123ce6000830189612152565b6123db602083018861232e565b6123e860408301876121ce565b6123f560608301866121ce565b6124026080830185612152565b61240f60a083018461232e565b979650505050505050565b600060208201905061242f60008301846121bf565b92915050565b6000602082019050818103600083015261244f81846121dd565b905092915050565b6000602082019050818103600083015261247081612216565b9050919050565b6000602082019050818103600083015261249081612239565b9050919050565b600060208201905081810360008301526124b08161225c565b9050919050565b600060208201905081810360008301526124d08161227f565b9050919050565b600060208201905081810360008301526124f0816122a2565b9050919050565b60006020820190508181036000830152612510816122c5565b9050919050565b60006020820190508181036000830152612530816122e8565b9050919050565b600060208201905081810360008301526125508161230b565b9050919050565b600060208201905061256c600083018461232e565b92915050565b600060a082019050612587600083018861232e565b61259460208301876121ce565b81810360408301526125a68186612161565b90506125b56060830185612152565b6125c2608083018461232e565b9695505050505050565b60006020820190506125e1600083018461233d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006126478261278f565b91506126528361278f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612687576126866127eb565b5b828201905092915050565b600061269d8261278f565b91506126a88361278f565b9250826126b8576126b761281a565b5b828204905092915050565b60006126ce8261278f565b91506126d98361278f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612712576127116127eb565b5b828202905092915050565b60006127288261278f565b91506127338361278f565b925082821015612746576127456127eb565b5b828203905092915050565b600061275c8261276f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127b18261278f565b9050919050565b60005b838110156127d65780820151818401526020810190506127bb565b838111156127e5576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612acc81612751565b8114612ad757600080fd5b50565b612ae381612763565b8114612aee57600080fd5b50565b612afa8161278f565b8114612b0557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122075d3d9393206755874cc1fd5fc8d6dadf53156a0d02a69b572f1e14f11c48f5f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101025760003560e01c80636fc3eaec1161009557806395d89b411161006457806395d89b411461030a578063a9059cbb14610335578063c3c8cd8014610372578063c9567bf914610389578063dd62ed3e146103a057610109565b80636fc3eaec1461027457806370a082311461028b578063715018a6146102c85780638da5cb5b146102df57610109565b80632ab30838116100d15780632ab30838146101de578063313ce567146101f5578063325b3b18146102205780635932ead11461024b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103dd565b6040516101309190612435565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061203e565b61041a565b60405161016d919061241a565b60405180910390f35b34801561018257600080fd5b5061018b610438565b6040516101989190612557565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611feb565b61044a565b6040516101d5919061241a565b60405180910390f35b3480156101ea57600080fd5b506101f3610523565b005b34801561020157600080fd5b5061020a6105cb565b60405161021791906125cc565b60405180910390f35b34801561022c57600080fd5b506102356105d4565b6040516102429190612557565b60405180910390f35b34801561025757600080fd5b50610272600480360381019061026d919061207e565b6105da565b005b34801561028057600080fd5b5061028961068c565b005b34801561029757600080fd5b506102b260048036038101906102ad9190611f51565b6106fe565b6040516102bf9190612557565b60405180910390f35b3480156102d457600080fd5b506102dd61074f565b005b3480156102eb57600080fd5b506102f46108a2565b604051610301919061234c565b60405180910390f35b34801561031657600080fd5b5061031f6108cb565b60405161032c9190612435565b60405180910390f35b34801561034157600080fd5b5061035c6004803603810190610357919061203e565b610908565b604051610369919061241a565b60405180910390f35b34801561037e57600080fd5b50610387610926565b005b34801561039557600080fd5b5061039e6109a0565b005b3480156103ac57600080fd5b506103c760048036038101906103c29190611fab565b610f06565b6040516103d49190612557565b60405180910390f35b60606040518060400160405280600b81526020017f4261726261726120496e75000000000000000000000000000000000000000000815250905090565b600061042e610427610f8d565b8484610f95565b6001905092915050565b600069d3c21bcecceda1000000905090565b6000610457848484611160565b61051884610463610f8d565b61051385604051806060016040528060288152602001612b0960289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c9610f8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114549092919063ffffffff16565b610f95565b600190509392505050565b61052b610f8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105af906124d7565b60405180910390fd5b69d3c21bcecceda1000000601081905550565b60006009905090565b600f5481565b6105e2610f8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610666906124d7565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106cd610f8d565b73ffffffffffffffffffffffffffffffffffffffff16146106ed57600080fd5b60004790506106fb816114b8565b50565b6000610748600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611524565b9050919050565b610757610f8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107db906124d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4241524241524100000000000000000000000000000000000000000000000000815250905090565b600061091c610915610f8d565b8484611160565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610967610f8d565b73ffffffffffffffffffffffffffffffffffffffff161461098757600080fd5b6000610992306106fe565b905061099d81611592565b50565b6109a8610f8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c906124d7565b60405180910390fd5b600e60149054906101000a900460ff1615610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90612537565b60405180910390fd5b42600f819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b1d30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000610f95565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9b9190611f7e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfd57600080fd5b505afa158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c359190611f7e565b6040518363ffffffff1660e01b8152600401610c52929190612367565b602060405180830381600087803b158015610c6c57600080fd5b505af1158015610c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca49190611f7e565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d2d306106fe565b600080610d386108a2565b426040518863ffffffff1660e01b8152600401610d5a969594939291906123b9565b6060604051808303818588803b158015610d7357600080fd5b505af1158015610d87573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dac91906120d8565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff02191690831515021790555069d3c21bcecceda10000006010819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610eb0929190612390565b602060405180830381600087803b158015610eca57600080fd5b505af1158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0291906120ab565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611005576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffc90612517565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612477565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111539190612557565b60405180910390a3505050565b600081116111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906124f7565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111fa57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611444576003600a819055506007600b81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156112e85750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561133e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113565750600e60179054906101000a900460ff165b1561138357610384600f5461136b919061263c565b4210156113825760105481111561138157600080fd5b5b5b600061138e306106fe565b9050600e60159054906101000a900460ff161580156113fb5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156114135750600e60169054906101000a900460ff165b156114425761142181611592565b6000479050670429d069189e00008111156114405761143f476114b8565b5b505b505b61144f83838361181a565b505050565b600083831115829061149c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114939190612435565b60405180910390fd5b50600083856114ab919061271d565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611520573d6000803e3d6000fd5b5050565b600060085482111561156b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156290612457565b60405180910390fd5b600061157561182a565b905061158a818461185590919063ffffffff16565b915050919050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156115ca576115c9612878565b5b6040519080825280602002602001820160405280156115f85781602001602082028036833780820191505090505b50905030816000815181106116105761160f612849565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116b257600080fd5b505afa1580156116c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ea9190611f7e565b816001815181106116fe576116fd612849565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061176530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f95565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016117c9959493929190612572565b600060405180830381600087803b1580156117e357600080fd5b505af11580156117f7573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b61182583838361189f565b505050565b6000806000611837611a6a565b9150915061184e818361185590919063ffffffff16565b9250505090565b600061189783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611acf565b905092915050565b6000806000806000806118b187611b32565b95509550955095509550955061190f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119f081611c42565b6119fa8483611cff565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a579190612557565b60405180910390a3505050505050505050565b60008060006008549050600069d3c21bcecceda10000009050611aa269d3c21bcecceda100000060085461185590919063ffffffff16565b821015611ac25760085469d3c21bcecceda1000000935093505050611acb565b81819350935050505b9091565b60008083118290611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d9190612435565b60405180910390fd5b5060008385611b259190612692565b9050809150509392505050565b6000806000806000806000806000611b4f8a600a54600b54611d39565b9250925092506000611b5f61182a565b90506000806000611b728e878787611dcf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611bdc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611454565b905092915050565b6000808284611bf3919061263c565b905083811015611c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2f90612497565b60405180910390fd5b8091505092915050565b6000611c4c61182a565b90506000611c638284611e5890919063ffffffff16565b9050611cb781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d1482600854611b9a90919063ffffffff16565b600881905550611d2f81600954611be490919063ffffffff16565b6009819055505050565b600080600080611d656064611d57888a611e5890919063ffffffff16565b61185590919063ffffffff16565b90506000611d8f6064611d81888b611e5890919063ffffffff16565b61185590919063ffffffff16565b90506000611db882611daa858c611b9a90919063ffffffff16565b611b9a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611de88589611e5890919063ffffffff16565b90506000611dff8689611e5890919063ffffffff16565b90506000611e168789611e5890919063ffffffff16565b90506000611e3f82611e318587611b9a90919063ffffffff16565b611b9a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611e6b5760009050611ecd565b60008284611e7991906126c3565b9050828482611e889190612692565b14611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf906124b7565b60405180910390fd5b809150505b92915050565b600081359050611ee281612ac3565b92915050565b600081519050611ef781612ac3565b92915050565b600081359050611f0c81612ada565b92915050565b600081519050611f2181612ada565b92915050565b600081359050611f3681612af1565b92915050565b600081519050611f4b81612af1565b92915050565b600060208284031215611f6757611f666128a7565b5b6000611f7584828501611ed3565b91505092915050565b600060208284031215611f9457611f936128a7565b5b6000611fa284828501611ee8565b91505092915050565b60008060408385031215611fc257611fc16128a7565b5b6000611fd085828601611ed3565b9250506020611fe185828601611ed3565b9150509250929050565b600080600060608486031215612004576120036128a7565b5b600061201286828701611ed3565b935050602061202386828701611ed3565b925050604061203486828701611f27565b9150509250925092565b60008060408385031215612055576120546128a7565b5b600061206385828601611ed3565b925050602061207485828601611f27565b9150509250929050565b600060208284031215612094576120936128a7565b5b60006120a284828501611efd565b91505092915050565b6000602082840312156120c1576120c06128a7565b5b60006120cf84828501611f12565b91505092915050565b6000806000606084860312156120f1576120f06128a7565b5b60006120ff86828701611f3c565b935050602061211086828701611f3c565b925050604061212186828701611f3c565b9150509250925092565b60006121378383612143565b60208301905092915050565b61214c81612751565b82525050565b61215b81612751565b82525050565b600061216c826125f7565b612176818561261a565b9350612181836125e7565b8060005b838110156121b2578151612199888261212b565b97506121a48361260d565b925050600181019050612185565b5085935050505092915050565b6121c881612763565b82525050565b6121d7816127a6565b82525050565b60006121e882612602565b6121f2818561262b565b93506122028185602086016127b8565b61220b816128ac565b840191505092915050565b6000612223602a8361262b565b915061222e826128bd565b604082019050919050565b600061224660228361262b565b91506122518261290c565b604082019050919050565b6000612269601b8361262b565b91506122748261295b565b602082019050919050565b600061228c60218361262b565b915061229782612984565b604082019050919050565b60006122af60208361262b565b91506122ba826129d3565b602082019050919050565b60006122d260298361262b565b91506122dd826129fc565b604082019050919050565b60006122f560248361262b565b915061230082612a4b565b604082019050919050565b600061231860178361262b565b915061232382612a9a565b602082019050919050565b6123378161278f565b82525050565b61234681612799565b82525050565b60006020820190506123616000830184612152565b92915050565b600060408201905061237c6000830185612152565b6123896020830184612152565b9392505050565b60006040820190506123a56000830185612152565b6123b2602083018461232e565b9392505050565b600060c0820190506123ce6000830189612152565b6123db602083018861232e565b6123e860408301876121ce565b6123f560608301866121ce565b6124026080830185612152565b61240f60a083018461232e565b979650505050505050565b600060208201905061242f60008301846121bf565b92915050565b6000602082019050818103600083015261244f81846121dd565b905092915050565b6000602082019050818103600083015261247081612216565b9050919050565b6000602082019050818103600083015261249081612239565b9050919050565b600060208201905081810360008301526124b08161225c565b9050919050565b600060208201905081810360008301526124d08161227f565b9050919050565b600060208201905081810360008301526124f0816122a2565b9050919050565b60006020820190508181036000830152612510816122c5565b9050919050565b60006020820190508181036000830152612530816122e8565b9050919050565b600060208201905081810360008301526125508161230b565b9050919050565b600060208201905061256c600083018461232e565b92915050565b600060a082019050612587600083018861232e565b61259460208301876121ce565b81810360408301526125a68186612161565b90506125b56060830185612152565b6125c2608083018461232e565b9695505050505050565b60006020820190506125e1600083018461233d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006126478261278f565b91506126528361278f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612687576126866127eb565b5b828201905092915050565b600061269d8261278f565b91506126a88361278f565b9250826126b8576126b761281a565b5b828204905092915050565b60006126ce8261278f565b91506126d98361278f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612712576127116127eb565b5b828202905092915050565b60006127288261278f565b91506127338361278f565b925082821015612746576127456127eb565b5b828203905092915050565b600061275c8261276f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127b18261278f565b9050919050565b60005b838110156127d65780820151818401526020810190506127bb565b838111156127e5576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612acc81612751565b8114612ad757600080fd5b50565b612ae381612763565b8114612aee57600080fd5b50565b612afa8161278f565b8114612b0557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122075d3d9393206755874cc1fd5fc8d6dadf53156a0d02a69b572f1e14f11c48f5f64736f6c63430008070033

Deployed Bytecode Sourcemap

3517:9611:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5254:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6106:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5531:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6275:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8858:80;;;;;;;;;;;;;:::i;:::-;;5440:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4661:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6596:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11217:196;;;;;;;;;;;;;:::i;:::-;;5634:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2596:148;;;;;;;;;;;;;:::i;:::-;;2382:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5345:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5780:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11008:197;;;;;;;;;;;;;:::i;:::-;;9055:865;;;;;;;;;;;;;:::i;:::-;;5955:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5254:83;5291:13;5324:5;;;;;;;;;;;;;;;;;5317:12;;5254:83;:::o;6106:161::-;6181:4;6198:39;6207:12;:10;:12::i;:::-;6221:7;6230:6;6198:8;:39::i;:::-;6255:4;6248:11;;6106:161;;;;:::o;5531:95::-;5584:7;4020:25;5604:14;;5531:95;:::o;6275:313::-;6373:4;6390:36;6400:6;6408:9;6419:6;6390:9;:36::i;:::-;6437:121;6446:6;6454:12;:10;:12::i;:::-;6468:89;6506:6;6468:89;;;;;;;;;;;;;;;;;:11;:19;6480:6;6468:19;;;;;;;;;;;;;;;:33;6488:12;:10;:12::i;:::-;6468:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6437:8;:121::i;:::-;6576:4;6569:11;;6275:313;;;;;:::o;8858:80::-;2519:12;:10;:12::i;:::-;2509:22;;:6;;;;;;;;;;:22;;;2501:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4020:25:::1;8908:12;:22;;;;8858:80::o:0;5440:83::-;5481:5;4415:1;5499:16;;5440:83;:::o;4661:30::-;;;;:::o;6596:103::-;2519:12;:10;:12::i;:::-;2509:22;;:6;;;;;;;;;;:22;;;2501:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6686:5:::1;6668:15;;:23;;;;;;;;;;;;;;;;;;6596:103:::0;:::o;11217:196::-;11283:17;;;;;;;;;;;11267:33;;:12;:10;:12::i;:::-;:33;;;11259:42;;;;;;11312:26;11341:21;11312:50;;11373:32;11386:18;11373:12;:32::i;:::-;11248:165;11217:196::o;5634:138::-;5700:7;5727:37;5747:7;:16;5755:7;5747:16;;;;;;;;;;;;;;;;5727:19;:37::i;:::-;5720:44;;5634:138;;;:::o;2596:148::-;2519:12;:10;:12::i;:::-;2509:22;;:6;;;;;;;;;;:22;;;2501:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2703:1:::1;2666:40;;2687:6;::::0;::::1;;;;;;;;2666:40;;;;;;;;;;;;2734:1;2717:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2596:148::o:0;2382:79::-;2420:7;2447:6;;;;;;;;;;;2440:13;;2382:79;:::o;5345:87::-;5384:13;5417:7;;;;;;;;;;;;;;;;;5410:14;;5345:87;:::o;5780:167::-;5858:4;5875:42;5885:12;:10;:12::i;:::-;5899:9;5910:6;5875:9;:42::i;:::-;5935:4;5928:11;;5780:167;;;;:::o;11008:197::-;11074:17;;;;;;;;;;;11058:33;;:12;:10;:12::i;:::-;:33;;;11050:42;;;;;;11103:23;11129:24;11147:4;11129:9;:24::i;:::-;11103:50;;11164:33;11181:15;11164:16;:33::i;:::-;11039:166;11008:197::o;9055:865::-;2519:12;:10;:12::i;:::-;2509:22;;:6;;;;;;;;;;:22;;;2501:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9119:11:::1;;;;;;;;;;;9118:12;9110:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9186:15;9168;:33;;;;9212:35;9269:42;9212:100;;9341:16;9323:15;;:34;;;;;;;;;;;;;;;;;;9368:58;9385:4;9400:15;;;;;;;;;;;4020:25;9368:8;:58::i;:::-;9471:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9453:56;;;9518:4;9525:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9453:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9437:13;;:112;;;;;;;;;;;;;;;;;;9560:15;;;;;;;;;;;:31;;;9599:21;9630:4;9636:24;9654:4;9636:9;:24::i;:::-;9661:1;9663::::0;9665:7:::1;:5;:7::i;:::-;9673:15;9560:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9714:4;9700:11;;:18;;;;;;;;;;;;;;;;;;9747:4;9729:15;;:22;;;;;;;;;;;;;;;;;;9777:24;9762:12;:39;;;;9826:4;9812:11;;:18;;;;;;;;;;;;;;;;;;9848:13;;;;;;;;;;;9841:29;;;9879:15;;;;;;;;;;;9897:14;9841:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9099:821;9055:865::o:0;5955:143::-;6036:7;6063:11;:18;6075:5;6063:18;;;;;;;;;;;;;;;:27;6082:7;6063:27;;;;;;;;;;;;;;;;6056:34;;5955:143;;;;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;6969:335::-;7079:1;7062:19;;:5;:19;;;;7054:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7160:1;7141:21;;:7;:21;;;;7133:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7242:6;7212:11;:18;7224:5;7212:18;;;;;;;;;;;;;;;:27;7231:7;7212:27;;;;;;;;;;;;;;;:36;;;;7280:7;7264:32;;7273:5;7264:32;;;7289:6;7264:32;;;;;;:::i;:::-;;;;;;;;6969:335;;;:::o;7312:1049::-;7409:1;7400:6;:10;7392:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7476:4;:10;7481:4;7476:10;;;;;;;;;;;;;;;;;;;;;;;;;7475:11;7467:20;;;;;;7518:4;7502:21;;:4;:21;;;7498:811;;7565:1;7540:22;:26;;;;7593:1;7581:9;:13;;;;7621;;;;;;;;;;;7613:21;;:4;:21;;;:55;;;;;7652:15;;;;;;;;;;;7638:30;;:2;:30;;;;7613:55;:83;;;;;7674:18;:22;7693:2;7674:22;;;;;;;;;;;;;;;;;;;;;;;;;7672:24;7613:83;:102;;;;;7700:15;;;;;;;;;;;7613:102;7609:268;;;7776:10;7758:15;;:28;;;;:::i;:::-;7740:15;:46;7736:126;;;7829:12;;7819:6;:22;;7811:31;;;;;;7736:126;7609:268;7893:28;7924:24;7942:4;7924:9;:24::i;:::-;7893:55;;7968:6;;;;;;;;;;;7967:7;:32;;;;;7986:13;;;;;;;;;;;7978:21;;:4;:21;;;;7967:32;:47;;;;;8003:11;;;;;;;;;;;7967:47;7963:335;;;8035:38;8052:20;8035:16;:38::i;:::-;8092:26;8121:21;8092:50;;8185:18;8164;:39;8161:122;;;8228:35;8241:21;8228:12;:35::i;:::-;8161:122;8016:282;7963:335;7525:784;7498:811;8323:30;8338:4;8343:2;8346:6;8323:14;:30::i;:::-;7312:1049;;;:::o;1237:190::-;1323:7;1356:1;1351;:6;;1359:12;1343:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1383:9;1399:1;1395;:5;;;;:::i;:::-;1383:17;;1418:1;1411:8;;;1237:190;;;;;:::o;8944:99::-;9001:17;;;;;;;;;;;:26;;:34;9028:6;9001:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8944:99;:::o;6707:254::-;6774:7;6813;;6802;:18;;6794:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6878:19;6901:10;:8;:10::i;:::-;6878:33;;6929:24;6941:11;6929:7;:11;;:24;;;;:::i;:::-;6922:31;;;6707:254;;;:::o;8369:483::-;4834:4;4825:6;;:13;;;;;;;;;;;;;;;;;;8447:21:::1;8485:1;8471:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8447:40;;8516:4;8498;8503:1;8498:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8542:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8532:4;8537:1;8532:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8575:62;8592:4;8607:15;;;;;;;;;;;8625:11;8575:8;:62::i;:::-;8648:15;;;;;;;;;;;:66;;;8729:11;8755:1;8771:4;8798;8818:15;8648:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8436:416;4870:5:::0;4861:6;;:14;;;;;;;;;;;;;;;;;;8369:483;:::o;9942:146::-;10036:44;10054:6;10062:9;10073:6;10036:17;:44::i;:::-;9942:146;;;:::o;12692:163::-;12733:7;12754:15;12771;12790:19;:17;:19::i;:::-;12753:56;;;;12827:20;12839:7;12827;:11;;:20;;;;:::i;:::-;12820:27;;;;12692:163;:::o;1689:132::-;1747:7;1774:39;1778:1;1781;1774:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1767:46;;1689:132;;;;:::o;10096:488::-;10195:15;10212:23;10237:12;10251:23;10276:12;10290:13;10307:19;10318:7;10307:10;:19::i;:::-;10194:132;;;;;;;;;;;;10355:28;10375:7;10355;:15;10363:6;10355:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10337:7;:15;10345:6;10337:15;;;;;;;;;;;;;;;:46;;;;10415:39;10438:15;10415:7;:18;10423:9;10415:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10394:7;:18;10402:9;10394:18;;;;;;;;;;;;;;;:60;;;;10466:16;10476:5;10466:9;:16::i;:::-;10493:23;10505:4;10511;10493:11;:23::i;:::-;10549:9;10532:44;;10541:6;10532:44;;;10560:15;10532:44;;;;;;:::i;:::-;;;;;;;;10183:401;;;;;;10096:488;;;:::o;12863:262::-;12913:7;12922;12942:15;12960:7;;12942:25;;12978:15;4020:25;12978;;13034:20;4020:25;13034:7;;:11;;:20;;;;:::i;:::-;13024:7;:30;13020:61;;;13064:7;;4020:25;13056;;;;;;;;13020:61;13100:7;13109;13092:25;;;;;;12863:262;;;:::o;1829:189::-;1915:7;1947:1;1943;:5;1950:12;1935:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1974:9;1990:1;1986;:5;;;;:::i;:::-;1974:17;;2009:1;2002:8;;;1829:189;;;;;:::o;11427:484::-;11486:7;11495;11504;11513;11522;11531;11552:23;11577:12;11591:13;11608:55;11620:7;11629:22;;11653:9;;11608:11;:55::i;:::-;11551:112;;;;;;11674:19;11697:10;:8;:10::i;:::-;11674:33;;11719:15;11736:23;11761:12;11777:46;11789:7;11798:4;11804:5;11811:11;11777;:46::i;:::-;11718:105;;;;;;11842:7;11851:15;11868:4;11874:15;11891:4;11897:5;11834:69;;;;;;;;;;;;;;;;;;;11427:484;;;;;;;:::o;1093:136::-;1151:7;1178:43;1182:1;1185;1178:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1171:50;;1093:136;;;;:::o;906:179::-;964:7;984:9;1000:1;996;:5;;;;:::i;:::-;984:17;;1025:1;1020;:6;;1012:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1076:1;1069:8;;;906:179;;;;:::o;10592:212::-;10645:19;10668:10;:8;:10::i;:::-;10645:33;;10689:13;10705:22;10715:11;10705:5;:9;;:22;;;;:::i;:::-;10689:38;;10763:33;10790:5;10763:7;:22;10779:4;10763:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;10738:7;:22;10754:4;10738:22;;;;;;;;;;;;;;;:58;;;;10634:170;;10592:212;:::o;10812:147::-;10890:17;10902:4;10890:7;;:11;;:17;;;;:::i;:::-;10880:7;:27;;;;10931:20;10946:4;10931:10;;:14;;:20;;;;:::i;:::-;10918:10;:33;;;;10812:147;;:::o;11919:351::-;12012:7;12021;12030;12050:12;12065:28;12089:3;12065:19;12077:6;12065:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12050:43;;12104:13;12120:29;12145:3;12120:20;12132:7;12120;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12104:45;;12160:23;12186:28;12208:5;12186:17;12198:4;12186:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12160:54;;12233:15;12250:4;12256:5;12225:37;;;;;;;;;11919:351;;;;;;;:::o;12278:409::-;12388:7;12397;12406;12426:15;12444:24;12456:11;12444:7;:11;;:24;;;;:::i;:::-;12426:42;;12479:12;12494:21;12503:11;12494:4;:8;;:21;;;;:::i;:::-;12479:36;;12526:13;12542:22;12552:11;12542:5;:9;;:22;;;;:::i;:::-;12526:38;;12575:23;12601:28;12623:5;12601:17;12613:4;12601:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12575:54;;12648:7;12657:15;12674:4;12640:39;;;;;;;;;;12278:409;;;;;;;;:::o;1435:246::-;1493:7;1522:1;1517;:6;1513:47;;;1547:1;1540:8;;;;1513:47;1570:9;1586:1;1582;:5;;;;:::i;:::-;1570:17;;1615:1;1610;1606;:5;;;;:::i;:::-;:10;1598:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1672:1;1665:8;;;1435:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:119;;;2805:79;;:::i;:::-;2767:119;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2674:474;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:119;;;3265:79;;:::i;:::-;3227:119;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3154:323;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:119;;;3605:79;;:::i;:::-;3567:119;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3483:345;;;;:::o;3834:663::-;3922:6;3930;3938;3987:2;3975:9;3966:7;3962:23;3958:32;3955:119;;;3993:79;;:::i;:::-;3955:119;4113:1;4138:64;4194:7;4185:6;4174:9;4170:22;4138:64;:::i;:::-;4128:74;;4084:128;4251:2;4277:64;4333:7;4324:6;4313:9;4309:22;4277:64;:::i;:::-;4267:74;;4222:129;4390:2;4416:64;4472:7;4463:6;4452:9;4448:22;4416:64;:::i;:::-;4406:74;;4361:129;3834:663;;;;;:::o;4503:179::-;4572:10;4593:46;4635:3;4627:6;4593:46;:::i;:::-;4671:4;4666:3;4662:14;4648:28;;4503:179;;;;:::o;4688:108::-;4765:24;4783:5;4765:24;:::i;:::-;4760:3;4753:37;4688:108;;:::o;4802:118::-;4889:24;4907:5;4889:24;:::i;:::-;4884:3;4877:37;4802:118;;:::o;4956:732::-;5075:3;5104:54;5152:5;5104:54;:::i;:::-;5174:86;5253:6;5248:3;5174:86;:::i;:::-;5167:93;;5284:56;5334:5;5284:56;:::i;:::-;5363:7;5394:1;5379:284;5404:6;5401:1;5398:13;5379:284;;;5480:6;5474:13;5507:63;5566:3;5551:13;5507:63;:::i;:::-;5500:70;;5593:60;5646:6;5593:60;:::i;:::-;5583:70;;5439:224;5426:1;5423;5419:9;5414:14;;5379:284;;;5383:14;5679:3;5672:10;;5080:608;;;4956:732;;;;:::o;5694:109::-;5775:21;5790:5;5775:21;:::i;:::-;5770:3;5763:34;5694:109;;:::o;5809:147::-;5904:45;5943:5;5904:45;:::i;:::-;5899:3;5892:58;5809:147;;:::o;5962:364::-;6050:3;6078:39;6111:5;6078:39;:::i;:::-;6133:71;6197:6;6192:3;6133:71;:::i;:::-;6126:78;;6213:52;6258:6;6253:3;6246:4;6239:5;6235:16;6213:52;:::i;:::-;6290:29;6312:6;6290:29;:::i;:::-;6285:3;6281:39;6274:46;;6054:272;5962:364;;;;:::o;6332:366::-;6474:3;6495:67;6559:2;6554:3;6495:67;:::i;:::-;6488:74;;6571:93;6660:3;6571:93;:::i;:::-;6689:2;6684:3;6680:12;6673:19;;6332:366;;;:::o;6704:::-;6846:3;6867:67;6931:2;6926:3;6867:67;:::i;:::-;6860:74;;6943:93;7032:3;6943:93;:::i;:::-;7061:2;7056:3;7052:12;7045:19;;6704:366;;;:::o;7076:::-;7218:3;7239:67;7303:2;7298:3;7239:67;:::i;:::-;7232:74;;7315:93;7404:3;7315:93;:::i;:::-;7433:2;7428:3;7424:12;7417:19;;7076:366;;;:::o;7448:::-;7590:3;7611:67;7675:2;7670:3;7611:67;:::i;:::-;7604:74;;7687:93;7776:3;7687:93;:::i;:::-;7805:2;7800:3;7796:12;7789:19;;7448:366;;;:::o;7820:::-;7962:3;7983:67;8047:2;8042:3;7983:67;:::i;:::-;7976:74;;8059:93;8148:3;8059:93;:::i;:::-;8177:2;8172:3;8168:12;8161:19;;7820:366;;;:::o;8192:::-;8334:3;8355:67;8419:2;8414:3;8355:67;:::i;:::-;8348:74;;8431:93;8520:3;8431:93;:::i;:::-;8549:2;8544:3;8540:12;8533:19;;8192:366;;;:::o;8564:::-;8706:3;8727:67;8791:2;8786:3;8727:67;:::i;:::-;8720:74;;8803:93;8892:3;8803:93;:::i;:::-;8921:2;8916:3;8912:12;8905:19;;8564:366;;;:::o;8936:::-;9078:3;9099:67;9163:2;9158:3;9099:67;:::i;:::-;9092:74;;9175:93;9264:3;9175:93;:::i;:::-;9293:2;9288:3;9284:12;9277:19;;8936:366;;;:::o;9308:118::-;9395:24;9413:5;9395:24;:::i;:::-;9390:3;9383:37;9308:118;;:::o;9432:112::-;9515:22;9531:5;9515:22;:::i;:::-;9510:3;9503:35;9432:112;;:::o;9550:222::-;9643:4;9681:2;9670:9;9666:18;9658:26;;9694:71;9762:1;9751:9;9747:17;9738:6;9694:71;:::i;:::-;9550:222;;;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:::-;10237:4;10275:2;10264:9;10260:18;10252:26;;10288:71;10356:1;10345:9;10341:17;10332:6;10288:71;:::i;:::-;10369:72;10437:2;10426:9;10422:18;10413:6;10369:72;:::i;:::-;10116:332;;;;;:::o;10454:807::-;10703:4;10741:3;10730:9;10726:19;10718:27;;10755:71;10823:1;10812:9;10808:17;10799:6;10755:71;:::i;:::-;10836:72;10904:2;10893:9;10889:18;10880:6;10836:72;:::i;:::-;10918:80;10994:2;10983:9;10979:18;10970:6;10918:80;:::i;:::-;11008;11084:2;11073:9;11069:18;11060:6;11008:80;:::i;:::-;11098:73;11166:3;11155:9;11151:19;11142:6;11098:73;:::i;:::-;11181;11249:3;11238:9;11234:19;11225:6;11181:73;:::i;:::-;10454:807;;;;;;;;;:::o;11267:210::-;11354:4;11392:2;11381:9;11377:18;11369:26;;11405:65;11467:1;11456:9;11452:17;11443:6;11405:65;:::i;:::-;11267:210;;;;:::o;11483:313::-;11596:4;11634:2;11623:9;11619:18;11611:26;;11683:9;11677:4;11673:20;11669:1;11658:9;11654:17;11647:47;11711:78;11784:4;11775:6;11711:78;:::i;:::-;11703:86;;11483:313;;;;:::o;11802:419::-;11968:4;12006:2;11995:9;11991:18;11983:26;;12055:9;12049:4;12045:20;12041:1;12030:9;12026:17;12019:47;12083:131;12209:4;12083:131;:::i;:::-;12075:139;;11802:419;;;:::o;12227:::-;12393:4;12431:2;12420:9;12416:18;12408:26;;12480:9;12474:4;12470:20;12466:1;12455:9;12451:17;12444:47;12508:131;12634:4;12508:131;:::i;:::-;12500:139;;12227:419;;;:::o;12652:::-;12818:4;12856:2;12845:9;12841:18;12833:26;;12905:9;12899:4;12895:20;12891:1;12880:9;12876:17;12869:47;12933:131;13059:4;12933:131;:::i;:::-;12925:139;;12652:419;;;:::o;13077:::-;13243:4;13281:2;13270:9;13266:18;13258:26;;13330:9;13324:4;13320:20;13316:1;13305:9;13301:17;13294:47;13358:131;13484:4;13358:131;:::i;:::-;13350:139;;13077:419;;;:::o;13502:::-;13668:4;13706:2;13695:9;13691:18;13683:26;;13755:9;13749:4;13745:20;13741:1;13730:9;13726:17;13719:47;13783:131;13909:4;13783:131;:::i;:::-;13775:139;;13502:419;;;:::o;13927:::-;14093:4;14131:2;14120:9;14116:18;14108:26;;14180:9;14174:4;14170:20;14166:1;14155:9;14151:17;14144:47;14208:131;14334:4;14208:131;:::i;:::-;14200:139;;13927:419;;;:::o;14352:::-;14518:4;14556:2;14545:9;14541:18;14533:26;;14605:9;14599:4;14595:20;14591:1;14580:9;14576:17;14569:47;14633:131;14759:4;14633:131;:::i;:::-;14625:139;;14352:419;;;:::o;14777:::-;14943:4;14981:2;14970:9;14966:18;14958:26;;15030:9;15024:4;15020:20;15016:1;15005:9;15001:17;14994:47;15058:131;15184:4;15058:131;:::i;:::-;15050:139;;14777:419;;;:::o;15202:222::-;15295:4;15333:2;15322:9;15318:18;15310:26;;15346:71;15414:1;15403:9;15399:17;15390:6;15346:71;:::i;:::-;15202:222;;;;:::o;15430:831::-;15693:4;15731:3;15720:9;15716:19;15708:27;;15745:71;15813:1;15802:9;15798:17;15789:6;15745:71;:::i;:::-;15826:80;15902:2;15891:9;15887:18;15878:6;15826:80;:::i;:::-;15953:9;15947:4;15943:20;15938:2;15927:9;15923:18;15916:48;15981:108;16084:4;16075:6;15981:108;:::i;:::-;15973:116;;16099:72;16167:2;16156:9;16152:18;16143:6;16099:72;:::i;:::-;16181:73;16249:3;16238:9;16234:19;16225:6;16181:73;:::i;:::-;15430:831;;;;;;;;:::o;16267:214::-;16356:4;16394:2;16383:9;16379:18;16371:26;;16407:67;16471:1;16460:9;16456:17;16447:6;16407:67;:::i;:::-;16267:214;;;;:::o;16568:132::-;16635:4;16658:3;16650:11;;16688:4;16683:3;16679:14;16671:22;;16568:132;;;:::o;16706:114::-;16773:6;16807:5;16801:12;16791:22;;16706:114;;;:::o;16826:99::-;16878:6;16912:5;16906:12;16896:22;;16826:99;;;:::o;16931:113::-;17001:4;17033;17028:3;17024:14;17016:22;;16931:113;;;:::o;17050:184::-;17149:11;17183:6;17178:3;17171:19;17223:4;17218:3;17214:14;17199:29;;17050:184;;;;:::o;17240:169::-;17324:11;17358:6;17353:3;17346:19;17398:4;17393:3;17389:14;17374:29;;17240:169;;;;:::o;17415:305::-;17455:3;17474:20;17492:1;17474:20;:::i;:::-;17469:25;;17508:20;17526:1;17508:20;:::i;:::-;17503:25;;17662:1;17594:66;17590:74;17587:1;17584:81;17581:107;;;17668:18;;:::i;:::-;17581:107;17712:1;17709;17705:9;17698:16;;17415:305;;;;:::o;17726:185::-;17766:1;17783:20;17801:1;17783:20;:::i;:::-;17778:25;;17817:20;17835:1;17817:20;:::i;:::-;17812:25;;17856:1;17846:35;;17861:18;;:::i;:::-;17846:35;17903:1;17900;17896:9;17891:14;;17726:185;;;;:::o;17917:348::-;17957:7;17980:20;17998:1;17980:20;:::i;:::-;17975:25;;18014:20;18032:1;18014:20;:::i;:::-;18009:25;;18202:1;18134:66;18130:74;18127:1;18124:81;18119:1;18112:9;18105:17;18101:105;18098:131;;;18209:18;;:::i;:::-;18098:131;18257:1;18254;18250:9;18239:20;;17917:348;;;;:::o;18271:191::-;18311:4;18331:20;18349:1;18331:20;:::i;:::-;18326:25;;18365:20;18383:1;18365:20;:::i;:::-;18360:25;;18404:1;18401;18398:8;18395:34;;;18409:18;;:::i;:::-;18395:34;18454:1;18451;18447:9;18439:17;;18271:191;;;;:::o;18468:96::-;18505:7;18534:24;18552:5;18534:24;:::i;:::-;18523:35;;18468:96;;;:::o;18570:90::-;18604:7;18647:5;18640:13;18633:21;18622:32;;18570:90;;;:::o;18666:126::-;18703:7;18743:42;18736:5;18732:54;18721:65;;18666:126;;;:::o;18798:77::-;18835:7;18864:5;18853:16;;18798:77;;;:::o;18881:86::-;18916:7;18956:4;18949:5;18945:16;18934:27;;18881:86;;;:::o;18973:121::-;19031:9;19064:24;19082:5;19064:24;:::i;:::-;19051:37;;18973:121;;;:::o;19100:307::-;19168:1;19178:113;19192:6;19189:1;19186:13;19178:113;;;19277:1;19272:3;19268:11;19262:18;19258:1;19253:3;19249:11;19242:39;19214:2;19211:1;19207:10;19202:15;;19178:113;;;19309:6;19306:1;19303:13;19300:101;;;19389:1;19380:6;19375:3;19371:16;19364:27;19300:101;19149:258;19100:307;;;:::o;19413:180::-;19461:77;19458:1;19451:88;19558:4;19555:1;19548:15;19582:4;19579:1;19572:15;19599:180;19647:77;19644:1;19637:88;19744:4;19741:1;19734:15;19768:4;19765:1;19758:15;19785:180;19833:77;19830:1;19823:88;19930:4;19927:1;19920:15;19954:4;19951:1;19944:15;19971:180;20019:77;20016:1;20009:88;20116:4;20113:1;20106:15;20140:4;20137:1;20130:15;20280:117;20389:1;20386;20379:12;20403:102;20444:6;20495:2;20491:7;20486:2;20479:5;20475:14;20471:28;20461:38;;20403:102;;;:::o;20511:229::-;20651:34;20647:1;20639:6;20635:14;20628:58;20720:12;20715:2;20707:6;20703:15;20696:37;20511:229;:::o;20746:221::-;20886:34;20882:1;20874:6;20870:14;20863:58;20955:4;20950:2;20942:6;20938:15;20931:29;20746:221;:::o;20973:177::-;21113:29;21109:1;21101:6;21097:14;21090:53;20973:177;:::o;21156:220::-;21296:34;21292:1;21284:6;21280:14;21273:58;21365:3;21360:2;21352:6;21348:15;21341:28;21156:220;:::o;21382:182::-;21522:34;21518:1;21510:6;21506:14;21499:58;21382:182;:::o;21570:228::-;21710:34;21706:1;21698:6;21694:14;21687:58;21779:11;21774:2;21766:6;21762:15;21755:36;21570:228;:::o;21804:223::-;21944:34;21940:1;21932:6;21928:14;21921:58;22013:6;22008:2;22000:6;21996:15;21989:31;21804:223;:::o;22033:173::-;22173:25;22169:1;22161:6;22157:14;22150:49;22033:173;:::o;22212:122::-;22285:24;22303:5;22285:24;:::i;:::-;22278:5;22275:35;22265:63;;22324:1;22321;22314:12;22265:63;22212:122;:::o;22340:116::-;22410:21;22425:5;22410:21;:::i;:::-;22403:5;22400:32;22390:60;;22446:1;22443;22436:12;22390:60;22340:116;:::o;22462:122::-;22535:24;22553:5;22535:24;:::i;:::-;22528:5;22525:35;22515:63;;22574:1;22571;22564:12;22515:63;22462:122;:::o

Swarm Source

ipfs://75d3d9393206755874cc1fd5fc8d6dadf53156a0d02a69b572f1e14f11c48f5f

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.