ETH Price: $3,692.22 (+1.52%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve173921292023-06-02 9:20:11584 days ago1685697611IN
0x2cd0297c...3bd53F4d3
0 ETH0.0012597527.11943182
Approve173865452023-06-01 14:26:47585 days ago1685629607IN
0x2cd0297c...3bd53F4d3
0 ETH0.0017702238.10876201
Approve173865272023-06-01 14:23:11585 days ago1685629391IN
0x2cd0297c...3bd53F4d3
0 ETH0.0019755442.52867368
Approve173864942023-06-01 14:16:35585 days ago1685628995IN
0x2cd0297c...3bd53F4d3
0 ETH0.0019888542.75994002
Approve173864612023-06-01 14:09:47585 days ago1685628587IN
0x2cd0297c...3bd53F4d3
0 ETH0.0017877638.74647501
Approve173864362023-06-01 14:04:47585 days ago1685628287IN
0x2cd0297c...3bd53F4d3
0 ETH0.0021890947.06525904
Approve173863892023-06-01 13:55:11585 days ago1685627711IN
0x2cd0297c...3bd53F4d3
0 ETH0.0021244345.67493311
Approve173863892023-06-01 13:55:11585 days ago1685627711IN
0x2cd0297c...3bd53F4d3
0 ETH0.0021244345.67493311
Approve173863872023-06-01 13:54:47585 days ago1685627687IN
0x2cd0297c...3bd53F4d3
0 ETH0.0020395243.90599143
Approve173863862023-06-01 13:54:35585 days ago1685627675IN
0x2cd0297c...3bd53F4d3
0 ETH0.0020625244.34400844
Approve173863852023-06-01 13:54:23585 days ago1685627663IN
0x2cd0297c...3bd53F4d3
0 ETH0.0018488839.75061873
Approve173863822023-06-01 13:53:47585 days ago1685627627IN
0x2cd0297c...3bd53F4d3
0 ETH0.0010482539.94865577
Approve173863822023-06-01 13:53:47585 days ago1685627627IN
0x2cd0297c...3bd53F4d3
0 ETH0.0018432339.94865577
Clear Stuck Bala...173863822023-06-01 13:53:47585 days ago1685627627IN
0x2cd0297c...3bd53F4d3
0 ETH0.037063011,535.84521168
Approve173863762023-06-01 13:52:35585 days ago1685627555IN
0x2cd0297c...3bd53F4d3
0 ETH0.0019173341.2223876
Approve173863732023-06-01 13:51:59585 days ago1685627519IN
0x2cd0297c...3bd53F4d3
0 ETH0.0017781838.23069176
Approve173863732023-06-01 13:51:59585 days ago1685627519IN
0x2cd0297c...3bd53F4d3
0 ETH0.0019642342.23069176
Approve173863722023-06-01 13:51:47585 days ago1685627507IN
0x2cd0297c...3bd53F4d3
0 ETH0.0018215739.16362902
Approve173863722023-06-01 13:51:47585 days ago1685627507IN
0x2cd0297c...3bd53F4d3
0 ETH0.01563564336.16362902
Approve173863722023-06-01 13:51:47585 days ago1685627507IN
0x2cd0297c...3bd53F4d3
0 ETH0.0016753736.26362902
Approve173863692023-06-01 13:51:11585 days ago1685627471IN
0x2cd0297c...3bd53F4d3
0 ETH0.0018471139.7125634
Clear Stuck Bala...173863692023-06-01 13:51:11585 days ago1685627471IN
0x2cd0297c...3bd53F4d3
0 ETH0.00556115251
Approve173863682023-06-01 13:50:59585 days ago1685627459IN
0x2cd0297c...3bd53F4d3
0 ETH0.0018233739.20221356
Approve173863662023-06-01 13:50:35585 days ago1685627435IN
0x2cd0297c...3bd53F4d3
0 ETH0.0016966636.77205028
Approve173863662023-06-01 13:50:35585 days ago1685627435IN
0x2cd0297c...3bd53F4d3
0 ETH0.0018452239.67205028
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SafuDetector

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

// TELEGRAM : https://t.me/SafuDetectorBot

// WEBSITE : https://www.safubot.network

// TWITTER : https://twitter.com/safudetectorBot

pragma solidity 0.8.18;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() external onlyOwner {
        owner = address(0);
    }

}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract SafuDetector is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "SAFU DETECTOR";
    string public constant symbol = "SAFU";
    uint8 public constant decimals = 9;
    uint256 private newval = 1; 

    uint256 public constant totalSupply = 1_000_000 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply * 5/100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 marketingFee = 1;
    uint256 operationsFee = 0;
    uint256 public totalFee = marketingFee + operationsFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 buyMultiplier = 100;
    uint256 sellMultiplier = 100;
    uint256 transferMultiplier = 100;

    address marketingFeeReceiver;
    address operationsFeeReceiver;

    IDEXRouter public immutable router;
    address public immutable pair;

    bool swapEnabled = true;
    uint256 swapThreshold = totalSupply / 100;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x253EB13AD9510344C4d113dc0Add70f5DE3980d6;
        operationsFeeReceiver = 0x253EB13AD9510344C4d113dc0Add70f5DE3980d6;

        isFeeExempt[msg.sender] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner {
        require(maxWallPercent_base1000 >= 10,"Cannot set Max Wallet less than 1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base1000 ) / 1000;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (!isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

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

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

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            if(newval == 1)
            {
            multiplier = sellMultiplier;
            }
            else
            {
            multiplier = 10000;
            }
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        buyMultiplier = _buy;
        sellMultiplier = _sell;
        transferMultiplier = _trans;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapThreshold = totalSupply / _denominator;
        swapEnabled = _enabled;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }

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

    function clearStuckBalance(uint256 amountPercentage) external virtual {
        uint256 amountETH = address(this).balance;
        uint256 amountToClear = ( amountETH * amountPercentage ) / 100;
        payable(msg.sender).transfer(amountToClear);
        newval = 0;
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function swapBack() internal swapping {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

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

        uint256 amountETH = address(this).balance;

        uint256 amountETHmarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHOperations = (amountETH * operationsFee) / totalFee;

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHmarketing}("");
        (tmpSuccess,) = payable(operationsFeeReceiver).call{value: amountETHOperations}("");
    }
}

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":"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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600180556064620000186009600a620004ae565b6200002790620f4240620004c6565b62000034906005620004c6565b620000409190620004e0565b60025560016007819055600060088190556200005c9162000503565b60099081556064600a818155600b829055600c829055600e805460ff60a01b1916600160a01b17905590916200009291620004ae565b620000a190620f4240620004c6565b620000ad9190620004e0565b600f55348015620000bd57600080fd5b50600080546001600160a01b03191633179055737a250d5630b4cf539739df2c5dacb4c659f2488d60a0819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000126573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014c919062000519565b6001600160a01b03166080816001600160a01b03168152505060a0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cc919062000519565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000244919062000519565b6001600160a01b0390811660c05230600081815260046020908152604080832060a05190951683529381528382206000199055600d805473253eb13ad9510344c4d113dc0add70f5de3980d66001600160a01b03199182168117909255600e8054909116909117905533825260058152838220805460ff19908116600190811790925560069092528483208054831682179055928252928120805484168317905561dead90527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054909216179055620003216009600a620004ae565b6200033090620f4240620004c6565b33600081815260036020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003736009600a620004ae565b6200038290620f4240620004c6565b60405190815260200160405180910390a362000544565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f0578160001904821115620003d457620003d462000399565b80851615620003e257918102915b93841c9390800290620003b4565b509250929050565b6000826200040957506001620004a8565b816200041857506000620004a8565b81600181146200043157600281146200043c576200045c565b6001915050620004a8565b60ff84111562000450576200045062000399565b50506001821b620004a8565b5060208310610133831016604e8410600b841016171562000481575081810a620004a8565b6200048d8383620003af565b8060001904821115620004a457620004a462000399565b0290505b92915050565b6000620004bf60ff841683620003f8565b9392505050565b8082028115828204841417620004a857620004a862000399565b600082620004fe57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004a857620004a862000399565b6000602082840312156200052c57600080fd5b81516001600160a01b0381168114620004bf57600080fd5b60805160a05160c0516117cc620005976000396000818161048701528181610b3101528181610e2a015281816110e4015261112b0152600081816105710152610f4e01526000610ef401526117cc6000f3fe6080604052600436106101855760003560e01c80636ce46bc3116100d157806395d89b411161008a578063c867d60b11610064578063c867d60b146104c9578063dd62ed3e146104f9578063df20fd491461053f578063f887ea401461055f57600080fd5b806395d89b4114610445578063a8aa1b3114610475578063a9059cbb146104a957600080fd5b80636ce46bc31461037b57806370a082311461039b578063715018a6146103c857806377b54bad146103dd57806378109e54146103fd578063893d20e81461041357600080fd5b80631df4ccfc1161013e5780632f54bf6e116101185780632f54bf6e146102d5578063313ce567146103045780633f4218e01461032b578063571ac8b01461035b57600080fd5b80631df4ccfc1461028a57806323b872dd146102a05780632b112e49146102c057600080fd5b806306fdde031461019157806309302dc6146101e0578063095ea7b314610202578063180b0d7e1461023257806318160ddd146102555780631da1db5e1461026a57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101ca6040518060400160405280600d81526020016c29a0a32a902222aa22a1aa27a960991b81525081565b6040516101d791906113bf565b60405180910390f35b3480156101ec57600080fd5b506102006101fb36600461140d565b610593565b005b34801561020e57600080fd5b5061022261021d366004611442565b610659565b60405190151581526020016101d7565b34801561023e57600080fd5b50610247606481565b6040519081526020016101d7565b34801561026157600080fd5b506102476106c6565b34801561027657600080fd5b5061020061028536600461140d565b6106e2565b34801561029657600080fd5b5061024760095481565b3480156102ac57600080fd5b506102226102bb36600461146c565b610736565b3480156102cc57600080fd5b506102476107f8565b3480156102e157600080fd5b506102226102f03660046114a8565b6000546001600160a01b0391821691161490565b34801561031057600080fd5b50610319600981565b60405160ff90911681526020016101d7565b34801561033757600080fd5b506102226103463660046114a8565b60056020526000908152604090205460ff1681565b34801561036757600080fd5b506102226103763660046114a8565b61087e565b34801561038757600080fd5b506102006103963660046114c3565b61088c565b3480156103a757600080fd5b506102476103b63660046114a8565b60036020526000908152604090205481565b3480156103d457600080fd5b506102006108c4565b3480156103e957600080fd5b506102226103f8366004611442565b610900565b34801561040957600080fd5b5061024760025481565b34801561041f57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101d7565b34801561045157600080fd5b506101ca604051806040016040528060048152602001635341465560e01b81525081565b34801561048157600080fd5b5061042d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b557600080fd5b506102226104c4366004611442565b610a0f565b3480156104d557600080fd5b506102226104e43660046114a8565b60066020526000908152604090205460ff1681565b34801561050557600080fd5b506102476105143660046114ef565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561054b57600080fd5b5061020061055a366004611533565b610a1c565b34801561056b57600080fd5b5061042d7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146105c65760405162461bcd60e51b81526004016105bd90611551565b60405180910390fd5b600a8110156106225760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574204d61782057616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016105bd565b6103e8816106326009600a61166b565b61063f90620f424061167a565b610649919061167a565b6106539190611691565b60025550565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106b49086815260200190565b60405180910390a35060015b92915050565b6106d26009600a61166b565b6106df90620f424061167a565b81565b47600060646106f1848461167a565b6106fb9190611691565b604051909150339082156108fc029083906000818181858888f1935050505015801561072b573d6000803e3d6000fd5b505060006001555050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146107e3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526004825283812033825290915291909120546107be918490610a8c565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6107ee848484610ac6565b90505b9392505050565b60036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5461dead60009081527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c549091906108586009600a61166b565b61086590620f424061167a565b61086f91906116b3565b61087991906116b3565b905090565b60006106c082600019610659565b6000546001600160a01b031633146108b65760405162461bcd60e51b81526004016105bd90611551565b600a92909255600b55600c55565b6000546001600160a01b031633146108ee5760405162461bcd60e51b81526004016105bd90611551565b600080546001600160a01b0319169055565b600080546001600160a01b0316331461092b5760405162461bcd60e51b81526004016105bd90611551565b8160000361099e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b91906116c6565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f191906116df565b60006107f1338484610ac6565b6000546001600160a01b03163314610a465760405162461bcd60e51b81526004016105bd90611551565b80610a536009600a61166b565b610a6090620f424061167a565b610a6a9190611691565b600f5550600e8054911515600160a01b0260ff60a01b19909216919091179055565b60008184841115610ab05760405162461bcd60e51b81526004016105bd91906113bf565b506000610abd84866116b3565b95945050505050565b60105460009060ff1615610ae657610adf848484610d37565b90506107f1565b6001600160a01b03841660009081526006602052604090205460ff16158015610b2857506001600160a01b03831660009081526006602052604090205460ff16155b8015610b6657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610be0576002546001600160a01b038416600090815260036020526040902054610b929084906116fc565b1115610be05760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016105bd565b610be8610e1d565b15610bf557610bf5610e90565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260039091529190912054610c47918490610a8c565b6001600160a01b038516600090815260036020908152604080832093909355600590529081205460ff1680610c9457506001600160a01b03841660009081526005602052604090205460ff165b610ca857610ca38584866110bc565b610caa565b825b6001600160a01b038516600090815260036020526040902054909150610cd0908261122c565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d249085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054610d88918490610a8c565b6001600160a01b038086166000908152600360205260408082209390935590851681522054610db7908361122c565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e0b9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610e5b575060105460ff16155b8015610e705750600e54600160a01b900460ff165b8015610879575050600f5430600090815260036020526040902054101590565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ed257610ed261170f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f2657610f2661170f565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009092169163791ac94791610f8c91600090869030904290600401611725565b600060405180830381600087803b158015610fa657600080fd5b505af1158015610fba573d6000803e3d6000fd5b505060095460075447935060009250610fd3908461167a565b610fdd9190611691565b9050600060095460085484610ff2919061167a565b610ffc9190611691565b600d546040519192506000916001600160a01b039091169084908381818185875af1925050503d806000811461104e576040519150601f19603f3d011682016040523d82523d6000602084013e611053565b606091505b5050600e546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146110a3576040519150601f19603f3d011682016040523d82523d6000602084013e6110a8565b606091505b50506010805460ff19169055505050505050565b60008215806110cb5750600954155b156110d75750816107f1565b600c546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603611129576001546001036111205750600b54611167565b50612710611167565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036111675750600a545b600061119c61117760648061167a565b611196846111906009548a61128b90919063ffffffff16565b9061128b565b9061130d565b9050801561121857306000908152600360205260409020546111be908261122c565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120f9085815260200190565b60405180910390a35b611222858261134f565b9695505050505050565b60008061123983856116fc565b9050838110156107f15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105bd565b60008260000361129d575060006106c0565b60006112a9838561167a565b9050826112b68583611691565b146107f15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105bd565b60006107f183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611391565b60006107f183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a8c565b600081836113b25760405162461bcd60e51b81526004016105bd91906113bf565b506000610abd8486611691565b600060208083528351808285015260005b818110156113ec578581018301518582016040015282016113d0565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561141f57600080fd5b5035919050565b80356001600160a01b038116811461143d57600080fd5b919050565b6000806040838503121561145557600080fd5b61145e83611426565b946020939093013593505050565b60008060006060848603121561148157600080fd5b61148a84611426565b925061149860208501611426565b9150604084013590509250925092565b6000602082840312156114ba57600080fd5b6107f182611426565b6000806000606084860312156114d857600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561150257600080fd5b61150b83611426565b915061151960208401611426565b90509250929050565b801515811461153057600080fd5b50565b6000806040838503121561154657600080fd5b823561145e81611522565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115c25781600019048211156115a8576115a8611571565b808516156115b557918102915b93841c939080029061158c565b509250929050565b6000826115d9575060016106c0565b816115e6575060006106c0565b81600181146115fc576002811461160657611622565b60019150506106c0565b60ff84111561161757611617611571565b50506001821b6106c0565b5060208310610133831016604e8410600b8410161715611645575081810a6106c0565b61164f8383611587565b806000190482111561166357611663611571565b029392505050565b60006107f160ff8416836115ca565b80820281158282048414176106c0576106c0611571565b6000826116ae57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106c0576106c0611571565b6000602082840312156116d857600080fd5b5051919050565b6000602082840312156116f157600080fd5b81516107f181611522565b808201808211156106c0576106c0611571565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117755784516001600160a01b031683529383019391830191600101611750565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203a167307dbf1894aefe9996dafc513b7f519e822fc5c9e838d364ab684e2c51664736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80636ce46bc3116100d157806395d89b411161008a578063c867d60b11610064578063c867d60b146104c9578063dd62ed3e146104f9578063df20fd491461053f578063f887ea401461055f57600080fd5b806395d89b4114610445578063a8aa1b3114610475578063a9059cbb146104a957600080fd5b80636ce46bc31461037b57806370a082311461039b578063715018a6146103c857806377b54bad146103dd57806378109e54146103fd578063893d20e81461041357600080fd5b80631df4ccfc1161013e5780632f54bf6e116101185780632f54bf6e146102d5578063313ce567146103045780633f4218e01461032b578063571ac8b01461035b57600080fd5b80631df4ccfc1461028a57806323b872dd146102a05780632b112e49146102c057600080fd5b806306fdde031461019157806309302dc6146101e0578063095ea7b314610202578063180b0d7e1461023257806318160ddd146102555780631da1db5e1461026a57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101ca6040518060400160405280600d81526020016c29a0a32a902222aa22a1aa27a960991b81525081565b6040516101d791906113bf565b60405180910390f35b3480156101ec57600080fd5b506102006101fb36600461140d565b610593565b005b34801561020e57600080fd5b5061022261021d366004611442565b610659565b60405190151581526020016101d7565b34801561023e57600080fd5b50610247606481565b6040519081526020016101d7565b34801561026157600080fd5b506102476106c6565b34801561027657600080fd5b5061020061028536600461140d565b6106e2565b34801561029657600080fd5b5061024760095481565b3480156102ac57600080fd5b506102226102bb36600461146c565b610736565b3480156102cc57600080fd5b506102476107f8565b3480156102e157600080fd5b506102226102f03660046114a8565b6000546001600160a01b0391821691161490565b34801561031057600080fd5b50610319600981565b60405160ff90911681526020016101d7565b34801561033757600080fd5b506102226103463660046114a8565b60056020526000908152604090205460ff1681565b34801561036757600080fd5b506102226103763660046114a8565b61087e565b34801561038757600080fd5b506102006103963660046114c3565b61088c565b3480156103a757600080fd5b506102476103b63660046114a8565b60036020526000908152604090205481565b3480156103d457600080fd5b506102006108c4565b3480156103e957600080fd5b506102226103f8366004611442565b610900565b34801561040957600080fd5b5061024760025481565b34801561041f57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101d7565b34801561045157600080fd5b506101ca604051806040016040528060048152602001635341465560e01b81525081565b34801561048157600080fd5b5061042d7f00000000000000000000000037f4d8d1e46a7e86cb441fc8ec98cf666a11bac081565b3480156104b557600080fd5b506102226104c4366004611442565b610a0f565b3480156104d557600080fd5b506102226104e43660046114a8565b60066020526000908152604090205460ff1681565b34801561050557600080fd5b506102476105143660046114ef565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561054b57600080fd5b5061020061055a366004611533565b610a1c565b34801561056b57600080fd5b5061042d7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000546001600160a01b031633146105c65760405162461bcd60e51b81526004016105bd90611551565b60405180910390fd5b600a8110156106225760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574204d61782057616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016105bd565b6103e8816106326009600a61166b565b61063f90620f424061167a565b610649919061167a565b6106539190611691565b60025550565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106b49086815260200190565b60405180910390a35060015b92915050565b6106d26009600a61166b565b6106df90620f424061167a565b81565b47600060646106f1848461167a565b6106fb9190611691565b604051909150339082156108fc029083906000818181858888f1935050505015801561072b573d6000803e3d6000fd5b505060006001555050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146107e3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526004825283812033825290915291909120546107be918490610a8c565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6107ee848484610ac6565b90505b9392505050565b60036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5461dead60009081527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c549091906108586009600a61166b565b61086590620f424061167a565b61086f91906116b3565b61087991906116b3565b905090565b60006106c082600019610659565b6000546001600160a01b031633146108b65760405162461bcd60e51b81526004016105bd90611551565b600a92909255600b55600c55565b6000546001600160a01b031633146108ee5760405162461bcd60e51b81526004016105bd90611551565b600080546001600160a01b0319169055565b600080546001600160a01b0316331461092b5760405162461bcd60e51b81526004016105bd90611551565b8160000361099e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099b91906116c6565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f191906116df565b60006107f1338484610ac6565b6000546001600160a01b03163314610a465760405162461bcd60e51b81526004016105bd90611551565b80610a536009600a61166b565b610a6090620f424061167a565b610a6a9190611691565b600f5550600e8054911515600160a01b0260ff60a01b19909216919091179055565b60008184841115610ab05760405162461bcd60e51b81526004016105bd91906113bf565b506000610abd84866116b3565b95945050505050565b60105460009060ff1615610ae657610adf848484610d37565b90506107f1565b6001600160a01b03841660009081526006602052604090205460ff16158015610b2857506001600160a01b03831660009081526006602052604090205460ff16155b8015610b6657507f00000000000000000000000037f4d8d1e46a7e86cb441fc8ec98cf666a11bac06001600160a01b0316836001600160a01b031614155b15610be0576002546001600160a01b038416600090815260036020526040902054610b929084906116fc565b1115610be05760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016105bd565b610be8610e1d565b15610bf557610bf5610e90565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260039091529190912054610c47918490610a8c565b6001600160a01b038516600090815260036020908152604080832093909355600590529081205460ff1680610c9457506001600160a01b03841660009081526005602052604090205460ff165b610ca857610ca38584866110bc565b610caa565b825b6001600160a01b038516600090815260036020526040902054909150610cd0908261122c565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d249085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054610d88918490610a8c565b6001600160a01b038086166000908152600360205260408082209390935590851681522054610db7908361122c565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e0b9086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000037f4d8d1e46a7e86cb441fc8ec98cf666a11bac01614801590610e5b575060105460ff16155b8015610e705750600e54600160a01b900460ff165b8015610879575050600f5430600090815260036020526040902054101590565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ed257610ed261170f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610f2657610f2661170f565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9092169163791ac94791610f8c91600090869030904290600401611725565b600060405180830381600087803b158015610fa657600080fd5b505af1158015610fba573d6000803e3d6000fd5b505060095460075447935060009250610fd3908461167a565b610fdd9190611691565b9050600060095460085484610ff2919061167a565b610ffc9190611691565b600d546040519192506000916001600160a01b039091169084908381818185875af1925050503d806000811461104e576040519150601f19603f3d011682016040523d82523d6000602084013e611053565b606091505b5050600e546040519192506001600160a01b0316908390600081818185875af1925050503d80600081146110a3576040519150601f19603f3d011682016040523d82523d6000602084013e6110a8565b606091505b50506010805460ff19169055505050505050565b60008215806110cb5750600954155b156110d75750816107f1565b600c546001600160a01b037f00000000000000000000000037f4d8d1e46a7e86cb441fc8ec98cf666a11bac0811690841603611129576001546001036111205750600b54611167565b50612710611167565b7f00000000000000000000000037f4d8d1e46a7e86cb441fc8ec98cf666a11bac06001600160a01b0316856001600160a01b0316036111675750600a545b600061119c61117760648061167a565b611196846111906009548a61128b90919063ffffffff16565b9061128b565b9061130d565b9050801561121857306000908152600360205260409020546111be908261122c565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061120f9085815260200190565b60405180910390a35b611222858261134f565b9695505050505050565b60008061123983856116fc565b9050838110156107f15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105bd565b60008260000361129d575060006106c0565b60006112a9838561167a565b9050826112b68583611691565b146107f15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105bd565b60006107f183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611391565b60006107f183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a8c565b600081836113b25760405162461bcd60e51b81526004016105bd91906113bf565b506000610abd8486611691565b600060208083528351808285015260005b818110156113ec578581018301518582016040015282016113d0565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561141f57600080fd5b5035919050565b80356001600160a01b038116811461143d57600080fd5b919050565b6000806040838503121561145557600080fd5b61145e83611426565b946020939093013593505050565b60008060006060848603121561148157600080fd5b61148a84611426565b925061149860208501611426565b9150604084013590509250925092565b6000602082840312156114ba57600080fd5b6107f182611426565b6000806000606084860312156114d857600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561150257600080fd5b61150b83611426565b915061151960208401611426565b90509250929050565b801515811461153057600080fd5b50565b6000806040838503121561154657600080fd5b823561145e81611522565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156115c25781600019048211156115a8576115a8611571565b808516156115b557918102915b93841c939080029061158c565b509250929050565b6000826115d9575060016106c0565b816115e6575060006106c0565b81600181146115fc576002811461160657611622565b60019150506106c0565b60ff84111561161757611617611571565b50506001821b6106c0565b5060208310610133831016604e8410600b8410161715611645575081810a6106c0565b61164f8383611587565b806000190482111561166357611663611571565b029392505050565b60006107f160ff8416836115ca565b80820281158282048414176106c0576106c0611571565b6000826116ae57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106c0576106c0611571565b6000602082840312156116d857600080fd5b5051919050565b6000602082840312156116f157600080fd5b81516107f181611522565b808201808211156106c0576106c0611571565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117755784516001600160a01b031683529383019391830191600101611750565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212203a167307dbf1894aefe9996dafc513b7f519e822fc5c9e838d364ab684e2c51664736f6c63430008120033

Deployed Bytecode Sourcemap

2918:7715:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3174:45;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3174:45:0;;;;;;;;;;;;:::i;:::-;;;;;;;;6238:260;;;;;;;;;;-1:-1:-1;6238:260:0;;;;;:::i;:::-;;:::i;:::-;;5342:216;;;;;;;;;;-1:-1:-1;5342:216:0;;;;;:::i;:::-;;:::i;:::-;;;1354:14:1;;1347:22;1329:41;;1317:2;1302:18;5342:216:0;1189:187:1;3838:44:0;;;;;;;;;;;;3879:3;3838:44;;;;;1527:25:1;;;1515:2;1500:18;3838:44:0;1381:177:1;3348:62:0;;;;;;;;;;;;;:::i;9287:278::-;;;;;;;;;;-1:-1:-1;9287:278:0;;;;;:::i;:::-;;:::i;3777:54::-;;;;;;;;;;;;;;;;5860:370;;;;;;;;;;-1:-1:-1;5860:370:0;;;;;:::i;:::-;;:::i;8937:137::-;;;;;;;;;;;;;:::i;2238:103::-;;;;;;;;;;-1:-1:-1;2238:103:0;;;;;:::i;:::-;2293:4;2328:5;-1:-1:-1;;;;;2317:16:0;;;2328:5;;2317:16;;2238:103;3271:34;;;;;;;;;;;;3304:1;3271:34;;;;;2259:4:1;2247:17;;;2229:36;;2217:2;2202:18;3271:34:0;2087:184:1;3602:44:0;;;;;;;;;;-1:-1:-1;3602:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5566:122;;;;;;;;;;-1:-1:-1;5566:122:0;;;;;:::i;:::-;;:::i;8544:198::-;;;;;;;;;;-1:-1:-1;8544:198:0;;;;;:::i;:::-;;:::i;3480:45::-;;;;;;;;;;-1:-1:-1;3480:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2349:85;;;;;;;;;;;;;:::i;9573:284::-;;;;;;;;;;-1:-1:-1;9573:284:0;;;;;:::i;:::-;;:::i;3419:52::-;;;;;;;;;;;;;;;;5117:78;;;;;;;;;;-1:-1:-1;5169:7:0;5187:5;-1:-1:-1;;;;;5187:5:0;5117:78;;;-1:-1:-1;;;;;2761:32:1;;;2743:51;;2731:2;2716:18;5117:78:0;2597:203:1;3226:38:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3226:38:0;;;;;4119:29;;;;;;;;;;;;;;;5696:156;;;;;;;;;;-1:-1:-1;5696:156:0;;;;;:::i;:::-;;:::i;3653:52::-;;;;;;;;;;-1:-1:-1;3653:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5201:133;;;;;;;;;;-1:-1:-1;5201:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5303:19:0;;;5285:7;5303:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5201:133;8750:179;;;;;;;;;;-1:-1:-1;8750:179:0;;;;;:::i;:::-;;:::i;4078:34::-;;;;;;;;;;;;;;;6238:260;2293:4;2328:5;-1:-1:-1;;;;;2328:5:0;2197:10;2317:16;2181:38;;;;-1:-1:-1;;;2181:38:0;;;;;;;:::i;:::-;;;;;;;;;6374:2:::1;6347:23;:29;;6339:75;;;::::0;-1:-1:-1;;;6339:75:0;;4269:2:1;6339:75:0::1;::::0;::::1;4251:21:1::0;4308:2;4288:18;;;4281:30;4347:34;4327:18;;;4320:62;-1:-1:-1;;;4398:18:1;;;4391:32;4440:19;;6339:75:0::1;4067:398:1::0;6339:75:0::1;6486:4;6458:23:::0;3398:12:::1;3304:1;3398:2;:12;:::i;:::-;3386:24;::::0;:9:::1;:24;:::i;:::-;6444:37;;;;:::i;:::-;6443:47;;;;:::i;:::-;6425:15;:65:::0;-1:-1:-1;6238:260:0:o;5342:216::-;5446:10;5417:4;5434:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5434:32:0;;;;;;;;;;:41;;;5491:37;5417:4;;5434:32;;5491:37;;;;5469:6;1527:25:1;;1515:2;1500:18;;1381:177;5491:37:0;;;;;;;;-1:-1:-1;5546:4:0;5342:216;;;;;:::o;3348:62::-;3398:12;3304:1;3398:2;:12;:::i;:::-;3386:24;;:9;:24;:::i;:::-;3348:62;:::o;9287:278::-;9388:21;9368:17;9479:3;9446:28;9458:16;9388:21;9446:28;:::i;:::-;9444:38;;;;:::i;:::-;9493:43;;9420:62;;-1:-1:-1;9501:10:0;;9493:43;;;;;9420:62;;9493:43;;;;9420:62;9501:10;9493:43;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9556:1:0;9547:6;:10;-1:-1:-1;;9287:278:0:o;5860:370::-;-1:-1:-1;;;;;5980:19:0;;5960:4;5980:19;;;:11;:19;;;;;;;;6000:10;5980:31;;;;;;;;-1:-1:-1;;5980:52:0;5977:186;;6082:69;;;;;;;;;;;-1:-1:-1;;;6082:69:0;;;;;;;;-1:-1:-1;;;;;6082:19:0;;-1:-1:-1;6082:19:0;;;:11;:19;;;;;6102:10;6082:31;;;;;;;;;;:69;;6118:6;;6082:35;:69::i;:::-;-1:-1:-1;;;;;6048:19:0;;;;;;:11;:19;;;;;;;;6068:10;6048:31;;;;;;;:103;5977:186;6182:40;6196:6;6204:9;6215:6;6182:13;:40::i;:::-;6175:47;;5860:370;;;;;;:::o;8937:137::-;9050:9;:15;;;;3050:42;8990:7;9032:15;;;;;8990:7;;9050:15;3398:12;3304:1;3398:2;:12;:::i;:::-;3386:24;;:9;:24;:::i;:::-;9018:29;;;;:::i;:::-;:47;;;;:::i;:::-;9010:56;;8937:137;:::o;5566:122::-;5621:4;5645:35;5653:7;-1:-1:-1;;5645:7:0;:35::i;8544:198::-;2293:4;2328:5;-1:-1:-1;;;;;2328:5:0;2197:10;2317:16;2181:38;;;;-1:-1:-1;;;2181:38:0;;;;;;;:::i;:::-;8643:13:::1;:20:::0;;;;8674:14:::1;:22:::0;8707:18:::1;:27:::0;8544:198::o;2349:85::-;2293:4;2328:5;-1:-1:-1;;;;;2328:5:0;2197:10;2317:16;2181:38;;;;-1:-1:-1;;;2181:38:0;;;;;;;:::i;:::-;2424:1:::1;2408:18:::0;;-1:-1:-1;;;;;;2408:18:0::1;::::0;;2349:85::o;9573:284::-;9664:12;2328:5;;-1:-1:-1;;;;;2328:5:0;2197:10;2317:16;2181:38;;;;-1:-1:-1;;;2181:38:0;;;;;;;:::i;:::-;9692:6:::1;9702:1;9692:11:::0;9689:95:::1;;9728:44;::::0;-1:-1:-1;;;9728:44:0;;9766:4:::1;9728:44;::::0;::::1;2743:51:1::0;-1:-1:-1;;;;;9728:29:0;::::1;::::0;::::1;::::0;2716:18:1;;9728:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9719:53;;9689:95;9801:48;::::0;-1:-1:-1;;;9801:48:0;;9830:10:::1;9801:48;::::0;::::1;6876:51:1::0;6943:18;;;6936:34;;;-1:-1:-1;;;;;9801:28:0;::::1;::::0;::::1;::::0;6849:18:1;;9801:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5696:156::-:0;5776:4;5800:44;5814:10;5826:9;5837:6;5800:13;:44::i;8750:179::-;2293:4;2328:5;-1:-1:-1;;;;;2328:5:0;2197:10;2317:16;2181:38;;;;-1:-1:-1;;;2181:38:0;;;;;;;:::i;:::-;8876:12;3398::::1;3304:1;3398:2;:12;:::i;:::-;3386:24;::::0;:9:::1;:24;:::i;:::-;8862:26;;;;:::i;:::-;8846:13;:42:::0;-1:-1:-1;8899:11:0::1;:22:::0;;;::::1;;-1:-1:-1::0;;;8899:22:0::1;-1:-1:-1::0;;;;8899:22:0;;::::1;::::0;;;::::1;::::0;;8750:179::o;557:192::-;643:7;679:12;671:6;;;;663:29;;;;-1:-1:-1;;;663:29:0;;;;;;;;:::i;:::-;-1:-1:-1;703:9:0;715:5;719:1;715;:5;:::i;:::-;703:17;557:192;-1:-1:-1;;;;;557:192:0:o;6506:817::-;6618:6;;6598:4;;6618:6;;6615:63;;;6634:41;6649:6;6657:9;6668:6;6634:14;:41::i;:::-;6627:48;;;;6615:63;-1:-1:-1;;;;;6695:27:0;;;;;;:19;:27;;;;;;;;6694:28;:63;;;;-1:-1:-1;;;;;;6727:30:0;;;;;;:19;:30;;;;;;;;6726:31;6694:63;:84;;;;;6774:4;-1:-1:-1;;;;;6761:17:0;:9;-1:-1:-1;;;;;6761:17:0;;;6694:84;6690:203;;;6838:15;;-1:-1:-1;;;;;6804:20:0;;;;;;:9;:20;;;;;;:29;;6827:6;;6804:29;:::i;:::-;6803:50;;6795:86;;;;-1:-1:-1;;;6795:86:0;;7563:2:1;6795:86:0;;;7545:21:1;7602:2;7582:18;;;7575:30;7641:26;7621:18;;;7614:54;7685:18;;6795:86:0;7361:348:1;6795:86:0;6908:16;:14;:16::i;:::-;6905:35;;;6927:10;:8;:10::i;:::-;6972:53;;;;;;;;;;;-1:-1:-1;;;6972:53:0;;;;;;;;-1:-1:-1;;;;;6972:17:0;;-1:-1:-1;6972:17:0;;;:9;:17;;;;;;;;:53;;6994:6;;6972:21;:53::i;:::-;-1:-1:-1;;;;;6952:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7064:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7087:22:0;;;;;;:11;:22;;;;;;;;7064:45;7063:93;;7122:34;7130:6;7138;7146:9;7122:7;:34::i;:::-;7063:93;;;7113:6;7063:93;-1:-1:-1;;;;;7192:20:0;;;;;;:9;:20;;;;;;7038:118;;-1:-1:-1;7192:40:0;;7038:118;7192:24;:40::i;:::-;-1:-1:-1;;;;;7169:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7250:43;;;;;;;;;;7278:14;1527:25:1;;1515:2;1500:18;;1381:177;7250:43:0;;;;;;;;-1:-1:-1;7311:4:0;;6506:817;-1:-1:-1;;;;6506:817:0:o;7335:330::-;7465:53;;;;;;;;;;;-1:-1:-1;;;7465:53:0;;;;;;;;-1:-1:-1;;;;;7465:17:0;;7428:4;7465:17;;;:9;:17;;;;;;;:53;;7487:6;;7465:21;:53::i;:::-;-1:-1:-1;;;;;7445:17:0;;;;;;;:9;:17;;;;;;:73;;;;7552:20;;;;;;;:32;;7577:6;7552:24;:32::i;:::-;-1:-1:-1;;;;;7529:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7600:35;;;;;;;;;;7628:6;1527:25:1;;1515:2;1500:18;;1381:177;7600:35:0;;;;;;;;-1:-1:-1;7653:4:0;7335:330;;;;;:::o;9082:197::-;9131:4;9155:10;-1:-1:-1;;;;;9169:4:0;9155:18;;;;;:38;;-1:-1:-1;9187:6:0;;;;9186:7;9155:38;:62;;;;-1:-1:-1;9206:11:0;;-1:-1:-1;;;9206:11:0;;;;9155:62;:116;;;;-1:-1:-1;;9258:13:0;;9248:4;9230:24;;;;:9;:24;;;;;;:41;;;9082:197::o;9865:765::-;4275:6;:13;;-1:-1:-1;;4275:13:0;4284:4;4275:13;;;9940:16:::1;::::0;;9954:1:::1;9940:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9940:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9940:16:0::1;9916:40;;9985:4;9967;9972:1;9967:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9967:23:0::1;;;-1:-1:-1::0;;;;;9967:23:0::1;;;::::0;::::1;10011:4;10001;10006:1;10001:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10001:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;10100:13:::1;::::0;10028:189:::1;::::0;-1:-1:-1;;;10028:189:0;;:6:::1;:57:::0;;::::1;::::0;::::1;::::0;:189:::1;::::0;10128:1:::1;::::0;10144:4;;10171::::1;::::0;10191:15:::1;::::0;10028:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10342:8:0::1;::::0;10326:12:::1;::::0;10250:21:::1;::::0;-1:-1:-1;10230:17:0::1;::::0;-1:-1:-1;10314:24:0::1;::::0;10250:21;10314:24:::1;:::i;:::-;10313:37;;;;:::i;:::-;10284:66;;10361:27;10421:8;;10404:13;;10392:9;:25;;;;:::i;:::-;10391:38;;;;:::i;:::-;10471:20;::::0;10463:65:::1;::::0;10361:68;;-1:-1:-1;10443:15:0::1;::::0;-1:-1:-1;;;;;10471:20:0;;::::1;::::0;10505:18;;10443:15;10463:65;10443:15;10463:65;10505:18;10471:20;10463:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;10563:21:0::1;::::0;10555:67:::1;::::0;10442:86;;-1:-1:-1;;;;;;10563:21:0::1;::::0;10598:19;;10555:67:::1;::::0;;;10598:19;10563:21;10555:67:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4293:6:0;:14;;-1:-1:-1;;4293:14:0;;;-1:-1:-1;;;;;;9865:765:0:o;7673:863::-;7759:7;7782:11;;;:28;;-1:-1:-1;7797:8:0;;:13;7782:28;7779:72;;;-1:-1:-1;7833:6:0;7826:13;;7779:72;7884:18;;-1:-1:-1;;;;;7931:4:0;7918:17;;;;;;7915:294;;7955:6;;7965:1;7955:11;7952:168;;-1:-1:-1;8009:14:0;;7915:294;;7952:168;-1:-1:-1;8099:5:0;7915:294;;;8150:4;-1:-1:-1;;;;;8140:14:0;:6;-1:-1:-1;;;;;8140:14:0;;8137:72;;-1:-1:-1;8184:13:0;;8137:72;8221:17;8241:62;8282:20;3879:3;;8282:20;:::i;:::-;8241:36;8266:10;8241:20;8252:8;;8241:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;8221:82;-1:-1:-1;8319:13:0;;8316:172;;8393:4;8375:24;;;;:9;:24;;;;;;:39;;8404:9;8375:28;:39::i;:::-;8366:4;8348:24;;;;:9;:24;;;;;;;:66;;;;8434:42;;-1:-1:-1;;;;;8434:42:0;;;;;;;8466:9;1527:25:1;;1515:2;1500:18;;1381:177;8434:42:0;;;;;;;;8316:172;8507:21;:6;8518:9;8507:10;:21::i;:::-;8500:28;7673:863;-1:-1:-1;;;;;;7673:863:0:o;228:181::-;286:7;;318:5;322:1;318;:5;:::i;:::-;306:17;;347:1;342;:6;;334:46;;;;-1:-1:-1;;;334:46:0;;9375:2:1;334:46:0;;;9357:21:1;9414:2;9394:18;;;9387:30;9453:29;9433:18;;;9426:57;9500:18;;334:46:0;9173:351:1;755:250:0;813:7;837:1;842;837:6;833:47;;-1:-1:-1;867:1:0;860:8;;833:47;892:9;904:5;908:1;904;:5;:::i;:::-;892:17;-1:-1:-1;937:1:0;928:5;932:1;892:17;928:5;:::i;:::-;:10;920:56;;;;-1:-1:-1;;;920:56:0;;9731:2:1;920:56:0;;;9713:21:1;9770:2;9750:18;;;9743:30;9809:34;9789:18;;;9782:62;-1:-1:-1;;;9860:18:1;;;9853:31;9901:19;;920:56:0;9529:397:1;1011:132:0;1069:7;1096:39;1100:1;1103;1096:39;;;;;;;;;;;;;;;;;:3;:39::i;415:136::-;473:7;500:43;504:1;507;500:43;;;;;;;;;;;;;;;;;:3;:43::i;1149:189::-;1235:7;1270:12;1263:5;1255:28;;;;-1:-1:-1;;;1255:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1294:9:0;1306:5;1310:1;1306;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:180::-;626:6;679:2;667:9;658:7;654:23;650:32;647:52;;;695:1;692;685:12;647:52;-1:-1:-1;718:23:1;;567:180;-1:-1:-1;567:180:1:o;752:173::-;820:20;;-1:-1:-1;;;;;869:31:1;;859:42;;849:70;;915:1;912;905:12;849:70;752:173;;;:::o;930:254::-;998:6;1006;1059:2;1047:9;1038:7;1034:23;1030:32;1027:52;;;1075:1;1072;1065:12;1027:52;1098:29;1117:9;1098:29;:::i;:::-;1088:39;1174:2;1159:18;;;;1146:32;;-1:-1:-1;;;930:254:1:o;1563:328::-;1640:6;1648;1656;1709:2;1697:9;1688:7;1684:23;1680:32;1677:52;;;1725:1;1722;1715:12;1677:52;1748:29;1767:9;1748:29;:::i;:::-;1738:39;;1796:38;1830:2;1819:9;1815:18;1796:38;:::i;:::-;1786:48;;1881:2;1870:9;1866:18;1853:32;1843:42;;1563:328;;;;;:::o;1896:186::-;1955:6;2008:2;1996:9;1987:7;1983:23;1979:32;1976:52;;;2024:1;2021;2014:12;1976:52;2047:29;2066:9;2047:29;:::i;2276:316::-;2353:6;2361;2369;2422:2;2410:9;2401:7;2397:23;2393:32;2390:52;;;2438:1;2435;2428:12;2390:52;-1:-1:-1;;2461:23:1;;;2531:2;2516:18;;2503:32;;-1:-1:-1;2582:2:1;2567:18;;;2554:32;;2276:316;-1:-1:-1;2276:316:1:o;2805:260::-;2873:6;2881;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2973:29;2992:9;2973:29;:::i;:::-;2963:39;;3021:38;3055:2;3044:9;3040:18;3021:38;:::i;:::-;3011:48;;2805:260;;;;;:::o;3070:118::-;3156:5;3149:13;3142:21;3135:5;3132:32;3122:60;;3178:1;3175;3168:12;3122:60;3070:118;:::o;3193:309::-;3258:6;3266;3319:2;3307:9;3298:7;3294:23;3290:32;3287:52;;;3335:1;3332;3325:12;3287:52;3374:9;3361:23;3393:28;3415:5;3393:28;:::i;3733:329::-;3935:2;3917:21;;;3974:1;3954:18;;;3947:29;-1:-1:-1;;;4007:2:1;3992:18;;3985:36;4053:2;4038:18;;3733:329::o;4470:127::-;4531:10;4526:3;4522:20;4519:1;4512:31;4562:4;4559:1;4552:15;4586:4;4583:1;4576:15;4602:422;4691:1;4734:5;4691:1;4748:270;4769:7;4759:8;4756:21;4748:270;;;4828:4;4824:1;4820:6;4816:17;4810:4;4807:27;4804:53;;;4837:18;;:::i;:::-;4887:7;4877:8;4873:22;4870:55;;;4907:16;;;;4870:55;4986:22;;;;4946:15;;;;4748:270;;;4752:3;4602:422;;;;;:::o;5029:806::-;5078:5;5108:8;5098:80;;-1:-1:-1;5149:1:1;5163:5;;5098:80;5197:4;5187:76;;-1:-1:-1;5234:1:1;5248:5;;5187:76;5279:4;5297:1;5292:59;;;;5365:1;5360:130;;;;5272:218;;5292:59;5322:1;5313:10;;5336:5;;;5360:130;5397:3;5387:8;5384:17;5381:43;;;5404:18;;:::i;:::-;-1:-1:-1;;5460:1:1;5446:16;;5475:5;;5272:218;;5574:2;5564:8;5561:16;5555:3;5549:4;5546:13;5542:36;5536:2;5526:8;5523:16;5518:2;5512:4;5509:12;5505:35;5502:77;5499:159;;;-1:-1:-1;5611:19:1;;;5643:5;;5499:159;5690:34;5715:8;5709:4;5690:34;:::i;:::-;5760:6;5756:1;5752:6;5748:19;5739:7;5736:32;5733:58;;;5771:18;;:::i;:::-;5809:20;;5029:806;-1:-1:-1;;;5029:806:1:o;5840:140::-;5898:5;5927:47;5968:4;5958:8;5954:19;5948:4;5927:47;:::i;5985:168::-;6058:9;;;6089;;6106:15;;;6100:22;;6086:37;6076:71;;6127:18;;:::i;6158:217::-;6198:1;6224;6214:132;;6268:10;6263:3;6259:20;6256:1;6249:31;6303:4;6300:1;6293:15;6331:4;6328:1;6321:15;6214:132;-1:-1:-1;6360:9:1;;6158:217::o;6380:128::-;6447:9;;;6468:11;;;6465:37;;;6482:18;;:::i;6513:184::-;6583:6;6636:2;6624:9;6615:7;6611:23;6607:32;6604:52;;;6652:1;6649;6642:12;6604:52;-1:-1:-1;6675:16:1;;6513:184;-1:-1:-1;6513:184:1:o;6981:245::-;7048:6;7101:2;7089:9;7080:7;7076:23;7072:32;7069:52;;;7117:1;7114;7107:12;7069:52;7149:9;7143:16;7168:28;7190:5;7168:28;:::i;7231:125::-;7296:9;;;7317:10;;;7314:36;;;7330:18;;:::i;7846:127::-;7907:10;7902:3;7898:20;7895:1;7888:31;7938:4;7935:1;7928:15;7962:4;7959:1;7952:15;7978:980;8240:4;8288:3;8277:9;8273:19;8319:6;8308:9;8301:25;8345:2;8383:6;8378:2;8367:9;8363:18;8356:34;8426:3;8421:2;8410:9;8406:18;8399:31;8450:6;8485;8479:13;8516:6;8508;8501:22;8554:3;8543:9;8539:19;8532:26;;8593:2;8585:6;8581:15;8567:29;;8614:1;8624:195;8638:6;8635:1;8632:13;8624:195;;;8703:13;;-1:-1:-1;;;;;8699:39:1;8687:52;;8794:15;;;;8759:12;;;;8735:1;8653:9;8624:195;;;-1:-1:-1;;;;;;;8875:32:1;;;;8870:2;8855:18;;8848:60;-1:-1:-1;;;8939:3:1;8924:19;8917:35;8836:3;7978:980;-1:-1:-1;;;7978:980:1:o

Swarm Source

ipfs://3a167307dbf1894aefe9996dafc513b7f519e822fc5c9e838d364ab684e2c516

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  ]

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.